2010-03-02 40 views
2

在我的functions.php如果有這樣的代碼:如何刪除特殊字符之外的空間?

echo '<a href="'.preg_replace('/\s/','-',$search).'-keyword1.html">'.urldecode($search).'</a>'; 

這消除了特殊字符..

但我怎麼能additonally添加刪除空間,取而代之的是 - 並刪除「

所以,如果有人輸入「喲!這裏」我想溜溜這裏

回答

3

嘗試:

<?php 

$str = '"yo! here"'; 

$str = preg_replace(array('/[^\s\w]/','/\s/'),array('','-'),$str); 

var_dump($str); // prints yo-here 

?> 
0

可以消除任何非話:如果您要更換的不想要的字符運行以單破折號

preg_replace('/\W/', '-', $search); 
2

,那麼你可以使用是這樣的:

preg_replace('/\W+/', '-', $search); 

要刪除包圍引號,然後替換任何其他垃圾與破折號,試試這個:

$no_quotes = preg_replace('/^"|"$/', '', $search); 
$no_junk = preg_replace('/\W+/', '-', $no_quotes); 
+0

對於OP的輸入:「‘!在這裏喲’」這將產生「-yo-這裏 - 」 – codaddict

+0

啊,我錯過了報價要求。更新中... –

1

這將取代多個空格/ 「特殊」 的字符用一個連字符。如果你不想要,請刪除「+」。

如果某物以感嘆號/其他結尾,您可能需要修剪任何尾隨連字符。

<?php preg_replace("/\W+/", "-", "yo! here   check this out"); ?>