2011-08-11 3 views
1

사용자가 링크를 저장하고 200x200 사진이 연결된 웹 앱을 구축 중입니다. 기본적으로 이미지 링크를 크롤링 한 다음 가장 큰 이미지의 미리보기 이미지를 반환하고 싶습니다 (사용자가 '공식'미리보기 이미지를 선택할 수 있음). 이 모든 것이 AJAX를 통해 이루어지기를 바랍니다. 내 질문은 : 이것을하는 가장 좋은 방법은 무엇입니까?이미지 용 맞춤 URL 크롤링 및 AJAX를 통한 크기 조정

현재 PHP Simple HTTP Parser을 사용하여 URL을 스캔하고 있습니다. 그 다음 모든 <img> 태그의 src 속성을 찾고 getimagesize을 사용하여 해당 URL에있는 이미지 크기를 저장하고 배열을 가장 큰 것부터 가장 작은 것으로 정렬 한 다음 AJAX를 통해 가장 큰 5 개의 가장 큰 이미지 URL을 클라이언트에 반환합니다. 그런 다음 클라이언트는 서버 측 ImageMagick 스크립트를 다운로드하여 축소판 이미지로 자르고 임시 폴더에 저장 한 다음이 미리보기 이미지의 URL을 반환하는 클라이언트마다 다른 AJAX 요청을 보냅니다. 브라우저.

물론 이것은 다소 복잡하고 실제로는 비효율적입니다. http://en.wikipedia.org에서이 프로세스를 실행하면 시작부터 끝까지 약 10-15 초가 걸립니다. 그러나 더 효율적인 방법이 있는지 확신하지 못합니다.

답변

0

첫 번째 패스에서 가장 큰 5 개의 이미지의 크기를 자동으로 조정하고 저장하고 클라이언트의 크기가 조정 된 이미지 URL이 포함 된 JSON 배열을 반환하는 스크립트로 하나의 AJAX 요청에서 수행했습니다.

+0

필요하지만 사용자가 그들 모두를 기다릴 필요가 없도록 비동기 적으로 이미지 크기를 조정 기대했다으로 많은 이미지로 만 다운로드 등의 약간 더 효율적이 방법 그가 어떤 것을보기 전에 끝내라. 그게 나쁜 생각이야? 한 이미지에 대해 하나의 요청 만 보내도록 스크립트를 수정하더라도 약 10 초가 걸립니다. – user541020

+0

그럼 문제는 PHP 스크립트가 될 것입니다. 병목 현상이 발생한 위치, 이미지 크기 조정 또는 HTML 구문 분석 또는 기타 다른 작업인지 여부를 확인하기 위해 시도해보고 프로파일 링하십시오. –

0

PHP의 DOMDocument 클래스를 사용하여 HTML 페이지를 잡고 파싱해야합니다.

getimagesize()은 각 이미지를 다운로드하고 처리해야한다는 것을 의미합니다. 아마도 원본 HTML 페이지로 다시 링크되는 img 태그를 배치하여 단순히 사용자에게 모든 이미지를 표시하는 것을 고려해야합니다. 당신은 태그를 사용하는 것을 좋아하지만 이것들의 크기를 정할 수 있습니다. 이렇게하면 사용자가 미리보기 이미지를 실제로 선택하기 전까지 단일 이미지를 다운로드/처리 할 필요가 없습니다.

0

관심이 있으신가요?/어떻게 해결하셨습니까?

결국 높이와 너비가 특정 크기를 초과 할 때까지 getimagesize()를 수행하는 이미지를 반복 한 다음 루프를 부러 뜨 렸습니다.

그것이 내가 원래 그랬어