百度云推送实现博客新文章提醒

百度云推送实现博客新文章提醒

算法语言 2年前 (2016-01-07) 浏览: 137 评论: 1

在开发王柏元的博客客户端时,为了加入新文章发布时实现客户端通知的效果,极客人采用了百度云推送平台,使用百度官方提供的SDK和demo成功实现。服务端发送通知时,客户端会执行onNotificationClicked 回调函数。该函数的形参分别为 Context context:上下文 String title:通知标题 String description:通知内容 String customContentString:自定义字段,通过json可获取服务端的传值。 安卓端 服务器端代码需要引入sdk.php,关键是服务器要支持cUrl模块。我的阿里云免费主机就不支持,后来我消息推送的代码放在景安的虚拟主机上,通过阿里云调用URL的方式执行在景安主机上的PHP文件,解决了这一问题。 PHP服务器端    

PHP获取指定日期的农历和节日

PHP获取指定日期的农历和节日

算法语言 2年前 (2015-12-25) 浏览: 1798 评论: 2

今天是圣诞节,用了半天做了一个节日祝福语和节日主题,效果还不错。可以在洋节和中国节日(包括农历节日 春节、中秋节等等)当天更换王柏元的博客的节日主题,并在站点公告里送上节日祝福语。 下面是关键的PHP类:Lunar。其中的getFestival()函数可传入的实参是不定数目的,可以通过传入的公历年月日,不传入默认是当前的服务器时间,函数实现了判断指定日期是否是已经设定的节日:比如中秋节、春节,同时还输出节日祝福语或诗句,返回的形式是一个数组。其余几个函数实现了获取公历和农历之间的转换,农历还支持返回当前日期农历的天干地支纪年以及生肖。    

微信开发获取位置与百度地图经纬度解析

微信开发获取位置与百度地图经纬度解析

软件开发 2年前 (2015-12-14) 浏览: 1147 评论: 3

微信开发中我们常常需要知道用户的位置,在微信的JS-SDK中提供了访问地理位置的方法,这不需要你的公众号是认证账户,普通未认证的订阅号也有访问地理位置的权限。 微信开发获取位置与百度地图经纬度解析 根据微信公众号开发者文档中的 JSSDK使用步骤 1.1.1 步骤一:绑定域名 1.1.2 步骤二:引入JS文件 1.1.3 步骤三:通过config接口注入权限验证配置 1.1.4 步骤四:通过ready接口处理成功验证 1.1.5 步骤五:通过error接口处理失败验证 微信开发获取位置与百度地图经纬度解析,我们可以根据官方文档可以获取很多高级功能,这里就不赘述。可能比较棘手的是后面遇到的消息签名问题。下面是官方给的代码: 在PHP中调用: 在HTML中加入js代码: 调用js代码获取经纬度: 百度地图经纬度解析 微信JS-SDK提供的只是经纬度,而不是像“陕西省西安市”这样的地理位置,下面是将经纬度转为地理位置的PHP函数,调用的是百度地图的web-api:

让博客插入的视频宽度自适应

让博客插入的视频宽度自适应

前端与界面 2年前 (2015-10-14) 浏览: 145 评论: 0

好久没写技术类博文,这次暂且水一水上次在博客里发了一段个人制作的视频,使用的优酷提供的分享代码:就是一个embed视频标签,无奈优酷提供的代码视频长宽都是死的,600*400的样子,在电脑上还行,在手机上宽度太大直接撑爆了手机屏幕,用户体验很不好,下面的代码就是实现在不同设备自动适应宽度的。实现原理很简单,就是用js(jquery)动态设定视频的长宽度。 请将下面的代码加进主题的functions.php文件中,并且将代码中所有的#main-wrap-left换成显示文章的div的class名或者ID。  

【译】构建迁移-up,down,change方法-Phinx教程(2)

【译】构建迁移-up,down,change方法-Phinx教程(2)

技术应用 2年前 (2015-08-26) 浏览: 772 评论: 0

