ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

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

15.06.2009, 19:05
|
|
Постоянный
Регистрация: 27.07.2008
Сообщений: 614
Провел на форуме: 4532332
Репутация:
1196
|
|
вставлю своих 5 коп
PHP код:
<?php
$msg="
авбгд
авбвгд
абвгд";
$msgtrue=str_replace("\n","",$msg);
echo $msgtrue;// авбгд авбвгд абвгд
?>
|
|
|

15.06.2009, 19:43
|
|
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме: 6075534
Репутация:
2731
|
|
Эй, народ, что ЭТО такое??? Отвечу - это полтора страницы быдлокодов.
Patronik, Запись:
PHP код:
<?
$name='Павел Дуров'; #имя
$email='admin@vkontakte.ru'; #емейл
$message='Привет всем!'; #сообщение
$file='info.txt'; #файл для записи
fwrite(fopen($file,'a+'),$name."\r\n".$email."\r\n".$message); #запись в файл
?>
Чтение:
PHP код:
<?
$file='info.txt'; #файл для чтение
$data=file($file); #читаем файл
/*
$data выйдет
Array
(
[0] => Павел Дуров
[1] => admin@vkontakte.ru
[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, 20:44
|
|
Познающий
Регистрация: 07.05.2009
Сообщений: 70
Провел на форуме: 420226
Репутация:
38
|
|
есть xss вконтакте, нужна помощь чтобы доработать пишите в лс
|
|
|

16.06.2009, 00:45
|
|
Постоянный
Регистрация: 31.01.2008
Сообщений: 643
Провел на форуме: 6128108
Репутация:
445
|
|
Код:
PHP код:
while (!feof($file)){
$buff = fgets($file,4096);
$i++;
$ex1 = explode(";",$file);
$ex2 = explode("-",$file);
echo "<tr><td width=\"28\" height=\"23\"><center>".$i."</center></td><td width=\"107\"><center>".$ex1[0]."</center></td><td width=\"43\"><center>".$ex2[1]."</center></td>,</tr>";
}
Проблема в том что отображаеться в поле вместо содержания $ex1[0] отображается "Resource id #4" а вместо $ex2[1] - ничего
Ах да все что было в файле удаляется при этом
В чем проблема?
В файле из которого вывожу примерно это
123456;098732-15
|
|
|

16.06.2009, 01:16
|
|
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме: 6075534
Репутация:
2731
|
|
PHP код:
<?
$file=file('info.txt');
foreach($file as $line){
$i++;
$ex1 = explode(";",$line);
$ex2 = explode("-",$line);
echo "<tr><td width=\"28\" height=\"23\"><center>".$i."</center></td><td width=\"107\"><center>".$ex1[0]."</center></td><td width=\"43\"><center>".@$ex2[1]."</center></td>,</tr>";
}
?>
Так устраивает? Намного легче + удобнее.
ЗЫ: Если надо все таки тот вариант, читай с буффера, а не с хендла
PHP код:
<?
$file=fopen('info.txt','a+');
while (!feof($file)){
$buff = fgets($file,4096);
$i++;
$ex1 = explode(";",$buff); //посмотри у себя
$ex2 = explode("-",$buff); //посмотри у себя
echo "<tr><td width=\"28\" height=\"23\"><center>".$i."</center></td><td width=\"107\"><center>".$ex1[0]."</center></td><td width=\"43\"><center>".$ex2[1]."</center></td>,</tr>";
}
?>
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|