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;