分类目录归档:默认分类

百度空间搬家完成!

找了好几天,终于找到个完美的搬家工具: http://againinput4.blog.163.com/blog/static/1727994912011111111217185/ 最新的脚本在 http://code.google.com/p/blogs-to-wordpress/,其他需要的还是从上面的网站说的地址下载。 非常感谢作者为此作出的辛苦工作! 注意的几个地方是要下载python2.7的,python2.5的缺少urllib包。 打开HiBaiduToWordpress_v2012-01-10-home.py头部有详细说明。 cmd cd 切换到 BlogsToWordpress_v2012-01-10 文件夹下,执行 HiBaiduToWordpress_v2012-01-10-home.py -s http://hi.baidu.com/zxsz4085 -w http://blog.pengduncun.com/wp-content/uploads/baidu_pic 不指定图片路径默认指定的是 http://localhost。。。然后把图片文件夹传到网站对应的位置。 再次感谢作者!http://www.crifan.com/

发表在 默认分类 | 标签为 | 留下评论

【转】PHP正则表达式-贪婪与懒惰匹配

过去一直感觉这个地方很不好懂,今天又大致的看了一下,拿来跟大家共享一下,呵呵! 当正则表达式中包含能接受重复的限定符(指定数量的代码,例如*,{5,12}等)时,通常的行为是(在使整个表达式能得到匹配的前提下)匹配尽可能多的字符。考虑这个表达式:a.*b,它将会匹配最长的以a开始,以b结束的字符串。如果用它来搜索aabab的话,它会匹配整个字符串aabab。这被称为贪婪匹配。有时,我们更需要懒惰匹配,也就是匹配尽可能少的字符。前面给出的限定符都可以被转化为懒惰匹配模式,只要在它后面加上一个问号?。这样.*?就意味着匹配任意数量的重复,但是在能使整个匹配成功的前提下使用最少的重复。现在看看懒惰版的例子吧:a.*?b匹配最短的,以a开始,以b结束的字符串。如果把它应用于aabab的话,它会匹配aab和ab(为什么第一个匹配是aab而不是ab?简单地说,最先开始的区配最有最大的优先权——The Match That Begins Earliest Wins)。表5.懒惰限定符*?重复任意次,但尽可能少重复+?重复1次或更多次,但尽可能少重复??重复0次或1次,但尽可能少重复{n,m}?重复n到m次,但尽可能少重复{n,}?重复n次以上,但尽可能少重复

发表在 默认分类 | 标签为 , | 留下评论

sphinx完整例子

接着 http://hi.baidu.com/zxsz4085/blog/item/ad2986d55e5e181ea18bb7da.html <?phpinclude ‘sphinxapi.php’;$sp = new SphinxClient();$sp->SetServer(’192.168.26.11′, 9312);$sp->SetConnectTimeout(5); $sp->SetLimits(0, 10);//($start, $limit);可以搞分页 $keyword=(isset($_GET['kw'])&& !empty($_GET['kw'])) ?trim($_GET['kw']) : ‘test’; $index_name = ‘test1′; //在执行搜索之前,可以加入各种条件$result=$sp->Query($keyword,$index_name);//print_r($result);//处理$result$matches = isset($result['matches']) ? $result['matches'] : ”;if ($matches == ”){return array();}$ids = array_keys($matches); $id_str = implode(",", $ids);//echo $id_str; //去mysql用id查询结果 //拿着id ,拉库$link … 继续阅读

发表在 默认分类 | 标签为 , , | 留下评论

ldconfig几个需要注意的地方

from:  搜ldconfig 阿c 博客园的 1. 往/lib和/usr/lib里面加东西,是不用修改/etc/ld.so.conf的,但是完了之后要调一下ldconfig,不然这个library会找不到 2. 想往上面两个目录以外加东西的时候,一定要修改/etc/ld.so.conf,然后再调用ldconfig,不然也会找不到 比如安装了一个mysql到/usr/local/mysql,mysql有一大堆library在/usr/local/mysql/lib下面,这时就需要在/etc/ld.so.conf下面加一行/usr/local/mysql/lib,保存过后ldconfig一下,新的library才能在程序运行时被找到。 3. 如果想在这两个目录以外放lib,但是又不想在/etc/ld.so.conf中加东西(或者是没有权限加东西)。那也可以,就是export一个全局变量LD_LIBRARY_PATH,然后运行程序的时候就会去这个目录中找library。一般来讲这只是一种临时的解决方案,在没有权限或临时需要的时候使用。 4. ldconfig做的这些东西都与运行程序时有关,跟编译时一点关系都没有。编译的时候还是该加-L就得加,不要混淆了。 5. 总之,就是不管做了什么关于library的变动后,最好都ldconfig一下,不然会出现一些意想不到的结果。不会花太多的时间,但是会省很多的事。 ./configure make make install [root@localhost libusb-1.0.8]# ldconfig [root@localhost libusb-1.0.8]# ldconfig -v | grep libusb libusb-1.0.so.0 -> libusb-1.0.so.0.0.0 libusb-0.1.so.4 -> libusb-0.1.so.4.4.4 libusbpp-0.1.so.4 -> libusbpp-0.1.so.4.4.4 我碰到的问题是: error … 继续阅读

