Php 如何在html代码中查找字符串

Php 如何在html代码中查找字符串,php,string,Php,String,我正在尝试从html部分查找字符串 范例 <div class="container" data-id="Youtube" style="height:100%;width:100%;border:none;"> <div class="inner"></div> 但是对于一个示例测试,我试图将html代码存储到一个php变量中 $string="<div class="container" data-id="Youtube" style="heigh

我正在尝试从html部分查找字符串

范例

<div class="container" data-id="Youtube" style="height:100%;width:100%;border:none;">
<div class="inner"></div>
但是对于一个示例测试,我试图将html代码存储到一个php变量中

$string="<div class="container" data-id="Youtube" style="height:100%;width:100%;border:none;">
    <div class="inner"></div>";
当我试图在$string中查找youtube时,它总是返回FalseNoteExistence

有人能帮我找到html代码中的字符串吗
谢谢你

试着用简单的引号来包装你的html:

$string = '<div class="container" data-id="Youtube" style="height:100%;width:100%;border:none;">
    <div class="inner"></div>';
尝试:


如果这是您的问题,请将stripos用于区分大小写

在字符串周围使用单引号

$string='<div class="container" data-id="Youtube" style="height:100%;width:100%;border:none;">
<div class="inner"></div>';
尝试使用ifstrposstrtolower$string,youtube!==假的


我总是使用strtolower来避免类似的问题。

我为您做了这个简单的测试……它在我的本地主机上工作:

<?php

    $string="<div class='container' data-id='Youtube' style='height:100%;width:100%;border:none;'><div class='inner'></div>";
    $search = "Youtube";
    if(strpos($string, $search) !== false)
    {
        echo "Found";
    }
    else
    {
        echo "Not found";
    }

    ?>

您可以使用xpath+dom对象,就像

class CeiXML extends SimpleXMLElement
{

    public static function asHTML($xml)
    {
        $ele = dom_import_simplexml($xml);
        $dom = new DOMDocument('1.0', 'utf-8');
        $element = $dom->importNode($ele, true);
        $dom->appendChild($element);
        return $dom->saveHTML();
    }

}

$html = '
    <body>
        <div class="container" id="Youtube" style="height:100%;width:100%;border:none;"></div>
        <div class="inner"></div>
     </body>';
$xml = simplexml_load_string($html);
$tags = $xml->xpath('//body/div[@id="Youtube"]');

$string = CeiXML::asHTML($tags[0]);

我希望这对你有帮助

youtube!==Youtube,在你的例子中使用一个不区分大小写的方法stripos。你可能应该用单引号将整个字符串括起来……另外,要小心引号。您可能想用单引号打开变量,这样您就可以在HTMLI中使用双引号了。我猜是时候再次提问了!这就是让人困惑的地方,如果你给出了你在你的机器上尝试过的实际代码,那么大多数人就不会浪费时间给你关于一个问题的评论和答案,这个问题只存在于你上面给出的示例代码中,它与你的实际代码不同。是的,我已经尝试过了。用户将通过表单输入此html代码,并将其存储在数据库中,稍后使用。因此,我想我必须提醒用户,html属性值必须是单引号。对吗?是的@Rama…你的html应该看起来像我的$string变量…如果你尝试这个代码,它是有效的…如果你将$search值更改为Zebra,它将不会被找到。。。
if(stripos($string,"YouTube") !== false)
<?php

    $string="<div class='container' data-id='Youtube' style='height:100%;width:100%;border:none;'><div class='inner'></div>";
    $search = "Youtube";
    if(strpos($string, $search) !== false)
    {
        echo "Found";
    }
    else
    {
        echo "Not found";
    }

    ?>
class CeiXML extends SimpleXMLElement
{

    public static function asHTML($xml)
    {
        $ele = dom_import_simplexml($xml);
        $dom = new DOMDocument('1.0', 'utf-8');
        $element = $dom->importNode($ele, true);
        $dom->appendChild($element);
        return $dom->saveHTML();
    }

}

$html = '
    <body>
        <div class="container" id="Youtube" style="height:100%;width:100%;border:none;"></div>
        <div class="inner"></div>
     </body>';
$xml = simplexml_load_string($html);
$tags = $xml->xpath('//body/div[@id="Youtube"]');

$string = CeiXML::asHTML($tags[0]);