刚才,有网友告诉我本站的音乐页面不能播放音乐,我检查了一下,发现有个 php 文件报错:
Call to undefined function curl_init()
curl 我还是很眼熟的,于是打开 php.ini 看了看,原来我安装时候忘记开启了这个扩展:
;extension=php_curl.dll
去掉注释,然后重启 php 服务,我心想大功告成了,可是没想到依然报错。于是我继续搜索,找到了原因。
Read More →
Debian 安装 PHP 的 curl 扩展
今天把一些网站迁移到了一个新服务器上,后台是php的,打开报错:
php-cgi.exe - FastCGI 进程意外退出
多方搜索后,看到有说法是Zend OPcache的问题。Zend OPcache我只知道是加速PHP的,了解不多。之后去事件管理器里确实看到了是Zend OPcache的错误:
Read More →
Zend OPcache异常导致的FastCGI 进程意外退出
最近服务器上迁移过来了一些网站(后台是DEDECMS),今天遇到了两个因为PHP缓冲区导致的图像损坏问题。
1.验证码无法显示
这个验证码在原本的服务器上是正常的,到了新服务器上却无法显示了。
对于这个问题,我们可以修改dedecms的文件去除验证码,但是这个办法治标不治本。正确的处理办法是在include文件夹的vdimgck.php里加一句ob_end_clean();函数来解决。
Read More →
PHP缓冲区问题导致的dedecms异常
以前我网站上的图片是放在七牛图床上的,可以在七牛后台上传文件。但现在我的网站上没有这个功能(我不想用WordPress添加文章时的上传功能),每次添加图片都要远程登录服务器,再把文件放到附件文件夹里,非常麻烦。所以我今天做了个简单的上传文件的功能。
选择文件:
上传结果:
把下面的代码保存成php文件再访问就可以啦~
Read More →
使用php制作网页端上传文件的功能
如果想要防止自己的网页被别人用iframe给引用过去,可以在Header里设定X-Frame-Options。
示例:
X-Frame-Options有3个值:
DENY
浏览器拒绝当前页面加载任何Frame页面
SAMEORIGIN
frame页面的地址只能为同源域名下的页面
ALLOW-FROM http://em.com/
这个网页只能放在http://em.com//网页架设的iFrame内
除了由服务器设置,网页也可以通过meta信息来设置,如:
<meta http-equiv="X-Frame-Options" content="deny">
pixiv的网页对于iframe就做了同源设置,如果在其他网站里试图将iframe的src设定为p站的url,是无效的。控制台报错信息如下:
使用X-Frame-Options防止网页被Frame
在网页上,如果要通过php实现下载功能,我们可以在超链接里访问这个php,然后由php返回下载的文件。
php端主要是通过设置header来实现,基础的示例如下:
$filename = "test.gif"; header("Content-Type:imge/gif"); //发送指定文件MIME类型的头信息 header("Content-Disposition:attachment; filename=".$filename); //发送描述文件的头信息,附件和文件名 header("Content-Length:".filesize($filename)); //发送指定文件大小的信息,单位字节 readfile($filename); //将文件内容读取出来并直接输出,以便下载
网页通过php实现文件下载
最近需要安装的一个crm系统,要求php最低版本为5.4(推荐是5.6以上)。由于服务器是windows server 2003,不能运行php5.6,只好选择5.4版本。
服务器上之前的php版本是5.2.8,已经有几十个网站在使用它。为了稳妥起见,我决定不对旧版进行改动,而是采用多版本php共存的策略。
我找了一些资料,php5.4的安装参考了这里,多版本php共存参考了百度经验。最后成功了,步骤记录在下面。
Read More →
windows 2003上PHP多版本共存操作步骤
WordPress设置网站副标题需要到后台的设置项里设置,操作起来太繁琐,于是我用php做了个设置网站副标题的接口。这个没什么技术含量,主要是熟悉下php对mysql数据库的基本操作流程。
首先是到数据库里找到网站副标题的字段:
找到之后写出用于修改它的sql语句,如下:
UPDATE wp_options SET option_value = '大好き' WHERE option_name = 'blogdescription'
接下来做一个html文件和一个php文件,用html文件给php文件发送要设置的副标题,php接到请求后执行数据库操作。
功能做好之后,把html传到网站上,并保存成书签。以后想修改修改副标题只要打开这个书签,输入文字就可以了。
Read More →
用PHP做一个设置网站副标题的接口
半次元(byc.net)是一个中文的cosplay交流社区,里面有许多高质量的cosplay作品。有时候,我们看到自己喜欢的cosplay作品,可能想保存下来。半次元提供直接查看原图的功能,但是一张张图片保存比较麻烦。为了简化保存步骤,我使用JavaScript+PHP做了一个简单的下载工具。
本工具包含bcy_download.js和bcy_download.php两个文件。
配置步骤:
1.把bcy_download.php放到web环境中;
2.把bcy_download.js的phpPath变量的值配置为为bcy_download.php的url。
phpPath的默认值为:
http://127.0.0.1/bcy_download.php
使用步骤:
1.在半次元的cosplay图片详情页面执行bcy_download.js中的代码。(你可以复制bcy_download.js代码然后打开控制台手动执行;也可在greasyfork.org安装本UserScript脚本来自动执行)
2.页面右上角出现一个下载按钮:
3.点击即可开始下载。下载按钮上会有进度提醒:
等到下载完成,会有弹窗提醒。
下载的图片会存放在bcy_download.php同目录中的bcyimg文件夹中:
注意事项:
1.下载时可能会在一张图那里卡很久,等待即可。(我这边经常下几张就卡住一会儿,不知道半次元对于连续访问大图有没有做限制)
2.由于bcy_download.php会创建中文文件夹来保存图片,所以本工具仅建议在简体中文版本的Windows操作系统上使用。在其他系统上使用可能导致创建的文件夹名字变成乱码。
3.本工具仅做交流学习之用,请合理使用。下载的图片仅供收藏,请勿未经coser授权随意传播。因使用本工具产生的任何问题,本人概不负责。
半次元(bcy.net)图片下载器发布啦
php中最常用的截取文字的函数是substr(),但是在该函数中,中文占用2个或3个长度,所以可能把汉字截断,产生乱码。
有一个办法是使用mb_substr()来截取文字。这样确实可以,因为mb_substr()把所有文字都当做一个长度,所以截取中文时是整个字截取的,不会乱码。但mb_substr()的长度计算方法和substr()不同,有时候反而不能用它。经过一番苦搜,我找到了用php的ord()函数来截取文字的办法。
这种方法的字数计算方法和substr()一致,但不会导致汉字被截断.如果指定的长度会截断汉字,它会把因截断而产生的残缺汉字扔掉(以最后截取出来的长度有可能会比指定的长度少一两位。)。
另外它的参数也只有两个,一个是字符串,一个是截取长度。没错,它不能指定起始位置。
GBK版本:
function gb2312_substr($str, $limit) { $restr =''; for($i=0;$i< $limit-3;$i++) { $restr .= ord($str[$i])>127 ? $str[$i].$str[++$i] : $str[$i]; } return $restr; }
UTF-8版本:
function utf8_substr($str, $limit) { $restr = ''; for($i=0;$i< $limit-3;$i++) { $restr .= ord($str[$i])>127 ? $str[$i].$str[++$i].$str[++$i] : $str[$i]; } return $restr; }