繁体   English   中英

如何使用Php用破折号替换所有空间?

[英]How can we replace all space with dash using Php?

如何在PHP中用破折号'-'替换所有空格?

到目前为止,我已经尝试过了。

     $post_name = $row['post_name'];
     $post_name = preg_replace('/\_/', '-', $post_name);
     $post_name=  preg_replace("/[^A-Za-z 0-9?!\-]/",'',$post_name);

现在的问题是,它有时不替换某些字符串中的空格,并且如果存在多个空格,它将给出多个破折号,但是我只需要一个破折号即可。 我怎么解决这个问题 ?

尝试这个...

echo preg_replace('/\s+/', '-', "Vaghela Nikhil");

要么

echo str_replace(" ","-","Vaghela Nikhil");

输出:

Vaghela-Nikhil

演示...

<?php

function myfunc($post_name) {
   return preg_replace('/[\s_]+/', '-', $post_name);
}

$post_name = 'My document a_b';
echo myfunc($post_name);

?>

请改用str_replace。 在其文档中 ,它说用替换字符串替换所有出现的搜索字符串。 哪个会为您做。

它还在文档中说:“如果不需要花哨的替换规则(如正则表达式),则应始终使用此函数而不是preg_replace()”。 您的需求看起来并不需要“花哨的替换规则”。 所以你应该做

$post_name = str_replace(' ', '-', $post_name);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM