다음 코드는 내 서버 중 하나에 살고 : 대부분의 시간 문자열 연결이 실패 할 수있는 원인은 무엇입니까?
$curl = curl_init();
$url = "http://www.example.com/controller/action?param1=" . $value1 . "¶m2=" . $value2;
$url = str_replace(" ","%20",$url);
curl_setopt_array($curl, array(
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => $url
));
$result = curl_exec($curl);
, 이것은 잘 작동합니다. 그러나 example.com의 액세스 로그에서 오늘 두 번째 매개 변수가 완전히 누락 된 항목을 발견했습니다. 값뿐만 아니라 전체 매개 변수. 그래서 로그 라인은
GET/컨트롤러/액션입니까? PARAM1 = 36838242 HTTP/1.1
내가 쿼리 문자열에서 누락 된 완전히 될 param2
을 일으킬 것입니다 무슨 어떤 조건을 생각할 수 없다. 그러나 그것은 분명히 일어났습니다. 그리고이 컬 호출을 만드는 코드 블록이 하나 밖에 없으므로 이것은 분명히 액세스 로그 항목을 담당하는 코드입니다.
내 질문에 어떤 조건에서 연결이 실패 할 수 있지만 나머지 코드는 계속 실행 중입니까? 코드가 99 %의 시간 동안 작동하기 때문에 나는 그것을 우연히 쓰기를 좋아할 것이지만 이것은 정말로 나를 괴롭 히고 있습니다.
아마도 '$ value1'에 0 바이트가 붙어있을 수 있습니다. –
문자열 연결이 "실패"할 수 없습니다. 당신의'$ value'는 URL을 끝내는 (또는 최소한 서버가 볼 수있는 부분) 것을 포함하고 있습니다. 마지막으로, 요청이 귀하의 코드에서 전혀 나오지 않았을 수도 있습니다 (서버가 인터넷과 같은 큰 네트워크의 다른 클라이언트에 노출 된 경우). – CBroe
@CBroe 로그 항목의 IP 주소가 다른 서버와 일치했습니다. 게다가, 나는 어쨌든 그 요청을하는 유일한 사람입니다. –