如何用dash' - '替换所有空格?
到目前为止,我已经尝试过。
$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);