php 正则表达式

你可以在php程序中的任何地方使用 echo “hello world!”;
来输出你想输出的内容。 不过你将遇到以下麻烦: 1 –
当你试图在hello和world之间加入两个空格, 你使用: echo “hello world!”;
你得到的输出还是一个空格,或者你在行首加入一个空格,
你的空格也将被忽略。 2 –
更糟的是输出用户输入的内容时,有心或无意的用户输入将
使你的输出变的一团糟,甚至给其他用户带来麻烦。 比如: form
action=”output.php” textarea name=”in_txt” /textarea br input
type=”submit” /form 如果用户输入中有不止一行的内容,那么你如果简单地
echo $in_txt; 用户的换行将被忽略。 3 –
还是上面的例子,大部分情况我们不希望用户输入html
代码,因为你不知道用户会输入什么。
用户甚至可以写一段代码使你网站所有的用户死机。
当然你不希望那样,但是你如果简单地 echo $in_txt; 就不可能避免。
解决方法: 对于1,可以使用ereg_replace(” {2}”,”$nbsp;nbsp;”,$in_txt)
两个在一起的空格将变成两个空格的转义符。
对于2,nl2br($in_澳门新浦京8455com,txt)是最好的选择,这样所以的换行就换成 “br”了。
对于3,安全地显示用户输入的html代码,php中也有专门的函数。
htmlspecialchars($in_txt)就可以了。
另外,如果$in_txt是从mysql数据库中提出的,那么他在以前插入时
一定要使用addslashes(),相应的,取出时就一定要stripslashes()。 总结:
如果$in_txt是用户输入的文本,一般可以这样输出: echo ereg_replace(”
{2}”,”nbsp;nbsp;”,nl2br(htmlspecialchars(stripslashes($in_txt))));

最近在写bbs中,遇上代码转换问题。寻找了很久,才得到一个比较完善的解决办法,可以彻底还原发文者的原文。以下贴出,供大家指正。系统:linux+php4+oracle8i?//–标题,名字等字段入库处理(去首尾空格)function
trans_string_trim($str)
{$str=trim($str);$str=eregi_replace(,,$str);$str=stripslashes($str);return
$str;}//–文章入库处理,即textarea字段;function trans_string($str)
{$str=eregi_replace(,,$str);$str=stripslashes($str);return
$str;}//–从库中显示在表单中;在text中以trans转换,在textarea中,无需转换,直接显示//–显示在web页面,过滤html代码;包括链接地址function
trans($string)
{$string=htmlspecialchars($string);$string=ereg_replace(chr(10),br,$string);$string=ereg_replace(chr(32),,$string);return
$string;}//–显示在web页面,不过滤html代码;function trans_web($string)
{$string=ereg_replace(chr(10),br,$string);$string=ereg_replace(chr(32),,$string);return
$string;}//–显示在web页面,过滤html代码及头尾空格,主要用于显示用户昵称function
trans_trim($string)
{$string=trim($string);$string=htmlspecialchars($string);$string=ereg_replace(chr(10),br,$string);$string=ereg_replace(chr(32),,$string);return
$string;}//–显示在span中;function trans_span($string)
{$string=ereg_replace(chr(10),/n,$string);$string=ereg_replace(chr(32),
,$string);$string=ereg_replace(,,$string);return
$string;}//–在web上显示cookie,过滤htmlfunction trans_cookie($str)
{$str=trans($str);
$str=stripslashes($str);$str=eregi_replace(”,’,$str);return
$str;}?—————————最后,顺带补充一点,如果在span中显示文章中的一段,采用substr取定长字符串时,记得在span的参数后面多加一个空格,否则遇上截到半个汉字时,会搞乱html代码。

 

数据放入数据库和取出来显示在页面需要注意什么
入库时
$str=addslashes($str);
$sql=”insert into `tab` (`content`) values(‘$str’)”;
出库时 $str=stripslashes($str);
显示时 $str=htmlspecialchars(nl2br($str)) ;
<?
//–标题,名字等字段入库处理(去首尾空格) functiontrans_string_trim($str){
$str=trim($str);
$str=eregi_replace(“‘”,”””,$str);
$str=stripslashes($str);
return$str;
}
//–文章入库处理,即textarea字段; functiontrans_string($str){
$str=eregi_replace(“‘”,”””,$str);
$str=stripslashes($str);
return$str;
}
//–从库中显示在表单中;在text中以trans转换,在textarea中,无需转换,直接显示
//–显示在WEB页面,过滤HTML代码;包括链接地址
functiontrans($string){
$string=htmlspecialchars($string);
$string=ereg_replace(chr(10),”<br>”,$string);
$string=ereg_replace(chr(32),””,$string);
return$string; 
}
//–显示在WEB页面,不过滤HTML代码; functiontrans_web($string){
$string=ereg_replace(chr(10),”<br>”,$string);
$string=ereg_replace(chr(32),””,$string);
return$string; 
}
//–显示在WEB页面,过滤HTML代码及头尾空格,主要用于显示用户昵称 functiontrans_trim($string){
$string=trim($string);
$string=htmlspecialchars($string);
$string=ereg_replace(chr(10),”<br>”,$string);
$string=ereg_replace(chr(32),””,$string);
return$string; 
}
//–显示在span中; functiontrans_span($string){
$string=ereg_replace(chr(10),”n”,$string);
$string=ereg_replace(chr(32),””,$string);
$string=ereg_replace(‘”‘,”””,$string);
return$string; 
}
//–在WEB上显示cookie,过滤html functiontrans_cookie($str){
$str=trans($str);
$str=stripslashes($str);
$str=eregi_replace(“””,”‘”,$str);
return$str;
}
?>

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图