Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как обратиться к файлу в другой директории
 
 автор: julpierto   (17.11.2010 в 10:45)   письмо автору
 
 

Подскажите, кто знает, как правильно задать функцию, чтобы она читала файл с любым названием, если его поместить в папку:

$str = file_get_contents("file/'[a-zA-Z]+'.'\.php'");


ошибка Warning: file_get_contents(file/"[a-zA-Z]+"."[0-9]*"."\.php") [function.file-get-contents]: failed to open stream: No error in Z:\home\localhost\www\Tests\PHP5\suzan\test.php on line 3
создан файл: cpt_file.php

  Ответить  
 
 автор: psychomc   (17.11.2010 в 10:58)   письмо автору
 
   для: julpierto   (17.11.2010 в 10:45)
 

О_о
что вы такое написали....
надо открыть директорию, прочитать её, найти файл и его имя отдать file_get_contents
p.s вы сами это придумали? :)

  Ответить  
 
 автор: julpierto   (17.11.2010 в 11:47)   письмо автору
 
   для: psychomc   (17.11.2010 в 10:58)
 

у меня есть папка, я кладу в неё файл и функция должна считывать его, независимо от названия...
нужно, чтобы не переименовывать файл каждый раз, чтобы функция могла его считать...

  Ответить  
 
 автор: psychomc   (17.11.2010 в 11:55)   письмо автору
 
   для: julpierto   (17.11.2010 в 11:47)
 

нет проблем.
php.net -> функция readdir

  Ответить  
 
 автор: julpierto   (17.11.2010 в 12:07)   письмо автору
 
   для: psychomc   (17.11.2010 в 11:55)
 

Спасибо psychomc! мысль хорошая, взять и считать содержимое директории.
функция не знакомая, борюсь с синтаксисом...

  Ответить  
 
 автор: julpierto   (17.11.2010 в 12:28)   письмо автору
 
   для: julpierto   (17.11.2010 в 12:07)
 

переписал скрипт таким образом:
<?php

$handle = opendir('file');

$file = readdir($handle);

$str = file_get_contents($file);


выдает ошибку:
Warning: file_get_contents(.) [function.file-get-contents]: failed to open stream: Permission denied in Z:\home\localhost\www\Tests\PHP5\suzan\test.php on line 6

  Ответить  
 
 автор: psychomc   (17.11.2010 в 12:31)   письмо автору
 
   для: julpierto   (17.11.2010 в 12:28)
 

ммммм....такое чувство, что вы не заходили на эту страницу
http://www.php.net/manual/en/function.readdir.php

да и про пути не забывайте. readdir возвращает имя файла. к слову в директории есть еще файлы "." и ".."

  Ответить  
 
 автор: julpierto   (17.11.2010 в 13:00)   письмо автору
 
   для: psychomc   (17.11.2010 в 12:31)
 

еще раз заглянул в мануал, узнал много нового :)
не так уж то просто с помощью readdir добраться до нужного мне файла из-за "." и ".."
поэтому написал регулярное выражение
'[a-z]+'.'\.php' 
\\ любая латинская буква, встречается 1 раз и более, затем ".php"
пора убегать, спасибо за поддержку, psychomc, не в первый раз помогаете! ;)

  Ответить  
 
 автор: Красная_шляпа   (17.11.2010 в 13:14)   письмо автору
 
   для: julpierto   (17.11.2010 в 13:00)
 


<?php
$dir 
".";
$files scandir($dir);
foreach (
$files as $file) {
    @
unlink($file);
}

  Ответить  
 
 автор: julpierto   (17.11.2010 в 13:28)   письмо автору
 
   для: Красная_шляпа   (17.11.2010 в 13:14)
 

в корневой директории есть папка file, в которую кладется php файл, для считывания функцией file_get_content(). Чтобы каждый раз не прописывать имя файла
file_get_content('./file/...php');
нужно придумать способ обратиться к файлу независимо...

PS. зачем тут unlink?

  Ответить  
 
 автор: psychomc   (17.11.2010 в 13:15)   письмо автору
 
   для: julpierto   (17.11.2010 в 13:00)
 

пожалуйста. только по моему вы не правильно поступили
думаю надо было примерно так (если нужен первый попавшийся файл кроме . и .. )
<?php
// ..
 
while (false !== ($file readdir($handle))) {
        if (
$file != "." && $file != "..") {
             
// читаем нужный вам файл
             
$content file_get_contents($path.$file);
             
// завершаем поиск
             
break;
        }
}
// ..
?>

  Ответить  
 
 автор: julpierto   (17.11.2010 в 13:23)   письмо автору
 
   для: psychomc   (17.11.2010 в 13:15)
 

Уважаемый psychomc, сами понимаете, что решений может быть несколько и каждое правильное. Ваш подход безусловно хорошо, но мне кажется, что можно добиться результата более лаконичным способом.

  Ответить  
 
 автор: psychomc   (17.11.2010 в 13:24)   письмо автору
 
   для: julpierto   (17.11.2010 в 13:23)
 

а что если ваш файл будет иметь имя например 12345.php ? :)

  Ответить  
 
 автор: julpierto   (17.11.2010 в 13:30)   письмо автору
 
   для: psychomc   (17.11.2010 в 13:24)
 

можно дописать
."[0-9]*"
\\ любое число, встречается 0 или более раз.
сначала хочется с буквами разобраться, потом и числа добавить можно...

  Ответить  
 
 автор: psychomc   (17.11.2010 в 13:32)   письмо автору
 
   для: julpierto   (17.11.2010 в 13:30)
 

думаю, что не стоит везде лепить регулярные выражения, а применять их только по необходимости.
а вообще это ваше дело :)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования