Функции Язык программирования PHP

imagecreatefromgif

(PHP 3, PHP 4)

imagecreatefromgif - создаёт новое изображение из файла или URL.

Описание

resource imagecreatefromgif (string filename)

imagecreatefromgif() возвращает идентификатор изображения, полученного из данного файла filename.

imagecreatefromgif() возвращает пустую строку при неудаче. Выводит также сообщение об ошибке, которое отображается браузере как разорванная. Для облегчения отладки следующий пример будет выдавать GIF ошибки:
Пример 1. Обработка ошибки при создании (благодарим vic@zymsys.com)
function 
LoadGif ($imgname) { $im = @imagecreatefromgif ($imgname); /* попытка открыть 
*/ if (!$im) { /* See if it failed */ $im = imagecreate (150, 30); /* создание 
пустого изображения */ $bgc = imagecolorallocate ($im, 255, 255, 255); $tc = imagecolorallocate 
($im, 0, 0, 0); imagefilledrectangle ($im, 0, 0, 150, 30, $bgc); /* вывод errmsg 
*/ imagestring ($im, 1, 5, 5, "Error loading $imgname", $tc); } return $im; }

Примечание: поскольку вся поддержка GIF была удалена из GD-библиотеки в версии 1.6, эта функция недоступна, если вы используете эту версию GD-библиотеки.


Назад Оглавление Вперёд
imagecreatefromgd Вверх imagecreatefromjpeg

Безопасность файловой системы

Пример 4-3. Более безопасная проверка имени файла
<?php // Удалить файл с жёсткого диске, доступ к которому имеет 
пользователь РНР. $username = $_SERVER['REMOTE_USER']; // использование механизма 
аутентификации $homedir = "/home/$username"; $file_to_delete = basename("$userfile"); 
// вырезать пути unlink ($homedir/$file_to_delete); $fp = fopen("/home/logging/filedelete.log","+a"); 
//log удаление $logstring = "$username $homedir $file_to_delete"; fputs ($fp, 
$logstring); fclose($fp); echo "$file_to_delete has been deleted!"; ?>

Однако и здесь не без недостатков. Если ваша система аутентификации разрешает пользователям создавать свои собственные пользовательские login'ы и пользователь выберет логин "../etc/", система снова станет открытой. Исходя из этого, вам может понадобиться более специализированная проверка: