За последние 24 часа нас посетили 78016 программистов и 2510 роботов. Сейчас ищут 1299 программистов ...

Как указать путь к папке, в которой запущен скрипт

Тема в разделе "PHP для новичков", создана пользователем borus, 28 янв 2015.

  1. borus

    borus Активный пользователь

    С нами с:
    16 апр 2012
    Сообщения:
    161
    Симпатии:
    0
    Здравствуйте!

    Есть скрипт:
    Код (Text):
    1.  
    2. <?php
    3.   $text = file_get_contents("photo");
    4.   preg_match_all("|<a[\s]+href=\"([^\"]+)\">([^<]+)<|i",
    5.                  $text,
    6.                  $out,
    7.                  PREG_PATTERN_ORDER);
    8.   for($i = 0; $i < count($out[1]); $i++)
    9.   {
    10.     if($out[1][$i] == $out[2][$i]) echo $out[1][$i]."<br>";
    11.   }
    12. ?>
    который вызывается в файле, в одной папке с которым есть подпапка photo
    Когда запускаю этот скрипт возникает ошибка
    Дело происходит на Денвере
    Как её исправить?
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ошибка-то что гласит?
     
  3. borus

    borus Активный пользователь

    С нами с:
    16 апр 2012
    Сообщения:
    161
    Симпатии:
    0
    прав нет как я понял, только как связать концы с концами. раньше прав всегда на всё хватало
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.132
    Симпатии:
    1.251
    Адрес:
    там-сям
    borus, а что ты пытаешся сделать во второй строке?
     
  5. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    в винде особо никто не заморачивается на настройку прав доступа. указание пути через __DIR__ . '/photo' поможет?
     
  6. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.132
    Симпатии:
    1.251
    Адрес:
    там-сям
    я кажется понял! borus, ты ожидал, что file_get_content('папка') получит тот же текст, который ты видишь в браузере открывая адрес хттп://локалхост/папка/ ?
    для папок нужны другие функции: http://php.net/manual/ru/ref.dir
     
  7. borus

    borus Активный пользователь

    С нами с:
    16 апр 2012
    Сообщения:
    161
    Симпатии:
    0
    одним словом, мне нужно получить список имен файлов, находящихся в папке photo и во всех её подпапках. Запускаемый файл и папка photo лежат на одном уровне. Пробую скрипты, найденные в сети... :)
    __DIR__ . '/photo' не помогло
    Может у вас есть примерчик под описанную задачу?
     
  8. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    а, подпапка)))) ну круто. гугли readdir()
     
  9. borus

    borus Активный пользователь

    С нами с:
    16 апр 2012
    Сообщения:
    161
    Симпатии:
    0
    спасибо. нашел такое и поменял $folder под себя:
    Код (Text):
    1.  
    2. function GetListFiles($folder,&$all_files){
    3.     $fp=opendir($folder);
    4.     while($cv_file=readdir($fp)) {
    5.         if(is_file($folder."/".$cv_file)) {
    6.             $all_files[]=$folder."/".$cv_file;
    7.         }elseif($cv_file!="." && $cv_file!=".." && is_dir($folder."/".$cv_file)){
    8.             GetListFiles($folder."/".$cv_file,$all_files);
    9.         }
    10.     }
    11.     closedir($fp);
    12. }
    13. $all_files=array();
    14. GetListFiles("http://get_file_names/photo",$all_files);
    15. print_r($all_files);
    где get_file_names - это папка в папке home Денвера, что должно по идее эмулировать доступ к локальной папке после перезапуска Денвера. В указанной папке get_file_names есть www и уже в ней лежит запускаемый file_names.php. Вроде все по феншую :)
    Открываю адрес http://get_file_names/file_names.php в браузере и получаю гранату:
    в чем я не прав? :)
     
  10. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Начни писать код с нуля и перепроверяй каждый шаг.
     
  11. borus

    borus Активный пользователь

    С нами с:
    16 апр 2012
    Сообщения:
    161
    Симпатии:
    0
    Надо было вызвать вот так:
    Код (Text):
    1. GetListFiles("photo",$all_files);
     
  12. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.829
    Симпатии:
    1.333
    Адрес:
    Лень
    dirname( __FILE__ );
     
  13. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    MAN_IFE_ST, __DIR__ ;D