在写代码时,输出语句用得是最多的,刚学习PHP,写程序输出时,时不时给我“Parse error”(分析错误),为此郁闷了很久,上网查了下,原来在“print<<<EOT 你要打印的东西 EOT;”,后面的EOT必须出现在行首,且前面不能出现符号(空格也是符号);
顺便总结下,在使用print、print()、echo、echo()需要注意的地方,它们在使用上没什么区别,只是print、print()有返回值
1:当你要输出多个变量时,要么以“.”符号把多个值连接起来,要么用双引号把多个值包含起来
print ("$t $t");
print $t.$t ;
这些都是可行的
2:使用
print <<<EOT
EOT;
或
echo<<<EOT
在这里直接输入打印的内容,不需要加分号。打印的内容有引号时也不需要加转义字符
EOT;
末尾的EOT一定要放在行首,且前面不能有空格。不要忘记后面还有个分号
一般使用“print<<<EOT 输出语句 EOT;” 来打印html代码和JavaScript
刚开始学正则表达式,在实战用PHP写正则表达式遇到一些问题,记录下
1, 正则表达式在正常情况下包含在两个斜杠("/")之间,所以一个最基本的正则表达式如"/php/"
2,用正则表达式查找文本中的匹配的字符串时,正则表达式用单引号表示所要查找的字符串,这样可以避免一些特殊的字符需要转义的情况
3,采用函数时,关注下它的试用期,eregi函数已不建议使用;这里php帮助文档,每天都在更新,你可以从这里得到最新的信息。
preg_match('/(?<=p\()\d+(?=\))/',$subject,$matches),最近在写PHP时用到正则表达式,简单解释下这是什么意思:
先解释下preg_match函数的作用
在$subject字符串中查找与正则表达式"/(?<=p\()\d+(?=\))/"想匹配的内容,把查找的结果保存在$matches数组中,数组$matches中第一个元素包含与整个模式匹配的文本,第二个元素包含与第一个元素匹配的文本,依次类推。
正则表达式:/(?<=p\()\d+(?=\))/
1:最左边和最右边的"/"是每个表达式所必需的
2:(?<=p\():可以把它提取成(?<表达式),这就是所谓的零宽度正回顾后发断言,查找表达式后面出现的字符。"p\(":这个就是我们需要查找的表达式,这里查找的是"p(";但是在正则表达式中括号是元字符,所以需要加转义字符"\"
3:\d+;"\d"表示数字(0-9),"\d+"表示匹配一个或多个数字
4:(?=\)):一样把它提取出来(?=表达式),这就是零宽度正预测先行断言,查找表达式前面出现的字符。"\)",这里查找时")",同样需要加转义字符"\"
这整个表达就是匹配出现在 p(),括号中间出现的数字,如果括号中间出现非数字的字符,这就不匹配了;
如,$subject = 'p(12345)www';
那么得到$matches[0] = 12345,
最新评论