
14.06.2009, 21:15
|
|
Постоянный
Регистрация: 29.05.2007
Сообщений: 850
Провел на форуме: 4832771
Репутация:
1916
|
|
Ну регулярками, или file() и поиск по массиву. А следующие строчки $file[$key + 1], $file[$key + 2]
|
|
|

14.06.2009, 21:40
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме: 9220514
Репутация:
3338
|
|
PHP код:
<pre>
<?php
@set_time_limit(0);
@ini_set("display_errors","1");
$b = 8; //Кол-во строчек с нужной нам инфо, следующее за названием сайта (включая пустые строки, до следующего названия сайта)
$z = fopen('tema2.txt', 'a'); // Файл-результат по запросу
$submit = $_POST['submit'];
if(isset($submit))
{
$site = trim($_POST['site']);//Сайт, данные по которому нам нужны
$a = fopen('tema1.txt','r'); //Файл с данными
while(!feof($a)) {
$buffer = trim(fgets($a));
if (preg_match('|' . $site . '|',$buffer)) {
for ($i=1; $i<=$b; $i++) {
echo "$buffer\n";
fwrite ($z,"$buffer\r\n");
$buffer = trim(fgets($a));
}
}
}
fwrite ($z,"=====================\r\n");
fclose ($a);
}
?>
</pre>
<html>
<head>
<meta http-equiv="Content-Type" content="text; charset=windows-1251">
<title>FTP2FTP</title>
</head>
<bоdу>
<div align="center">
<form method="post">
<table>
<tr><td><span>Input site name:</span></td><td><input type="text" name="site" /></td></tr>
</table>
<input type="submit" name="submit" value="Find" />
</form>
</div>
</bоdу>
</html>
причем можно воодить без "http" или просто часть названия сайта
|
|
|

15.06.2009, 17:04
|
|
Познающий
Регистрация: 16.03.2009
Сообщений: 82
Провел на форуме: 148667
Репутация:
23
|
|
как записать три строки в файл? Например первая $name втроая $email треяя $message.
Чтобы потом масив $data[0] содержал $name $data[1] содержал $email $data[2] содержал $message.
У меня получаеться так но если я в $message записиваю несколько строк с пробелами и с "ентер" например "авбгд
авбвгд
абвгд"
То потом у меня $data[2] содержыт только "авбгд" а мне нужно чтобы вивести потом все ссобщение а не только первую строку.
|
|
|

15.06.2009, 18:02
|
|
Постоянный
Регистрация: 05.07.2008
Сообщений: 555
Провел на форуме: 3134311
Репутация:
1467
|
|
Сообщение от Patronik
как записать три строки в файл? Например первая $name втроая $email треяя $message.
Чтобы потом масив $data[0] содержал $name $data[1] содержал $email $data[2] содержал $message.
У меня получаеться так но если я в $message записиваю несколько строк с пробелами и с "ентер" например "авбгд
авбвгд
абвгд"
То потом у меня $data[2] содержыт только "авбгд" а мне нужно чтобы вивести потом все ссобщение а не только первую строку.
Перед записью для всех переменных делаешь:
$var = str_replace ( "\n" , '\n' , $var );
А при чтении потом:
$var = str_replace ( '\n' , "\n" , $var );
|
|
|

15.06.2009, 17:47
|
|
Новичок
Регистрация: 06.05.2009
Сообщений: 7
Провел на форуме: 60371
Репутация:
1
|
|
как записать три строки в файл?
при записи заменять символы переноса каретки на <br>
|
|
|

15.06.2009, 17:55
|
|
Познающий
Регистрация: 16.03.2009
Сообщений: 82
Провел на форуме: 148667
Репутация:
23
|
|
Можно поконкретней, я записиваю так:
fputs($file,$name."\n");
fputs($file,$email."\n");
fputs($file,$message."\n");
Считиваю так
for($i2 = $start; $i2<$count; $i2++)
{
$entry = $me[$i2];
$data = file("mes/$me[$i2]");
$name = trim($data[0]);
$email = trim($data[1]);
$message = trim($data[2]);
}
|
|
|

15.06.2009, 19:43
|
|
Постоянный
Регистрация: 17.09.2008
Сообщений: 562
Провел на форуме: 6962560
Репутация:
536
|
|
Сообщение от Patronik
Считиваю так
$name = trim($data[0]);
$email = trim($data[1]);
$message = trim($data[2]);
Я бы считал так:
PHP код:
$name = array_shift($data);
$email = array_shift($data);
$message = implode(" ", $data);
|
|
|

15.06.2009, 19:44
|
|
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме: 6075534
Репутация:
2731
|
|
Сообщение от Fepsis
Я бы считал так:
PHP код:
$name = array_shift($data);
$email = array_shift($data);
$message = implode(" ", $data);
Мда, почитай о функции file()
http://php.net/file
|
|
|

15.06.2009, 19:59
|
|
Постоянный
Регистрация: 17.09.2008
Сообщений: 562
Провел на форуме: 6962560
Репутация:
536
|
|
Сообщение от mailbrush
Мда, почитай о функции file()
http://php.net/file
Специально для тебя всё по-порядку:
1)
Сообщение от Patronik
как записать три строки в файл? Например первая $name втроая $email треяя $message.
Чтобы потом масив $data[0] содержал $name $data[1] содержал $email $data[2] содержал $message.
У меня получаеться так но если я в $message записиваю несколько строк с пробелами и с "ентер" например "авбгд
авбвгд
абвгд"
То потом у меня $data[2] содержыт только "авбгд" а мне нужно чтобы вивести потом все ссобщение а не только первую строку.
2)
Сообщение от Patronik
Можно поконкретней, я записиваю так:
fputs($file,$name."\n");
fputs($file,$email."\n");
fputs($file,$message."\n");
Считиваю так
for($i2 = $start; $i2<$count; $i2++)
{
$entry = $me[$i2];
$data = file("mes/$me[$i2]");
$name = trim($data[0]);
$email = trim($data[1]);
$message = trim($data[2]);
}
3)
Сообщение от Fepsis
Я бы считал так:
$name = array_shift($data);
$email = array_shift($data);
$message = implode(" ", $data);
То есть вместо кода
PHP код:
$name = trim($data[0]);
$email = trim($data[1]);
$message = trim($data[2]);
Я предлагаю
PHP код:
$name = array_shift($data);
$email = array_shift($data);
$message = implode(" ", $data);
Про file() я знаю, эта функция там присутствует...
К томуже мой вариант решает проблему
Сообщение от Patronik
То потом у меня $data[2] содержыт только "авбгд" а мне нужно чтобы вивести потом все ссобщение а не только первую строку.
А твой нет...
|
|
|

15.06.2009, 18:06
|
|
Новичок
Регистрация: 06.05.2009
Сообщений: 7
Провел на форуме: 60371
Репутация:
1
|
|
можно перед записью заменить символы переноса каретки на тег <br>
$message=str_replace("\n","<br>",$message);
тогда у вас в файле будет одна строка
$data[2] = "авбгд<br>авбвгд<br>абвгд";
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|