0 Пользователей и 1 Гость просматривают эту тему.
  • 23 Ответов
  • 1136 Просмотров
*

Evgen34

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Здравствуйте. Не выполняется php скрипт на вывод названий файлов с ссылками на них.
  ?php
$home  = $_SERVER['DOCUMENT_ROOT'];
$dir   = '/food/';
$folder    = '/food/';
$dir       = "Директория" $folder;
$uri       = strip_tags($_SERVER['REQUEST_URI']);
$dir_http  = current(explode( ('/'.basename($uri)),$uri)) ;

$array = scandir($home . $dir);
for ($i=0; $i < count($array); $i++)
{
   if(substr_count( $array[$i] , '.html'))
   {
      preg_match_all('#<title>(.+?)</title>#is', file_get_contents( $dir .$array[$i] ), $style_2);
      echo '<a href="'. $dir_http .$folder .$array[$i].'" target="_blank">'.$style_2[1][0].'</a>'."<br>\n";
   }
}
?>
« Последнее редактирование: 23.08.2021, 12:04:06 от Evgen34 »
*

ShopES

  • Захожу иногда
  • 426
  • 11 / 0
зачем вам scandir
используйте glob
пример работы тут
*

Evgen34

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
дело в том что он вообще не работает. хотя если проверить через вывод echo и текст, то выводит.
*

ShopES

  • Захожу иногда
  • 426
  • 11 / 0
ну тут только смотреть на структуру
*

v42bis

  • Захожу иногда
  • 113
  • 12 / 1
Код
jimport( 'joomla.filesystem.folder' );
JFolder::files($path, $filter = '.', $recurse = false, $full = false, $exclude);
Ссылка на оф.документацию
https://docs.joomla.org/How_to_use_the_filesystem_package
Тут тоже, уже переведено на русский
https://rigin.net/joomla/standartnye-klassy/rabota-s-papkami-klass-jfolder.html
*

Evgen34

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Код
jimport( 'joomla.filesystem.folder' );
JFolder::files($path, $filter = '.', $recurse = false, $full = false, $exclude);
Ссылка на оф.документацию
https://docs.joomla.org/How_to_use_the_filesystem_package
Тут тоже, уже переведено на русский
https://rigin.net/joomla/standartnye-klassy/rabota-s-papkami-klass-jfolder.html
мутная документация, есть середина и конец. В общем этот способ не работает ошибка 500
*

NewUsers

  • Живу я здесь
  • 2104
  • 190 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Создайте файл в корне сайта и вставьте код в файл (папка food должна быть в корне сайта)
Код: php
define('_JEXEC', 1);

if(!defined('DS'))
{
    define('DS', DIRECTORY_SEPARATOR);
}

if (!defined('_JDEFINES'))
{
define('JPATH_BASE', __DIR__);
require_once JPATH_BASE . '/includes/defines.php';
}

require_once JPATH_BASE . '/includes/framework.php';

$files = JFolder::files(JPATH_ROOT . DS . 'food');
print_R($files);
Занимаюсь создание расширений только для Joomla 3.9.x | Доработка и настройка сайтов. Работаю по факту (без всяких предоплат). Оплата только на ЮMoney (бывшие Яндекс.Деньги). Помогу с переездом на PHP 7.x и исправлю ошибки PHP.
Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

v42bis

  • Захожу иногда
  • 113
  • 12 / 1
мутная документация, есть середина и конец. В общем этот способ не работает ошибка 500
Все предельно просто и понятно, работает 100%. - это штатный класс. Две строки кода и на выходе имеем массив со списком файлов каталога.

Ошибка 500 - проверяйте код который пишите
*

ShopES

  • Захожу иногда
  • 426
  • 11 / 0
*

Evgen34

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Создайте файл в корне сайта и вставьте код в файл (папка food должна быть в корне сайта)
Код: php
define('_JEXEC', 1);

if(!defined('DS'))
{
    define('DS', DIRECTORY_SEPARATOR);
}

if (!defined('_JDEFINES'))
{
define('JPATH_BASE', __DIR__);
require_once JPATH_BASE . '/includes/defines.php';
}

require_once JPATH_BASE . '/includes/framework.php';

$files = JFolder::files(JPATH_ROOT . DS . 'food');
print_R($files);
Создал файлик с расширением index.php в папке food, вставил код. Итого пустой лист. Папка food находится в корне сайта.

Все предельно просто и понятно, работает 100%. - это штатный класс. Две строки кода и на выходе имеем массив со списком файлов каталога.

Ошибка 500 - проверяйте код который пишите

Код
<?php
jimport( 'joomla.filesystem.folder' );
$files= JFolder::files( JPATH_BASE . DS .'food', '\.xlsx', true, true );
?>
Так ошибка 500
« Последнее редактирование: 24.08.2021, 08:56:58 от Evgen34 »
*

fbr

  • Завсегдатай
  • 1549
  • 178 / 7
Цитировать
Код
<?php
jimport( 'joomla.filesystem.folder' );
$files= JFolder::files( JPATH_BASE . DS .'food', '\.xlsx', true, true );
?>
Так ошибка 500
DS - объявлен?

*

Evgen34

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Все предельно просто и понятно, работает 100%. - это штатный класс. Две строки кода и на выходе имеем массив со списком файлов каталога.

Ошибка 500 - проверяйте код который пишите
так это константа DS   разделитель директорий
«/" (то же что и DIRECTORY_SEPARATOR)
*

fbr

  • Завсегдатай
  • 1549
  • 178 / 7
так это константа DS   разделитель директорий
«/" (то же что и DIRECTORY_SEPARATOR)
Вот я и спрашиваю, она объявлена?
define('DS', DIRECTORY_SEPARATOR);
*

