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 ਢੋਆ-ਢੁਆਈ ਪਛਾਣੋ।