2012-08-29 42 views
0

如何從一個字符串,看起來像刪除第一個字客場的Smarty:從字符串帶走的第一個字

$variable = "Word Quick brown fox";

,使它看起來像這樣事後對輸出:

$variable = "Quick brown fox";

有沒有辦法做到這一點沒有修飾符?我知道你可以自定義修飾符,然後使用$variable|customModifier並得到你想要的,但我想也許已經有內置的解決方案呢?

+3

這裏沒有內建修飾符。其中一個原因是這種類型的東西應該在業務邏輯中完成(當然是通過PHP)。 Smarty的目的是提供創建模板和佈局頁面的機制,而不是像這樣進行字符串操作。 –

+0

謝謝,泰勒,我意識到這一點。那麼我將不得不使用Modifier。 –

回答

7

正如泰勒指出,這應該是在你的業務邏輯完成的,就像這樣:

  1. explode()在空間創造字數組
  2. 刪除與array_shift()的第一項(對應於在句中第一個字)
  3. implode()

這裏加入它重新走到一起就是一個例子:

$words = explode(' ', $variable); 
array_shift($words); 
$variable = implode(' ', $words); 
+1

它看起來像OP想要第一個字母也是大寫。另外,你應該在'explode'函數中設置一個極限2,因爲'explode'會將連續的分隔符作爲一個分隔符。因此,如果字符串在第一個單詞後面包含多個連續空格,則每個組中的所有空間都將丟失。 –

+0

我會這樣做的。如果我使用Modifier,它意味着我這樣做,就像Tyler在業務邏輯中說的那樣? –

+0

@Tyler我認爲第一個單詞應該首先是帽子,但是如果你看一下原始字符串,前兩個單詞是大寫的,所以我只剩下它。另外,對於連續的空格,更好的解決方案是使用'preg_split()',但由於該要求不在OP中,爲了清楚起見,我省略了它。 – nickb

2

通過單詞之間的空間將原始字符串分解爲數組,然後切出所選的索引鍵。然後將陣列內爆到一個字符串。

<?php 
$variable = "Word Quick brown fox"; 
$str = explode(' ', $variable); 
$str = array_slice($str, 1); 
$str = implode(' ', $str); 
echo $str; 
?> 
+1

感謝Chris,就像我上面所說的那樣,我會爲此編寫修飾符,但是我通過'array_shift'在PHP中解決了它。 –

相關問題