ProtectYourSite

  • Живу я здесь
  • 2197
  • 121 / 4
  • Безопасность вебсайтов
*

ShopES

  • Захожу иногда
  • 426
  • 11 / 0
короче господа.
я и тс и его коллеге в другой теме( а так же для любого сайта на любой CMS или на статике)
предложил простое решение за 400 деревянных)))
но увы не хотят.сами пусть решают( наводку дал)
вариантов куча
*

draff

  • Гуру
  • 5559
  • 398 / 7
  • ищу работу
Создал файлик с расширением index.php в папке food, вставил код. Итого пустой лист. Папка food находится в корне сайта.
Конечно будет ошибка . Если файл не в корне сайта, а в папке, нужно изменить на
Код
define('JPATH_BASE', dirname(__DIR__) );
Пустой, это белый экран, включите отображение ошибок на уровень для разработчиков
п.с.
Но лучше не размещать в папке, будет выводить имя файла index.php
Код
Array ( [0] => 2021-05-21-sm.xlsx [1] => 2021-05-24-sm.xlsx [2] => 2021-05-25-sm.xlsx [3] => i.php ) 
« Последнее редактирование: 24.08.2021, 20:02:21 от draff »
*

Evgen34

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
короче господа.
я и тс и его коллеге в другой теме( а так же для любого сайта на любой CMS или на статике)
предложил простое решение за 400 деревянных)))
но увы не хотят.сами пусть решают( наводку дал)
вариантов куча
Грубо и некорректно. Всего для вас 400 деревянных с зарплатами по 100 000 руб не чего не стоят. Для вас конкретно есть регионы в которых зарплата прожиточный минимум как у меня.
*

v42bis

  • Захожу иногда
  • 113
  • 12 / 1
Грубо и некорректно. Всего для вас 400 деревянных с зарплатами по 100 000 руб не чего не стоят. Для вас конкретно есть регионы в которых зарплата прожиточный минимум как у меня.

Вам предложили выше работающие варианты, ссылки на документацию, на что вы ответили "слишком мутно и вообще не работает". Оставалось сесть, почитать, вникнуть и написать код.

Или, если нет времени, желания, возможности (нужное подчеркнуть), еще вариант выше, но он тоже не подходит - "грубо и некорректно".

Прям цуцванг какой-то
*

Evgen34

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Вам предложили выше работающие варианты, ссылки на документацию, на что вы ответили "слишком мутно и вообще не работает". Оставалось сесть, почитать, вникнуть и написать код.

Или, если нет времени, желания, возможности (нужное подчеркнуть), еще вариант выше, но он тоже не подходит - "грубо и некорректно".

Прям цуцванг какой-то
Рассмотрим варианты которые предложили по существу.
1. glob - понятно дело, что это такое и с чем едёт нужно искать. Я занялся поиском документации, примеры использования и толком не нашёл не чего. Может не под тем углом смотрю с точки зрения профи программиста, но нет таких знаний.
2. jimport( 'joomla.filesystem.folder' ); типа как стандартный класс для Joomla, проще не куда. Искал примеры использования результат 0. Сделал по документации, а оказалось ещё переменные нужно объявлять, хотя это же константы. Этого не написано в документации. Должен был знать?
3. Оказывается не папку нужно кидать код, а в корень. В документации не написано куда кидать.
Я прекрасно понимаю, что тут есть вещи для вас само разумеющиеся типа точку поставить или запятую это для сравнения и об этом не упоминается, но тут пишут не от хорошей жизни и не желания научится, отсутствием времени. Ладно хватит нравоучений. Не помогли буду в ручную. Всем спасибо. 
*

ShopES

  • Захожу иногда
  • 426
  • 11 / 0
по функции glob  есть прямые примеры именно  в топ выдаче и Яндекс и Google
*

sivers

  • Завсегдатай
  • 1828
  • 247 / 0
glob - понятно дело, что это такое и с чем едёт нужно искать
https://www.php.net/glob
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

ShopES

  • Захожу иногда
  • 426
  • 11 / 0
дайте правильный запрос по glob  и будет вам пример
*

v42bis

  • Захожу иногда
  • 113
  • 12 / 1
тут пишут не от хорошей жизни и не желания научится, отсутствием времени. Ладно хватит нравоучений. Не помогли буду в ручную. Всем спасибо. 
Это форум, а не "сделайте мне, вы же разбираетесь".

Пролистайте вверх, вам ссылки дали, более того, даже ссылки на примеры работающие. Т.е. либо берем, читаем, разбираемся и пишем код, либо нанимаем спеца.


P.S. Все были такими же как вы, просто одни тратили свое время, чтобы разобраться и уметь, другие... ну вы поняли... гуглим на тему "потребитель".

А так не вопрос, пожалуйста...

*

Evgen34

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Благодарность draff за помощь решения вопроса.
Спасибо. :D
https://joomla-support.ru/thread/49161/#post-194424
Пользуйтесь.
Тема закрыта.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

h1 не выводится во всех материалах

Автор Алексей358

Ответов: 16
Просмотров: 248
Последний ответ 17.10.2021, 16:26:44
от ShopES
Стандартный рейтинг / Вывод количества проголосовавших за каждую оценку

Автор Vlad1

Ответов: 5
Просмотров: 185
Последний ответ 17.10.2021, 11:23:15
от NewUsers
Стандартный поиск всегда перенаправляет на страницу 404

Автор max_max

Ответов: 2
Просмотров: 498
Последний ответ 23.08.2021, 20:06:33
от sivers
путь к папке, список файлов

Автор YDen

Ответов: 19
Просмотров: 962
Последний ответ 20.08.2021, 19:11:59
от draff
Пустая страница с ссылками

Автор Evgen34

Ответов: 24
Просмотров: 1065
Последний ответ 17.08.2021, 19:52:34
от ShopES