发表在 默认分类 | 标签为 , | 留下评论

【转】如何在zend studio中配置Xdebug

针对zend studio配置Xdebug的教程   打开PHP安装目录下的PHP.INI配置文件,我的是C:PHP目录,找到Xdebug配置信息,在此基础上添加如下Xdebug配置信息   代码 xdebug.remote_enable=true      //Xdebug允许远程IDE连接xdebug.remote_host=127.0.0.1   //允许连接的zend studio的IP地址xdebug.remote_port=9000        //反向连接zend studio使用的端口xdebug.remote_handler=dbgp     //用于zend studio远程调试的应用层通信协议     重要说明:这里容易忽视的一个问题是xdebug.remote_host信息的配置,如果你使用的是局域网或无线路由器,将xdebug.remote_host配置为127.0.0.1是无用的,会导致无法使用zend studio调试PHP,zend studio的单步调试按钮也无效!必须将xdebug.remote_host配置为zend studio安装机器的实际地址,IP地址可以通过ipconfig查看,由于我使用的是无线路由器,所以我将xdebug.remote_host配置为192.168.1.100。   最后重启apache服务器。   Ok,下面我们就可以使用Xdebug在zend studio中进行调试工作了。   由于zend studio默认支持调试PHP的工具是zend debugger,所以首先需要将zend studio PHP Debug选项配置为Xdebug,才能使用Xdebug。   zend studio使用Xdebug调试PHP步骤一   打开zend studio7,选择菜单Project->Properties,然后在弹出界面中选择左侧PHP Debug选项,如图   有的编辑器默认只有Zend Debugger,没有XDebug,参考 http://bingan.diandian.com/post/2010-07-08/6213543 配置好xdebug后 打开zendstudio发现没有xdebug的选项 看了一篇zendstudio 7 开启xdebug的文章 安装了ZendStudio 7,配置phpDebug的时候发现没有Xdebug选项,网上搜索了一下,方法如下:前提,已经安装好xdebug。打开ZendStudio 7安装目录pluginscom.zend.php_7.0.0.v20090712-1841目录,目录下有一个plugin_customization.ini文件,打开文件找到org.eclipse.ui.workbench/UIActivities.com.zend.php.debug.ui.XDebugActivity=false这行,改成true,保存后,重新启动ZendStudio 7,phpdebug里面就可以选择Xdebug进行调试了。 受其启发 我的版本6.1.2 … 继续阅读

发表在 默认分类 | 标签为 , , | 留下评论

php hash漏洞

php 5.3.8以及之前版本,均存在致命的内核漏洞。利用此漏洞,仅使用一台PC机,即可在短时间内击垮数十、数百台PHP服务器。目前互联网上很多网站均存在此问题。 相关参考文章http://www.lvtao.net/html/1790.html?p=4   为测试某个php网站是否存在此漏洞,可使用以下命令(windows和linux均可)wget -O -  -S   –post-file=post.txt http://xxxx.com post.txt下载地址:http://blog.iterse.com/download/post.txt wget for windows : http://downloads.sourceforge.net/gnuwin32/wget-1.11.4-1-bin.zip 如果响应很慢(超过15s)说明此网站存在漏洞,可发送多个请求(只要连续的请求数超过网站服务器cpu个数)将其击垮为502

发表在 默认分类 | 标签为 , , | 4 条评论

【转】PHP使用mod_deflate压缩页面和使用GZip压缩页面的方法

