获取两个字符串之间的内容PHP

什么是获取两个字符串之间内容的最佳方法,例如

ob_start();

include('externalfile.html'); ## see below

$out = ob_get_contents();

ob_end_clean();

preg_match('/{FINDME}(.|\n*)+{\/FINDME}/',$out,$matches);

$match = $matches[0];

echo $match;

## I have used .|\n* as it needs to check for new lines. Is this correct?

## externalfile.html

{FINDME}

Text Here

{/FINDME}

由于某种原因,这似乎在我的代码中的一个地方起作用,而不是另一个地方。我会以正确的方式解决这个问题吗?或者,还有更好的方法?

输出缓冲区也是这样做的方法还是file_get_contents?

提前致谢!

回答:

  • 使用#代替,/这样您就不必逃避它们。
  • 该修改 s品牌.\s还包括换行。
  • {}具有各种功能,例如的n到m倍{n,m}
  • 基础的

    preg_match('#\\{FINDME\\}(.+)\\{/FINDME\\}#s',$out,$matches);

  • 各种标签等的高级(JavaScript样式不是很好)。

    $delimiter = '#';

    $startTag = ‘{FINDME}’;

    $endTag = ‘{/FINDME}’;

    $regex = $delimiter . preg_quote($startTag, $delimiter)

    . ‘(.*?)’

    . preg_quote($endTag, $delimiter)

    . $delimiter

    . ‘s’;

    preg_match($regex,$out,$matches);

将此代码放入函数中

  • 对于您不想执行任何 杂散 php代码的任何文件,应使用file_get_contents。包含/要求甚至不应该是一个选项。

以上是 获取两个字符串之间的内容PHP 的全部内容, 来源链接: utcz.com/qa/408716.html

回到顶部