| |
|
|
| | скрипт ищет в файле слово(сделал),а вот надо еще сделать так чтобы выводилась инфа о том в какой строке находится файл?
помогите плиз | |
| |
|
|
| |
|
|
| |
для: levis
(08.12.2006 в 21:15)
| | | Приведите пример! | |
| |
|
|
| |
|
|
| |
для: Fli
(08.12.2006 в 21:32)
| | | Пример??
Чего?
В файле ищу так
$word= $reply_add;
$file="../mess/allmess.txt";
$open=fopen($file,"a+");
while(!feof($open)) $search.=fgets($open,1024);
fclose($open);
if(eregi(strtolower($word),strtolower($search)))
{
echo "Слово ".$word." - найдено";
echo (count ( $word,$open2));
}
...
{
...
} | |
| |
|
|
| |
|
|
| |
для: levis
(08.12.2006 в 21:40)
| | |
<?
$word= "da";
$file="test.txt";
$open=fopen($file,"r+");
while(!feof($open))
$search.=fgets($open,1024);
$search=preg_replace('|[\s]+|'," ",$search);
$search=preg_split("|[\s]+|", $search);
$n= array_search($word, $search);
echo $n+1;
fclose($open);
?>
|
встречный вопрос почему здесь после while(...) не используется {} ?
и что значит .=?
-----------------------------
соотвественно если поставить {} то в цикле получим не один массив из текста который в файле а каждое слово - массив с одним элементом... | |
| |
|
|
| |
|
|
| |
для: moonfox
(09.12.2006 в 05:58)
| | | >> почему здесь после while(...) не используется {} ?
Без фигурных скобок под цикл попадает только следующий за ним оператор. Что тут и нужно
>> и что значит .= ?
Прилепить к строке $search, прочитанную из файла ... в результате в переменной будет находиться тескт из файла
2levis
А что по вашему строка? Нужно именно определить в какой строке в файле найдено слово или строку, в которой слово будет находиться на сайте? | |
| |
|
|
| |
|
|
| |
для: levis
(08.12.2006 в 21:40)
| | | Можно так:
<?php
function print_result($result, $i, $c)
{
echo($result);
if($i != $c) echo(", ");
}
$filename = "file.txt";
$word = "Слово";
$farray = file($filename);
$lines = count($farray);
$results = array();
foreach($farray as $key => $value)
{
if(strpos($value, $word) !== false)
{
$results[] = $key + 1;
}
}
unset($farray);
$c = count($results);
if($c > 0)
{
if(count($results) > 1)
{
echo("Слово '".$word."' найдено в строках ");
for($i = 0; $i < count($results); print_result($results[$i], $i + 1, $c), $i++);
echo("<br />\n");
}
else
{
echo("Слово '".$word."' найдено в строке ".$results[0]."<br />\n");
}
}
else
{
echo("Слово '".$word."' не найдено в файле '".$filename."'.<br />\n");
}
?>
|
| |
| |
|
|
| |
|
|
| |
для: levis
(08.12.2006 в 21:15)
| | | Спасибо вам!!!
И еще один вопросик :
почему когда я передаю данные ссесии передается только 1 слово -самое первое
session_start();
$reply_add=($_SESSION['msg']); | |
| |
|
|
| |
|
|
| |
для: levis
(09.12.2006 в 14:41)
| | | msg - как оно формируется?
Unkind
хороший пример... отличный от моего..
тут правда в чем ерунда если 100 слов написать в одну строку - соотвественно перенос слов произойдет так как визуально вмещается в 1 строку тока определенное колво слов ... но этот переность не есть \n - и фактически пусть даже будет искомое слово на 100 - ой позиции- а это конец экрана - скрипт выдаст что искомое слово в строке 1... мой скрипт выдаст что искомой слово имеет 100 - ую позицию... тут наверно актуально искать и строку и позицию в ней.. | |
| |
|
|
| |
|
|
| |
для: moonfox
(09.12.2006 в 15:04)
| | | Что за ерунда? Если искомое слово на первой строке, он и выдаст то, что оно на первой., если на сотой, то и выдаст на сотой. Я, знаете, точность предпочитаю. | |
| |
|
|
| |
|
|
| |
для: Unkind
(09.12.2006 в 15:33)
| | |
<form action=admin/reply.php method=POST>
<table border='0' width=$size cellspacing='1' bordercolordark='white' bordercolorlight='white' bordercolor='white' cellpadding='0'>
<tr>
<td width='963' colspan='2' background=$image_top height='23'>
<font color=$color_name_msg> <b>
$mess[$t]</b><i><small>($mess[$b])</small></i></font>
</td>
</tr>
<tr>
<td width='20%' bordercolor='black' bgcolor=$color_name><font color=$color_info_msg>
Îò : $mess[$i] ";
if (!empty($mess[$e])) print "<a href=mailto:$mess[$e]> <img src=$milo></a> ";
if (!empty($mess[$s])) print " <a href=$mess[$s]> <img src =$ssilka ></a></font></td>";
print "</td>
<td width='835' bgcolor='$color_msg'valign='top' >
<font color=$color_text_msg> 
$mess[$g]</font>";
$mess[$g]=str_replace(" ","_",$mess[$g]);
print"
<input type=radio name=msg value=$mess[$g]>//это короче каждая 6 строка
</td>
</tr>
<tr>
<td>
|
Но с эти я уже справился как видно с помошью репласе
Мой 1 вопрос был задан собственно для того чтобы я смог найти строку,а потом уже ее заменить
но почему код на замену мой не пашет почему?
$line=$n;
$replace="$word <br><br> $reply";
$file2=file("../mess/allmess.txt");
$open2=fopen("../mess/allmess.txt","w");
for($i=0;$i< count($file2);$i++)
{
if(($i+1)!=$line){fwrite($open2,$file2[$i]);}
else{fwrite($open2,$replace."\r\n");}
}
fclose($open2);
|
| |
| |
|
|
| |
|
|
| |
для: Unkind
(09.12.2006 в 15:33)
| | | попробуй сам...
<?
$word="word";
$text="some text some text some text some
text some text some text some text some
text some text some text some text some
text some text some text some text some
text some text some text some some text
some text some text some text some text
word";
- это одна строка ... результат выдаст что
искомое находится в 1 строке - это правда -
но на экране мы увидим не одно строку а
столько сколька позволяет уместить в себе
строк даное разрешение. - здесь на форуме
оно формируется в одну строку дрим вивер
тоже выдаст все в одну строку, не все
редакторы так отображают например при
включеном в блокноте переносе слов( ms
word) - в несколько, из этого:
- факт строка одна
- и факт что визуально мы видим больше чем
одну строку - это и вызывает затруднее в
восприятии где же это слово
?>
|
и савсем иное
<?
$text="some text
some text
some text
some text
some text
some text
some text
word";
- опять таки на экране мы увидим текст в
разбитый на строки - тут выдаст что искомое
слово в строке 8.
?>
|
надеюся меня поняли
это не проблема это нюанс
мысли вслух.. можно не парится:) | |
| |
|
|
| |
|
|
| |
для: moonfox
(09.12.2006 в 16:13)
| | | Как у Вас выглядит страница мне, честно говоря, без разницы. Сказано в какой строке - надо и искать в нужной строке, а не как кажется Вашему браузеру.
P.S. Ваш скрипт будет выдавать не на какой строке слово, а каким по счету оно будет. Может Вы не знаете, что такое "строка"? | |
| |
|
|
| |
|
|
| |
для: Unkind
(09.12.2006 в 16:31)
| | | может ты будешь лучше читать что я пишу?
я не отказываюсь от того что оно показывает позицию в строке а не строку | |
| |
|
|
| |
|
|
| |
для: moonfox
(09.12.2006 в 16:40)
| | | Мы на "ты" не переходили.
А может тогда Вы прочитаете, что хотел автор темы? | |
| |
|
|
| |
|
|
| |
для: Unkind
(09.12.2006 в 16:43)
| | | я разширил понимание.
дал больше пищи для ума!
товарищь Unkind будем на ВЫ! | |
| |
|
|
| |
|
|
| |
для: moonfox
(09.12.2006 в 16:47)
| | | Люди давайте жить дружно
Короче говоря, чтобы не было непонятностей
Помогите, пожалуйста сделать:
1)Надо найти строку в которой содержится слово(сделано)
2)Надо заменить эту строку на другую
А еще проще:
Скрипт для замены строк в файле. | |
| |
|
|
| |
|
|
| |
для: levis
(09.12.2006 в 17:12)
| | | Вы наверно имеете ввиду замену не строки, а слова или словосочетание?
потому как мы могли убедиться что строкой может являтся хоть 100 разных слов содержащих и искомое... но заменяем именно искомое на не строку | |
| |
|
|
| |
|
|
| |
для: moonfox
(09.12.2006 в 17:15)
| | | Это Вы опять "разширили понимание"?
А если человек всё-таки имел в виду именно то, что написал? | |
| |
|
|
| |
|
|
| |
для: Trianon
(09.12.2006 в 17:18)
| | | сделано - то самое слово
текст текст текст текст текст текст текст текст текст текст текст сделано текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст
- одна строка,
заменим строку со словом сделано на другую строку - это рационально если строки четко разбиты иначе может потерятся смысл содержания файла...
с заменной только слова - все ясно
чичас товарищ levis все прояснит | |
| |
|
|
| |
|
|
| |
для: moonfox
(09.12.2006 в 17:31)
| | | повторяющихся слов не ту так как слово которое мы ищем-это дата в формате час минута секунда!! | |
| |
|
|
| |
|
|
| |
для: levis
(09.12.2006 в 17:40)
| | | Разьяснаю для чего это надо
Для добавления коментария к оствленному сообщению
тоесть скрипт ищет id сообщения(в моем случае дату,потом переходит на n строк) и заменяет его на текст сообщения и вставленный комментарий.Структура не пострадает
и вообще к чему разьснения? просто скажите как найти слово и заменить строку в котором это слово находится | |
| |
|
|
| |
|
|
| |
для: levis
(08.12.2006 в 21:15)
| | | ну и че молчим? | |
| |
|
|
| |
|
|
| |
для: levis
(08.12.2006 в 21:15)
| | | а как добавить запись в конец строки чтобы не повредить ее?? | |
| |
|
|
| |
|
|
| |
для: levis
(09.12.2006 в 22:55)
| | | Для этого удобно воспользоваться оператором .=
<?php
$test = "Hello ";
$test .= "world!";
?>
|
| |
| |
|
|