浏览模式: 普通 | 列表
ps. iconv 和 mb_convert_encoding 这2函数的编码顺序相反,mb_convert_encoding是从后转前,极容易失误

iconv(“UTF-8″,”GB2312//IGNORE”,$data); //意思是把$data字符串由utf-8编码转成gb2312编码,刚开始就被这个误导了
mb_convert_encoding($data, “UTF-8″, “GBK”); //这个意思是把$data字符串,由gbk转成utf-8编码,注意顺序与iconv相反


近期在做一个小应用,就是填上信息,然后输出wordpress模板标准的style.css文件,当然,这个文件包含了CSSreset 和本人常用的原子类,这样可以大大缩小制作的难度和时间。
于是就遇到了一个编码问题,因为wordpress的编码是UTF...

阅读全文…
p.s. linux的权限,proftpd运行账号需要读写权限,而类网站www默认需要读权限755,data和upload目录才需要给www写权限777

使用lnmp1.1中的proftpd比较好的解决了这个问题,可以做到ftp对读写权限的每个网站独立分配

问题一:
安装了proftpd,一开始不能启动,proftpd.conf改了nogroup为nobody就可以启动了

问题二:
本来以为wwwroot目录给予nobody的权限就可以了,后来发现根本没有用
测试把/home/wwwroot/给予777权限,然后用ftp上传一个文件,看看是哪个用户上传的
原来lnmp1.1的脚本生成的账号不是虚拟账号,会产生的系统账号 blog_xg98_com 和组 blog_xg98_com

这样就简单了,给予网站目录ftp的读写权权限就可以了[code][/code]...

阅读全文…
p.s.服务器php版本为 5.2.14,发现无论如何也安装不上,无法生成 curl.so,经过无数次尝试,后来使用php5.2.17下的curl源码终于成功

1、安装curl
# wget http://curl.haxx.se/download/curl-7.17.1.tar.gz
# tar -zxf curl-7.17.1.tar.gz
# ./configure –prefix=/usr/local/curl
# make
# make install

2、下载php5.2.14源文件和php5.2.17源文件
将 php5.2.17/ext/curl 里面的文件覆盖到 php5.2.14/ext/curl

3、假定已经好安装php,现在开始安装支持php的curl模块
make完成后使用make test会发现一些错误,可以忽略
...

阅读全文…
ps:这个跟是否在正则中无关,如果字符串前不加@,那么在字符串中用\"对"转义,如果字符串前面加了@,那么在字符串中用""对"转义

假如某个网页的源代码中有如下一段:
<span class="img">图片1</span>

使用@符号,匹配字符串为:
@"<span\s+class=""img"">([\S\s]*?)</span>"

不使用@符号,则匹配字符串为:
"<span\\s+class=\"img\">([\\S\\s]*?)</span>"



注意:因为有了@符号来取消转义,可以看到里面的双引号无法使用\来实现转义,必须加双引号实现转义,即 "" 才能匹配到内容






参考:
======================...

阅读全文…

原创日志 php判断远程图片文件是否存在的方法

[ 2013-07-09 10:13:58 | 作者: admin ]
p.s.需要采集远程图片就需要先判断是否存在,这里提供一个函数,通过文件头来判断
function is_img_exist($url){
  //print_r(get_headers("http://uc.discuz.net/data/avatar/000/00/022/03_avatar_small.jpg"));
  //exit;
  $result = get_headers($url);
  $str_result = implode(",", $result);
   if( substr_count( $str_result, "image" ) ){
     return true;
   }else{
     return false;
   }
}



不同状态下读取的header信息


找到图片
...

阅读全文…
第一步,安装一键lnmp环境
http://lnmp.org 下载完整安装包,一键安装包,30分钟左右安装完成
引用
LNMP相关软件安装目录
Nginx 目录: /usr/local/nginx/
MySQL 目录 : /usr/local/mysql/
MySQL数据库所在目录:/usr/local/mysql/var/
PHP目录 : /usr/local/php/
PHPMyAdmin目录 : 0.9版为/home/wwwroot/phpmyadmin/ 1.0版为 /home/wwwroot/default/phpmyadmin/ 强烈建议将此目录重命名为其不容易猜到的名字。phpmyadmin可自己从官网下载新版替换。
默认网站目录 : 0.9版为 /home/wwwroot/ 1.0版为 /home/wwwroot/default/
...

阅读全文…

原创日志 nginx和apache记录访问者端口 remote port

[ 2013-04-28 14:19:30 | 作者: admin ]
nginx升级到 1.2.8 log_format可以使用 $remote_port 全局变量。apache下面关于环境变量的使用有些因素影响,http和https下不同,版本也有差异,需要参考apache文档来核实。

apache2.2、apache2.4可以使用 %{format}P 获取端口,format可以使用 local或者remote,远程端口就是 %{remote}p
例子:
LogFormat "[%h]:%{remote}p %l %u %t \"%r\" %>s %b" common
更多设置可以参考
http://httpd.apache.org/docs/2.2/mod/mod_log_config.html#logformat
http://httpd.apache.org/docs/2.4...

阅读全文…
p.s. 需要注意的是,一开始用root手动运行脚本可以运行,但是自动运行发现无法自动建立access.log,结果查看是目录权限问题。crontab配置中使用root运行脚本。
logs目录的权限必须和nginx配置的user nfsnobody nfsnobody权限一致,这样nginx 才能自动再建立access.log
chown -R nfsnobody:nfsnobody logs


自动运行的脚本 /home/tools/nginx_log_auto_split.sh
在logs目录下面建立old目录,将每天的日志移入压缩。
         #!/bin/bash
         # This script run at 23:59

         # The Nginx logs path
         logs_path="/usr/local/nginx.0.8.15/logs"
...

阅读全文…