Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.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 preg_replace()仅用连字符替换空格和符号_Php_Regex_Preg Replace - Fatal编程技术网

Php preg_replace()仅用连字符替换空格和符号

Php preg_replace()仅用连字符替换空格和符号,php,regex,preg-replace,Php,Regex,Preg Replace,除了字母和数字,我如何用连字符替换其他内容?这将是一个slug URL,用户可以在其中键入他们想要的URL字符串。我遇到的问题是人们输入符号和许多空格,这使得URL无效 还有,什么样的资源可以用来测试这一点,这样我就不用再问了?谢谢。代码 $input_url = "This is only an example: do you like it?"; $slug_url = preg_replace("/[^a-zA-Z0-9]/", "-", $input_url); print($slug_

除了字母和数字,我如何用连字符替换其他内容?这将是一个slug URL,用户可以在其中键入他们想要的URL字符串。我遇到的问题是人们输入符号和许多空格,这使得URL无效

还有,什么样的资源可以用来测试这一点,这样我就不用再问了?谢谢。

代码

$input_url = "This is only an example: do you like it?";
$slug_url = preg_replace("/[^a-zA-Z0-9]/", "-", $input_url);
print($slug_url);
将输出

这只是一个例子——你喜欢吗?


urlencode不就是用加号替换空格吗?我不确定它会用Symbols做什么,它会的。您在问题中描述的问题是“人们输入符号和许多空格,这使得url无效”
urlencode
将使任何输入成为有效的url,所以它只接受字母和数字,对吗?其他任何东西都会被催眠替代。正则表达式与字母或数字匹配。另一方面,由于插入符号否定字符类,因此正则表达式
“/[^a-zA-Z0-9]/”
匹配字母或数字以外的任何字符。这里,函数匹配变量
$input\u url
中此类非字母数字字符的每个实例,并用连字符替换。此替换的结果存储在变量
$slug\u url
中。那么
www.my\u beautifuly.url怎么样?不管是什么
?它将成为
www我美丽的url无论什么