두가 지 측면을이 설화, 첫 번째는 합법적인 휴식을 요청하는 방법을 생성하고 두 번째는이 제대로 반응하는 방법을 처리합니다.
라야 생성을 요청, 수있는 3 개의 기본 옵션입니다. 우선, 당신의 요청을 수동으로 생성할 수있습니다, php의 헤더 함수를 사용합니다. 이렇게하면 전체의 유연성을 생성을 요청했지만하지로는가 장 코딩입니다. 둘째, 중 하나를 사용할 수있습니다 php의 기본 -의 요청 함수가 같은 file_get_contents () 또는 파일 () / fopen (), fread (), fclose (). 이 방법을 많이에 대한 상세한 정보가 자동으로 처리하여 php, 그리고이 같은 응답을받을 수있습니다. 마지막으로, 사용자 정의 클래스를 사용할 수있습니다 api에서 문제와 함께 사용하도록 설계되었습니다. 일반적으로 이러한 수업을 필요로 아무 이상의 매개 변수 목록, 그리고는 돌아가 결과의 형태로 사용자 정의 개체 또는 클래스를 통해 액세스할 수 있도록합니다.
생성 요청을 수동으로뿐입니다 까다로운의 첫 번째 시간, 그 이후에는, 코드 - 재사용 및 modularity 차는 인치 개념의 기능이 생성 요청이 예쁜 기본입니다. 첫째, 모든 준비가 요청 매개 변수는 적절한 전송을 보장합니다. 다음으로,에 대한의 종점이 생성, 그리고 그 구성 요소 부품을 구문 분석 및 깨진 최대로합니다. 마지막으로,이 요청 자체는 소켓을 사용하여 전송 :
functioncallapi ($ 종점, $ devkey, $ 액션, $ 유형, $ 키워드)
(
$ 조치 = urlencode ($ 조치);
$ 유형 = urlencode ($ 종류);
$ 키워드 = urlencode ($ 키워드);
|
|
3의 전달 매개 변수가하십시오 인코딩합니다. 그들은 제대로 전달을 위해 꼭 필요한 사항입니다 놓고하십시오. 앞의 들어,이 검색에 "스타일"이 수행; 경우에 검색했던 대신 총 "스타일의 책,"의 공간은 필수 인코딩, 이로 인한 스타일 % 20book. 나는 방치 인코딩가 devkey 변수, 스팅는 발급 기관 차지했다으로 고려해 만들 때 사용하는 방법이 될 것입니다 그들입니다.
$하십시오 = $ 종점입니다. "? devkey = $ devkey & 액션 = $ 액션 및 유형 = $ 유형 및 키워드 = $ 키워드 ";
$ url_info = parse_url ($ :);
$ 호스트 = $ url_info [ '호스트'];
$ 경로 = $ url_info [ '경로']. "?" . $ url_info [ '검색어'];
$ 데이터 = "";
여기하십시오 자체가 생성을 포함하여 지금하십시오 - 인코딩 매개 변수가있습니다. 해야 할하십시오 이어령 아래로 그 구성 요소 부품에 사용하기 위해 원시 소켓 연결합니다.
$ fp = fsockopen ($ 호스트, 80);
fputs ($ fp, "게시물"입니다. $ 경로입니다. "http/1.1 \ r \ 해당");
fputs ($ fp, "호스트 :"입니다. 달러를 개최합니다. "\ r \ 해당");
fputs ($ fp, "동의 : * / * \ r \ 해당");
fputs ($ fp, "동의 - 문자 세트 : iso - 8859 - 1, utf - 8; 질문 = 0.7, *; 질문 = 0.7 \ r \ 해당 ");
fputs ($ fp, "연결 : 닫기 \ r \ 해당");
fputs ($ fp, "콘텐츠 - 종류 : 응용 프로그램 / x - www - 양식 - urlencoded \ r \ 해당");
fputs ($ fp, "콘텐츠 - 길이 :"입니다. strlen ($ 데이터)입니다. "\ r \ 해당 \ r \ 해당");
fputs ($ fp, "$ 데이터");
여기에있는 정보에 의해 생성 이전의 코드가 드디어 보냈다. 의 첫 번째 fputs () 라인을 보냅니다의 경로를 요청한 문서를, 두 번째 줄에 원하는 호스트를 지정합니다.
$ 반응 = "";
반면 (! feof ($ fp))
(
$ 응답 따른 결과 ($ fp, 128);
)
fclose ($ fp);
목록 ($ http_headers, $ http_content) = 폭발 ( "\ r \ 해당 \ r \ 해당", $ 응답);
돌아 $ http_content;
)
마지막으로 응답이 원본과 콘텐츠의 응답이 반환됩니다. 를 처리하는 방법을 배울 수있습니다 반응의 섹션을 다루는 것들 곧 측면이있습니다.
활용 php의 기본 -이 파일 함수,이 같은 과정을 완료할 수있습니다으로 훨씬 적은 코드 (비록하실 필요가 덜 유연성). 개념이 함수의 작동은 이전과 동일 하나를 제외한 모든 파일을 소켓 호출이 바뀜 하나의 호출을 file_get_contents () :
functioncallapiquick ($ 종점, $ devkey, $ 액션, $ 유형, $ 키워드)
(
$ 조치 = urlencode ($ 조치);
$ 유형 = urlencode ($ 종류);
$ 키워드 = urlencode ($ 키워드);
$하십시오 = $ 종점입니다. "? devkey = $ devkey & 액션 = $ 액션 및 유형 = $ 유형 및 키워드 = $ 키워드 ";
$ 반응 = @ file_get_contents ($ :);
돌아 $ 응답;
)
거기 정말되지 않은 정도로 설명이 들어있습니다. 인코딩하십시오 논의됐다 이전과 단일 file_get_contents () 호출을 처리 모두의 마술입니다. 앰퍼샌드 앞에는 함수 호출을 사용하여 탄압에서 발생할 수있는 어떠한 경고가 아닌 - 존재 파일이나 표시에 의해 처리되어야하기 때문에 이러한 호출 함수 (file_get_contents ()는 돌아 거짓이 인스턴스) . - php5 환경에 미리를 사용하셔야합니다 fopen ()을 대신 file_get_contents (). 일부 유연성이 손실과 함께이 요청 유형, 사용자 정의 헤더를 설정할 수 있기 때문에 더 이상 또는 선택적 헤더를하고있는가 요구될 수있습니다하거나 매우 바람직한 따라 그 api와 함께하는 상호입니다.
웹 서비스로의 인기도 높아, 그래서는 prevalence의 사전 수업을 처리하려면 더러운 작업이 실제로는 서버 상호 작용합니다. 서비스를하고자하는 경우에는 상호 작용이있는 클래스를 사용할 수있는, 그것은 분명 치가를 조사합니다. 에 액세스하는 클래스는 물론 수업 자체에 종속됩니다. 그것과 함께 제공해야한다 충분한 문서 및 액세스를 보인다 차이가 너무 많은 것을 않습니다 이전 예 - 단지와 조금 더 많은 오류 확인을 (를 희망). 뭔가를 염두에 두어야합니다 것은 많은 사전 모듈이 개발하고 제 3 자에 의해 유지하고있을 경우를 잠시 후에 같은 새로운 기능을가 출시 이후에 api에 대한 그들을 사용하여 클래스를 사용할 수있게됩니다.
어떻게 대처할 수있는 방법에 달려있다는 응답이 수신의 요청을 선택합니다. 생성되는 경우가 요청을 수동으로 또는와 함께 구호 중 하나의 php의 기본 -의 기능 (예 : file_get_contents ()) 또한 수동으로 처리할 필요가있다는 응답합니다. 34 - 정당 모듈을 사용한 경우, 그것은 그 자체를 검색 결과에 대한 인터페이스입니다.
응답을 제공하는 서버를해야 될 문서; 다행히도, xml했습니다 쉽게 분석할 수 있도록 설계되었습니다. 불행히도, 아무리 것은 설계를 수동으로 구문 분석을 아무것도 대개는 많은 재미 없다. php5가 함께 제공 simplexml, 7356 처리를 xml 문서에 간단합니다. 패키지 사용자는 필요가없습니다 simplexml; 그러나, 몇 개의 34 - 정당 모듈과 유사한 기능을 수행하는 등 minixml을 사용할 수있습니다.
를받은 후에는 응답을 붙이고 그것을 simplexml 개체이어야 간단합니다. 이전의 라이브러리를 들어 및 요청 함수를 사용하는 경우와 같이 결국이 :
$ 반응 = callapiquick ( 'http://library.example.com/api.php', '123 ','검색 ',
'도서', '스타일');
만일 ($ 응답)
(
$ xml = simplexml_load_string ($ 응답);
print_r ($ xml);
) 다른 사람
(
에코 "오류가 로딩 피드";
)
여기에 응답이없는 허위 (및 그래서 뭔, 아마도가 xml 여러분들이 바라는, 반환된). 이 성모 승천은 일반적으로 매우 유효합니다. 서버를 제공하는 api에서 오류가 발생하는 경우, 그것은 좋은 형식의 오류를 제공합니다. 가 simplexml_load_string () 함수는 응답이와 번갈아 그것으로 xml 개체에 직접 액세스할 수있는가를 논해야을 통해 등. 마지막으로, print_r () 함수는 사용자 - 친숙한 화면 출력에 결과를 보여주는 내용을 개체, 여기 :
simplexmlelement 객체
(
[요청] "=> simplexmlelement 객체
(
[requestid] "=> 123a456
[매개 변수] "=> simplexmlelement 객체
(
[주장] "=> 배열
(
[0] "=> simplexmlelement 객체
(
)
[1] "=> simplexmlelement 객체
(
)
[2] "=> simplexmlelement 객체
(
)
[3] "=> simplexmlelement 객체
(
)
)
)
)
[응답] "=> simplexmlelement 객체
(
[resultcount] "=> 2
[보기] "=> 배열
(
[0] "=> simplexmlelement 객체
(
[제목] "=> 스타일의 책은 제 1 권
[상태] "=> 아웃
[보류] "=> 3
[copiesonhand] "=> 2
[저자] "=> jon doe
)
[1] "=> simplexmlelement 객체
(
[제목] "=> 스타일의 도서 권이
[상태] "=>에서
[보류] "=> 0
[copiesonhand] "=> 1
[저자] "=> jon doe
)
)
)
)
살펴보고 그 출력, 몇 일을해야한다 즉시 분명한 :
simplexml 있지는 많은 정말 유용한 것들에 대한 여러분이 매우 빠르게합니다.
결과 개체를 표시하지 마십시오 속성 (내용은 인수 목록에서 매개 변수)입니다. 이 데이터는이있다면 바로이 보이지 않음으로 print_r ().
배열을 시작 개표시 0 (들처럼 영문 밖의 php, 번으로 뭔가를 염두에 두어야합니다).
이 항목 배열은 단지 구걸을 취급할로 foreach ()을 반복합니다.
베어링 모든 해당 정보를 염두에두고, 한 부부의 빠른 줄의 코드가를 탐색하는 데 필요한 모든 콘텐츠를 더욱 완벽합니다.
에코 "열쇠말 : ($ xml -> 요청 -> 매개 변수 -> 인수 [3] -> 값) <br>";여기는 검색 쿼리 및 결과를 카운트가 제시하고 다음을 통해 그 결과 자체가 반복됩니다. 의 구문을 확보 조금 weird 다룰 때 배열 (예 입증되면 검색 쿼리가 인쇄), 그래서 그것은 주로 지각을 반복하여 이들에 대한 명확합니다.
나머지는 효과적인 방법은 쿼리 원격 api 경우는이 요청에 대한 허용 부분의 거래를 취할 위치에 명확합니다. 나머지 검색어는 만드는 것만 큼이나 간단합니다하십시오 - 인코딩에 필요한 매개 변수를 지정하는 종점에 전화를합니다. 다루는 나머지 응답 수가 조금 까다롭다; 그러나, 활용하여 같은 도구 simplexml, 그것이 너무 수있습니다 완성을 빠르게합니다.
Online: 546 users browsing the articles directory
|
|