Get url on page using curl and get response status

sobat sekolah koding mohon bantuanya ya saya ada sebuah curl yang dibuat untuk mengambil sebuah Url pada link tersebut yang nantinya akan di tampilkan pada echo, nah kalau ada yang bisa bantu gimana cara get by spesific character / domain dan respons status httpnya 404 atau yg lainya, terimakasih.

<?php
$url = 'https://sekolahkoding.com';
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
$data = curl_exec($curl);
libxml_use_internal_errors(true);

$dom = new DOMDocument;
if($dom->loadHTML($data, LIBXML_NOWARNING)){
	echo '';
	foreach($dom->getElementsByTagName('a') as $link) {
		$href = $link->getAttribute('href');
		echo $href."<br>";
	}
	echo '</pre>';
}else{
	echo "Failed to load html.";

}
?>

avatar maszgalang
@maszgalang

297 Kontribusi 80 Poin

Dipost 4 tahun yang lalu

1 Jawaban:

Jawaban Terpilih

untu get url on page using Curl saya mengambil datanya dari curl dan di convert menggunakan function DOMDocument pada php

dan mengambilnya dengan $link-&gt;getAttribute('href');

dengan full code seperti ini :

<pre> &lt;?php $url = 'https://sekolahkoding.com'; $curl = curl_init($url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0); $data = curl_exec($curl); libxml_use_internal_errors(true);

$dom = new DOMDocument; if($dom-&gt;loadHTML($data, LIBXML_NOWARNING)){ echo '<pre>'; foreach($dom-&gt;getElementsByTagName('a') as $link) { $href = $link-&gt;getAttribute('href'); if (preg_match("^http?://[a-z.]+.sekolahkoding(.[a-z.]+)?/?$^", $href, $matches)) { echo array_shift($matches)."&lt;br&gt;"; } else {}

}
echo &#039;&lt;/pre&gt;&#039;;

}else{ echo "Failed to load html."; }

?&gt; </pre>

avatar maszgalang
@maszgalang

297 Kontribusi 80 Poin

Dipost 4 tahun yang lalu

Tanggapan

untuk forum, tulis jawabannya ya, lalu ditandai sebagai jawaban benar, agar orang berikutnya bisa belajar

sudah ya bang

Login untuk ikut Jawaban