saber 酱的抱枕

Fly me to the moon

07/5
2019
软件

Debian 安装 PHP 的 curl 扩展

刚才,有网友告诉我本站的音乐页面不能播放音乐,我检查了一下,发现有个 php 文件报错:

Call to undefined function curl_init()

curl 我还是很眼熟的,于是打开 php.ini 看了看,原来我安装时候忘记开启了这个扩展:

;extension=php_curl.dll

去掉注释,然后重启 php 服务,我心想大功告成了,可是没想到依然报错。于是我继续搜索,找到了原因。
Read More →

Debian 安装 PHP 的 curl 扩展

01/10
2018
软件

Zend OPcache异常导致的FastCGI 进程意外退出

今天把一些网站迁移到了一个新服务器上,后台是php的,打开报错:

php-cgi.exe - FastCGI 进程意外退出

FastCGI iis OPcache php Windows Server 2012

多方搜索后,看到有说法是Zend OPcache的问题。Zend OPcache我只知道是加速PHP的,了解不多。之后去事件管理器里确实看到了是Zend OPcache的错误:
Read More →

Zend OPcache异常导致的FastCGI 进程意外退出

11/29
2017
学习

PHP缓冲区问题导致的dedecms异常

最近服务器上迁移过来了一些网站(后台是DEDECMS),今天遇到了两个因为PHP缓冲区导致的图像损坏问题。

1.验证码无法显示

这个验证码在原本的服务器上是正常的,到了新服务器上却无法显示了。

对于这个问题,我们可以修改dedecms的文件去除验证码,但是这个办法治标不治本。正确的处理办法是在include文件夹的vdimgck.php里加一句ob_end_clean();函数来解决。
Read More →

PHP缓冲区问题导致的dedecms异常

07/27
2017
学习

使用php制作网页端上传文件的功能

以前我网站上的图片是放在七牛图床上的,可以在七牛后台上传文件。但现在我的网站上没有这个功能(我不想用WordPress添加文章时的上传功能),每次添加图片都要远程登录服务器,再把文件放到附件文件夹里,非常麻烦。所以我今天做了个简单的上传文件的功能。

选择文件:
php 上传文件

上传结果:
php 上传文件

把下面的代码保存成php文件再访问就可以啦~
Read More →

使用php制作网页端上传文件的功能

04/18
2017
学习

使用X-Frame-Options防止网页被Frame

如果想要防止自己的网页被别人用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

使用X-Frame-Options防止网页被Frame

03/27
2017
学习

网页通过php实现文件下载

在网页上,如果要通过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); //将文件内容读取出来并直接输出,以便下载

Read More →

网页通过php实现文件下载

03/21
2017
软件

windows 2003上PHP多版本共存操作步骤

iis6 windows server 2003上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多版本共存操作步骤

02/16
2017
学习

用PHP做一个设置网站副标题的接口

用PHP做一个设置网站副标题的接口 WordPress php 副标题 JavaScript aja mysql 数据库

WordPress设置网站副标题需要到后台的设置项里设置,操作起来太繁琐,于是我用php做了个设置网站副标题的接口。这个没什么技术含量,主要是熟悉下php对mysql数据库的基本操作流程。

首先是到数据库里找到网站副标题的字段:

用PHP做一个设置网站副标题的接口 WordPress php 副标题 JavaScript aja mysql 数据库

找到之后写出用于修改它的sql语句,如下:

UPDATE wp_options SET option_value = '大好き' WHERE option_name = 'blogdescription'

接下来做一个html文件和一个php文件,用html文件给php文件发送要设置的副标题,php接到请求后执行数据库操作。

功能做好之后,把html传到网站上,并保存成书签。以后想修改修改副标题只要打开这个书签,输入文字就可以了。
Read More →

用PHP做一个设置网站副标题的接口

09/9
2016
学习

半次元(bcy.net)图片下载器发布啦

bcy.net 图片下载器 cosplay图片 id41053745

半次元(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.页面右上角出现一个下载按钮:
bcy.net 图片下载器 cosplay图片

3.点击即可开始下载。下载按钮上会有进度提醒:
bcy.net 图片下载器 cosplay图片

等到下载完成,会有弹窗提醒。
bcy.net 图片下载器 cosplay图片

下载的图片会存放在bcy_download.php同目录中的bcyimg文件夹中:
bcy.net 图片下载器 cosplay图片

bcy.net 图片下载器 cosplay图片


注意事项:
1.下载时可能会在一张图那里卡很久,等待即可。(我这边经常下几张就卡住一会儿,不知道半次元对于连续访问大图有没有做限制)
2.由于bcy_download.php会创建中文文件夹来保存图片,所以本工具仅建议在简体中文版本的Windows操作系统上使用。在其他系统上使用可能导致创建的文件夹名字变成乱码。
3.本工具仅做交流学习之用,请合理使用。下载的图片仅供收藏,请勿未经coser授权随意传播。因使用本工具产生的任何问题,本人概不负责。

半次元(bcy.net)图片下载器发布啦

07/21
2016
学习

php截取中文不乱码的代码

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;
}

php截取中文不乱码的代码