在对于字符串的替换上,我们已经学过了不少的方法。但在做练习题的时候,我们会对多个字符串进行替换。从方法的实用性来说,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("/