PHP удаляет / в пути к изображению. Как это исправить?

Рейтинг: 0Ответов: 1Опубликовано: 12.05.2023

Динамически загружаю изображения из базы данных через PHP. Код программы:

<?php
    spl_autoload_register(function ($class){
        include '../php/' . $class . '.php';
    });
    $PDO = PdoConnect::getInstance();

    $products = array();

    $result = $PDO->PDO->query("
        select * from goods;
    ");
    while ($productInfo = $result->fetch()) {
        $products[] = $productInfo;
    }
    foreach ($products as $product){
            echo '
        <div class="product" data-id="' . $product["id"] . '>
            <figure>
                <img src="' . $product["image"] . '" alt="" class="imgProduct">
                <figcaption>
                    <p>' . $product["name"] . '</p>
                    <p>Цена: ' . $product["price"] . '</p>
                    <button class="btnBuy">Купить</button>
                </figcaption>
            </figure>
        </div>';
    }
    ?>

Изображение не выводится, потому что путь к изображению искажен и имеет вид: .. img chatPicture goods goods512x512.png А должен быть: ../img/chatPicture/goods/goods512x512.png При это такое происходит только в данном случае. Может дело в ? Пытался отдельно сохранить путь до изображения в переменной, выводил эту переменную и путь был нормальным, вставлял эту переменную в тег , путь снова искажался.

Использовал тестовый код, и он работал:

echo 
        '<p>
        Запись id=' . $product['id'] . 
        '. Изображение: <img src="' . 
        $product['image'] . '">. Название: ' . 
        $product['name'] . 
        '. Цена: ' . 
        $product['price'] . 
        '</p> <button>Купить</button>';

Может кто встречался с такой проблемой.

Ответы

▲ 1

Решил проблему использованием конструкции <<<_END _END;

    <?php
        spl_autoload_register(function ($class){
            include '../php/' . $class . '.php';
        });
        $PDO = PdoConnect::getInstance();

        $products = array();

        $result = $PDO->PDO->query("
            select * from goods;
        ");
        while ($productInfo = $result->fetch()) {
            $products[] = $productInfo;
        }
        foreach ($products as $product){
            $product_id = $product["id"];
            $img = $product['image'];
            $product_name = $product["name"];
            $product_cost = $product["price"];
            echo <<<_END
            <div class="product" data-id="$product_id">
                <figure>
                    <img src="$img" alt="" class="imgProduct">
                    <figcaption>
                        <p>$product_name</p>
                        <p>Цена: $product_cost</p>
                        <button class="btnBuy">Купить</button>
                    </figcaption>
                </figure>
            </div>
_END;
        }
        ?>