有个需求,我想得到一个 JSON 对象,key 是数字,比如: {"0":"first","1":"second"} 第一个想法是用字符串做索引,看代码: $arr = array(); $key = ‘0’; $arr[$key] = ‘first’; […]
PHP
preg_match_all crash Apache
今天遇到一个诡异的问题,折腾了好久。 有一段 html,需要用正则表达式匹配一对标签内的所有文本,用到了 preg_match_all。 一直都没什么问题,但是今天修改了 html 的内容,再次运行的时候 Apache 突然 crash。 换用命令行执行,却没问题。 一步一步跟踪,发现问题出在 preg_match_all 身上。 为什么命令行执行正常,到了 Apache […]
Parent: child process exited with status 255 — Restarting
最近在碰PDO(PHP Data Object),使用的時候忽然發現,在select資料的時候apache會被關掉,insert不會,只有select的時候才會,不知道是啥鬼狀況,log裡面就只出現這行 Parent: child process exited with status 255 — Restarting 膜拜了很久的google大神之後才發現這篇,上面提到這是xampp 1.70在windows上(?)的錯誤,修正方法如下 Problem […]
PHP 未知类型变量 empty isset 陷阱
用 empty 检查位置类型的变量时,容易掉进难以察觉的陷阱,请看下面简单的代码,预测一下 3 个 var_dump 的输出: $mixed_1 = array(); $mixed_2 = ‘Nihao’; $bool_1 […]
Duplicate entry ‘localhost-‘ for key 1
导致这个错误的原因: 因为安装系统时设置了hostname为localhost导致mysql在创建表的时候没有创建成功。因此mysql库中user表里没有root这个用户或者说root没有显示出来,无法查看root的状态。这时需要手动创建。然而在安全模式无法直接创建用户,错误见下。 变个方向就能创建了,先给root给予权限,然后刷新表。之后就可以创建了。 一、killall -TERM mysqld 以安全模式启动mysql /usr/bin/mysqld_safe –skip-grant-tables & 进入mysql /usr/bin/mysql mysql> use mysql […]
用工具提高效率 解决 PhpMyAdmin 乱码
最近做的项目有点特殊,多人共用开发服务器,无法搭建个人独享的开发环境。 连数据库,不能使用客户端的 GUI 工具,本来我已经离不开 SQLyog 了,现在逼我用命令行,我怎么受得了? 欣慰的是,尽管 MySQL server 虽然不在开发服务器上,也没有 root 权限给我的 IP 做授权,但开发服务器的 IP […]
phpDocumentor PHP 文档生成 CHM
好久没写新东西了。 最近遇到很头疼的事,好多代码要维护,时间长了,自己写过的代码都想不起来。 要调用某个对象的方法,每次都要打开那个类定义的 PHP 文件,找到方法的定义部分,然后仔细看看参数列表才能想起来怎么用。 最麻烦的是,有时候想不起来那个方法是在哪个类里面定义的,必须得去代码根目录 grep ,然后等半天…… 相对比的,我开发程序时,手边必备的几个文档:PHP手册、MySQL手册、HTML手册、CSS手册、Javascript手册,以及最近开始用的 ActionScript手册。这些都是 chm 版本的! Chm 帮助文件有 2 […]
CUrl 蜘蛛 优化 CURLOPT_HEADERFUNCTION
正搞一个小蜘蛛,用 CUrl 写的,遇到一个问题,分析完 url 后,有可能遇到 rar 或 jpg 等资源文件,也是要下载回来分析内容。 这样的做法太笨了,有很多缺点: 浪费带宽,文件也许很大 文件无用,下载回来也无法分析文件内容 怎么解决? 看浏览器会发送 Accept […]
类常量 字符串 对比 性能测试
写一个处理 url 的 PHP 工具类,需要用到很多字符串相关的函数,比如 preg_match、preg_replace、strpos 之类的。 正则表达式和查找的 needle 字符,都是用字符加引号直接作为参数传递给上述函数,比如: preg_match(“#^http[s]?://#i”, $strUrl); 用以匹配是否是 http 开头的 […]
xdebug xampp profiler 真是背到家了
我在Windows环境开发PHP,用XAMPP套件,今天追查程序,看源码搞不定,求助xdebug。 想来很简单,不就在php.ini开启几个选项么,奶奶的,折腾半天没搞定! 问题是:不管怎么设置,开启,就是不输出 profiler 文件! 在网上看人家配置xdebug咋就那么顺利呢,我咋就这么费劲呢? 用中文关键字搜不到,试试英文的吧。 然后找到这个: http://www.apachefriends.org/f/viewtopic.php?f=16&t=37137 这个天杀的 Wiedmann 估计是 ApacheFriends 的开发人员,把跟我一样可怜的 th1alb […]