2016-03-04 2 views
0

Я использую ниже функции:Изображение Функция класса не работает правильно из-за пути

class Image { 

    static function url($id, $type = 'maps') { 
     $path = UPLOAD_DIRECTORY . '/' . $type . '/'; 
     $files = glob($path . $id . '.*'); 
     if (count($files)) { 
      $ext = substr($files[0], strpos($files[0], '.') - strlen($files[5])); 
      return SERVER_URL . 'img/' . $type . '/' . $id . $ext; 
     } else { 
      return ''; 
     } 
    } 

} 

Это прекрасно работает, когда размещается на WAMP, но при использовании на Unix, работающие на Nginx не отображается изображение правильно из-за пути к файлу. Кажется, добавить физический путь файлов в URL, так что думает, что патч файла является http://localhost/demo/img/maps/20/public_html/demo/img/maps/20.png

На WAMP он правильно отображает то есть URL является http://localhost/demo/img/maps/20.png

Это определенные переменные:

define('SERVER_URL', 'http://localhost/demo/'); 
define('UPLOAD_DIRECTORY', dirname(__FILE__) . '/img'); 

id = 20;

Физическое расположение изображений в/public_html/демо/IMG/карты/

Как я могу это исправить на ОС Unix.

+0

Можете ли вы отредактировать тему, чтобы она имела смысл? добавить тег 'PHP' в свой список тегов. И чтобы организовать содержание вашего вопроса, так как непонятно, что вы пытаетесь спросить. – Farside

+0

благодарит за отзыв. –

ответ

0

Удалось решить решение (кстати, я не программист).

В основном на сервере UNIX в каталоге, где находились изображения, была точка на пути, тогда как на wamp это не так.

Так что мне нужно было использовать strrpost вместо strpost - это находит положение последнего вхождения подстроки в строке вместо первого события.