Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.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 cURL从另一个页面显示div_Php_Curl - Fatal编程技术网

使用PHP cURL从另一个页面显示div

使用PHP cURL从另一个页面显示div,php,curl,Php,Curl,因此,我试图显示另一个页面(例如Kinguin)中的一个div,如标题PHP cURL中所述。现在我已经找到了一种方法,可以用一个图像(简单的YT教程)来实现这一点,但是我不能用一个绑定了类的div来实现这一点。 一些支持页面似乎将我引向了正确的方向,但过了一段时间,它似乎变得复杂起来 我的方向是正确的还是应该使用AJAX作为例子 <?php $curl = curl_init(); $search_string = "gta5"; $ur

因此,我试图显示另一个页面(例如Kinguin)中的一个div,如标题PHP cURL中所述。现在我已经找到了一种方法,可以用一个图像(简单的YT教程)来实现这一点,但是我不能用一个绑定了类的div来实现这一点。 一些支持页面似乎将我引向了正确的方向,但过了一段时间,它似乎变得复杂起来

我的方向是正确的还是应该使用AJAX作为例子

<?php
        $curl = curl_init();

        $search_string = "gta5";
        $url = "https://www.kinguin.net/catalogsearch/result/index/?q=$search_string";

        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($curl, CURLOPT_COOKIE,true);  //Verify cookies


        $result = curl_exec($curl);



        preg_match_all("!https://cdns.kinguin.net/media/catalog/category/cache/1/image/173x118/9df78eab33525d08d6e5fb8d27136e95/gta5_12.jpg!", $result,$matches);


        $images = array_values(array_unique($matches[0]));

        for ($i = 0; $i < count ($images); $i++){
            echo "<div style='float: left; margin: 10 0 0 0; '> ";
            echo "<img src='$images[$i]'><br />";
            echo "</div>";
        }

        curl_close($curl);


        ?>

要解析div元素,可以使用解析器。
那里有很多图书馆。
一个是。具有以下选择器功能:

// Find all images 
foreach($html->find('img') as $element)  echo $element->src . '<br>';

// Find all links 
foreach($html->find('a') as $element) echo $element->href . '<br>';

这里的解决方案实际上取决于您想要下拉的内容
preg\u match\u all
是一个使用正则表达式的字符串匹配函数。您可以找到它的文档,您可以使用浏览器应用程序测试正则表达式,例如调整后的
preg\u match\u all
调用可能如下所示:

preg_match_all('@<div class="some-class">[^<]+</div>@', $result, $matches);

preg_match_all('@[^.战术点-忍不住想看到答案正在测试,输出是否有特殊问题?
preg_match_all('@<div class="some-class">[^<]+</div>@', $result, $matches);
$dom = new DOMDocument(); $dom->loadHTML($result); 
foreach ($dom->getElementsByTagName('div') as $div) {
    $class =  $item->getAttribute("class");
    if (strpos($class, 'some-class') !== false) {
        echo "<div>";
        echo $div->nodeValue;
        echo "</div>";
    } 
}