本文由极客人原创翻译自:http://phinx.readthedocs.org,不周之处,敬请指正;系列文章请访问王柏元的博客Phinx标签页或者用极客搜搜索:Phinx 获取所有文章目录 为转换数据库:对数据进行还原或修改,Phinx 是通过一系列的Migrations文件来实现的。每个Migrations文件其实是一个PHP类,构陷一个migration的方法最好是通过Phinx 提供的API,当然,运行原生的SQL语句也是可以的。 新建Phinx Migration 创建一个新的Phinx Migration迁移。我们要在项目文件夹下运行Phinx的 create命令:运行上述命令完毕后,在migrations文件夹(这个文件夹就是你安装phinx时的那个migrations文件夹) 会生成一个文件名为YYYYMMDDHHMMSS_my_new_migration.php的PHP文件,在前14个字符其实当前时间的时间戳。Phinx自动创建一个框架迁移文件有两个空的和一个被注释掉的方法: AbstractMigration类 所有Phinx Migration迁移类都继承于 AbstractMigration类,它提供了必要的支持来创建数据库迁移。数据库迁移可以创建新表,插入行,添加索引和修改列。 up()方法 当你对数据库进行向上迁移(即对数据库进行新的修改时),并且phinx检测到构建的migrations 之前没有被运行时,up()方法会被phinx自动运行。在up()方法中你需要根据你的意图自己写代码来修改数据库。  Down()方法 当你对数据库进行向下迁移(即对数据库的操作进行还原修改),phinx检测到构建的migrations 之前没有被运行时,Down()的方法会被Phinx自动运行。你应该使用down()方法来扭转/撤销数据库的修改。 Change()的方法 Phinx 0.2.0引入了一个新功能,叫做可逆迁移。你只需要定义可逆迁移的 up()方法的逻辑那么Phinx就可以为你自动找出如何向下迁移。定义一个可逆迁移必须取消 change方法的注释、补全里面的方法定义。例如:当执行这个迁移时,Phinx将创建 user_logins表,同时自动实现如何删除表。需要注意的是,当迁移文件中存在change方法时,Phinx会自动忽略了 up()和 down()方法。如果您还需要使用这些方法,建议您创建一个单独的migration文件。 注意: 在创建或更新表内 change()方法必须使用桌子上 create()和 update()方法。Phinx不能自动确定 save()调用创建一个新表或修改一个现有的一个。Phinx的可逆迁移只能反向实现以下的操作: 新建表 重命名表 添加列属性 重命名列属性 添加索引 添加外键 如果一个操作不能逆转,在向下迁移的时候,Phinx就会抛出 IrreversibleMigrationException异常。

【译】Phinx的介绍与安装-Phinx教程(1)

【译】Phinx的介绍与安装-Phinx教程(1)

技术应用 2年前 (2015-08-24) 浏览: 376 评论: 0

本文由极客人原创翻译自:http://phinx.readthedocs.org,不周之处,敬请指正;系列文章请访问王柏元的博客Phinx标签页或者用极客搜搜索:Phinx 获取所有文章目录   介绍 一个训练有素的开发者,善于使用SCM系统(Software configuration management :软件配置管理)对其程序代码进行版本控制;那么,为什么他们不使用相同的方式对数据库进行版本控制呢? Phinx允许开发者一种清晰、简洁的方式来修改和操作数据库,依托Phinx提供了一个强大的API,你无需手工编写SQL,而是使用PHP代码来创建代码迁移。然后开发者可以使用他们喜欢的SCM来进行代码迁移。这使得Phinx代码迁移可以移植于不同数据库系统之间。Phinx会对已经进行过的代码迁移进行跟踪,这样你就可以少担心数据库的状态,而是专注于开发更好的软件。 目标 开发Phinx的目的如下: 在常用数据库厂商之间轻松移植。 与PHP开发框架独立。 安装过程简单。 有一套易于使用的命令行操作。 与其他PHP工具(Phing、PHPUnit))和web框架集成使用。 安装 Phinx需要使用Composer进行安装,Composer 是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。详情可参考Composer官网 注意: Phinx最低支持PHP5.3.2版本。 安装Phinx,仅仅需要使用composer工具即可:执行下面命令进行安装(运行PHP命令需要自行配置好PHP环境变量,在环境变量path中加入PHP安装根目录): 然后运行composer: 在您的项目中创建一个有可写权限的文件夹 migrations来存放迁移文件,然后在您的项目文件夹下执行命令:

BY说说-wordpress说说插件发布与反馈

BY说说-wordpress说说插件发布与反馈

wordpress作品 2年前 (2015-08-20) 浏览: 3289 评论: 36

