2012-11-19 33 views

回答

3

可以使用(int)轉換成String的任何領先的數字轉換成一個數字:

$minutes = (int)"79 minutes 43 seconds"; 

這種方法僅限於以數字開頭,這個數字總是意味着分鐘字符串。對於其他情況,使用正則表達式可能會更好。

+0

是的,這確實我需要的,謝謝! –

1

如果有可能在幾分鐘號碼前面其他文本,您可以使用正則表達式提取值:

$matches = array(); 
preg_match("/(\d+) minutes/", $your_input, $matches); 
$num_minutes = (int)$matches[1]; 
+0

你對錯過的分隔符是正確的,但是你對轉義錯誤 - 「\\ d」轉換爲\ d字符串,因爲'\\'是* PHP's *之後的單斜槓。字符串逃脫。 PHP正則表達式引擎足夠聰明,可以*單獨接受'「\ d」'生成的控制字符,但也會很樂意接受'「\\ d」'(嘗試它)。如果你想匹配一個字面斜線,你實際上必須使用''\\\\''來首先繞過PHP的字符串轉義,然後是正則表達式引擎的轉義。 – Amber

相關問題