Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-字符串操作删除特殊字符并替换空格_Php_String - Fatal编程技术网

PHP-字符串操作删除特殊字符并替换空格

PHP-字符串操作删除特殊字符并替换空格,php,string,Php,String,我从数据库中获取字符串,然后使用这些字符串构建URL。我的问题是,一些字符串将包含类似&{}*一般特殊字符的字符,但该字符串中也可能包含字符串。如何将空格替换为破折号,并从字符串中完全删除字符和特殊字符?使用以下命令仅在字符串中保留字母和数字: 您可以使用将空间替换为- $string = str_replace (" ", "-", $string); 请看以下文章: 字母数字: $output = preg_replace("/[^A-Za-z0-9]/","",$input);

我从数据库中获取字符串,然后使用这些字符串构建URL。我的问题是,一些字符串将包含类似<>&{}*一般特殊字符的字符,但该字符串中也可能包含字符串。如何将空格替换为破折号,并从字符串中完全删除字符和特殊字符?

使用以下命令仅在字符串中保留字母和数字:

您可以使用将空间替换为-

$string = str_replace (" ", "-", $string);
请看以下文章:

字母数字:

$output = preg_replace("/[^A-Za-z0-9]/","",$input); 
如果要保留字符,请执行以下操作:

 htmlspecialchars($string);
与:

$str=str_replace(数组('''','&','{'','}','*')、数组('-')、$str);
注:

如果replace的值少于search,则剩余的替换值将使用空字符串

1) 用iconv替换变音符号
2) 用空字符串替换非字母字符
3) 用破折号替换空格
4) 修剪短划线字符的字符串(也可以在操作前修剪字符串)

例如,如果使用UTF-8编码:

setlocale(LC_ALL, 'fr_CA.utf8');
$str = "%#dŝdèàâ.,d s#$4.sèdf;21df";

$str = iconv("UTF-8", "ASCII//TRANSLIT", $str); // "%#dsdeaa.,d s#$4.sedf;21df"
$str = preg_replace("`[^\w]+`", "", $str); // "dsdeaad s4sedf21df"
$str = str_replace(" ", "-", $str); // "dsdeaad-s4sedf21df"
$str = trim($str, '-'); // "dsdeaad-s4sedf21df"

这将创建虚线字符串(只有带破折号的字母数字字符)。对于创建URI字符串非常有用。

使用urlencode()可能更容易。它使字符串可以安全地在URL中使用;根据你的情况,这个假设可能太天真,也可能不太天真。
 htmlspecialchars($string);
$str = str_replace(array(' ', '<', '>', '&', '{', '}', '*'), array('-'), $str);
setlocale(LC_ALL, 'fr_CA.utf8');
$str = "%#dŝdèàâ.,d s#$4.sèdf;21df";

$str = iconv("UTF-8", "ASCII//TRANSLIT", $str); // "%#dsdeaa.,d s#$4.sedf;21df"
$str = preg_replace("`[^\w]+`", "", $str); // "dsdeaad s4sedf21df"
$str = str_replace(" ", "-", $str); // "dsdeaad-s4sedf21df"
$str = trim($str, '-'); // "dsdeaad-s4sedf21df"
$search_value =array(",",".",'"',"'","\\"," ","/","&","[","]","(",")"," 
{","}",":","`","!","@","#","%","=","+");
$replace_value =array("-","-","-","-","-","-","-","-","-","-","-","-","-","-","-","- 
","-","-","-","-","-");
$product_name = str_replace($search_value,$replace_value,$row["Product_Name"]);
$product_name = str_replace("--","-",$product_name);
$product_name = str_replace("--","-",$product_name);
$product_name = preg_replace('/-$/', '', $product_name);
$product_name = preg_replace('/^-/', '', $product_name);