HELP me с explode()
1.
Игорь (25.12.2009 / 23:06)
Всем доброго времени суток...
Такая вот проблема...
хочу сделать вывод цытаты с файла citata.dat
Пишу вот так:
$str="file/citata.dat";
$file = file($str);
$mass=explode(':.', $file);
echo $mass[1];
Но нефика не выводится..
---------------------
Пишу вот так:
$file = ":.Тренируй память, чтобы помнить, что ты уже забыл
:.Тот знает достаточно, кто знает, как научиться.
:.В здоровом теле здоровый дух";
$mass=explode(':.', $file);
echo $mass[1];
так пашет...
Подскажите плиз как вывести цытаты с файла...
2.
Игорь (25.12.2009 / 23:16)
С мну + однозначно
3.
POISON (25.12.2009 / 23:17)
<?php
$file=file('file/citata.dat');
$cit=explode(':.',$file[0]);
$count=count($cit);
$rand=rand(1,$count);
echo $a[$rand];
?>
4.
Lugaro (25.12.2009 / 23:18)
Когда открываешь файл то $file делается массивом
5.
POISON (25.12.2009 / 23:22)
Да,в этом и дело, file читает файл помещая строки в массив. То есть,можно разные цитаты с новой строки,тогда explоde не нужна,или же в одной строке,разделяя символами.
6.
POISON (25.12.2009 / 23:24)
$mass=explode(':.',$file[0]);
7.
Игорь (25.12.2009 / 23:25)
3. POISON, нифика не выводит... не пойму в чем дело даж... никакой ошибки не пишет
8.
Lugaro (25.12.2009 / 23:26)
не знаю какая структура у твоего файла, может там каждая цитата с новой строки тогда выводить их можно так
$file = file('text.txt');
echo $file[array_rand($file)];
если каждая цитата не в одну строку то можеш выводить к примеру так
$file = explode(':.', implode(file('text.txt')));
echo $file[array_rand($file)];
9.
Игорь (25.12.2009 / 23:27)
6. POISON, пардон... запахало!
$str="file/cit.dat";
$file = file($str);
$mass=explode(':.', $file[0]);
echo $mass[1];
10.
Игорь (25.12.2009 / 23:29)
Спасибо ребята! Очень помогли! + обоим поставлю...
11.
POISON (25.12.2009 / 23:35)
Обоим...
12.
Игорь (25.12.2009 / 23:36)
8. .::lugaro::., в этом коде все ок, только порой при обновлении страницы ничего не выводит...
13.
Lugaro (25.12.2009 / 23:43)
12.
Fighter-Design, в каком именно? там их 2, структуру файла с цитатами покажи
14.
Lugaro (25.12.2009 / 23:49)
если ты это юзаеш $file = ":.Тренируй память, чтобы помнить, что ты уже забыл
:.Тот знает достаточно, кто знает, как научиться.
:.В здоровом теле здоровый дух"; то убери в начале :. потому что когда разбиваеш его на массив то выходит нулевой элемент массива пустым
15.
Удаленный (26.12.2009 / 01:12)
Еее если используются ячейки значет гдето может быть ентер а функцией file можна розрушыть содержимое, и воще зачем в его случае разбивать на на массив потом обратно разбивать?
Афтор вот держи функцию
<?
$file=file_get_content($str);
//Ето просто возьмёт содержымое с файла и вставит в переменную без разбивание в массив и дале просто делим на массив по заданным :.\\
$array=explode(':.',$file);
echo $array[0];
16.
Олег (26.12.2009 / 01:18)
Для каких целей это нужно? Если цитатник для сайта постоянный, то file_get_contents() Ни в коем случае нельзя использовать. пару пользоватлей зайдут и память процессора будет забита.
17.
Удаленный (26.12.2009 / 03:06)
Тогда замени :. На ентер
18.
Удаленный (26.12.2009 / 06:58)
16 если на то пошло то 9# будет сильнее грузить чем 15#
19.
Олег (26.12.2009 / 16:24)
9# вообще не стоит использовать если файл будет весить больше метра
20.
ramzes (26.12.2009 / 16:34)
Если файл очень большой то лучше создать 7 меньших файлов с номерами дней недели или 24 файла по часам.
Чуть больше работы, чуть меньше затрат ресурсов.
21.
Олег (26.12.2009 / 17:16)
И что же ты предложишь когда нужно будет из всего массива цитат вывести одну единственную? На мой взгляд лучше сделать одну таблицу SQL с двумя столбцами и вся задача решается двумя строчками кода.
22.
Игорь (26.12.2009 / 18:38)
21. Aligan, подробней плиз..
23.
Игорь (26.12.2009 / 18:43)
Вообщем хочу на сайте организовать вывод случайной цытаты с файла для начала... в мускуле мало шарю
24.
Игорь (26.12.2009 / 18:46)
14. .::lugaro::. вот так другое дело..
25.
Олег (26.12.2009 / 20:40)
Делаешь таблицу quotations с двумя полями - id_quotation | name_quotation
Ну и сам код
<?
$sql = MYSQL_QUERY("SELECT name_quotation FROM quotations ORDER BY RAND() LIMIT 1");
$name_quotation = MYSQL_RESULT($sql,0,"name_quotation"); // вывод случайной цитаты
?>
26.
Удаленный (26.12.2009 / 20:40)
Не парся просто пиши цытаты через ентер но в самой цытате ентер заменяй на <br>
Папример:
Цытата1<br>(Архимед)
Цытата2
Цытата3
Цытата4
Цытата5
-----------------------
И вывод случайной:
<?
$name='Путь к файлу';
$file=file($name);
$cytata=$file[round(0,count($file)-1)];
echo '<b>'.$cytata.'</b>';
У меня в одном файле было боле 10тыс. Агентов и 8 тыс. Прокси то таким образом брал без каких либо висов еще и успевал хостов около 20 штук накрутить.
27.
Олег (26.12.2009 / 20:54)
Вот честно не понимаю. TLENS, ты дейстивительно вариант с file() позволяет не париться? Правильно пускай сервер парится.
28.
Олег (26.12.2009 / 20:58)
До поры до времени. Обычный шаред хостинг долго бы не простоял. Я к тому что fle, file_get_contents - они считывают содержимое всего файла в память процессора которая лимитированна. Вариант с fopen куда более оптимизирован, если жалко завести одну таблицу в MySQL и не париться вообще
29.
Игорь (26.12.2009 / 21:55)
28. Aligan, сенкс, с меня аптечка
URL:
https://visavi.net/topics/4239