Страницы

Поиск по вопросам

среда, 15 мая 2019 г.

Имеется массив из изображений которые выводятся в сетку. но необходимо еще вывести и имена этих изображений

На мой сайт в галерею хочу вывести сетку с изображениями и их именами. Через html выводить 600+ изображения это как то неправильно, а вот через php изображения то вывел. Но как вывести их имена под ими?
$dir_handle = @opendir($directory) or die("Ошибка при открытии папки !!!"); while ($file = readdir($dir_handle)) { if($file=="." || $file == "..") continue; $file_name = basename($directory,".png"); $file_parts = explode(".",$file); $ext = strtolower(array_pop($file_parts));
if(in_array($ext,$allowed_types)) { echo '

'+$file_name+'

'; $i++; }
} closedir($dir_handle); ?>


Ответ

Попробуй такой вариант:
$catalog = '../img/'; $all_files = glob("{$catalog}*.{jpg,png,gif}", GLOB_BRACE);
for ($i = 0; $i < count($all_files); ++$i) { $image_name = $all_files[$i]; $supported_format = ['gif','jpg','png'];
$ext = strtolower(pathinfo($image_name, PATHINFO_EXTENSION)); $name_d[] = explode($catalog, $image_name)[1];
if (in_array($ext, $supported_format)) { echo ' '.$name_d[$i].'

'.$name_d[$i].'

'; } else { continue; } }

Как создать объект типа T

У меня есть метод с параметром
void testMethod(Consumer arg) { T t = ???; arg.accept(t); }
Как создать объект типа T при условии что T имеет конструктор по умолчанию?
Вот код, который я испытывал
public class MethodConsumer { private void test(T t) { // Consumer System.out.println("test()"+t); };
void testMethod(Consumer arg) { T t = null; arg.accept(t); }
public static void main(String[] args){ MethodConsumer test = new MethodConsumer(); test.testMethod((t) -> test.test(t)); }
}


Ответ

Вообще то, то что вы пытаетесь сделать запрещено, читайте туториал
You cannot create an instance of a type parameter.
Оно и понятно, шаблон не живет сам по себе, он живет только с конкретным типом.
В вашем случае рабочий код может выглядеть приблизительно так:
void testMethod(Consumer arg, Class clazz) { T t = clazz.newInstance(); //надо ловить эксепшн arg.accept(t); }
Обратите внимание, что во втором параметре мы указываем тип T
А вызов его типа, так:
String s="blabla"; test.testMethod(arg, s.class);

Вытащить из фразы текст, находящийся между определёнными словами

Есть текст, допустим:
Съешь же ещё этих мягких |Какая-то фраза| французских булок, да выпей чаю
Как при помощи JS вытащить |Какая-то фраза|, зная только то, что он будет находиться между мягких и французских?


Ответ

Можно воспользоваться методом String.prototype.match
var str = "Съешь же ещё этих мягких |Какая-то фраза| французских булок, да выпей чаю"; var regExp = /мягких\s+(.*)\s+французских/; var result = str.match(regExp)[1]; console.log(result);
Или методом RegExp.prototype.exec
var str = "Съешь же ещё этих мягких |Какая-то фраза| французских булок, да выпей чаю"; var regExp = /мягких\s+(.*)\s+французских/; var result = regExp.exec(str)[1]; console.log(result);

Смена цвета statusBara

Родительская тема - Theme.AppCompat.Light.NoActionBar. Если указываю colorPrimary серым, а colorPrimaryDark любым цветным - все прекрасно работает. Панель задач и строка состояния разного цвета. Но если colorPrimaryDark указываю темнее, то строка состояния и панель задач сливается в цвет colorPrimary.
Пробовала разные способы решения. Прописать ststusBarColor не помогло. Вылетает приложение. Сделать родительским CoordinatorLayout тоже не решило проблему.














Ответ

Добавьте стили для ваших аппбара и тулбара, после этого не должно быть проблем.

Доступ к журналу (Log) SMS в Android

Здравствуйте. Знаю, что в SDK есть классы и методы для доступа к журналу звонков в ОС Android. Есть ли такая же возможность для SMS? Т.е. стоит задача: получить список/массив входящих SMS с текстом, номером приславшего, датой-временем и проч. информацией.


Ответ

Uri uriSms = Uri.parse("content://sms/inbox"); Cursor c = context.getContentResolver().query(uriSms, null,null,null,null);
// column names for above provider:
0: _id 1: thread_id 2: address 3: person 4: date 5: protocol 6: read 7: status 8: type 9: reply_path_present 10: subject 11: body 12: service_center 13: locked Вместо inbox могут также использоваться другие категории например sent

Как сделать хлебные крошки на php?

Здравствуйте! У меня сайт на базе mysql. Интересует Как сделать хлебные крошки на php(типа такого: Главная>Новости>Погода...и т.д.)? В инете много таких крошек для cms, а у меня самописный сайт. Буду рад любой помощи. Спасибо.


Ответ

Как-то делал давно. Обработчик крошек: function navigation() { $arg_list = func_get_args(); $numargs = func_num_args(); $str = ''; for ($i = 0; $i < $numargs; $i++) { $str .= ($arg_list[$i][1] ? ($arg_list[$i][0] ? '' . $arg_list[$i][1] . '' : $arg_list[$i][1] ) . ($numargs - 1 > $i && $arg_list[$i][0] ? '' : '' ) : '' ); }
return $str; } Использование: echo navigation( array('/', 'Главная'), array('/old', 'Чуток ниже'), array('/old-s', 'И еще чуток ниже') ); Результат: ГлавнаяЧуток нижеИ еще чуток ниже Естественно HTML-код можно изменить как нужно. Да, функция кривая и бла бла бла. Еще Месси 5 голов забил, ага.

Как в HTML сделать так, чтобы слова переносились на следующую строку, а не уходили влево? [дубликат]

На данный вопрос уже ответили: Неправильное отображение текста в блоке div 2 ответа Здравствуйте! Интересует, как отформатировать текст, чтобы если он выходит за пределы страницы или своего блока, он автоматически переносился на другую строку, а то появляется полоса прокрутки снизу... Что можно сделать в HTML или CSS?


Ответ

Есть такое CSS-свойство: word-wrap break-word Его укажите в свойствах блока, в котором расположено "вылезающее" содержимое.

Как в переменную загрузить данные из файла?

Здравствуйте! Есть сторонняя библиотека работы с шаблонами Mustache. При заполнении шаблона, я использую два входных параметра, это файл шаблона и файл содержащий JSON строку, содержимое которой подставляется в шаблон. Первый вопрос: как загрузить эти файлы непосредственно в переменные, для передачи их в Mustache функцию, например: html = Mustache.to_html(template, json); Второй вопрос: Может можно сразу указывать в качестве входных параметров Mustache функции, пути к файлам: html = Mustache.to_html(File_path_to_template, File_path_to_json);


Ответ

function getData( url, ready ) { var xhr = new XMLHttpRequest(); xhr.open( 'GET', url, true ); xhr.onreadystatechange = function() { if( this.readyState === 4 && this.status !== 404 ) { ready( this.responseText ); } } xhr.send(); }
getData( 'pathToTemplate', function( templateData ) { getData( 'pathToJSON', function( jsonData ) { console.log( templateData ); console.log( jsonData ); }) })
Асинхронный вариант, по хорошему нужно делать примерно так, а в вашем случае вообще лучше делать запросы "паралельно", здесь я кое-что писал об этом.