PHP file_get_contentsతో ప్రాక్సీ ద్వారా HTTP URLను పొందడం
ఫార్వర్డ్ ప్రాక్సీ కోసం PHP యొక్క HTTP స్ట్రీమ్ ర్యాపర్ను కాన్ఫిగర్ చేయండి, అభ్యర్థన ఫార్మాటింగ్ మరియు స్ట్రీమ్ కాంటెక్స్ట్ల పరిమితులతో సహా.
PHP cURL లేకుండా సాధారణ HTTP అభ్యర్థన కోసం, HTTP స్ట్రీమ్ ర్యాపర్కు ప్రాక్సీ కాంటెక్స్ట్ను పంపండి:
$context = stream_context_create([
'http' => [
'proxy' => 'tcp://203.0.113.10:8080',
'request_fulluri' => true,
'timeout' => 10,
],
]);
$body = file_get_contents('http://example.com/', false, $context);డాక్యుమెంటేషన్ ఎండ్పాయింట్ను మీ HTTP ప్రాక్సీతో లేదా HTTP ప్రాక్సీ జాబితా నుండి అభ్యర్థితో భర్తీ చేయండి. HTTP కాంటెక్స్ట్ ఇంటర్ఫేస్ proxy కోసం TCP చిరునామాను ఆశిస్తుంది. request_fulluri=true పూర్తి గమ్యస్థాన URIని అభ్యర్థన వరుసలో ఉంచుతుంది, చాలా ఫార్వర్డ్ ప్రాక్సీలు అలా కోరుతాయి. టైమౌట్ ఆ ర్యాపర్ నియమాల ప్రకారం స్ట్రీమ్ ఆపరేషన్ను పరిమితం చేస్తుంది.
బాడీని పార్స్ చేయడానికి ముందు తిరిగి వచ్చిన విలువ మరియు హెచ్చరికను తనిఖీ చేయండి; విఫలమైన పఠనం మరియు విజయవంతమైన ఖాళీ ప్రతిస్పందనకు వేర్వేరు నిర్వహణ అవసరం. ఈ ఒక్క HTTP గమ్యస్థానం మరియు పరిమిత అభ్యర్థనతో నిర్ధారణను ప్రారంభించండి. HTTPS టన్నెలింగ్ మరియు TLS ప్రవర్తనను జోడిస్తుంది, అవి వాస్తవ ర్యాపర్/PHP వెర్షన్ కోసం తనిఖీ చేయాలి; ఈ ఉదాహరణ ఆ సామర్థ్యాలను నిర్ధారించదు.
ఈ కాల్లో కాంటెక్స్ట్ను పంపడం మార్గాన్ని కనిపించేలా ఉంచుతుంది మరియు సంబంధం లేని URL పఠనాలను మార్చకుండా నివారిస్తుంది. షేర్డ్ డిఫాల్ట్ కాంటెక్స్ట్, అప్లికేషన్ ఉద్దేశపూర్వకంగా ఆ విధానాన్ని కోరినప్పుడు మాత్రమే సరిపోతుంది; లైబ్రరీలు దాని విస్తృత పరిధిని పరిగణనలోకి తీసుకోవాలి.
ఇది PHP స్ట్రీమ్లను కాన్ఫిగర్ చేస్తుంది, స్వతంత్రంగా సృష్టించిన cURL హ్యాండిల్ను కాదు, బ్రౌజర్ను లేదా మరో ప్రాసెస్ను కాదు. ఒక ప్యాకేజీ ఈ కాంటెక్స్ట్ను ఉపయోగిస్తుందని ఆశించే ముందు దాని వాస్తవ HTTP రవాణాను గుర్తించండి.