PHP 페이지를 열 때 fsockopen을 사용하면 코드가 제대로 작동하지만 몇 가지 다른 문제가 있습니다. 예 : a.php에서 b.php를 열면 "echo"가 b.php에서 작동하지 않으며 오류 메시지도 표시되지 않습니다 (이 두 가지는 공통 페이지에서 잘 작동 함). 이것은 디버그를 매우 어렵게 만듭니다. 페이지 b에서 출력을 얻는 방법?fsockopen을 사용하여 PHP 페이지를 열 때 출력을 얻는 방법은 무엇입니까?
고맙습니다. 여기 내 코드가있다. main.single_block.php.PS를 호출하기 위해 main.php를 사용합니다 : 위에서 언급 한 2 가지를 제외하고는 모든 것이 잘 작동합니다.
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
소켓의 출력을 읽지 않는 것 같습니다. 따라서 스크립트가 어떤 것을 울리면 아무 것도하지 않습니다. – Barmar
왜'file_get_contents'를 사용하지 않습니까? – Barmar