Home > Posts Tagged ‘PHP’

PHP:用curl读取https数据

February 26th, 2012 17:20 No comments

最近在研究Wordpress插件,顺便尝试着做一个连接人人网的Wordpress插件,搜索过一些相关的插件,功能上大多是绑定用户系统一类的,没找到我需要的博主在Wordpress端更新人人网状态的插件,于是打算自己尝试做一个,顺便研究研究Wordpress函数和人人API。

昨天遇到了一个问题。我在本机上按照人人API文档的说明通过OAuth2.0获取到Access Token没有问题,传到服务器上发现读取不到人人OAuth返回的数据。后来发现是在服务器上file_get_contents()读取不到https的数据,在服务器上运行phpinfo()也确实发现没有OpenSSL组件,不过却看到了curl的information里面有OpenSSL,难道curl在没有OpenSSL的情况下也可以读取https数据么?

尝试了一下,确实可以:

1
2
3
4
5
6
7
8
9
10
function coco_renren_get_https($url) {
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL,$url);
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
	curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	$result = curl_exec($ch);
	curl_close($ch);
	return $result;
}

在服务器没有OpenSSL组件的时候,不能用file_get_contents()读取https,可以尝试下curl。

Categories: Web Tags: , , , , , , , ,

解决WordPress不支持中文标签的问题

August 6th, 2009 11:48 3 comments

本文章已过时,本人已发布插件解决中文标签的问题,参看:http://nutsland.cn/blog/archives/177.html

目前版本的Wordpress(包括现在的2.8.3 3.3.1)有个问题,可以说是Bug,就是对中文标签(Tag)支持不好。

在使用动态链接(例如http://nutsland.cn/blog/?tag=%e7%94%b5%e5%bd%b1)访问标签时,中文标签的访问没有问题,但是在使用固定链接(例如http://nutsland.cn/blog/tag/%e7%94%b5%e5%bd%b1)访问时,显示404错误(找不到页面)。经过试验如果使用未编码的固定链接(例如http://nutsland.cn/blog/tag/电影),中文标签的访问又没有问题了。然而,在填写文章标签的时候,Wordpress会自动生成编码的标签别名(即把“电影”编码为“%e7%94%b5%e5%bd%b1”),每次都修改标签的别名显然不是一个好方法。

Google一下,终于找到了解决的办法,就是修改代码使Wordpress在解析固定链接时自动把其中已编码的中文字符进行解码(即把“%e7%94%b5%e5%bd%b1”解码还原为“电影”)。

注意,网络上一些通过在某个empty()函数前面加“!”的方法是错误的,那种方法会使得标签的固定链接无法使用,而只能通过动态链接访问标签。

正确的修改方法是如Wopus上所说的: Read more…

Win主机静态化子目录的WordPress并去掉固定链接里的index.php

July 30th, 2009 21:29 4 comments

我在开博的第一篇文章里说到,在架设这个Wordpress博客的过程中有许多心得,会陆续发出来分享。下面所要说的就是架设过程中碰到的一个很让人头疼的问题。

很多人都知道,基于搜索引擎优化的考虑,文章地址最好能够静态化或者伪静态化,这样更容易被搜索引擎收录,例如http://nutsland.cn/blog/archives/55.html,而不是http://nutsland.cn/blog/?p=55

然而和大部分的Win主机用户一样,我的Win主机也不支持URL-Rewrite功能,使用Wordpress自身的设置,固定链接只能是形如http://nutsland.cn/blog/index.php/archives/55.html的形式,中间有个“index.php”,非常碍眼。

上网Google了一下,找到了一个用自定义404页面来实现不含“index.php”的静态化链接功能的方法。  建立一个404.php文件,代码如下: Read more…