php中preg_match的用法

preg_match("/^(http:\/\/)?([^\/]+)/i","http://www.php.net/index.html", $matches);
$host = $matches[2];// 从主机名中取得后面两段
preg_match("/[^\.\/]+\.[^\.\/]+$/", $host, $matches);
echo "domain name is: {$matches[0]}\n";

这是手册里的例子。多数人对preg_match犯晕都出在正则上,以后我也会介绍正则。先看这个例子,
preg_match($pattern,$string,$matcher)其中$pattern对应的就是/^(http:\/\/)?([^\/]+)/i,$string 是http://www.php.net/index.html,$match是匹配到的结果。
按照手册上的意思:
如果提供了 matches,则其会被搜索的结果所填充。$matches[0] 将包含与整个模式匹配的文本,$matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本,以此类推。
这是什么意思呢?第一句就不用解释了,$matches[0] 将包含与整个模式匹配的文本。
咱们用pring_r打印出来第一个$matches:
Array ( [0] => http://www.php.net [1] => http:// [2] => www.php.net )
这回明白了吧。。$matches[0] 将包含与整个模式匹配的文本,$matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本。在正则中,()代表模式:匹配 pattern 并获取这一匹配。所获取的匹配可以从产生的 Matches 集合得到,在VBScript 中使用 SubMatches 集合,在JScript 中则使用 $0…$9 属性。就是说数组中下标为1的值就是正则中/^(http:\/\/)?([^\/]+)/i第一个()里的值!数组下标2的值以此类推

substr()函数

substr()函数介绍
substr() 函数返回字符串的一部分。

语法:substr(string,start,length)。

string:必需。规定要返回其中一部分的字符串。
start:必需。规定在字符串的何处开始。正数 – 在字符串的指定位置开始;负数 – 在从字符串结尾的指定位置开始;0 – 在字符串中的第一个字符处开始。
charlist:可选。规定要返回的字符串长度。默认是直到字符串的结尾。正数 – 从 start 参数所在的位置返回;负数 – 从字符串末端返回。
注释:如果 start 是负数且 length 小于等于 start,则 length 为 0。

(更多…)

多维数组的遍历函数

多维数组遍历的一个简单函数!
(更多…)

$_SERVER函数中QUERY_STRING和REQUEST_URI等四个变量区别

$_SERVER存储当前服务器信息,其中有几个值 如$_SERVER["QUERY_STRING"],$_SERVER["REQUEST_URI"],$_SERVER["SCRIPT_NAME"] 和$_SERVER["PHP_SELF"]常常容易混淆,以下通过实例详解$_SERVER函数中 QUERY_STRING,REQUEST_URI,SCRIPT_NAME和PHP_SELF变量区别,掌握这四者之间的关系,便于在实际应用中正确获 取所需要的值,供参考。

1,$_SERVER["QUERY_STRING"]
说明:查询(query)的字符串
2,$_SERVER["REQUEST_URI"]
说明:访问此页面所需的URI
3,$_SERVER["SCRIPT_NAME"]
说明:包含当前脚本的路径
4,$_SERVER["PHP_SELF"]
说明:当前正在执行脚本的文件名
实例:
1,http://www.menglau.cn/ (直接打开主页)
结果:
$_SERVER["QUERY_STRING"] = “”
$_SERVER["REQUEST_URI"] = “/”
$_SERVER["SCRIPT_NAME"] = “/index.php”
$_SERVER["PHP_SELF"] = “/index.php”
2,http://www.www.menglau.cn/?post=22
结果:
$_SERVER["QUERY_STRING"] = “post=22″
$_SERVER["REQUEST_URI"] = “/?post=22″
$_SERVER["SCRIPT_NAME"] = “/index.php”
$_SERVER["PHP_SELF"] = “/index.php”
3,http://www.www.menglau.cn/index.php?p=222
结果:
$_SERVER["QUERY_STRING"] = “post=22″
$_SERVER["REQUEST_URI"] = “/index.php?post=22″
$_SERVER["SCRIPT_NAME"] = “/index.php”
$_SERVER["PHP_SELF"] = “/index.php”
$_SERVER["QUERY_STRING"]获取查询语句,实例中可知,获取的是?后面的值
$_SERVER["REQUEST_URI"] 获取http://www.menglau.cn后面的值,包括/
$_SERVER["SCRIPT_NAME"] 获取当前脚本的路径,如:index.php
$_SERVER["PHP_SELF"] 当前正在执行脚本的文件名
总结一下,对于QUERY_STRING,REQUEST_URI,SCRIPT_NAME和PHP_SELF,深入了解将有利于我们 在$_SERVER函数中正确调用这四个值。通过实例详解$_SERVER函数中 QUERY_STRING,REQUEST_URI,SCRIPT_NAME和PHP_SELF掌握四个变量之间的区别。

PHP安全之防止远程表单的提交

Web 的好处是可以分享信息和服务。坏处也是可以分享信息和服务,因为有些人做事毫无顾忌。
以表单为例。任何人都能够访问一个 Web 站点,并使用浏览器上的 File > Save As 建立表单的本地副本。然后,他可以修改 action 参数来指向一个完全限定的 URL(不指向 formHandler.php,而是指向 http://www.yoursite.com/formHandler.php,因为表单在这个站点上),做他希望的任何修改,点击 Submit,服务器会把这个表单数据作为合法通信流接收。
(更多…)

strlen和mb_strlen的区别

当字符全是英文字符或者数字的时候,两者是一样。这里主要比较一下,中英文混排的时候,两个计算结果。(测试时编码方式是UTF8)
(更多…)

一个老程序员的建议

本文是从 Advice From An Old Programmer 这篇文章翻译而来。

  本文是《Learn Python The Hard Way, 2nd Edition》这本书的尾声部分。

  看完了这本书,你决定继续做编程。也许它能成为你的一个职业,也许它能成为你的一项爱好。但你需要一些指导,确保自己不会走错了道路,或帮助你从这个新业余爱好中得到最大的乐趣。

  我做了很久的编程。久的你都想象不出来,久的都让我苦恼。就在我写这本书的时候,我大概懂20种编程语言,而且我可以用一天或长点儿用一周的时间学会一种新语言 —— 要依这种语言有多奇怪而定。但这最终成为了我的苦恼,它们已经不能再吸引我的兴趣。我并不是说这些语言没有意思,或告诉你你会觉得它们很枯燥。只是想说在我的职业旅程走到现在,我已不再对语言有兴趣。
(更多…)

容易混淆的四个php函数strstr strrchr substr stristr

strstr strrchr substr stristr这四个字符串操作函数特别让人容易混淆,我经常用的是substr,strstr,基本上能满足我对字符串的操作。下面举一些例子,做个笔记,以后不要弄混了。
(更多…)

有时候被生活“强奸”也是一种无奈!

在我们周围太多的不平能,在这样一个环境下生存我们能怎样?唯有自己不服输的精神才能战胜那些不要脸的“垃圾”!既然想往上走,唯有忍受屈辱,如果你不忍后果会比现在更凄惨;也许你会说,人要活的有尊严、有原则;我承认这句话说的没错,但是在说这句话之前应该还有前提条件;如果全国人民都过上小康生活了,不平等现象就不会那么多。
(更多…)

相对路径和绝对路径

    昨天遇到一个小问题,很菜的一个问题,就是CSS里图片调用不显示;便请教一位朋友,他说让我学习一下相对路径和绝对路径;谷歌了一下,找了些资料,方便温习。
(更多…)