當我使用fsockopen打開一個php頁面時,代碼工作正常,但還有一些其他問題。例如:如果我在a.php中打開b.php,「echo」在b.php中將不起作用,也不會出現錯誤消息(這兩種情況在普通頁面上正常工作)。這使調試非常困難。如何獲得頁面b中的輸出?如何獲得輸出,當使用fsockopen打開一個PHP頁面?
非常感謝!這是我的代碼。我使用main.php來調用main_single_block.php.PS:除了上面提到的兩件事外,所有的事情都可以正常工作。
main.php:
$template_url_arr_s = serialize($template_url_arr);
$fp = fsockopen($sochost, intval($socportno), $errno, $errstr, intval($soctimeout));
if (!$fp) {
echo "$errstr ($errno) ,open sock erro.<br/>\n";
}
$typename= urlencode($typename);//do url encode (if not, ' 'can not be handled right)
$template_url_arr_s= urlencode($template_url_arr_s);
*$out = "GET /main/main_single_block.php?typename=" . $typename . "&templateurlarr=" . $template_url_arr_s . "\r\n";*
fputs($fp, $out);
fclose($fp);
你打開HTTP端口嗎? PHP腳本只有在通過網絡服務器訪問時纔會執行,而不是普通文件。 – Barmar 2014-10-03 04:43:32
您似乎沒有讀取套接字的輸出。所以如果劇本回應了一些東西,你就不會做任何事情。 – Barmar 2014-10-03 04:45:17
爲什麼不使用'file_get_contents'? – Barmar 2014-10-03 04:46:29