簡體   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