一、插件简介 wordpress是最受欢迎的博客程序之一,但是却没有其它有些博客CMS程序的“微语”这样的功能。有时候我们只想用一两句话抒发一下自己的情绪,就想用wordpress发个微博,发个说说;没有必要写成长篇大论,如果凑字数就完全失去了“抒发”的真谛。上次写了一篇用wordpress写说说的文章,访友们很是踊跃,希望做成插件。 本插件处于许多网友的要求为wordpress提供说说功能,wordpress不仅仅可以长篇大论,而可以微言大义。 二、使用注意 由于本人不是专业的wordpress开发者,没有大量时间优化这项功能。本插件提供发表说说等功能,至于说说页面的样式界面文件只分享本人正在使用的,我的界面样式可能并不适合你,这可能需要你自己根据自己的主题适配说说展示页界面布局和样式。 三、插件截图 预览地址:http://wangbaiyuan.cn/shuoshuo 电脑端界面: 手机端界面:        

PHP实现酒店查询:WEB+SQL数据库+JSON-API

PHP实现酒店查询:WEB+SQL数据库+JSON-API

算法语言 2年前 (2015-07-27) 浏览: 366 评论: 2

项目复述: PROBLEM : HOTEL RESERVATION A hotel chain operating in Miami wishes to offer room reservation services over the internet. They have three hotels in Miami: Lakewood, Bridgewood and Ridgewood. Each hotel has separate weekday and weekend (Saturday and Sunday) rates. There are special rates for rewards customer as a part of loyalty program. Each hotel has a rating assigned to it. Lakewood with a rating of 3 has weekday rates as 110$ for regular customer and 80$ for rewards customer. The weekend rates are 90$ for regular customer and 80$ for a rewards customer. Bridgewood with a rating of 4 has weekday rates as 160$ for regular customer and 110$ for rewards customer. The weekend rates are 60$ for regular customer and 50$ for a rewards customer. Ridgewood with a rating of 5 has weekday rates as 220$ for regular customer and 100$ for rewards customer. The weekend rates are 150$ for regular customer and 40$ for a rewards customer. Write a program to help an online customer find the cheapest hotel. The input to the program will be a range of dates for a regular or rewards customer. The output should be the cheapest available hotel. In case

【资料】curl_setopt函数相关参数介绍

【资料】curl_setopt函数相关参数介绍

百元百科 2年前 (2015-06-30) 浏览: 156 评论: 0

