我遇到了fpassthru函數的一個間歇性問題,在那裏我被給出以下錯誤,導致我不得不退出腳本。這是我得到的錯誤:PHP fpassthru/fopen調用導致「未能打開流:HTTP請求失敗!」在第一次嘗試
警告: 的fopen(HTTP://www.devcrm.lan/rw/category/ SESSION_ID = 29cc6ecc068bcc1a3862cadb8b9d09c5 & admin_sess_id = & G_ID = W & CAT_ID = 226 & D_ID = 0 & PDID = 0 &出售= 0 &頁= 0 &位置= &蛞蝓=婦女/銷售/ & AJAX = 0 & view_all = 0 &所有= 0 & c_code = RW & u_region = RW & C_ID = 1 & filter_cat_id [] = & filter_size [] = & filter_colour [] = & filter_price [] = & HTTP_USER_AGENT = Mozilla%2F5.0 +%28Windows + NT + 6.1%3B + WOW64%3B + rv%3A10.0.2%29 + Gecko%2F20100101 + Firefox%2F10.0.2 & user_http_host = www.devcrm.lan & user_mobile_config = 0) [function.fopen]:無法打開流:HTTP請求失敗!在 /var/www/vhosts/dev/devcrm/shop/index.php上線213
這是我的代碼,我現在用fpassthru的區域。不幸的是,由於遺留的代碼問題,我不得不使用這個函數(目前,無論如何)。在頁面之間移動時,它用於發送維護$ url_parameters。
$options = array(
'http' => array(
'max_redirects' => 5,
'timeout' => 1,
)
);
$context = stream_context_create($options);
$fpthruPath = URL . "category/" . $url_parameters;
$fp = fopen($fpthruPath, 'rb', false, $context);
if (false !== $fp) {
fpassthru($fp);
fclose($fp);
}
exit();
這個奇怪的事情是,如果我把我插入fopen的URL插入瀏覽器中,它就可以工作!另外,它似乎只是拋出這個錯誤第一次我去的頁面。這是一個Apache設置問題?
因此,請求回到同一臺服務器?可能是由需要相互排斥的會議引起的。 – diolemo 2012-03-22 16:41:44
@Yotaware是,正在向發出請求的同一臺服務器發出請求_from_。這是一個Apache設置? – crmpicco 2012-03-22 16:49:59
你使用PHP會話嗎?如果是,則無法加載同時共享同一會話的2個頁面。我建議改變代碼,這樣你就不必有額外的請求。也許你需要另一個關於這個問題。 – diolemo 2012-03-22 16:55:42