如何将所有非单词字符和多个空格更改为 ' '然后所有空间都为“-”在一个 preg_replace() 中
我想在以下条件下更改图像名称
- 所有非单词字符都会变成空格,
- 然后所有空格都会变成
-
表示如果我的图像名称是: Hello My name is'Kh@n "Mr .Khan "
则应更改为 Hello-My-name-is-kh-n-mr-Khan
。
我需要分两步使用下面的内容,
$old_name =' Hello My name is\'Kh@n "Mr. Khan ';
$space_name = preg_replace('/\W/',' ', $old_name);
$new_name= preg_replace('/\s+/','-', $space_name);
echo $new_name // returns Hello-My-name-is-kh-n-mr-Khan
有什么方法可以在一步中应用这两个条件吗?
I want to change image names on below conditions
- All non word characters turns into space and
- then all spaces turns into
-
means if my image name is : Hello My name is'Kh@n "Mr. .Khan "
then it should be changed into Hello-My-name-is-kh-n-mr-Khan
.
i need to use below in two steps,
$old_name =' Hello My name is\'Kh@n "Mr. Khan ';
$space_name = preg_replace('/\W/',' ', $old_name);
$new_name= preg_replace('/\s+/','-', $space_name);
echo $new_name // returns Hello-My-name-is-kh-n-mr-Khan
is there any way to apply both conditions in single step??
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
preg_replace
可以采用数组:这更简洁,但我不相信它有任何意义更有效率。该文档没有指定应用正则表达式的顺序。由于空格字符是非单词字符,因此更安全的版本是:
preg_replace
can take arrays:This is more succinct, but I don't believe it's any more efficient. The docs don't specify an order that the regexps are applied. Since space characters are non-word characters, a safer version is:
我发现这个函数的输出(
Hello_My_name_is-Kh-n_-Mr-_Khan_
)有点难看这是我的方法
输出
你好-我的名字-is-kh-n-mr-khan
I find this function's output (
Hello_My_name_is-Kh-n_-Mr-_Khan_
)a bit uglyHere is my approach
outputs
hello-my-name-is-kh-n-mr-khan
您可以在
preg_replace
中使用数组:另外,
您的代码片段有语法错误,您需要在
K
之前转义单引号You can use arrays in
preg_replace
:Also,
Your snippet has syntax error, you need to escape the single quote before
K
这是要重命名上传的图片吗?如果是这样,请记住...
Is this to rename uploaded images? If so, keep in mind...