Как печатать - на img source в php


  • У меня есть изображения внутри папки, которая содержит символ' -', как Navideño-4.jpg.

  • Я создал скрипт для печати всех изображений, но если изображение имеет-char, он просто печатает Navide%C3%B1o-4.jpg

Вот сценарий:

function show($path){
    $files = glob($path.'*');
    natcasesort($files);
    foreach($files as $file) {
            echo ' <br/> <img src="' .  $file . '" /> <br/>';
    }
}

И назовем это так:

show('images/navidad/');

Как я могу показать - char внутри источника img в php, я пробовал urlencode, urldecode.. Но успеха не имел

5 2

5 ответов:

Попробуйте:

header('Content-Type: text/html; charset=utf-8');
$test="Navideño-4.jpg";
echo htmlspecialchars( $test );

Вы можете попробовать

$test = "Navideño-4.jpg";
echo utf8_decode($test);

Или

$test = utf8_encode("Navideño-4.jpg");
echo utf8_decode($test);

Вы можете использовать pathinfo и urlencode для отображения изображения.

function show($path){
    $files = glob($path.'*');
    natcasesort($files);
    foreach($files as $file) {
        $path_parts = pathinfo($file);            
        echo ' <br/> <img src="' .  $path_parts['dirname'] . '/' . urlencode($path_parts['basename']) . '" /> <br/>';
    }
}

Вы можете использовать utf8_decode

echo ' <br/> <img src="' .  utf8_decode($file) . '" /> <br/>';

Я только что попробовал ваш код с php версии 5.4.16, и он отлично работал для меня.

Я думаю, что это ваша проблема с версией php. Пожалуйста, проверьте вашу версию php с помощью phpinfo ()