获取两个字符串之间的内容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