2011-09-03 3 views
1

일종의 라이센스 검사 스크립트를 만들려고합니다. 그러나 모든 호스트가 curl_exec을 허용하지는 않으므로 콜백을 할 수있는 대체 방법이 있다면 알고 싶습니다. 당신은 curl_multi_exec을 전환 할 수curl_exec() 대신 사용할 수있는 방법은 무엇입니까?

curl_setopt($ch, CURLOPT_URL, $url."/my_script.php"); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $info); 
curl_setopt($ch, CURLOPT_TIMEOUT, 30); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_exec($ch); 

답변

2

당신은 단순히 URL을 file_get_contents()를 사용할 수 있습니다

이것은 단순한 INI 옵션 allow_url_fopen로하지만,하지 않을 수 있습니다
file_get_contents('http://www.google.com'); 

.

또는 대부분의 시스템에서 사용할 수있는 fsockopen()을 사용할 수 있습니다.

fsockopen()을 사용하면 HTTP 서버에 소켓을 연 다음 표준 fwrite()fread()을 사용하여 통신 할 수 있습니다. 단점은 HTTP 요청 헤더를 직접 작성해야하며 HTTP 응답 헤더도 구문 분석해야한다는 것입니다. (ini_get('allow_url_fopen')이 긍정적 인 결과를 반환하는 경우) http://fr2.php.net/fsockopen

나의 제안은 기본 옵션으로 컬을 사용하는 것입니다, file_get_contents() 보조로하고 fsockopen() 등과 같은 솔루션을 구현 : 당신은 PHP 매뉴얼에 fsockopen() 보면, 당신은 많은 예를 볼 수 있습니다 fallback.

+0

건배! 나는 그것이 내가 원하는 것을 원할 수 있는지 알 것이다. :). – MrE

+0

필자가 작성한 코드를 살펴 보자. http://pastie.org/2476499 꽤 오래되었다. (파인더는 2007 년으로 거슬러 올라간다.) 예를 들어 @을 제거하고 다른 오류보고 방법을 사용하여 조정할 수있다. , 예외 (2007 년, 나를 포함한 모두 - 다른 방식으로 PHP 코드를 작성하는 데 사용됨). 하지만 당신은 아이디어를 얻을 수 있습니다 ... HTTP 헤더를 작성하는 것은 어렵지 않습니다. 결국 : http://en.wikipedia.org/wiki/HTTP#Example_session – Qualcuno

+1

대단히 감사합니다! 고맙다. :) – MrE

2

하지만 아마뿐만 아니라 비활성화되어 :

이 내가 곱슬 곱슬와 함께 할 방법이다.

또는 HTTP stream wrapper을 사용하십시오. POST 요청을 구성하려면 직접 HTTP context을 설정해야합니다.

+0

HTTP 스트림 래퍼 또는 HTTP 컨텍스트에 대해 알지 못합니다. 일반적으로 일반 공유 호스팅 공급자와 같이 사용할 수 있습니까? 빠른 답변 감사합니다! – MrE

+0

@MrE 기본적으로 사용하도록 설정되어 있으므로 호스팅 제공 업체에서 사용할 수 있어야합니다. 그러나 보안상의 이유로 컬을 사용하지 못하게하는 편집증 호스팅 제공 업체는 스트림 래퍼도 거의 사용 중지 할 것임을 명심하십시오. – phihag

+0

도움 주셔서 대단히 감사합니다. :)! – MrE

관련 문제