Я пытаюсь создать функцию в PHP, которая позволит мне вводить практически любой URL, а затем запускать некоторые функции на нем так же, как если бы пользователь загружал на мой сервер.Поэтому я изменю размеры и сделаю несколько миниатюр, но мне нужна помощь, просто приведя изображение в состояние, в котором я могу запустить другие свои коды на нем.Другой пользователь на этом сайте помог мне начать работу с ImageCreateFromString () и file_get_contents ()
Обратите внимание, что в этом коде отсутствует много известных мне вещей, я просто пытаюсь заставить работать базовую функцию, а затемЯ добавлю все меры безопасности
Я попробовал этот код ниже, используя URL-адрес, подобный этому, с URL-адресом фотографии, добавленным в URL моего скрипта:
http://example.com/friendproject2/testing/photos/fromurl/?url=http://a0.twimg.com/a/1262802780/images/twitter_logo_header.png
Но это ничего не показывает и даже неошибка
function getphotoURL($url){
if(isset($url) && $url != 'bad') {
$image = ImageCreateFromString(file_get_contents($url));
if (is_resource($image) === true){
echo 'The URL of the image we fetch is :' .$url. '<BR><BR>';
//show image
header('Content-Type: image/jpeg');
imagejpeg($image, null, 100);
imagedestroy($image);
imagedestroy($image);
// image is valid, do your magic here
}else{
// not a valid image, show error
echo 'error getting URL photo from ' .$url;
}
}else{
//url was empty
echo 'The URL was not passed into our function';
}
}
?>
###### UPDATE #####
Кажется, это была простая ошибка с моей стороны, что-топросто как проверка POST-запроса вместо GET-запроса, вот мой новый код ниже.
У меня есть пара проблем,
1) Я используюimagejpeg ($ image, null, 100);и мне интересно, я должен использовать что-то еще?Требуется ли исходное изображение в формате jpg или оно будет работать с любым изображением?Мне нужно разрешить основные типы (jpg, jpeg, gif, png)
2) так же, как и выше вопрос, но для отображения изображения на экране у меня установлен заголовок this: header('Content-Type: image / jpeg');Разве это не должно быть JPG для других типов изображений?
3) Есть ли способ, которым я могу убедиться, что переданный исходный URL-адрес является реальным изображением и делать все, что я хочу, еслиэто не изображение, например, показать свою ошибку или сделать собственный код, когда обнаружит, что URL не является действительным URL-адресом изображения
<?PHP
// run our function
if(isset($_GET['url']) && $_GET['url'] != "") {
getphotoURL($_GET['url'],'no');
}
function getphotoURL($url, $saveimage = 'yes'){
if(isset($url) && $url != '') {
$image = imagecreatefromstring(file_get_contents($url));
if (is_resource($image) === true){
if($saveimage === 'yes'){
// resize image and make the thumbs code would go here if we are saving image:
// resize source image if it is wider then 800 pixels
// make 1 thumbnail that is 150 pixels wide
}else{
// We are not saving the image show it in the user's browser
header('Content-Type: image/png');
imagejpeg($image, null, 100);
imagedestroy($image);
}
}else{
// not a valid resource, show error
echo 'error getting URL photo from ' .$url;
}
}else{
// url of image was empty
echo 'The URL was not passed into our function';
}
}
?>