PHP nasıl Raw HTTP Packet Gönder

3 Cevap php

Ben bir Web sunucusu için bir ham http paket göndermek ve yanıt almak istiyorsanız ama bunu yapmak için bir çıkış yolu bulamıyor. im soketli inexperianced ve i bulmak her bağlantı UDP paketleri göndermek için yuva kullanır. Herhangi bir yardım büyük olurdu.

3 Cevap

Eğer yapmak istediğiniz tüm bir GET isteği gerçekleştirmek ve yanıt vücut alıyorsanız, dosya fonksiyonlarının en adresler kullanarak desteklemez:

<?php

$html = file_get_contents('http://google.com');

?>

<?php

$fh = fopen('http://google.com', 'r');
while (!feof($fh)) {
    $html .= fread($fh);
}
fclose($fh);

?>

Basit fazla bükülmeyi (php içine derlemek zorunda) kullanım alır. Kıvrılma ile POST ve HEAD istekleri yanı sıra ayarlanmış çeşitli başlıkları yapabilirsiniz.

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://google.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$html = curl_exec($ch);

?>

cURL istemci tarafı HTTP uygulanması daha kolaydır. Yapmanız gereken birkaç seçenek ayarlanır ve cURL kalan işler.

$curl = curl_init($URL);
curl_setopt_array($curl,
    array(
        CURLOPT_USERAGENT => 'Mozilla/5.0 (PLAYSTATION 3; 2.00)',
        CURLOPT_HTTPAUTH => CURLAUTH_ANY,
        CURLOPT_USERPWD => 'User:Password',
        CURLOPT_RETURNTRANSFER => True,
        CURLOPT_FOLLOWLOCATION => True
        // set CURLOPT_HEADER to True if you want headers in the result.
    )
);
$result = curl_exec($curl);

Eğer cURL desteklemeyen bir başlığı ayarlamak gerekiyorsa, ek başlıklar bir dizi geçen CURLOPT_HTTPHEADER seçeneğini kullanın. Eğer başlıklarını ayrıştırmak için gerekiyorsa bir geri arama için CURLOPT_HEADERFUNCTION ayarlayın. curl_setopt Daha fazla seçenek için için dokümanlar okuyun.