이미지 출력관련 질문드립니다.
본문
https://www.instagram.com/p/fA9uwTtkSN/media/?size=l
위 주소를 아래와 같이 페이지 상에서 출력하면 이미지 배꼽으로 나옵니다.
<img src="https://www.instagram.com/p/fA9uwTtkSN/media/?size=l">
그런데 브라우저 주소창에 https://www.instagram.com/p/fA9uwTtkSN/media/?size=l 를 입력후
엔터를 누르면 주소가 아래와 같이 바뀌면서 이미지가 나옵니다.
이경우, php 페이지 상에서 이미지로 출력을 하려면 어떻게 해야할까요?
많은 관심부탁드립니다 감사합니다.
답변 5
이미지 불펌 방지를 위해 리퍼러 제크해서 타사이트에서 요청오는 거면 차단시킨 듯 합니다.
<?php
$url = 'https://www.instagram.com/p/fA9uwTtkSN/media/';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
$html = curl_exec($ch);
$redirectedUrl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
curl_close($ch);
// echo "Original URL: " . $url . "\n";
// echo "Redirected URL: " . $redirectedUrl . "\n";
echo "<img src='".$redirectedUrl."'>";
?>
여기까지 성공했습니다. 이렇게 하니까 아래와 같이 리다이렉트되는 실제 URL 까지도 출력이 가능합니다. 만, 여전히 이미지는 보여지지가않네요.
<?php
header('Content-Type: image/jpeg');
$url = 'https://www.instagram.com/p/fA9uwTtkSN/media/';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$html = curl_exec($ch);
// $redirectedUrl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
curl_close($ch);
// echo "Original URL: " . $url . "\n";
// echo "Redirected URL: " . $redirectedUrl . "\n";
// echo "<img src='".$redirectedUrl."'>";
echo $html;
?>