2014-06-05 3 views
0

다음 코드로 URL 배열에서 이미지를 복사하려고합니다. 문제는 마지막 사진 만 저장한다는 것입니다. 왜이 사진이 누구인지 알 수 있습니까? 또한배열 URL에서 PHP 복사 이미지

foreach($photos['data'] as $photo) 
{ 
    echo "Guardando $idFoto: $photo['source']\n"; 
    $idFoto++; 
    $fp = fopen('foto'.$idFoto.'.jpg', 'wb'); 
    $ch=curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $photo['source']); 
    //curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_FILE, $fp); 
    curl_setopt($ch, CURLOPT_HEADER, 0); 
    if(curl_exec($ch)===false) echo "Error: ".curl_error()."\n"; 
    fclose($fp); 
    curl_close($ch); 
} 

:

foreach($photos['data'] as $photo) 
{ 
    echo "guardando:"; 
    echo $photo['id']; 
    $idFoto++; 
    $fp = fopen('foto'.$idFoto.'.jpg', 'wb'); 
    curl_setopt($ch, CURLOPT_URL, $photo['source']); 
    curl_setopt($ch, CURLOPT_FILE, $fp); 
    curl_setopt($conn[$i], CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_HEADER, 0); 
    curl_exec($ch); 
    curl_close($ch); 
    fclose($fp); 
} 
+0

'$ idFoto'가 foreach 외부에서 선언 되었습니까? –

+2

'$ photos' 배열에 무엇이 있는지 모른 채로, 우리는 정말로 당신을 도울 수 없습니다. curl_setopts가 처리하는'$ ch'와'$ conn [$ i]'가 왜 필요한가? 단일 요청에서 이와 같은 핸들을 혼합 할 수 없습니다. –

+0

배열을 공유 할 수 있습니까? 당신이 제대로 반복하지 않는 것 같습니다. –

답변

1

나는 당신의 문제가 curl_setopt이 참 또는 거짓을 반환하는 경우도 확인할 수 있습니다 curl_close($ch)에,이 호출이 bucle 밖에 있어야한다 또는 어쩌면 당신은 각 사진에 대한 curl_init를 부를 수있는 생각 우리가 파일에 저장하고 curl_exec 반환을 지정하지 않기 때문에 CURLOPT_RETURNTRANSFER 참고가 필요하지 않습니다. 시험 좀 해줄 래?

+0

안녕하세요 zeroWorks 잘 actuaylly 나는 또한 cour_close 밖에서 시도, 그리고 같은 문제가 생겼어 ... – user3272931

+0

일부 변경됨 코드, 테스트 할 수 있니? – ZeroWorks

+0

동일한 문제를 일으키는 코드를 사용해보십시오. 페이스 북에서 이미지가있는 URL 목록을 얻습니다. 때로는 사진 10 장 중 3 장, 때로는 1 장만 저장하지만 항상 동일한 이미지가 저장됩니다. 나는 curl_exec ($ ch) === false) – user3272931