0

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

例子

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

通常我们使用

if(strpos($string,"YouTube") !== false)

但是对于示例测试,我试图将 html 代码存储到 php 变量中

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

当我尝试在 $string 中查找youtube时,它​​总是返回 false(不存在)

谁能帮我在html代码中找到字符串谢谢

4

6 回答 6

3

在此处在字符串周围使用单引号

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

stripos用于区分大小写

if(stripos($string,"YouTube") !== false)
于 2013-05-14T14:00:27.860 回答
3

尝试:

if(strpos($string,"Youtube") !== false)

如果这是您的问题,请使用stripos()不区分大小写。

于 2013-05-14T13:59:38.813 回答
1

尝试if(strpos(strtolower($string),"youtube") !== false)

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

于 2013-05-14T14:02:26.500 回答
1

您可以像使用 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]);

希望对你有帮助

于 2013-05-14T14:11:06.973 回答
1

尝试用简单的引号包裹你的 html:

$string = '<div class="container" data-id="Youtube" style="height:100%;width:100%;border:none;">
    <div class="inner"></div>';
于 2013-05-14T13:59:28.330 回答
1

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

<?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";
    }

    ?>
于 2013-05-14T14:05:10.400 回答