在对于字符串的替换上,我们已经学过了不少的方法。但在做练习题的时候,我们会对多个字符串进行替换。从方法的实用性来说,str_replace就非常适合处理多个字符串的替换问题。下面我们就php中str_replace的概念、语法、参数、返回值进行讲解,然后带来替换的实例分享。
1、概念
str_replace() 函数以其他字符替换字符串中的一些字符(区分大小写)。
该函数区分大小写。请使用 str_ireplace() 函数执行不区分大小写的搜索。
2、语法
str_replace(find,replace,string,count)
3、参数
Find、replace、string、count
4、返回值
返回带有替换值的字符串或数组。
5、实例
创建一个PHP示例文件;然后通过“tr_replace($vowels, "","Hello World of PHP");”方法替换多个字符串即可。
echo str_replace(array("m","i"),array("n","z"),"my name is jim!")
echo str_replace(array("m","i"),"n","my name is jim!");
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$onlyconsonants = str_replace($vowels, "","Hello World of PHP");
echo $onlyconsonants;
知识点扩展:
PHP利用str_replace防注入的方法
<?php
/**
* 安全过滤函数
*
* @param $string
* @return string
*/
function safe_replace($string) {
$string = str_replace("%20","",$string);
$string = str_replace("%27","",$string);
$string = str_replace("%2527","",$string);
$string = str_replace("*","",$string);
$string = str_replace(""",""",$string);
$string = str_replace(""","",$string);
$string = str_replace(""","",$string);
$string = str_replace(";","",$string);
$string = str_replace("<","<",$string);
$string = str_replace(">",">",$string);
$string = str_replace("{","",$string);
$string = str_replace("}","",$string);
$string = str_replace("","",$string);
return $string;
}
?>
<?php
/**
* 返回经addslashes处理过的字符串或数组
* @param $string 需要处理的字符串或数组
* @return mixed
*/
function new_addslashes($string) {
if(!is_array($string)) return addslashes($string);
foreach($string as $key => $val) $string[$key] = new_addslashes($val);
return $string;
}
?>
<?php
//对请求的字符串进行安全处理
/*
$safestep
0 为不处理,
1 为禁止不安全HTML内容(javascript等),
2 完全禁止HTML内容,并替换部份不安全字符串(如:eval(、union、CONCAT(、--、等)
*/
function StringSafe($str, $safestep=-1){
$safestep = ($safestep > -1) ? $safestep : 1;
if($safestep == 1){
$str = preg_replace("#script:#i", "script:", $str);
$str = preg_replace("#<[/]{0,1}(link|meta|ifr|fra|scr)[^>]*>#isU", "", $str);
$str = preg_replace("#[ ]{1,}#", " ", $str);
return $str;
}else if($safestep == 2){
$str = addslashes(htmlspecialchars(stripslashes($str)));
$str = preg_replace("#eval#i", "eval", $str);
$str = preg_replace("#union#i", "union", $str);
$str = preg_replace("#concat#i", "concat", $str);
$str = preg_replace("#--#", "--", $str);
$str = preg_replace("#[ ]{1,}#", " ", $str);
return $str;
}else{
return $str;
}
}
?>
<?php
/**
+----------------------------------------------------------
* 输出安全的html,用于过滤危险代码
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
* @param string $text 要处理的字符串
* @param mixed $tags 允许的标签列表,如 table|td|th|td
+----------------------------------------------------------
* @return string
+----------------------------------------------------------
*/
static public function safeHtml($text, $tags = null)
{
$text = trim($text);
//完全过滤注释
$text = preg_replace("//","",$text);
//完全过滤动态代码
$text = preg_replace("/<?|?".">/","",$text);
//完全过滤js
$text = preg_replace("/


677