1.使用mod_deflate压缩页面 下边例子会压缩 html,xml,php,js,css后缀的文件 在.htaccess中加入: <ifmodule mod_deflate.c> AddOutputFilter DEFLATE html xml php js css </ifmodule> 或者 <ifmodule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/xml application/x-httpd-php application/x-javascript text/css </ifmodule> 但是如果你的主机mod_deflate模块没有打开就可以退而求其次选择GZip压缩 2.使用GZip压缩页面 注意:这种办法会增加服务器内存消耗.并且要zlib库支持(一般都会开启)且要求PHP版本>4.0.4 使用ob_gzhandler函数的3种方法进行压缩: 1)在php.ini中设置output_handler = ob_gzhandler 2)在.htaccess中加入php_value output_handler ob_gzhandler 3)在php文件头加上ob_start(’ob_gzhandler’); 这里详细介绍第三种办法 首先需要把css或者js文件后边加上后缀.php 然后在文件的首行加入<?PHP If(Extension_Loaded(’zlib’)){Ob_Start(’ob_gzhandler’);}Header(”Content-type: … 继续阅读

发表在 默认分类 | 标签为 , , , | 留下评论

【转】关于session中的session_write_close

今天在做框架里面的 session的memcache存储,碰到了一些问题。 当在执行 session_set_save_handler 中设定的 write 时候,memcache的对象被释放了。 很是奇怪的问题。 搞了很久,最后还是在手册上看到问题的原因和解决办法。 在手册 session_set_save_handler 函数里面: http://www.php.net/manual/en/function.session-set-save-handler.php 有这样的警告。大概意思是“” 解决办法是:在设置 session_set_save_handler 时候 添加 register_shutdown_function是在程序结束前来执行,抢先提交session zwj说搞明白原理才能有判断。有道理。

发表在 默认分类 | 标签为 , , | 留下评论

【转】linux下的/dev/shm/

/dev/shm/是linux下一个非常有用的目录,因为这个目录不在硬盘上,而是在内存里。因此在linux下,就不需要大费周折去建ramdisk,直接使用/dev/shm/就可达到很好的优化效果。 /dev /shm/需要注意的一个是容量问题,在linux下,它默认最大为内存的一半大小,使用df -h命令可以看到。但它并不会真正的占用这块内存,如果/dev/shm/下没有任何文件,它占用的内存实际上就是0字节;如果它最大为1G,里头放有 100M文件,那剩余的900M仍然可为其它应用程序所使用,但它所占用的100M内存,是绝不会被系统回收重新划分的,否则谁还敢往里头存文件呢? 默认的最大一半内存大小在某些场合可能不够用,并且默认的inode数量很低一般都要调高些,这时可以用mount命令来管理它。 mount -o size=1500M -o nr_inodes=1000000 -o noatime,nodiratime -o remount /dev/shm 在2G的机器上,将最大容量调到1.5G,并且inode数量调到1000000,这意味着大致可存入最多一百万个小文件。   为当/dev/shm空间不够时可以占用swap的空间,所以不用担心存储空间不够用。想想看,从磁盘IO操作到内存操作,php读写SESSION的速度会快多少?只是需要注意,存储在/dev/shm的数据,在服务器重启后会全部丢失。   默认系统就会加载/dev/shm ,它就是所谓的tmpfs,有人说跟ramdisk(虚拟磁盘),但不一样。象虚拟磁盘一样,tmpfs 可以使用您的 RAM,但它也可以使用您的交换分区来存储。而且传统的虚拟磁盘是个块设备,并需要一个 mkfs 之类的命令才能真正地使用它,tmpfs 是一个文件系统,而不是块设备;您只是安装它,它就可以使用了。  tmpfs有以下优势:  1,动态文件系统的大小。  2,tmpfs 的另一个主要的好处是它闪电般的速度。因为典型的 tmpfs 文件系统会完全驻留在 RAM 中,读写几乎可以是瞬间的。  3,tmpfs 数据在重新启动之后不会保留,因为虚拟内存本质上就是易失的。所以有必要做一些脚本做诸如加载,绑定的操作。  好了讲了一些大道理,还是讲讲应用吧:  首先在/dev/stm建个tmp文件夹,然后与实际/tmp绑定  mkdir /dev/shm/tmp  chmod 1777 /dev/shm/tmp  mount –bind /dev/shm/tmp /tmp(–bind )  在使用mount … 继续阅读

发表在 默认分类 | 标签为 , , , | 留下评论

【转】REMOTE_ADDR HTTP_CLIENT_IP HTTP_X_FORWARDED_FOR

dz的代码判断IP那块太让人头疼了,日,REMOTE_ADDR,HTTP_CLIENT_IP,HTTP_X_FORWARDED_FOR三个东西在手册上太不详细了,基本上就等于没有。 网上gg了一下,找到一点,另外,有一个思路太巧了,用JS取IP以后POST到服务器,Y的用代理骗服务器?有种上网先把Js给关了啊!!哦哈哈,以后有机会用ajax试一下,也省得用这三个变量if得死去活来了。 $_SERVER['...']; // for php 一、没有使用代理服务器的情况:       REMOTE_ADDR = 您的 IP       HTTP_VIA = 没数值或不显示       HTTP_X_FORWARDED_FOR = 没数值或不显示 二、使用透明代理服务器的情况:Transparent Proxies       REMOTE_ADDR = 最后一个代理服务器 IP       HTTP_VIA = 代理服务器 IP       HTTP_X_FORWARDED_FOR = 您的真实 IP ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。 … 继续阅读

发表在 默认分类 | 标签为 , | 留下评论