如何使用卷发打印网页的某些部分



我正在尝试获取要在输出中显示的页面的某些部分。

<?php //right wing - up to ages 22 - potential range of 84 to 99 
$ch = curl_init("https://sofifa.com/players? 
aeh=22&ptl=84&pth=99&pn=27&pn=25&pn=23");// This will do
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$output = curl_exec($ch);
echo $output;
curl_close($ch); 
?> 

上面的代码打印了URL的整个HTML。我希望某些零件显示,例如玩家名称。下图显示了输出的整个页面。我试图仅显示播放器的名称,以及他们的评分,年龄和潜力。.

有什么办法可以做到这一点?页面的图像

您不使用卷曲来显示 parts of the page,而是使用它来获取页面。然后,一旦获得页面,就必须使用其他内容来解析您感兴趣的页面的一部分。该页面是用HTML编写的,请检查此答案,以获取php的HTML解析实用程序列表。p>至于如何从此特定页面解析特定信息,页面中只有1个 tbody标签,每个播放器都有自己的专用tr标签,这是该tbody标签的直接孩子,因此您可以迭代tbodytr孩子通过玩家迭代。这些tr标签中的每一个都有td的孩子,其中包含您想要的信息。第二td标签的文本内容具有其名称,第三个标签具有年龄,第四个评分,第五次具有潜力。

使用domdocument parser的示例:

<?php
declare(strict_types = 1);
$ch = curl_init ( "https://sofifa.com/players?aeh=22&ptl=84&pth=99&pn=27&pn=25&pn=23" );
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
$output = curl_exec ( $ch );
curl_close ( $ch );
$domd = @DOMDocument::loadHTML ( $output );
foreach ( $domd->getElementsByTagName ( "tbody" )->item ( 0 )->getElementsByTagName ( "tr" ) as $tr ) {
    $tds = $tr->getElementsByTagName ( "td" );
    $player = array (
            'name' => trim ( $tds->item ( 1 )->textContent ),
            'age' => trim ( $tds->item ( 2 )->textContent ),
            'rating' => trim ( $tds->item ( 3 )->textContent ),
            'potential' => trim ( $tds->item ( 4 )->textContent ) 
    );
    print_r ( $player );
}

最新更新