|
|
|
| Не знаю как правельно назвать тему ! Назовите пожалуйста за меня!
У меня такая проблема не знаю как мне вывести текс до определенного символа .. Например вот =
4 июня 1888 г конгресс штата Нью-Йорк принял билль об упразднении казни через повешение. Что
послужило причиной для этого гуманного акта?*электрический стул
<?php
$open = fopen("questions.txt","a+");
if(!$open)
{
echo"Невозможно отобразить вопросы";
}
else
{
$buff = fread($open,10000);
$question = substr($buff,"*");
$answer = strstr($buff,"*");
echo "$question";
echo "$answer";
}
fclose($open);
?>
|
Как сделать чтобы выводило текс до * это будет Вопросом , а дальше я разберусь :) | |
|
|
|
|
|
|
|
для: maDMo3r
(30.12.2004 в 21:51)
| | Хм... я обычно так substr попалам строку разрезаю:
<?php
$question = substr($buff,0,strpos($buff,"*"));
$answer = substr($buff,strpos($buff,"*")+1);
echo "$question<br>";
echo "$answer";
?>
|
Можно также очень элегантно разбить строку при помощи функции explode :
<?php
list($question,$answer) = explode("*",$buff);
echo "$question<br>";
echo "$answer";
?>
|
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=1006 | |
|
|
|
|
|
|
|
для: cheops
(30.12.2004 в 22:31)
| | Еще вопрос у меня в questions.txt Есть 2 строчки Как вытащить из 2-ой строчки текст? :) | |
|
|
|
|
|
|
|
для: maDMo3r
(30.12.2004 в 22:59)
| | Для этого предназначена функция file http://www.softtime.ru/dic/id_dic=176&id_group=6, которая читает содержимое файла и возвращает его в виде массива, каждый элемент которого соотвествует отдельной строке файла. | |
|
|
|
|
|
|
|
для: cheops
(30.12.2004 в 23:10)
| | Можно както сгенерировать randome вопросы? Если да то скажит как :)
Есть такая команда вообще? | |
|
|
|
|
|
|
|
для: maDMo3r
(31.12.2004 в 00:26)
| | Да, для этого предназначена функция rand()
int rand ( [int min, int max])
Функция гененрирует случайное целое число между двумя целочисленными параметрами min и max. Если необязательные параметры min и max не указаны число будет расположено между 0 и RAND_MAX(32768). Если версия PHP ниже 4.2.0 для инициализации генератора случайных чисел следует использовать функцию srand(). http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=169
Случайный вывод из файла вашего формата описывается по теме http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=713 | |
|
|
|
|
|
|
|
для: cheops
(31.12.2004 в 00:54)
| | Хелп не Чеопс помоги ! нужно чтобы выводилось сообщение которое начинается с символа " ' " и заканчивается " * " ! Вот этот код я так и не могу разобраться :(
<?php
$filename = "questions.txt";
$fd = fopen($filename, "r");
$bufer = fread($fd,filesize($filename));
fclose($fd);
$phrase = explode("*",$bufer);
$index = rand(0,count($phrase)-1);
echo $phrase[$index];
?>
|
| |
|
|
|
|
|
|
|
для: maDMo3r
(31.12.2004 в 01:50)
| | Хм... а задача та же может быть вы выложите хотя бы две записи из текстового файла, чтобы легче было отлаживать...
PS Я и на Хеопс откликаюсь :))) | |
|
|
|
|
|
|
|
для: cheops
(31.12.2004 в 13:14)
| | '1801-48), рос. композитор, певец романсов "Вдоль по улице метелица 'метет", "Красный сарафан", "На заре ты ее не буди".?*варламов
'(увелич.) идол (божество)?*идолище
'(уменьш.) комар, насекомое?*комарик
'... - это способ тратить деньги без всякого удовольствия. (Арман 'Салакру)?*экономия
'... - это хорошо загримированное китайское?*японское
'... - это хорошо похудевшее толстое?*тонкое
'... - это хорошо проспавшееся пьяное?*трезвое
'... - это шестое чувство, без которого остальные пять бесполезны. '(Сомерсет Моэм)?*деньги
'... в тумане?*ежик
Вот несколько :) вначале стоит " ' " ! | |
|
|
|
|
|
|
|
для: maDMo3r
(31.12.2004 в 15:55)
| | А одинарная кавычка идёт всегда вначале? Тогда может её просто вырезать:
<?php
$filename = "file_new.txt";
// Помещаем строки файла $filename
// в массив $arr
$arr = file($filename);
// Выбираем случайную позицию в
// массиве $arr - $index - это случайный
// индекс массива $arr
$index = rand(0,count($arr)-1);
// Разрезаем строку по символу *
list($question,$answer) = explode("*",$arr[$index]);
// У вопроса удаляем ведущую одинарную кавычку
echo substr($question,1)."<br>";
echo "$answer";
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(31.12.2004 в 16:08)
| | Окей спасибо :)
P.S не знал просто как читается ник ! :) всетаки сочитание букв ch читается как Ч ! :) | |
|
|
|
|
|
|
|
для: maDMo3r
(31.12.2004 в 16:21)
| | Оно по всякому читается и "ч", и "ш" и "х", зависит от слова... | |
|
|
|
|
|
|
|
для: cheops
(31.12.2004 в 16:28)
| | Опять проблема :) Хелп
Нужно Разделить вот Такой текст
Подскажите плиз
03.01.2005?maDMo3r*TEST! | |
|
|
|
|
|
|
|
для: maDMo3r
(03.01.2005 в 14:22)
| | Извените сам разобрался )
Вот код ....
$date = substr($buff,0,strpos($buff,"?"));
$news = substr($buff,strpos($buff,"*")+1);
$name = substr($buff,strpos($buff,"?")+1,substr($buff,"*"));
|
Спасибо Хеопсу :) Без его примеров не получилось бы ;) | |
|
|
|
|
|
|
|
для: maDMo3r
(03.01.2005 в 14:38)
| | Как можно вывести новость ? Вот Например как создается новая новость и создается к ней отдельный файл
$data = date("h.m.s");
$open = fopen("news/news.".$data,"w");
|
Как мне открыть этот файл ? :( | |
|
|
|
|
|
|
|
для: maDMo3r
(03.01.2005 в 14:57)
| | Хм... а вы просто откройте директорию news и поместите названия всех файлов в массив
<?php
// Открываем директорию
$dir = opendir("news");
// В цикле считываем её содержимое
while(($file = readdir($dir)))
{
// Если текущий объект является файлом - заносим его в массив
if(is_file($file)) $news[] = $file;
}
// Закрываем директорию
closedir($dir);
?>
|
В результате названия всех файлов директории будут у вас в массиве $news - от сюда и следует плясать...
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=737 | |
|
|
|
|
|
|
|
для: cheops
(03.01.2005 в 17:14)
| | угу спасибо Подзабыл .. :) | |
|
|
|
|
|
|
|
для: maDMo3r
(03.01.2005 в 18:00)
| | хм.. :( у меня не получается вывести может я чтото не так делаю :(
echo "$news[0]";
Так выводить 1-ую строчку ? (О_о) | |
|
|
|
|
|
|
|
для: maDMo3r
(03.01.2005 в 18:12)
| | Хм... да почему-то это безобразие не работает :((( Попробуйте пока так:
<?php
// Открываем директорию
$dir = opendir("news");
// В цикле считываем её содержимое
while(($file = readdir($dir)))
{
// Если текущий объект является файлом - заносим его в массив
if($file != ".." && $file != ".") $news[] = $file;
}
// Закрываем директорию
closedir($dir);
print_r($news);
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(03.01.2005 в 18:37)
| | а как мне дальше вытаскивать с каждого файла новость ? :) | |
|
|
|
|
|
|
|
для: maDMo3r
(03.01.2005 в 19:01)
| | Дальше можно обойти массив в цикле
<?php
foreach($news as $new)
{
// Включаем файл
include "news/$new";
}
?>
|
Ну или открываем каждый файл и подвергаем обработке полученный текст. | |
|
|
|
|
|
|
|
для: cheops
(03.01.2005 в 19:25)
| | А какая функция отвечает за вывод текста которое начинается с каждой строки ?:) | |
|
|
|
|
|
|
|
для: maDMo3r
(03.01.2005 в 20:03)
| | За это отвечает HTML - следует вывести тэг <br> - имено это переводит в HTML текст на новую строку:
Кроме того, в PHP имеется функция заменяющая переводы строк \n на тэг <br> - nl2br()
http://www.softtime.ru/dic/id_dic=35&id_group=1 | |
|
|
|
|
|
|
|
для: cheops
(03.01.2005 в 21:37)
| | Не хеопс я не это имелл введу :) Как мне например 1-ую строку добавить в масив $date а вторую $name третью в $news ?? | |
|
|
|
|
|
|
|
для: maDMo3r
(03.01.2005 в 22:49)
| | Хм... эти строки в файлах находятся? Т.е. каждый файл имеет три строчки? | |
|
|
|
|
|
|
|
для: cheops
(03.01.2005 в 23:27)
| | В 1-ом файле Строки вот атк рассположены
10.04.05
maDMo3r
ТЕстируем новости !!!!
Во 2-ом тоже самое ! вот атк вообщем :) | |
|
|
|
|
|
|
|
для: maDMo3r
(04.01.2005 в 01:19)
| | Тогда вместо
<?php
include "news/$new";
?>
|
следует использовать следующий код
<?php
// Открываем файл
$fd = fopen("news/$new","r");
// Читаем его содержимое
$bufer = fread($fd,"news/$new");
// Закрываем файл
fclose($fd);
// Разбиваем содержимое файла
list($date[],$name[],$new[]) = explode("\n",$bufer);
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(04.01.2005 в 02:09)
| |
<?php
// Открываем директорию
$dir = opendir("news");
// В цикле считываем её содержимое
while(($file = readdir($dir)))
{
// Если текущий объект является файлом - заносим его в массив
if($file != ".." && $file != ".") $news[] = $file;
}
// Закрываем директорию
closedir($dir);
?>
<?php
foreach($news as $new)
{
// Открываем файл
$fd = fopen("news/$new","r");
// Читаем его содержимое
$bufer = fread($fd,"news/$new");
// Закрываем файл
fclose($fd);
// Разбиваем содержимое файла
list($date[],$name[],$new[]) = explode("\n",$bufer);
}
?>
|
Вот весь скрипт но он не работает :( Вот ошибку выдает
Warning: fread() [function.fread]: Length parameter must be greater than 0. in d:\Apach\www\noname\show.php on line 27
Fatal error: [] operator not supported for strings in d:\Apach\www\noname\show.php on line 31
|
| |
|
|
|
|
|
|
|
для: maDMo3r
(04.01.2005 в 02:26)
| | Хм... поторопился, исправьте пожалуйста
<?php
$bufer = fread($fd,"news/$new");
?>
|
на
<?php
$bufer = fread($fd,filesize("news/$new"));
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(04.01.2005 в 02:50)
| | Вот опять какаето ошибка
Fatal error: [] operator not supported for strings in d:\Apach\www\noname\show.php on line 31
|
| |
|
|
|
|
|
|
|
для: maDMo3r
(04.01.2005 в 09:33)
| | А... в самом деле совпадают названия... попробуйте последний блок переписать следующим образом:
<?php
foreach($news as $new)
{
// Открываем файл
$fd = fopen("news/$new","r");
// Читаем его содержимое
$bufer = fread($fd,filesize("news/$new"));
// Закрываем файл
fclose($fd);
// Разбиваем содержимое файла
list($date[],$name[],$new_arr[]) = explode("\n",$bufer);
}
print_r($name);
?>
|
Т.е. сами новости будут в массиве $new_arr, так как все приличные названия заняты уже под другие переменные. | |
|
|
|
|
|
|
|
для: cheops
(04.01.2005 в 12:39)
| | А можно сделать чтобы оно не писало Array ( [0] => и скобки ? | |
|
|
|
|
|
|
|
для: maDMo3r
(04.01.2005 в 12:47)
| | Помоему уже проще сделать на Mysql :) и все :) | |
|
|
|
|
|
|
|
для: maDMo3r
(04.01.2005 в 12:47)
| | print_r - выдаёт дамп массива, его не следует использовать в реальной работе... далее вывод следует осуществлять в цикле foreach...
PS Если будете что-то спрашивать по этой тебе, заведите, плиз, новую тему, а то это уже слишком длинная... не удобно. | |
|
|
|
|
|
|
|
для: cheops
(04.01.2005 в 13:01)
| | Окей мне все ясно уже :) | |
|
|
|