2010-08-09 84 views
-1

asked earlier我怎麼能擺脫額外的連字符和空格添加在例如用戶提交的文本的結束和開始,-ruby-on-rails-ruby-on-rails你們建議trim()這本身工作正常,但是當我把它添加到我的代碼根本不起作用,它實際上對我的代碼做了一些時髦的事情。PHP裝飾問題

我試着將trim()代碼放在我的代碼中的任何地方,但沒有任何工作可以有人幫助我擺脫在用戶提交的文本的末尾添加額外的連字符和空格?

這是我的PHP代碼。

$tags = preg_split('/,/', strip_tags($_POST['tag']), -1, PREG_SPLIT_NO_EMPTY); 
$tags = str_replace(' ', '-', $tags); 
+0

只是看到http://php.net/manual/en/function.trim.php – Tobias 2010-08-09 14:43:11

+0

爲什麼-1評級? – myTIME 2010-08-09 14:43:21

+0

你看過手冊中的例子:http://php.net/manual/en/function.trim.php? – 2010-08-09 14:44:07

回答

2

更新修剪的語句,以便在陣列中更新每個項目如下:

foreach($tags as $key=>$value) { 
    $tags[$key] = trim($value, '-'); 
} 

這應該讓你修剪基於字符串每個值的預期。

+0

沒有修剪只是不會爲我工作:( – myTIME 2010-08-09 14:59:03

+1

我編輯了上述迴應基於馬克的建議。 – Joseph 2010-08-09 15:23:25

2

如果你有一個字符串,你可以做到這一點,去除其中的開頭和結尾連字符:

$tag = trim($tag, '-'); 

您的問題是preg_split返回一個數組,但trim接受字符串。您需要爲數組中的每個字符串執行上述操作。

關於修剪空白:如果您首先將所有空格轉換爲連字符,那麼不需要在之後修剪空格 - 空格已經消失。但要小心,因爲術語「空白」和「空間」具有不同的含義。你的問題似乎混淆了這兩個術語。

+0

是的,我確實嘗試過。 – myTIME 2010-08-09 14:41:58

+0

這是對的,我認爲你在做某事。其他錯誤;) – Tobias 2010-08-09 14:43:53

+0

這不會修剪空白,但?我的印象是,可選列表將只修剪這些字符。 – 2010-08-09 14:46:03

0

驗證您嘗試修剪的連字符是否是包裹-ruby-on-rails-的同一連字符。例如,這些都是看起來類似的所有不同的字符: - , - , - , - 。

0

Im新的StackOverflow.com,所以我希望我寫的函數以某種方式幫助你。你可以在第二個參數中指定你希望修剪的字符,例如我已經將它設置爲僅刪除空格和默認的「破折號」,我已經使用'ruby-on-rails'對它進行了測試, ' - - - ruby​​-on-rails - - - - - '這兩個例子都產生了結果:'ruby-on-rails'。

正則表達式可能只是一個方法,但我希望它可以幫助你,只要回答如果你有任何問題實現它或w/e。

function customTrim($s,$c='- ') 
{ 
    preg_match('#'.($a='[^'.$c.']').'.{1,}'.$a.'#',$s,$match); 
    return $match[0]; 
}