Ben farklı bir sunucuya (örn. "http://wwww.externalserver.com/login") bir URL'ye bir XML POST-Talebiniz yapıyor bir sayfa var. Bu sunucu yanıt olarak düz HTML gönderiyor. Sorun tarayıcı ist gösterilen URL hala benim yerel sunucuda, en "http://localhost/callExternal.php" diyelim olmasıdır. Dış URL başka bir sayfaya (302) yönlendiriliyor.
Bu hedef sayfanın döndü HTML göreli görüntü yolları içerir. Çünkü uymayan URL bu göreli yollar geçerli değildir ve bu nedenle hiçbir görüntü veya biçembentlerinin yüklenir.
Bu göreli yollar (HTML ayrıştırma ve yolları değiştirmeden) çalışacak şekilde CURL (veya PHP4 çalışan herhangi başka bir çözüm) konumunu değiştirme yapmak için bir yolu var mı?
Bu arama script "http://localhost/callExternal.php" dir:
$data = '<?xml version="1.0" encoding="UTF-8"?><Some XML></Some XML>';
$res = curl_init('http://wwww.externalserver.com/login');
curl_setopt($res, CURLOPT_POST, 1);
curl_setopt($res, CURLOPT_HEADER, 0);
curl_setopt($res, CURLOPT_POSTFIELDS, $data);
curl_setopt($res, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($res, CURLOPT_HTTPHEADER, array("Content-Type: text/xml; charset=UTF-8"));
curl_exec($res);
curl_close($res);
Ve bu bağlantı, örneğin ile döndürülen bir HTML pasajı:
<html>
<head>
<link rel="stylesheet" type="text/css" media="print" href="/css/screen.css" />
</head>
<body>test</body>
</html>
Ve URL hala "http://localhost/callExternal.php" gösteriyor, yani Stil için bağlantı Açıkçası çalışmıyor.