최근 직장에서 제3자에게 Java 버전의 인터페이스를 요청해야 했습니다. 처음에는 배열을 사용하여 매개변수를 전달했는데, 코드를 작성한 후 인터페이스를 사용할 수 없다는 것을 알았습니다. 전달된 매개변수가 비어 있다는 메시지가 항상 표시되었고, 그 후 문자열 매개변수 방법을 사용하여 인터페이스를 요청하기로 결정했습니다. 둘의 차이점을 연구하면서.
로컬 테스트 코드는 다음과 같습니다.
cur.php
<code><span><span><?php </span><span><span>function</span><span>curl_post</span><span>(<span>$url</span>, <span>$data</span>)</span>{</span><span>$ch</span> = curl_init(); curl_setopt(<span>$ch</span>, CURLOPT_URL, <span>$url</span>); curl_setopt(<span>$ch</span>, CURLOPT_RETURNTRANSFER, <span>1</span>); curl_setopt(<span>$ch</span>, CURLOPT_POST, <span>1</span>); curl_setopt(<span>$ch</span>, CURLOPT_POSTFIELDS, <span>$data</span>); <span>$output</span> = curl_exec(<span>$ch</span>); curl_close(<span>$ch</span>); <span>return</span><span>$output</span>; } <span>$params</span> = <span>array</span>(); <span>$params</span>[<span>'username'</span>] = <span>'ben'</span>; <span>$params</span>[<span>'password'</span>] = <span>'lalala'</span>; print_r(curl_post(<span>'http://localhost/curl/post.php'</span>, <span>$params</span>)); <span>$params</span> = <span>array</span>(); <span>$params</span>[<span>'username'</span>] = urlencode(<span>'ben'</span>); <span>$params</span>[<span>'password'</span>] = urlencode(<span>'lalala'</span>); <span>$paramsStr</span> = <span>"username={$params['username']}&password={$params['password']}"</span>; print_r(curl_post(<span>'http://localhost/curl/post.php'</span>, <span>$paramsStr</span>)); <span>?></span></span></span></code>
post.php
<code><span><?php </span><span>echo</span><span>"-------php://input-----<br>"</span>; var_dump(@file_get_contents(<span>'php://input'</span>)); <span>echo</span><span>"-------post-----<br>"</span>; var_dump(<span>$_POST</span>); <span>echo</span><span>"-------server-----<br>"</span>; var_dump(<span>$_SERVER</span>);</span></code>
실행 결과는 아래 스크린샷에서 확인할 수 있습니다:
저작권 안내: 이 글은 해당 블로거의 원본 글이므로 전재 시 출처와 작성자명을 표기해 주시기 바랍니다.
위 내용은 관련 내용을 포함하여 PHP에서 컬의 post 메소드를 사용하여 문자열과 배열 값을 전송하는 것의 차이점을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.