存档

文章标签 ‘PHP’

PHP6取消了get_magic_quotes_gpc函数

2012年3月26日 5 条评论

把服务器的PHP版本升到6以后,发现系统彻底空白,猜到是PHP程序运行时出问题了,逐步调试了一下,原来get_magic_quotes_gpc函数的问题,也就是下面这段代码的地方:

if (!get_magic_quotes_gpc())   {
$_REQUEST = array_map( 'addslashes',   $_REQUEST);
} 

阅读全文…

分类: 程序开发 标签: 516次阅读

【PHP】session过期时间设置

2012年3月19日 2 条评论

1. session在server端(一般是Apache with PHP module)如何存在的?

默认的,php会将session保存在/tmp目录下,文件名为这个样子:sess_01aab840166fd1dc253e3b4a3f0b8381。每一个文件对应了一个session(会话)。

more /tmp/sess_01aab840166fd1dc253e3b4a3f0b8381
username|s:9:”jiangfeng”;admin|s:1:”0″;
#变量名|类型:长度:值

删除这里的session文件,就表示对应的session失效了。

阅读全文…

分类: 程序开发 标签: 706次阅读

【PHP】PDO中使用Like进行参数模糊查找

2012年3月15日 4 条评论

使用以下PDO代码进行参数的模糊查找,结果没有返回数据

$db = new PDO(DB_DSN, DB_USERNAME, DB_PASSWORD, $pdo_options);
$query = $database->prepare('SELECT * FROM table WHERE  name LIKE "%:name%"');
$query->bindValue(':name', $name, PDO::PARAM_STR);
$query->execute();
while ($results = $query->fetch())
{
   echo $results['name'];
}

阅读全文…

分类: 程序开发 标签: 460次阅读

【PHP】input的value值出现双引号无法显示的解决办法

2011年12月14日 2 条评论
<?php
$str = "I'm a \"!";
?>
<input type="text" value="<?=$str?>" />

结果浏览器的文本框里只显示了“I’m a ”,双引号不见了,查看源代码可以发现如下

<input type="text" value="I'm a "!" />

阅读全文…

分类: 网页设计 标签: 945次阅读

【PHP】检测数字字符串is_numeric与ctype_digit的区别

2011年12月2日 1 条评论

PHP中有两个函数is_numeric和ctype_digit都是检测字符串是否是数字,但也存在一点区别

  • is_numeric:检测是否为数字字符串,可为负数和小数
  • ctype_digit:检测字符串中的字符是否都是数字,负数和小数会检测不通过

写了个测试代码测试一下:

阅读全文…

分类: 程序开发 标签: 1,261次阅读

【PHP】过滤不完整的UTF-8字符的函数

2011年8月7日 没有评论
用IE打开某个XML文件时提示“无法显示XML页”,具体错误为“文本内容中发现无效字符”。用Notepad打开文件后发现有不完整字符,如下:
不完整字符

不完整字符

于是也就想到写个函数来过滤,具体如下,实验有效

阅读全文…

分类: 程序开发 标签: 1,016次阅读

【PHP】过滤XML中的非法字符

2011年8月1日 没有评论

一般XML中如果含有&等字符,可以通过CDATA来过滤,但是含有一些不认识的特殊字符时候就会不起作用,下面是从别人那儿拿来的一个过滤方法,过滤xml中的非法字符:

//XML标准规定的无效字节为:

/*
0×00 – 0×08
0x0b – 0x0c
0x0e – 0x1f
*/

//所以很简单,输出的时候过滤这些字符就万无一失了,下面是PHP的实现。

/* PHP 实现 */
function XmlSafeStr($s)
{
return preg_replace("/[\\x00-\\x08\\x0b-\\x0c\\x0e-\\x1f]/","",$s);
}

原文无法访问http://zongfeng.bloghome.cn/posts/77742.html

p.s. W3C的XML规范中关于字符的定义请参看这里:http://www.w3.org/TR/2004/REC-xml-20040204/#charsets

分类: 程序开发 标签: , 1,178次阅读

【PHP】Fatal error: Cannot redeclare class的解决办法

2011年7月19日 2 条评论

写PHP代码的时候碰到这样的问题

Fatal error: Cannot redeclare class ….

从字面来看也很好理解,说明是重复定义了类,找了一下自己的代码,是因为存在同名的类导致的,修改了类名就好了。

再记一个网上找到的解决方法,可能在某些场合有用,先记着

if (!class_exists('pageModule')){
    require_once(PATH_site.'fileadmin/scripts/class.page.php');
}
分类: 程序开发 标签: 4,015次阅读

【PHP】setcookie设置Cookie用法(及设置无效的问题)

2011年4月3日 没有评论

平时用Session比较多,很少用到Cookie,这次是为了解决Discuz!自动同步登陆不得不用Cookie。

结果碰到一个问题,setcookie设置了Cookie并没有生效,在浏览器端也没有看到。查了一下,原来是setcookie是通过HTTP请求响应的Header来完成的,需要在请求响应内容输出之前执行(就像其他Header设定一样)。

在php.ini中error_reporting = E_ALL的情况下,输出内容之后再setcookie会弹出以下提示:

Warning: Cannot modify header information – headers already sent by (output started at C:\xampp\htdocs\b.php:2) in  on line

但因为当时php.ini设置成了error_reporting = E_ALL & ~E_NOTICE,于是没有任何提示,所以开发的时候还是建议设成error_reporting = E_ALL 方便观察到一些异常情况

附一个setcookie用法实例

阅读全文…

分类: 程序开发 标签: 3,034次阅读

【PHP】获取MySQL数据库里所有表的方法

2011年4月3日 没有评论

获取某个MySQL数据库中所有表的PHP代码如下:

function list_tables($database)
{
    $rs = mysql_list_tables($database);
    $tables = array();
    while ($row = mysql_fetch_row($rs)) {
        $tables[] = $row[0];
    }
    mysql_free_result($rs);
    return $tables;
}

但由于mysql_list_tables方法已经过时,运行以上程序时会给出方法过时的提示信息,如下:

Deprecated: Function mysql_list_tables() is deprecated in on line xxx

阅读全文…

分类: 程序开发 标签: , 1,735次阅读

无觅相关文章插件,快速提升流量