curl_setopt()函数将为一个CURL会话设置选项。option参数是你想要的设置,value是这个选项给定的值。 下列选项的值将被作为长整形使用(在option参数中指定): CURLOPT_INFILESIZE: 当你上传一个文件到远程站点,这个选项告诉PHP你上传文件的大小。 CURLOPT_VERBOSE:如果你想CURL报告每一件意外的事情,设置这个选项为一个非零值。 CURLOPT_HEADER:如果你想把一个头包含在输出中,设置这个选项为一个非零值。 CURLOPT_NOPROGRESS:如果你不会PHP为CURL传输显示一个进程条,设置这个选项为一个非零值。 注意:PHP自动设置这个选项为非零值,你应该仅仅为了调试的目的来改变这个选项。 CURLOPT_NOBODY:如果你不想在输出中包含body部分,设置这个选项为一个非零值。 CURLOPT_FAILONERROR:如果你想让PHP在发生错误(HTTP代码返回大于等于300)时,不显示,设置这个选项为一人非零值。默认行为是返回一个正常页,忽略代码。 CURLOPT_UPLOAD:如果你想让PHP为上传做准备,设置这个选项为一个非零值。 CURLOPT_POST:如果你想PHP去做一个正规的HTTP POST,设置这个选项为一个非零值。这个POST是普通的 application/x-www-from-urlencoded 类型,多数被HTML表单使用。 CURLOPT_FTPLISTONLY:设置这个选项为非零值,PHP将列出FTP的目录名列表。 CURLOPT_FTPAPPEND:设置这个选项为一个非零值,PHP将应用远程文件代替覆盖它。 CURLOPT_NETRC:设置这个选项为一个非零值,PHP将在你的 ~./netrc 文件中查找你要建立连接的远程站点的用户名及密码。 CURLOPT_FOLLOWLOCATION:设置这个选项为一个非零值(象 'Location:')的头,服务器会把它当做HTTP头的一部分发送(注意这是递归的,PHP将发送形如 'Location:'的头)。 CURLOPT_PUT:设置这个选项为一个非零值去用HTTP上传一个文件。要上传这个文件必须设置CURLOPT_INFILE和CURLOPT_INFILESIZE选项. CURLOPT_MUTE:设置这个选项为一个非零值,PHP对于CURL函数将完全沉默。 CURLOPT_TIMEOUT:设置一个长整形数,作为最大延续多少秒。 CURLOPT_LOW_SPEED_LIMIT:设置一个长整形数,控制传送多少字节。 CURLOPT_LOW_SPEED_TIME:设置一个长整形数,控制多少秒传送CURLOPT_LOW_SPEED_LIMIT规定的字节数。 CURLOPT_RESUME_FROM:传递一个包含字节偏移地址的长整形参数,(你想转移到的开始表单)。 CURLOPT_SSLVERSION:传递一个包含SSL版本的长参数。默认PHP将被它自己努力的确定,在更多的安全中你必须手工设置。 CURLOPT_TIMECONDITION:传递一个长参数,指定怎么处理CURLOPT_TIMEVALUE参数。你可以设置这个参数为TIMECOND_IFMODSINCE 或 TIMECOND_ISUNMODSINCE。这仅用于HTTP。 CURLOPT_TIMEVALUE:传递一个从1970-1-1开始到现在的秒数。这个时间将被CURLOPT_TIMEVALUE选项作为指定值使用,或被默认TIMECOND_IFMODSINCE使用。 下列选项的值将被作为字符串: CURLOPT_URL:这是你想用PHP取回的URL地址。你也可以在用curl_init()函数初始化时设置这个选项。 CURLOPT_USERPWD:传递一个形如[username]:[password]风格的字符串,作用PHP去连接。 CURLOPT_PROXYUSERPWD:传递一个形如[username]:[password] 格式的字符串去连接HTTP代理。 CURLOPT_RANGE:传递一个你想指定的范围。它应该是'X-Y'格式,X或Y是被除外的。HTTP传送同样支持几个间隔,用逗句来分隔(X-Y,N-M)。 CURLOPT_POSTFIELDS:传递一个作为HTTP “POST”操作的所有数据的字符串。 CURLOPT_REFERER:在HTTP请求中包含一个'referer'头的字符串。 CURLOPT_USERAGENT:在HTTP请求中包含一个'user-agent'头的字符串。 CURLOPT_FTPPORT:传递一个包含被ftp 'POST'指令使用的IP地址。这个POST指令告诉远程服务器去连接我们指定的IP地址。 这个字符串可以是一个IP地址,一个主机名,一个网络界面名(在UNIX下),或是‘-’(使用系统默认IP地址)。 CURLOPT_COOKIE:传递一个包含HTTP cookie的头连接。 CURLOPT_SSLCERT:传递一个包含PEM格式证书的字符串。 CURLOPT_SSLCERTPASSWD:传递一个包含使用CURLOPT_SSLCERT证书必需的密码。 CURLOPT_COOKIEFILE:传递一个包含cookie数据的文件的名字的字符串。这个cookie文件可以是Netscape格式,或是堆存在文件中的HTTP风格的头。 CURLOPT_CUSTOMREQUEST:当进行HTTP请求时,传递一个字符被GET或HEAD使用。为进行DELETE或其它操作是有益的,更Pass a string to be used instead of GET or HEAD when doing an HTTP request. This is useful for doing or another, more obscure, HTTP request. 注意: 在确认你的服务器支持命令先不要去这样做。 下列的选项要求一个文件描述(通过使用fopen()函数获得): CURLOPT_FILE:这个文件将是你放置传送的输出文件,默认是STDOUT. CURLOPT_INFILE:这个文件是你传送过来的输入文件。 CURLOPT_WRITEHEADER:这个文件写有你输出的头部分。 CURLOPT_STDERR:这个文件写有错误而不是stderr。

PHP生成字母、符号、数字验证码图片

PHP生成字母、符号、数字验证码图片

百元百科 2年前 (2015-06-29) 浏览: 305 评论: 1

最近王柏元的博客频遭机器人注册或者恶意登录尝试,有时候一晚上能收到100条垃圾注册记录,10分钟能收到100条登录错误邮件通知,让极客人很无语和烦闷。尝试屏蔽IP等方法仍然收效甚微的情况下,极客人无奈考虑加入验证码了,目前只在注册页面加入了验证码,在控制登录上使用了Limit Login Attempts插件(本插件的汉化版见文章:)。 下面是PHP生成字母、符号、数字验证码图片的代码,是极客人对互联网的代码做了部分修改:其中$strpol定义了使用哪些字母、符号、数字绘制验证码。 效果演示: http://wangbaiyuan.cn/others/tools/captcha.php php代码生成字母、符号、数字验证码图片    

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

切换登录

注册