2013-08-07 98 views
0

之間獲取信息,我已在PHP字符串兩個字符串

$string = "Hello World<br>- 8/7/2013<br>Hello World"; 

下列因此,基本上,我需要一個破折號和空間(-)和最近的換行標籤之間的信息。非常感激你的幫助!我找了幾個小時,但沒有成功。我認爲preg_replace也不會有幫助。

回答

3

strpos找到一個字符串的索引(可選指定索引之後),所以:

$start = strpos($string, '- ') + 2; 
$end = strpos($string, '<br>', $start); 
$part = substr($string, $start, $end - $start); 

Ta-da!

+0

minitech,這工作得很好!非常感謝! – David

0

試試這個

function getData($haystack) { 
    $dash = strpos($haystack, "- ") + 2; 
    $br = strpos($haystack, "<br>", $dash); 
    return substr($haystack, $dash, $br - $dash); 
} 
+0

'substr'的​​第三個參數是長度,而不是索引。 – Ryan

+0

感謝您的通知,編輯製作 –

1

您可以使用preg_match

if(preg_match("~-\s(.*?)<br>~", $string, $matches)) { 
    $data = $matches[1]; 
} 
+0

在正則表達式中使用單引號字符串(即使這裏的'\ s'不是PHP中的轉義序列)可能是一個好主意。 – Ryan

+0

你應該改變'
'的東西,可以捕捉任何形式的'
','
','
';也許只是' Mash