我试图抓住一个字符串的特定部分,该字符串具有开始字符和结束字符。
例如;
$str = "Lorem ipsum |example xyz|dolor sit amet, consectetur adipiscing
elit |example|. Vivamus at posuere magna. Suspendisse rutrum rhoncus leo
vitae vehicula. Nunc nec dapibus nisi. Donec facilisis mauris sapien, eget
blandit enim |example xyz| dignissim auctor.|example| Nullam a porta orci.
Donec pharetra urna odio, ut pellentesque est eleifend vel. Nulla tincidunt
tellus sed dui fermentum viverra. Vivamus sit amet semper mi."
我想要抓取所有|example xyz| .. blabla.. |example|
部分。
我该怎么做? 谢谢..
答案 0 :(得分:0)
function stringcutout($string,$start,$stop)
{
$ret='';
if (strstr($string,$start))
{
$p=strpos($string,$start);
$b=substr($string,$p+strlen($start));
if (strstr($b,$stop))
{
$p=strpos($b,$stop);
$b=substr($b,0,$p);
$ret=$b;
}
}
return $ret;
}
我正在使用它。我知道它不漂亮,但工作......
答案 1 :(得分:0)
使用正则表达式\|([\w\s]+)\|
获取|
<强>更新强>
要包含|example xyz|
和|example|
,请使用此正则表达式:
(\|example xyz\|[\w\s]\|example\|)
答案 2 :(得分:0)
如果您有固定的字符串,您可以使用preg_match查找。
preg_match_all('/\|example xyz\|[\w\s\,\.]+\|example\|/', $str, $matches);
if (count($matches) > 0)
{
foreach ($matches[0] as $match)
{
echo $match;
}
}
答案 3 :(得分:0)
好的,所以你需要一个不同的功能...... 您可以获得多个内容,包括以|使用此函数开头的所有内容:
$return=array();
$ex=explode('|example',$str);
if (sizeof($ex)>0) {unset($ex[0]); foreach ($ex as $s) {$x=strpos($s,'|'); $return[]=substr($s,$x+1);}}
如果您不想要额外的最后结果(不是&#34;终止&#34;通过|示例),您可以取消设置...