Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-从HTML数组子项中提取若干信息_Php_Arrays - Fatal编程技术网

PHP-从HTML数组子项中提取若干信息

PHP-从HTML数组子项中提取若干信息,php,arrays,Php,Arrays,我得到了一个名为$topPaid的数组: Array ( [0] => <li> <a class="livelink" href="#%21/content/5664"> <span title="Relief Terrain Pack v3.2" class="title">Relief Terrain Pack v3.2</span> <br><s

我得到了一个名为$topPaid的数组:

Array
(
    [0] => <li>
        <a class="livelink" href="#%21/content/5664">
            <span title="Relief Terrain Pack v3.2" class="title">Relief Terrain Pack v3.2</span>
            <br><small>
                    Editor Extensions/Terrain
            </small>
            <br></a>
    </li>
    [1] => <li>
        <a class="livelink" href="#%21/content/368">
            <span title="Playmaker" class="title">Playmaker</span>
            <br><small>
                    Editor Extensions/Visual Scripting
            </small>
            <br></a>
    </li>
    [2] => <li>
        <a class="livelink" href="#%21/content/4243">
            <span title="Amplify Motion" class="title">Amplify Motion</span>
            <br><small>
                    Scripting/Effects
            </small>
            <br></a>
    </li>
    [3] => <li>
        <a class="livelink" href="#%21/content/16899">
            <span title="Skele: Character Animation Tools" class="title">Skele: Character Animation Tools</span>
            <br><small>
                    Editor Extensions/Modeling
            </small>
            <br></a>
    </li>
    [4] => <li>
        <a class="livelink" href="#%21/content/19245">
            <span title="SnazzyGrid" class="title">SnazzyGrid</span>
            <br><small>
                    Editor Extensions/Utilities
            </small>
            <br></a>
    </li>
    [5] => <li>
        <a class="livelink" href="#%21/content/19352">
            <span title="Zones, Fields, and Shields" class="title">Zones, Fields, and Shields</span>
            <br><small>
                    Shaders
            </small>
            <br></a>
    </li>
    [6] => <li>
        <a class="livelink" href="#%21/content/18920">
            <span title="PlayerPrefs Elite" class="title">PlayerPrefs Elite</span>
            <br><small>
                    Scripting/Integration
            </small>
            <br></a>
    </li>
    [7] => <li>
        <a class="livelink" href="#%21/content/18358">
            <span title="Bolt" class="title">Bolt</span>
            <br><small>
                    Scripting/Network
            </small>
            <br></a>
    </li>
    [8] => <li>
        <a class="livelink" href="#%21/content/13198">
            <span title="BIG Environment Pack Vol.3" class="title">BIG Environment Pack Vol.3</span>
            <br><small>
                    3D Models/Environments
            </small>
            <br></a>
    </li>
    [9] => <li>
        <a class="livelink" href="#%21/content/23930">
            <span title="VertExmotion" class="title">VertExmotion</span>
            <br><small>
                    Editor Extensions/Animation
            </small>
            <br></a>
    </li>
)
但我总是会遇到这样的错误:我试图访问一个非成员对象。我应该逐行解析每个数组元素并解析它的行内容,还是用什么更好的方法来获取信息


Greetz,

我没有尝试您的代码,但在我看来,错误是一致的:

$xml = simplexml_load_string($key);
应该是:

$xml = simplexml_load_string($value);

如果传递给函数的文本不是有效的XML,

应该是

通过检查以下行来解决:

foreach($topPaid as $key => $value)
{
    foreach(preg_split("/((\r?\n)|(\r\n?))/", $value) as $line)
    {
        $difline = strip_tags($line);
        if(strpos($line, '<a class="livelink" href="#%21/') !== false)
        {
            $link = explode('href="', $line);
            $link = substr($link[1], 0, -2);
            // https://www.assetstore.unity3d.com/en/#!/content/4243
            $link = str_replace('#%21', 'https://www.assetstore.unity3d.com/en/#!', $link);
            //print_r($link);
        }
        else if(strpos($line, '<span title') !== false)
        {
            $title = explode('title=', $line);
            $title = explode('class=', $title[1]);
            $title = $title[0];
            //print_r($title);
        }
        else if($difline == $line)
        {
            $type = $line;
            //print_r($type);
        }
    }
}
foreach($topPaid作为$key=>$value)
{
foreach(preg_split(“/(\r?\n)|(\r\n?)/”,$value)作为$line)
{
$difline=带标签($line);

如果(strpos($line,'仍然得到“对非对象上的成员函数xpath()的调用”。.function
simplexml\u load\u string
在失败时返回
FALSE
。是否可以检查输入(
$value
)?
标记应为有效的XML格式。
foreach($topPaid as $key => $value)
{
    foreach(preg_split("/((\r?\n)|(\r\n?))/", $value) as $line)
    {
        $difline = strip_tags($line);
        if(strpos($line, '<a class="livelink" href="#%21/') !== false)
        {
            $link = explode('href="', $line);
            $link = substr($link[1], 0, -2);
            // https://www.assetstore.unity3d.com/en/#!/content/4243
            $link = str_replace('#%21', 'https://www.assetstore.unity3d.com/en/#!', $link);
            //print_r($link);
        }
        else if(strpos($line, '<span title') !== false)
        {
            $title = explode('title=', $line);
            $title = explode('class=', $title[1]);
            $title = $title[0];
            //print_r($title);
        }
        else if($difline == $line)
        {
            $type = $line;
            //print_r($type);
        }
    }
}