Php getbetween函数不工作?
我在互联网上发现了这个功能,但由于某种原因,它似乎不起作用Php getbetween函数不工作?,php,function,Php,Function,我在互联网上发现了这个功能,但由于某种原因,它似乎不起作用 function getbetween($content, $start, $end) { $r = explode($start, $content); if (isset($r[1])) { $r = explode($end, $r[1]); return $r[0]; } return ''; } 它似乎不起作用,我在下面的html文件中试用了它 &l
function getbetween($content, $start, $end)
{
$r = explode($start, $content);
if (isset($r[1]))
{
$r = explode($end, $r[1]);
return $r[0];
}
return '';
}
它似乎不起作用,我在下面的html文件中试用了它
<test>Hello</test>
你好
这是php页面,我试图用它获取值hello
<?php
include('getbetween.php');
$str = getbetween('test.html','<test>','</test>');
echo $str;
?>
由于某种原因,它似乎不起作用。尽管在过去它曾与我一起工作过,但有人知道可能出了什么问题吗?它仍然起作用,但您似乎忽略了字符串
'test.html'
不包含开始字符串或结束字符串
它只是一个文件名。PHP不展开字符串,只在其中包含文件名。因此,您可能也想为此编写一个函数;)别开玩笑了,这个函数已经存在了。例如:
include('getbetween.php');
$file = 'test.html';
$buffer = file_get_contents($file);
$between = getbetween($buffer, '<test>', '</test>');
echo $between;
否则,请提前返回:
function getbetween($content, $start, $end)
{
$r = explode($start, $content, 2);
if (!isset($r[1]))
{
return '';
}
$r = explode($end, $r[1], 2);
return $r[0];
}
您正在尝试从
“test.html”
中查找
或
。字符串,而不是文件。将文件的内容放在那里,或者使用file\u get\u contents(“test.html”)
将字符串传递给函数,而不是文件的实际内容。尝试此操作以传递实际的html
<?php
include('getbetween.php');
$str = getbetween(file_get_contents('test.html'),'<test>','</test>');
echo $str;
您进行了哪些调试?第一次爆炸后,$r
设置为什么?在第二次爆炸后,它设置为什么?从您的示例中,您尝试只匹配文件名上的内容片段,而不是文件内容。我从不在两者之间进行匹配…我尝试查找两个标记之间的内容。是的,实际上只是文件名字符串问题。
<?php
include('getbetween.php');
$str = getbetween(file_get_contents('test.html'),'<test>','</test>');
echo $str;