2013-08-07 60 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