1.转义字符的使用
这个问题是在php下编写SQL语句的字符串时遇到的,因为在where后面的条件判断经常要用到双引号("")来表示字符。而诸如下面这样的语句就会报错。
$query = "select * from where name = "Zida"";
原因是双引号的存在感太强了,最后两个""会被误认为少了连接符号的两个字符串。这个时候就需要转义字符了。
转义字符的使用也很简单,就是\+内容。比如在这双引号就是\"。其他的还有很多。不过要注意的是在单引号字符串中只有反斜杠和单引号本身需要转义。而在双引号中由于美元符号($)表示变量名,其必须要用反斜杠转义。双引号的转义字符还有回车、换行、制表符等。
2.Heredoc和Nowdoc结构
进一步寻找,可以使用Heredoc 结构和Nowdoc结构。他们两的内容绝对不会进行任何的转义和解释,是什么就是什么,不会解析PHP相关的内容。
方法就是
echo <<< 标识符
字符串内容
标识符;
需要注意的是后面这个结束标示符必须顶行写。
再来还有Nowdoc结构。就象 heredoc 结构类似于双引号字符串,Nowdoc 结构是类似于单引号字符串的。Nowdoc 结构很象 heredoc 结构,但是 nowdoc 中不进行解析操作。这种结构很适合用于嵌入 PHP 代码或其它大段文本而无需对其中的特殊字符进行转义。
有网友经验,为了防止变量解析歧义,建议在这两种字符串中的php变量使用复杂语法(与之相对应的简单语法就是加个$),就是用花括号。比如我们在输出一个对象的属性是要用到$对象名->属性名时,用花括号括住就不会产生歧义了。就像这样{$对象名->属性名}。
3.存取和修改字符串中的字符
这个字符串处理就比较简单,就是把字符串当成数组。比如一个字符串$str中,$str[0]就表示第一个字符。完毕