#php #css #image
#php #css #изображение
Вопрос:
Я не большой любитель php, поэтому мне нужна ваша помощь в создании лучшего и простого решения для этого. У меня есть папка «path / images / headers», где у меня есть несколько изображений заголовков (все обрезанные до нужного размера). Имена файлов выглядят следующим образом «something_right.jpg » , «xyz_left.jpg «, «dfjakdfjs_center.jpg » и т.д.
Мне нужен способ прочитать эту папку, предоставить случайный файл изображения и, наконец, создать правило стиля, которое устанавливает это изображение в качестве фонового значения и устанавливает позицию background-X на основе значения _underscore имени файла!
<?php
function header_image() {
$imgDir = bloginfo('template_url'); ?>/images/headers;
$pos =
return "transparent url('images/headers/" . $img . "') no-repeat " . $pos . " center;"
}
?>
<style type="text/css">
.header-image {
background: <?php echo header_image(); ?>
}
</style>
Итак, представьте, что у меня есть «xyz_right.jpg «правило стиля должно выглядеть следующим образом:
background: transparent url('images/headers/xyz_right.jpg') no-repeat right center;
Есть идеи, как лучше всего это сделать?
Комментарии:
1. Этот код не кажется допустимым. Вы выходите из PHP в первой строке функции, но затем у вас появляется больше PHP без повторного открытия тега PHP.
Ответ №1:
Я бы выбрал glob
, shuffle
и preg_match
, а не DirectoryIterator
и strpos
.
Ответ №2:
Для этого требуется довольно много, вам нужен способ указывать на каждый файл (здесь может помочь класс DirectoryIterator, особенно метод getBasename) и способ получить значение из имени файла (я бы выбрал strpos для поиска строки для каждого условия).
Сколько файлов находится в папке / будет находиться в ней?
Комментарии:
1. может быть, 20 изображений или около того. Мне просто нужно прочитать его имена файлов, извлечь значение _underscore в конце и создать это правило стиля.
2. Но как вы определяете, какой файл выбрать?
3. случайным образом! какой-нибудь случайный скрипт должен это сделать!
4. Взгляните на то, что я предложил, rand () может помочь сгенерировать случайное число, использовать его для выбора файла из DirectoryIterator-> getBasename() и запустить его с помощью функции, которая выполняет поиск по ключевым словам (центральный, левый, правый), возможно, лучше всего использовать switch … case здесь. Чушь собачья.