Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Подключение файлов из папки

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
snovapavel
Отправлено: 25 Марта, 2016 - 19:08:06
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Дек. 2015  


Помог: 0 раз(а)




Добрый день!

Целый день пытаюсь подключить все .php и .css файлы из папки. Нагородил вот такой огород:

PHP:
скопировать код в буфер обмена
  1. foreach ( glob( __DIR__ . '/includes/*.{php,css}', GLOB_BRACE ) as $file ) {
  2.  
  3.         if ( preg_grep( '/index.php/', array( $file ), PREG_GREP_INVERT ) ) {
  4.  
  5.                 if ( preg_match( '/.php$/', $file ) ) {
  6.  
  7.                         include_once $file;
  8.  
  9.                 } elseif ( preg_match( '/.css$/', $file ) ) {
  10.  
  11.                         include_once '<link rel="stylesheet" type="text/css" href="..' . $file . '"/>';
  12.  
  13.                 }
  14.  
  15.         }
  16.  
  17. }


.php файлы, - подключает на ура, с этим проблем нет. Файлы .css, - подключать не хочет ни в какую, подозреваю, что это из за того, что у атрибута href="..." получается путь, не относительно сайта (http://...), а относительно сервера (/home/...).

Подскажите пожалуйста, как подключать .css файлы?

Заранее, большое спасибо!
 
 Top
3d_killer
Отправлено: 25 Марта, 2016 - 19:13:25
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




стили не инклудятся, как бы а просто прописываются в шапке
<link href='".$file."' rel='stylesheet' type='text/css'>
(Добавление)
код любого сайта откройте и посмотрите
 
My status
 Top
Viper
Отправлено: 25 Марта, 2016 - 19:20:07
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




snovapavel пишет:
Подскажите пожалуйста, как подключать .css файлы?
руками в шаблоне. Нет шаблона? Тогда генерить ссылки относительно корня сайта.
т.е. вот этот страшный говнокод
PHP:
скопировать код в буфер обмена
  1. include_once '<link rel="stylesheet" type="text/css" href="..' . $file . '"/>';

меняете на
PHP:
скопировать код в буфер обмена
  1. echo '<link rel="stylesheet" type="text/css" href="' . $file . '"/>';
где $file у вас содержит url, а не физ. путь до файла.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
snovapavel
Отправлено: 25 Марта, 2016 - 19:33:52
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Дек. 2015  


Помог: 0 раз(а)




Следуя вашим советам, изменил код:

PHP:
скопировать код в буфер обмена
  1. foreach ( glob( get_template_directory() . '/custom/Alternative_title/includes/*.{php,css}', GLOB_BRACE ) as $file ) {
  2.  
  3.         if ( preg_grep( '/index.php/', array( $file ), PREG_GREP_INVERT ) ) {
  4.  
  5.                 if ( preg_match( '/.php$/', $file ) ) {
  6.  
  7.                         include_once $file;
  8.  
  9.                 } elseif ( preg_match( '/.css$/', $file ) ) { ?>
  10.  
  11.                         <link rel="stylesheet" href="<?PHP echo $file; ?>">
  12.  
  13.                 <?PHP }
  14.  
  15.         }
  16.  
  17. }


И теперь в шапке выводится вот это (как я и говорил, путь от корня сервера):

<link rel="stylesheet" href="/home/cy/domains/blog.ru/public_html/wp-content/themes/theme/custom/Alternative_title/includes/styles.css">

Файл при этом, естественно, не подключается.

(Отредактировано автором: 25 Марта, 2016 - 19:41:22)

 
 Top
3d_killer
Отправлено: 25 Марта, 2016 - 19:43:20
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




а это тут нафига? /home/cy/domains/blog.ru/public_ html/
(Добавление)
таким путем подключай /wp-content/themes/theme/custom/ Alternative_title/includes/style s.css
 
My status
 Top
snovapavel
Отправлено: 25 Марта, 2016 - 20:11:23
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Дек. 2015  


Помог: 0 раз(а)




Друг, откуда же я знаю?

Вот эта функция генерирует такой путь:

get_template_directory().

Как в PHP можно вместо функции get_template_directory() . '/custom/Alternative_title/includes/ - ссылаться на текущую папку, а не получать весть путь от корня?
 
 Top
3d_killer
Отправлено: 25 Марта, 2016 - 20:18:06
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




это путь на серваке /home/cy/domains/blog.ru/public_ html/ к которому может получить доступ только тот кто обладает правами админа (то есть по такому пути можно делать include), а скрипт, css это файл касающийся пользовательского отражения, то есть пользователь должен иметь к нему доступ так же как и к скрипту js например. Следовательно путь надо прописывать от корня папки, чтобы в него попасть ставится / это корневая директория где лежит index, от него дальше и пишешь путь к скрипту
 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB