очередной нубский вопрос по РНР

Fallout_27
На сайте с 21.01.2006
Offline
139
871

Ребят, помогите пожалуйста.

Моделирую ситуацию: есть файл file.txt. Необходимо посредством РНР сделать так, чтобы брался этот файл, открывался и оттуда вытаскивалось содержимое построчно - то есть, первая строка как переменная $x, вторая строка как переменная $y, третья строка как переменная $z, и затем переменная $rand выбирается случайно из 4ой-54ой строк.

Кирилл Курек. Дизайн сайтов, Flash-анимация, разработка сайтов «под ключ» (http://www.kurek.ru)
bonzaza
На сайте с 10.06.2006
Offline
82
#1

ИМХО - есть замечательная функция file

через нее сделайте :)

она построчно выдирает файл в массив

после этого выдирайте значение типа $rand[rand(4,54)]

$arr = file('file.txt');

echo $arr[rand(4,10)];

просто - но работает :)

Если не мы, то кто?
Fallout_27
На сайте с 21.01.2006
Offline
139
#2

Спасибо, сейчас попробую.

А как сделать так, чтобы скрипт отрывал директорию сайта /folder/, затем поочередно открывал каждый файл в этой директории?

SunDrop
На сайте с 28.12.2005
Offline
34
#3

Вариант 1


// Читаем файл в массив
$lines = file('example.txt');

// Удаляем то что не нужно
for ($i=0; $i<4; $i++) unset($lines[$i]);
for ($i=54; $i<count($lines); $i++) unset($lines[$i]);

// Генерируем случайную строку и выводим ее
srand((float) microtime() * 10000000);
$rand_keys = array_rand($lines, 1);
echo $lines[$rand_keys[1]];

Вариант 2


// Читаем файл в массив
$lines = file('example.txt');

// Генерируем случайную строку и выводим ее
srand((float) microtime() * 10000000);
echo $lines[rand(4, 54);];

Проблему правильно понял?

Решение подходит?

Если что-то не так - опиши проблему подробнее.

В 20 лет он знал 9 операционных систем и 15 языков программирования, но ни одной женщины
Коля Дубр
На сайте с 02.03.2005
Offline
153
#4

Изучите вот эту и вот эту рубрики мануала, благо они на русском. Для чтения директорий используйте readdir.

Разрабатываю общую шину (http://habrahabr.ru/company/floxim/blog/268467/) помаленьку. ...а еще у меня есть бложек (http://www.blogovo.ru/).
SunDrop
На сайте с 28.12.2005
Offline
34
#5
Fallout_27:
А как сделать так, чтобы скрипт отрывал директорию сайта /folder/, затем поочередно открывал каждый файл в этой директории?


<?php
if ($handle = opendir('folder')) {
while (false !== ($file = readdir($handle))) {
if (is_file($file) && $file != "." && $file != "..") {
echo "$file\n";
}
}
closedir($handle);
}
?>

Поможет?

bondarev.pp.ru
На сайте с 29.09.2005
Offline
202
#6

SunDrop, имхо, это лишнее:

 && $file != "." && $file != ".."

Для точки и двух точек is_file() должна вернуть FALSE

Плюс к тому, нужно добавить к аргументу is_file() имя директории:

is_file('folder/' . $file)

поскольку readdir() отдает только имя файла, а не путь к нему.

bondarevpipes.com (http://ru.bondarevpipes.com/)
Fallout_27
На сайте с 21.01.2006
Offline
139
#7

Попробовал - работает только с локальными директориями :(

Моя цель - открывать с двух доменов текстовой файл, который лежит на третьем домене. Так можно сделать?

SunDrop
На сайте с 28.12.2005
Offline
34
#8
Fallout_27:
Попробовал - работает только с локальными директориями

Это ты о чтении файла или о чтении директории написал?

file - работать через http:// будет.

opendir

5.0.0 path supports the ftp:// URL wrapper.

4.3.0 path can also be any URL which supports directory listing, however only the file:// URL wrapper supports this in PHP 4

У тебя что не работает?

Fallout_27
На сайте с 21.01.2006
Offline
139
#9

Блин, вот что значит быть нубом в программировании :)

Объясняю подробно:

есть сайт site1.ru

у него есть директория site1.ru/dir/

в этой директории лежат текстовые файлы /dir/1.txt и /dir/2.txt

есть сайт site2.ru

в корне этого сайта должен быть файл file.php, который открывает директорию dir на сайте site1.ru, и последовательно открывает все файлы в этой директории того сайта - и читает оттуда содержимое.

Внимание, вопрос :) Что написать в файле file.php?

AM
На сайте с 04.11.2003
Offline
57
#10

1. Разрешить Directory listing на site1.

2. Воспользоваться регулярными выражениями для парсинга страницы и поиска нужных ссылок на файлы.

3. Собственно далее читать содержимое нужных файлов.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий