Php preg_replace()仅用连字符替换空格和符号
除了字母和数字,我如何用连字符替换其他内容?这将是一个slug URL,用户可以在其中键入他们想要的URL字符串。我遇到的问题是人们输入符号和许多空格,这使得URL无效 还有,什么样的资源可以用来测试这一点,这样我就不用再问了?谢谢。代码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_
$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无论什么。