2013-01-22 3 views
-1

이 문제에 관해 꽤 많은 주제를 보았습니다. 그러나 나에게 정말 도움이되는 내용은 없습니다.PHP cURL이 느림

내 웹 사이트는 구축을 위해 약 20 회의 cURL을 실행합니다. 콘텐츠를 숨기고 크롤러가 콘텐츠를 볼 수 있기 때문에 저는 cURL을 좋아합니다. include를 사용할 때 문제가있어서 cURL을 대체해야했습니다. cURL에 매개 변수가있는 URL이로드 될 때마다 모든 URL은 로컬 php 파일로 연결됩니다.

평균적으로 웹 사이트를로드하는 데 4 초가 걸립니다.

속도를 높이는 방법이 있습니까?

+10

위해 포함 대체 컬 사용 ?? 방법? 왜? – Tchoupi

+0

http://stackoverflow.com/questions/2620272/how-can-i-speed-up-curl-tasks – user1929959

+0

"포함을 사용하는 데 문제가 있습니다."...이 문제는 무엇입니까? – ceejayoz

답변

1

표준 PHP 포함을 사용하는 대신 cURL을 사용하여 문제가 발생할 수 있습니다. 다음은 요약입니다.

대기열 - 코드에서 20 회의 요청을 실행하면 요청할 때마다 페이지 생성이 지연됩니다. 요청은 대기 및로드와 관련하여 자체 오버 헤드가 있습니다.

데이터베이스 - 데이터베이스에 대한 연결을 열고 모든 데이터를 가져 와서 연결을 닫는 대신 페이지에 데이터베이스 액세스가 필요한지 여부에 따라 연결을 약 20 회 열어야합니다. 연결을 만들고 해제하면 시간이 오래 걸립니다.

나는 당신이 cURL로 무엇을 하든지 당신이 포함 할 수 있다고 맹세합니다. PHP에 파일을 포함 시키면 현재 범위에있는 모든 변수에 액세스 할 수 있습니다. 따라서 쿼리 문자열로 전달할 필요가 없으므로 두 번째 파일에서 파일을 사용할 수 있습니다.

example.php

$example = 'This is an example'; 
include_once('other.php'); 

other.php

echo $example; // writes: This is an example 
+0

데이터베이스에 대한 좋은 지적. 실제로 그것은 시간의 데이터베이스를 많이 여는 중입니다. 내 문제 정보. $ ($ _GET [ 'X'] = 1; 예를 들어 포함하기 전에) 매개 변수를 보내고 있음을 명심하십시오. 나는 또한 ob_get_contents 함수를 시도했다. 필자는 스크립트가 특정 루프를 빠져 나가는 이상한 버그를 가지고 있습니다. 어쩌면 많은 $ _GET 변경 사항이 마음에 들지 않지만 그것은 나에게 수수께끼 일 것입니다. cURL은 주어진 모든 것을 얻고 있지만 느립니다. 감사합니다. – Lahey

+0

매개 변수를 사용하려면 클래스와 함수를 사용하십시오. – Populus

관련 문제