PHP: вытягивание изображения и изменение его вывода - PullRequest
0 голосов
/ 02 августа 2009

Я бы хотел использовать скрипт для изменения размера моих изображений ( Timthumb ). Я пытаюсь извлечь из базы данных первое изображение, содержащееся в сообщении, и добавить к нему путь к сценарию, а также некоторые дополнительные инструкции:

    <?php
        $content = $post->post_content;
        preg_match_all('/src=\"https?:\/\/[\S\w]+\"/i', $content, $matches, PREG_SET_ORDER);
        foreach($matches as $e)
        echo '<img src="http://site/scripts/timthumb.php?'.$e[0].'&h=320&w=214&zc=1" title="" alt="">';
        {
        }
    ?>

Хотя это повторяет все, что мне нужно, в середине тега добавляются некоторые двойные кавычки, в которых отсутствует путь к изображению (те же двойные кавычки, которые нужны мне для обнаружения изображения):

<img src="http://site/scripts/timthumb.php?src="http://site/images/image.jpg"&h=320&w=214&zc=1" title="" alt="">

Итак, мои вопросы:

  1. Как бы вы сделали, чтобы удалить эти двойные кавычки (пока они мне нужны первый момент для поиска шаблон)?
  2. И как бы вы поступили с тянуть только первое изображение в посте?

Большое спасибо за любой вклад

1 Ответ

2 голосов
/ 02 августа 2009

Во-первых, используйте скобки, чтобы захватить только тот бит, который вам нужен, сам URL. Во-вторых, если вам нужно только первое изображение, просто используйте preg_match, а не preg_match_all:

$content = $post->post_content;
if (preg_match('/src=\"(https?:\/\/[\S\w]+)\"/i', $content, $match))
{
    echo '<img src="http://site/scripts/timthumb.php?'.
        urlencode($match[1]).'&h=320&w=214&zc=1" title="" alt="">';
}

Обратите внимание, как часть URL регулярного выражения помечена () - поскольку это первое выражение в скобках, это будет элемент 1 массива $ match.

Я также urlencoded код изображения URL, чтобы убедиться, что все в этом соответствии правильно закодированы для использования в URL.

...