2015-01-13 6 views
1

저는 프로그래머가 아니므로 도움이 필요합니다.PHP cURL - PARSE 서버 응답

나는 서버 응답을 반환하는 컬 기능이 - 성공 중 하나를 또는 오류 :

400 - 오류 응답 :

<?xml version="1.0" encoding="UTF-8"?><statusCode>400</statusCode> 
<errorMessage>In order to be contacted, please enter a valid phone number.</errorMessage> 

(200) - 성공 응답 :

<?xml version="1.0" encoding="UTF-8"?> 
<statusCode>200</statusCode> 

200 또는 400 StatusCode를 기반으로 응답의 유효성을 검사해야합니다.

상태가 200이면 정상적으로 진행하십시오.

상태가 400 (오류) 인 경우 오류 메시지 (모든 태그 제거)와 ECHO 오류 메시지 (위의 예에서 - )를 처리해야합니다. 유효한 전화 번호를 입력하십시오.)

어떻게하면됩니까? 도와주세요.

감사합니다.

CURL 코드 :

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_POST, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

$result = curl_exec($ch); 
curl_close($ch); 
+0

당신을 수 있다면 우리에게 당신의 PHP 코드를 보여 주시겠습니까? – Alex

+0

과'$ result'는 status가 400 인 경우에도 문자열입니까? – Alex

+0

'$ results'는 원시 서버 응답입니다 -이 원시 데이터를 구문 분석해야합니다 – Levchik

답변

3

나는 아직도 당신이 찾고있는 정확하게 확실하지 오전하지만 당신은 시도 할 수 있습니다 :

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_POST, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_HEADER, 1); 

$result = curl_exec($ch); 
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
if($httpCode == 400) { 
    /* Handle 400 here. */ 
    echo "Error: " . curl_error($ch); 
} 


$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE); 
$header = substr($result , 0, $header_size); 
$body = substr($result , $header_size); 
var_dump($header); 
var_dump($body); 

curl_close($ch); 

당신은 매우 환영합니다 질문

+0

서버 응답이 400 (오류)이면 사용자가 잘못된 정보를 제출했음을 의미합니다. 이 경우 오류 메시지를 추출해야하며 사용자에게이 오류 메시지를 ECHO로 보내야합니다. 따라서 200 또는 400 상태 코드가 있는지 확인해야합니다. 둘째, 400이 나온다면 에코 그냥 오류 메시지 – Levchik

+0

그래서 필요합니까? 내 변경 사항을 시도 했습니까? $ 헤더를 얻었습니까? – Alex

+0

코드를 사용하고'echo $ result' - ** string (207) "HTTP/1.0 200 OK 서버 : Apache/2.2.15 (CentOS)를 사용하면 얻을 수있는 것은 다음과 같습니다 : Accept-Encoding, User-Agent Content-Type : text/html; charset = UTF-8 날짜 : 2015 년 1 월 14 일 수요일 00:07:32 GMT 연결 : Keep-Alive 콘텐츠 길이 : 139 "문자열 (139)"2517111200 "HTTP/1.0 200 OK 서버 : Apache/2.2.15 (CentOS) Vary : Accept-Encoding, User-Agent Content-Type : text/html; charset = UTF-8 날짜 : 2015 년 1 월 14 일 수요일 00:07:32 GMT 연결 : Keep-Alive 콘텐츠 길이 : 139 2517111200 ** – Levchik