Задать вопрос
@qourshi

Не работает роутинг на PHP, почему?

Имеется скрипт отображения фотографий из папки:
<?php
  include_once('../functions.php');
  #$dir = __DIR__.'\img'; // Папка с изображениями (абсолютный путь)
  $dir = 'img/'; // Папка с изображениями
  $cols = 3; // Количество столбцов в будущей таблице с картинками
  $files = scandir($dir); // Берём всё содержимое директории
  echo "<table>"; // Начинаем таблицу
  #echo $dir; //дэбаг (ачё)
  $k = 0; // Вспомогательный счётчик для перехода на новые строки
  for ($i = 0; $i < count($files); $i++) { // Перебираем все файлы
    if (($files[$i] != ".") && ($files[$i] != "..")) { // Текущий каталог и родительский пропускаем
      if ($k % $cols == 0) echo "<tr>"; // Добавляем новую строку
      echo "<td>"; // Начинаем столбец
      $path = $dir.$files[$i]; // Получаем путь к картинке  
	  list($w, $h) = getimagesize('img/'. $files[$i]);
	  $title = $w.'x'.$h.' - '.get_filesize($path);
	  echo "<div class='image'>";
      echo "<a href='$path'>"; // Делаем ссылку на картинку
      echo "<img src='$path' title='$title' width='170' />"; // Вывод превью картинки
	  echo "</div>";
      echo "</a>"; // Закрываем ссылку
      echo "</td>"; // Закрываем столбец
      /* Закрываем строку, если необходимое количество было выведено, либо данная итерация последняя */
      if ((($k + 1) % $cols == 0) || (($i + 1) == count($files))) echo "</tr>";
      $k++; // Увеличиваем вспомогательный счётчик
    }
  }
  echo "</table>"; // Закрываем таблицу
  #echo $path;
?>


functions.php:
<?php
function get_filesize($file)
{
    if(!file_exists($file)) return "Файл  не найден";
	$filesize = filesize($file);	
	if($filesize > 1024){
	$filesize = ($filesize/1024);
    if($filesize > 1024){
    $filesize = ($filesize/1024);
        if($filesize > 1024) {
        $filesize = ($filesize/1024);
        $filesize = round($filesize, 1);
        return $filesize." ГБ";       
        } else {
        $filesize = round($filesize, 1);
        return $filesize." MБ";   
        }       
    } else {
    $filesize = round($filesize, 1);
    return $filesize." Кб";   
    }  
    } else {
    $filesize = round($filesize, 1);
    return $filesize." байт";   
    }
}


Сам index.php:
<?php
require(__DIR__.'/apps/photo/photo.php');


.htaccess:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]


При открытии photo.php всё отлично. Но при открытии через роутинг возникают данные ошибки:
63bd3c7cc82c4425940576.png
  • Вопрос задан
  • 122 просмотра
Подписаться 2 Простой 1 комментарий
Решения вопроса 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
include_once('../functions.php');
не используйте для инклудов относительные пути. Ничего сложного в добавлении полного пути нет, по этому не надо придумывать себе проблемы на ровном месте, просто указывайте абсолютный путь от корня, например используя $_SERVER["DOCUMENT_ROOT"].

то же самое относится к $dir = 'img/';
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы