PHP'de bir sayfayı proxy etmenin en hızlı ve en kolay yolunu arıyorum. Kullanıcının yönlendirilmesini istemiyorum, sadece betiğimin aynı içeriği, yanıt kodunu ve başlıklarını başka bir uzak URL olarak döndürmesini istiyorum.PHP'de başka bir sayfayı nasıl proxy edinirsiniz
cevap
echo file_get_contents('proxypage');
Bu işe yarar mı?
DÜZENLEME:
İlk cevap biraz kısa oldu ve istediğiniz gibi o başlıklarını idare edecek inanmıyorum.
da yapabilirsiniz Ancak:
function get_proxy_site_page($url)
{
$options = [
CURLOPT_RETURNTRANSFER => true, // return web page
CURLOPT_HEADER => true, // return headers
CURLOPT_FOLLOWLOCATION => true, // follow redirects
CURLOPT_ENCODING => "", // handle all encodings
CURLOPT_AUTOREFERER => true, // set referer on redirect
CURLOPT_CONNECTTIMEOUT => 120, // timeout on connect
CURLOPT_TIMEOUT => 120, // timeout on response
CURLOPT_MAXREDIRS => 10, // stop after 10 redirects
];
$ch = curl_init($url);
curl_setopt_array($ch, $options);
$remoteSite = curl_exec($ch);
$header = curl_getinfo($ch);
curl_close($ch);
$header['content'] = $remoteSite;
return $header;
}
Bu size uzak sayfadaki çok sayıda bilgi içeren bir dizi döndürür. $header['content']
, web sitesinin içeriğine sahip olacak ve üstbilgiler, $header[header_size]
, bu üstbilginin uzunluğunu içerecek, böylece bunları kaldırmak için substr
'u kullanabilirsiniz.
Ardından, sayfayı proxy için echo
ve header
kullanmanız yeterlidir.
yanıt kodları ve içerik türlerini de kopyalamak ister misiniz? –
her türlü kullanımı değil, kıvrılma. Şu anda CURLOPT_RETURNTRANSFER için – dynamic
Bir sonraki sayfanın html dosyasını kıvrılarak alabilir ve ardından yanıtı yankılayabilirsiniz.
Bu işlevselliği elde etmek için PHP cURL işlevleri kullanabilirsiniz:
// create a new cURL resource
$ch = curl_init();
// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, 'http://www.example.com/');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// grab URL and pass it to the browser
$urlContent = curl_exec($ch);
bu noktadan itibaren, http://www.php.net/curl-getinfo kullanarak yanıt başlık bilgilerini kapmak istiyorum. (Yakalayabileceğiniz birçok değer vardır, hepsi belgelerde listelenmiştir).
// Check if any error occured
if(!curl_errno($ch))
{
$info = curl_getinfo($ch);
header('Content-Type: '.$info['content_type']);
echo $urlContent;
}
CURL tutamacını kapattığınızdan emin olun.
// close cURL resource, and free up system resources
curl_close($ch);
Typo uygulamasında sux. Ancak bu, HTTP başlıklarını yanıtın gövdesinde yazdırıyor gibi görünüyor. –
Başlıkların çıkmasını önlemek için CURLOPT_HEADER değerini 0 (kodun düzenini yaptım) olarak değiştirmeyi deneyin. – forgueam
- 1. Başka bir Chrome Uzantısı aynı sayfayı geçersiz kıldığında nasıl algılanır
- 2. Bir alan adı başka bir alanda barındırılan bir sayfayı getiriyor
- 3. Başka bir proxy'nin arkasından JMeter için proxy nasıl ayarlanır?
- 4. Ip adresini uzak bir makineden nasıl edinirsiniz?
- 5. PHP'de 'referer' başlığını nasıl edinirsiniz?
- 6. Başka bir şeymiş gibi otomatik tamamlayacak bir bash işlevini nasıl edinirsiniz?
- 7. HttpWebRequest için Proxy Proxy
- 8. Proxy sınıfını proxy sınıfından nasıl alabilirim?
- 9. Bir TextView içinde bir ClickableSpan'ın koordinatını nasıl edinirsiniz?
- 10. Proxy
- 11. Symfony2'deki webtestcases içinde EntityManager'ı nasıl edinirsiniz
- 12. Java kullanarak ethernet adresini nasıl edinirsiniz?
- 13. PHP'de strtottime haftasının gününü nasıl edinirsiniz?
- 14. iPython’u Console2’de çalıştırmak için nasıl edinirsiniz?
- 15. Güncel dizini kompakt çerçevede nasıl edinirsiniz?
- 16. Sayfayı nasıl programlayabilirim?
- 17. proxy
- 18. Bir bağımlılık özelliğinin varsayılan ciltleme modunu nasıl edinirsiniz?
- 19. C# 'de bir İşlem' ana pencere tanıtıcısını nasıl edinirsiniz?
- 20. Varsayılan görünüm kümesine sahip bir mutlak_dosya_adı klasörünü nasıl edinirsiniz?
- 21. Bir proxy sunucusunun arkasında çalışan selenyum
- 22. Sayfayı bir WP7 uygulamasında değiştirin?
- 23. Spreadsheet'den belirli bir sayfayı yükleme
- 24. iframe içindeki sayfayı başka bir yere nasıl yönlendirilir, ancak iframe içinde kalmalıyız
- 25. RedirectToAction sayfayı yenilemiyor sayfa
- 26. request.user bir proxy auth.User sınıfına nasıl dönüştürülür?
- 27. UIAppearance gibi bir proxy protokolü nasıl oluşturulur
- 28. Apache için nasıl bir proxy kurulur Karaf
- 29. Verileri göndererek sayfayı nasıl yenileyebilirim?
- 30. Kimlik Doğrulama ile bir Apache Proxy Kurmak
Daha fazla ayrıntıya sahip olabilir miyiz, uzak URL'nin erişileceği gerçek yanıt kodu 302 ise ne olacak? Komut dosyası yönlendirme işlemine mi geçmeli yoksa yeni bir URL ile durum kodunu mı geçirmeli? – dader
İdeal olarak, orijinal URL'ye gittiğiniz gibi% 100 aynı bir şey döndürür. Projem için bu kadar çok ayrıntıya ihtiyacım yok ve file_get_contents işini yapıyor gibi görünüyor. Ama yine de ilginç bir soru olduğunu düşünüyorum –