Нужна пуленепробиваемая функция парсера изображений - PullRequest
1 голос
/ 12 ноября 2009

У меня есть функция, которая читает содержимое wp-content / uploads и записывает все найденные там изображения.

Проблема в том, что он читает заголовок блога, чтобы определить путь к изображению, и когда заголовок блога содержит точку, возникает проблема

Название блога abc123.com

URL сайта abc123.com

Имя тестового изображения: abc123-1.jpg

тег img ДОЛЖЕН стать:

<img src='http://abc123.com/wp-content/uploads/abc123-1.jpg' />

фактический тег изображения, написанный из функции ниже:

<img src='http://abc123.com/wp-content/uploads/abc123.com-1.jpg' />

У меня вопрос, как ".com" вставляется в имя файла ???

Функция следует за ...

    function get_images()
    {
    global $options;
    foreach ($options as $value) {
    if (get_settings( $value['id'] ) === FALSE) { $$value['id'] = $value['std']; } else { $$value['id'] = get_settings( $value['id'] ); }
    }

    if($cb_custom_images !== "")
    {
    echo $cb_custom_images;
    }
    else
    {
    $dir = 'wp-content/uploads/';
    $url = get_bloginfo('url').'/wp-content/uploads/';
    $imgs = array();
        if ($dh = opendir($dir)) 
        {
        while (($file = readdir($dh)) !== false) 
            {
            if (!is_dir($file) && preg_match("/\.(bmp|jpeg|gif|png|jpg|)$/i", $file)) 
                {
                    array_push($imgs, $file);
                }
            }
            closedir($dh);
        } else {
            die('cannot open ' . $dir);
        }

        foreach ($imgs as $idx=>$img) 
        {
            $class = ($idx == count($imgs) - 1 ? ' class="xlast"' : '');
            echo '<img src="' . $url . $img . '" alt="' .$img . '"' . $class . ' />';
        }
    }
    }

Ответы [ 4 ]

1 голос
/ 12 ноября 2009

Вы уверены, ваш тестовый файл называется abc123-1.jpg? Я просто скопировал ваш код в файл и добавил фиктивные леса, включая файл wp-content/uploads/abc123-1.jpg.

Я получил правильный результат при запуске сценария:

% php img.php
<img src="http://abc123.com/wp-content/uploads/abc123-1.jpg" alt="abc123-1.jpg" class="xlast" />

`

0 голосов
/ 12 ноября 2009

Извините, ребята, ничего плохого в этой функции. У меня был устаревший файл, на который полагался этот файл, который был несовместим. После обновления этого файла все хорошо.

Теперь мне просто нужно выяснить этого (при условии, что после этого у меня останется какой-нибудь кредит :-) У нас тут есть муллиганы ?

0 голосов
/ 12 ноября 2009

В этом каталоге есть файл abc123.com-1.jpg?

Это может быть проблемой.

0 голосов
/ 12 ноября 2009

Я думаю, что это проблема preg_match. Попробуйте удалить символ после jpg

.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...