不灭的火

革命尚未成功,同志仍须努力下载JDK17

作者:AlbertWen  添加时间:2013-06-28 17:08:46  修改时间:2025-04-04 08:12:56  分类:11.PHP基础  编辑

字符串转换类函数

addcslashes函数:以C语言风格使用反斜线转义字符串中的字符

addslashes函数:使用反斜线引用字符串

chop函数:清除字符串中的连续空格

get_html_translation_table函数:返回htmlspecialchars()函数和htmlentities()函数的转换表

chunk_split函数:将字符串分割成小块

作者:AlbertWen  添加时间:2013-05-14 17:29:24  修改时间:2025-03-30 11:13:56  分类:11.PHP基础  编辑

【案例一】

作者:老王

如果PHP对象存在递归引用,就会出现内存泄漏。这个Bug在PHP里已经存在很久很久了,先让我们来重现这个Bug,代码如下:

作者:AlbertWen  添加时间:2013-05-09 22:17:26  修改时间:2025-04-03 03:46:18  分类:11.PHP基础  编辑
三种不同展示方式 附上style~

1. 效果图1

2.效果图2 

3. 效果图3

作者:AlbertWen  添加时间:2013-04-30 01:08:16  修改时间:2025-02-25 13:58:54  分类:11.PHP基础  编辑

正则表达式30分钟入门教程

三个常用的知识点:

1.惰性匹配:正则引擎默认是贪婪的,若要最少重复的话,需要用到惰性匹配符 “?

懒惰限定符

代码/语法

说明

*? 重复任意次,但尽可能少重复
+? 重复1次或更多次,但尽可能少重复
?? 重复0次或1次,但尽可能少重复
{n,m}? 重复n到m次,但尽可能少重复
{n,}? 重复n次以上,但尽可能少重复
作者:AlbertWen  添加时间:2013-04-27 21:49:02  修改时间:2025-04-03 03:51:35  分类:11.PHP基础  编辑

首先想到的是用getimagesize()看看type,发现都是gif。

然后想gif动画是gif89格式的,发现文件开头是gif89,但是很多透明图片也是用的gif89格式。

看来必须分析文件的祯了。baidu了一下,发现phpx.com有解决过了。

作者:AlbertWen  添加时间:2012-05-23 18:13:21  修改时间:2025-04-03 20:44:01  分类:11.PHP基础  编辑

我们前面说过在类里面声明“__”开始的方法名的方法(PHP给我们提供的),都是在某一时刻不同情况下自动调用执行的方 法,“__toString()”方法也是一样自动被调用的,是在直接输出对象引用时自动调用的, 前面我们讲过对象引用是一个指针,比如 说:“$p=new Person()“中,$p就是一个引用,我们不能使用echo 直接输出$p,这样会输 出“Catchable fatal error: Object of class Person could not be converted to string”这样的错误,如果你在类里面定义了“__toString()”方法,在直接输出对象引用的时候,就不会产生错误,而是自动调用 了”__toString()”方法, 输出“__toString()”方法中返回的字符,所以“__toString()”方法一定要有个返回值(return 语句)

作者:AlbertWen  添加时间:2015-08-07 22:07:53  修改时间:2025-04-01 23:45:11  分类:11.PHP基础  编辑
/**
 * PHP计算两个时间段是否有交集(边界重叠不算)
 *
 * @param string $beginTime1 开始时间1
 * @param string $endTime1 结束时间1
 * @param string $beginTime2 开始时间2
 * @param string $endTime2 结束时间2
 * @return bool
 * @author blog.snsgou.com
 */
function is_time_cross($beginTime1 = '', $endTime1 = '', $beginTime2 = '', $endTime2 = '')
{
	$status = $beginTime2 - $beginTime1;
	if ($status > 0)
	{
		$status2 = $beginTime2 - $endTime1;
		if ($status2 >= 0)
		{
			return false;
		}
		else
		{
			return true;
		}
	}
	else
	{
		$status2 = $endTime2 - $beginTime1;
		if ($status2 > 0)
		{
			return true;
		}
		else
		{
			return false;
		}
	}
}

 

作者:AlbertWen  添加时间:2013-08-22 17:20:46  修改时间:2025-04-03 03:47:46  分类:11.PHP基础  编辑

object 转 array

/**
 * object 转 array
 */
function object_to_array($obj){
	$_arr = is_object($obj)? get_object_vars($obj) : $obj;
	foreach ($_arr as $key => $val) {
		$val = (is_array($val)) || is_object($val) ? object_to_array($val) : $val;
		$arr[$key] = $val;
	}

	return $arr;
}
作者:AlbertWen  添加时间:2013-04-21 21:59:52  修改时间:2025-04-03 03:48:45  分类:11.PHP基础  编辑

两者不同

set_magic_quotes_runtime() 可以让程序员在代码中动态开启或关闭 magic_quotes_runtime

set_magic_quotes_runtime(1) 表示开启,set_magic_quotes_runtime(0) 则表示关闭。当set_magic_quotes_runtime(1) 时,从数据库或通过fread之类的函数读取的文本,将自动对’ “和自动加上反斜杠进行转义,防止溢出。这在对数据库的数据进行转移的时候非常有用。

但在一般情况下,应当将其关闭,否则从数据库读取出来的数据单引号、双引号和反斜杠都会被加上,导致显示不正常。像Discuz,PHPWind都在公共文件的头部加上一句 set_magic_quotes_runtime(0); 强制关闭 magic_quotes_runtime 。

作者:AlbertWen  添加时间:2012-05-23 18:14:22  修改时间:2025-04-03 03:54:47  分类:11.PHP基础  编辑

有的时候我们需要在一个项目里面,使用两个或多个一样的对象,如果你使用“new”关键字重新创建对象的话,再赋值上相同的属性,这样做比较烦琐而且也容易出错,所以要根据一个对象完全克隆出一个一模一样的对象,是非常有必要的,而且克隆以后,两个对象互不干扰。

在PHP4中我们使用“clone”这个关键字克隆对象;