1.有时候可能会遇到数据包含在数组或复杂对象中的情况,这些情况下,需要协助php解释器进行处理,可以使用括号{}围起变量,或者使用字符串链接函数'.'
例子:
<?php
$user=array(
'first'=>'liu',
'last'=>'xiang'
);
echo 'hi {$user['first']} {$user['last']}'."<br>";
echo 'hi'.$user['first'].$user['last']."<br>";
?>
2.如何安全的输出字符串
一些字符串具有特殊的含义
输出字符串到浏览器要考虑一下方面
1.是否正在输出一个包含在<a>标记中的URL
2.是否正在输出html表单元素
3.是否希望展示或删除一些html
4.是否需要保留格式
例子:
<?php
$text="ben & jerray ice cream";
echo "<a href='buy.rawurlencode($text)'>".'buy'.htmlentities($text)."</a>";
?>
rawurlencode将字符串编码成URL专用格式 string raeurlencode(string str)
htmlentities()将所有字符都转换为html字符串 string htmlentities(string string);
3.如何保留格式
有两种方法可以实现原来的文本格式
第一种是使用<pre>标记
例子:
<?php
$t="this is
a php
script
";
echo "<pre>";
echo $t;
echo "</pre>";
?>
当输出数组的时候 可以用<pre>标记
第二种方法
使用nl2br函数将新行字符转换为<br>
例子:
<?php
$t="this is
a php
script
";
echo nl2br($t);
?>
4.如何从文本中剥离html标记
函数stript_tags删除那些以‘<’开头以‘>’结尾中间的部分,标记以外的文本不作处理
<?php
$t="<a href='regist.html'>link</a>注册页面<b>点击注册</b>";
echo strip_tags($t);
?>
strip_tags还可以加参数,例子strip_tags($t,'<b><i>')
这次将忽略<b><i>标记并剥离其他标记
5.如何强制文本在一定数量的字符后这行显示
wordwrap(string,width,break,cut)
r参数描述
string
必要参数。指定需要拆分的字符串行
width
可选参数。指定最大的行宽。默认值为75
break
可选参数。指定字符串的拆分符。默认值为“/n”
cut
可选参数。指定是否允许超出长度的字符溢出。默认值为False(不允许溢出
- <?php
- $t='php';
- $r="i am learning php script";
- echo str_replace($t,'<strong>php</strong>',$r);
- ?>
str_replace(string,string,string) 有三个参数,第一个是要在第三个参数中查找的字符串,第二个是要替换的字符串,第三个是要
查找的字符串
strpos返回要查找的字符串在相应的字符 第一次出现的位置
例子:
- <?php
- $t='p';
- $r="this is a php script";
- echo strpos($r,$t);//本函数在$r中查找$t第一次出现的位置,strpos还有第
- //三个参数,用来指定从$r的某个位置开始搜索, 例如strpos($r,$t,12)表示
- //从第12个字符开始查询
- ?>
substr_replace函数用于更精确的替换字符串或说是插入字符串例子:
- <?php
- $t='china';
- $r="hi,baby,php";
- echo substr_replace($r,$t,3,4);
- ?>
- 第一个参数是要被替换的字符串
- 第二个参数是要替换的字符串
- 第三个参数指定要在第一个参数替换的位置
如果第三个参数指定的为负数,则它会从文本的末端执行替换
- 第四个参数是将要替换掉第一个参数中的多少字符,例如此例将输出“hi,earth,php”
- 但是如果我们把4改成6则会输出"hi,earthhp"
- 第四个参数是可选参数,但是如果没有此参数,则会替换后面所有的文本,如果设置为0则不进行替换
- 也就是前面所说的执行 插入
7.explode将文本打散为数组
例子:
- <?php
- $t=<<<EOF
- one
- two
- three
- EOF;
- $a=explode(PHP_EOL,$t);
- for($i=0;$i<count($a);$i++){
- echo $a[$i];
- }
- ?>
- PHP_EOL常量 是当前操作系统的行尾(EOL)字符,使用此常量有利于移植脚本
implode函数所作的工作于explode正好相反它能将数组生成一个字符串
例子:
- <?php
- $t=<<<EOF
- one
- two
- three
- EOF;
- $a=explode(PHP_EOL,$t);
- for($i=0;$i<count($a);$i++){
- echo $a[$i];
- }
- echo implode($a);
- ?>
8.如何从文本中移除空白字符trim函数能够移除开始和末端的空白字符
- <?php
- $t=" this is a test about trim ,let us see how it works ";
- echo $t;
- echo trim($t);
- ?>
如果想要移除左边的或者是右边的空白部分那么用ltrim和rtrim
此例子中我的浏览器中没有显示$t中的空白字符