За последние 24 часа нас посетили 22773 программиста и 1217 роботов. Сейчас ищут 778 программистов ...

php не находит местоположение файла

Тема в разделе "Сделайте за меня", создана пользователем vasiliygilbert, 16 июл 2017.

Метки:
  1. vasiliygilbert

    vasiliygilbert Новичок

    С нами с:
    22 апр 2017
    Сообщения:
    21
    Симпатии:
    0
    Здравствуйте! Я новичок в php, нашел готовый код, который меняет местами значения написанной строки на заданную в массиве, в нем в строчке
    PHP:
    1. <?$strings = array_map(array($this,'splitStrings'),file($this->language.'.txt'))?>
    указано расположение файла, исходя из которого брать значения. Я пытался сменить местоположение так:
    PHP:
    1. <?$strings = array_map(array($this,'splitStrings'),file('..\..\pages\langs\'.$this->language.'.txt'))?>
    но php не мог определить его местоположение. Сам txt файл находится у меня по такому пути: ..\..\pages\langs\file_decoder.txt
    Если же я положу текстовый файл в ту же папку, что и php файл, то php скрипт работает нормально
    PHP:
    1. <?php
    2. class Translator {
    3.  
    4.     private $language    = 'en';
    5.     private $lang         = array();
    6.    
    7.     public function __construct($language){
    8.         $this->language = $language;
    9.     }
    10.    
    11.     private function findString($str) {
    12.         if (array_key_exists($str, $this->lang[$this->language])) {
    13.             echo $this->lang[$this->language][$str];
    14.             return;
    15.         }
    16.         echo $str;
    17.     }
    18.    
    19.     private function splitStrings($str) {
    20.         return explode('=',trim($str));
    21.     }
    22.    
    23.     public function __($str) {  
    24.         if (!array_key_exists($this->language, $this->lang)) {
    25.             if (file_exists($this->language.'.txt')) {
    26.                 $strings = array_map(array($this,'splitStrings'),file($this->language.'.txt'));
    27.                 foreach ($strings as $k => $v) {
    28.                     $this->lang[$this->language][$v[0]] = $v[1];
    29.                 }
    30.                 return $this->findString($str);
    31.             }
    32.             else {
    33.                 echo $str;
    34.             }
    35.         }
    36.         else {
    37.             return $this->findString($str);
    38.         }
    39.     }
    40. }
    41. ?>
     
  2. Познающий php

    Познающий php Новичок

    С нами с:
    23 мар 2017
    Сообщения:
    381
    Симпатии:
    74
    так попробуй
    PHP:
    1. <?php
    2. class Translator {
    3.     private $language    = 'en';
    4.     private $lang         = array();
    5.  
    6.     public function __construct($language){
    7.         $this->language = $language;
    8.     }
    9.  
    10.     private function findString($str) {
    11.         if (array_key_exists($str, $this->lang[$this->language])) {
    12.             echo $this->lang[$this->language][$str];
    13.             return;
    14.         }
    15.         echo $str;
    16.     }
    17.  
    18.     private function splitStrings($str) {
    19.         return explode('=',trim($str));
    20.     }
    21.  
    22.     public function __($str) {
    23.         if (!array_key_exists($this->language, $this->lang)) {
    24.             if (file_exists('../../pages/langs/'.$this->language.'.txt')) {
    25.                 $strings = array_map(array($this,'splitStrings'),file('../../pages/langs/'.$this->language.'.txt'));
    26.                 foreach ($strings as $k => $v) {
    27.                     $this->lang[$this->language][$v[0]] = $v[1];
    28.                 }
    29.                 return $this->findString($str);
    30.             }
    31.             else {
    32.                 echo $str;
    33.             }
    34.         }
    35.         else {
    36.             return $this->findString($str);
    37.         }
    38.     }
    39. }
    40. ?>
     
  3. vasiliygilbert

    vasiliygilbert Новичок

    С нами с:
    22 апр 2017
    Сообщения:
    21
    Симпатии:
    0
    Новое Теперь работает для всех файлов, кроме index.php, т.к он находится по такому пути: V:/home/maintest3.ru/www/, а остальные файлы со страницами по такому V:/home/maintest3.ru/www/pages/, если же ввести полный путь в php код выше: V:/home/maintest3.ru/www/pages/langs/ то все и для всех файлов работает, но это не целеобразно
     
    #3 vasiliygilbert, 16 июл 2017
    Последнее редактирование: 16 июл 2017