如何提取<;A>;在Laravel上使用GuzzleHttp标记

如何提取<;A>;在Laravel上使用GuzzleHttp标记,laravel,Laravel,嗨,我有一个laravel项目,它使用GuzzleHttp获取标记列表。我可以得到如下代码的身体 class GuzzleController extends Controller { public function Index(){ $client = new \GuzzleHttp\Client(); $response = $client->request('GET', 'http://google.com'); if($response->ge

嗨,我有一个laravel项目,它使用GuzzleHttp获取标记列表。我可以得到如下代码的身体

class GuzzleController extends Controller
{
public function Index(){
$client = new \GuzzleHttp\Client();        
    $response = $client->request('GET', 'http://google.com');
    if($response->getStatusCode() == 200){
        $body = $response->getBody();
        return $body;
    }else{
        return "fail";
    }
   }
}
但我不知道如何从响应中提取标记列表。谢谢你的回答。

你可以利用。例如:

use DOMDocument;

class GuzzleController extends Controller
{
    public function Index(){
        $client = new \GuzzleHttp\Client();        
        $response = $client->request('GET', 'http://google.com');

        $html = (string) $response->getBody(); 

        $dom = new DOMDocument;
        $dom->loadHTML($html);

        $links = $dom->getElementsByTagName('a');

        foreach ($links as $link){
            echo $link->nodeValue;
            echo $link->getAttribute('href');
        }
    }
}

这只是一个例子。理想情况下,您可能希望注入这些依赖项

我发现一个错误“App\Http\Controllers\DOMDocument”找不到您需要在顶部添加
使用DOMDocument
:)