форум вебмастероff на AlfaSpace.NET |
Ubuntu и Linux
|реактивный бесплатный хостинг
| Киноклуб. ВСЁ БЕСПЛАТНО!
база знаний хостинга
|
правила форума
| Начало ° Ответить ° Статистика ° Опрос ° Регистрация ° Поиск ° FAQ ° |
| Форум вебмастеров на AlfaSpace.NET / Создание сайта / Почему при записи в файл стирается начало предидущей строки? |
| . 1 . 2 . >> |
| Автор | Сообщение |
| Рамиль minibb moder 1152 |
# Дата: 10 Май 2006 07:36<?
$news = fopen("z:/home/inet.info/www/templates/news.dat", "r+") or die("Невозмож Код. Первый самостоятельный опыт в РНР. Почему при записи в файл начало предидущей строки стирается?
З.Ы. Если соединяешься с параметром "а", т.е. записываешь в конец строки, всё нормально |
| smallcms Участник 2752 |
# Дата: 10 Май 2006 08:36 Рамиль r+ не для этих целей создан. тебе нужно найти где у тебя eof. а можно проще. a. пишешь в конец файла. потом собираешь построчно в массив, а потом -ооопааа: array_reverse() и всё новое оказывется сверху, а старое - в самом последнем ряду. всё! больше не подскажу, а то не интересно будет ![]() |
| Андрей Алексеевич 2123 |
# Дата: 10 Май 2006 08:57 ° Поправил: Андрей smallcms
» smallcms потом собираешь построчно в массив, а потом -ооопааа: array_reverse() и всё новое оказывется сверху, а старое - в самом последнем рядуСадомазахист! ---- Усп, я подумал что ты хотел перевернуть и записать перевёрнутым... Ступил я
Тогда уж вот так:
$addive = 'Это надо добавить в начало';
$fp = fopen("z:/home/inet.info/www/templates/news.dat", "r+");
$content = fread($fp, filesize($fp) );
$newcontent = $addive . $content;
fwrite( $fp, $newcontent );
fclose( $fp );
|
| Рамиль minibb moder 1152 |
# Дата: 10 Май 2006 10:50 А как можно сделать чтобы чтение из файла начиналось с конца в этом коде: <?
$news = fopen("z:/home/inet.info/www/templates/news.dat", "r");
$file_array = file("z:/home/inet.info/www/templates/news.dat");
for($i=0; $i < count($file_array); $i++)
{
$explode[$i] = explode("|", $file_array[$i]);
echo '<font size=1 face=Tahoma>'.$explode[$i][0].' '.$explode[$i][1].'<br /> |
| acsid Alfa Guru 2469 |
# Дата: 10 Май 2006 12:38 ° Поправил: acsid » Рамиль $file_array$file_array=array_reverse($file_array); тогда последняя строка в фаиле станет первым элементом массива |
| Рамиль minibb moder 1152 |
# Дата: 10 Май 2006 12:49 acsid Я вроде так пробовал. Хотя нет, пробовал перевернуть $explode, ну а получалось сам знаешь что... |
| smallcms Участник 2752 |
# Дата: 10 Май 2006 12:54 абырвалг! ![]() |
| acsid Alfa Guru 2469 |
# Дата: 10 Май 2006 12:55 » Рамиль Хотя нет, пробовал перевернуть $explodeелсли превернуть эксплоид получиться типа edolpxe$ ![]() |
| Рамиль minibb moder 1152 |
# Дата: 10 Май 2006 12:57 acsid ![]() |
| acsid Alfa Guru 2469 |
# Дата: 10 Май 2006 13:07 » Рамиль $explode[$i][0].а зачем такие замуты ктати) $explode[0] -так работает без проблем) |
| Рамиль minibb moder 1152 |
# Дата: 10 Май 2006 13:12 acsid Я хотел там одну чтучку замудить. Не получилось. Я ж говорю, на выходных половину переделаю ![]() |
| Рамиль minibb moder 1152 |
# Дата: 20 Май 2006 09:37 Появился ещё один вопрос: почему при записи в файл кавычки экранируются обратным слешем (\), хотя а обрабатываю переменные хтмлспециалсчарзом? |
| acsid Alfa Guru 2469 |
# Дата: 20 Май 2006 09:45 Рамиль потому что переменная не может их содержать без (\).. попробуй так htlspecialchats($_POST[]); |
| Рамиль minibb moder 1152 |
# Дата: 20 Май 2006 13:11 acsid » acsid попробуй так htlspecialchats($_POST[]);Чета не получается! ![]() |
| acsid Alfa Guru 2469 |
# Дата: 20 Май 2006 16:27 Рамиль выложи код..ясновидящих тут нет) |
| Рамиль minibb moder 1152 |
# Дата: 25 Май 2006 08:25 acsid Кажись функции » acsid htlspecialchats($_POST[]); |
| Рамиль minibb moder 1152 |
# Дата: 25 Май 2006 08:38 Народ, помогите составить регулярное выражение! Нужно, чтобы в строке находилось число, состоящее только из одной цифры, а потом заменялось preg_replace на число, найденное в строке плюс 0 спереди. У меня получился такой код: if (preg_match("/^[1-9]/i", $day, $match))
{
$day = preg_replace("/^[1-9]/i", "0".$day, $day);
}
Но, почему-то у цифр, с любым количеством знаков, вставлялось по обоим краям по нулю, а вот что нужно не работало ![]() |
| Рамиль minibb moder 1152 |
# Дата: 27 Май 2006 12:34 ° Поправил: Рамиль acsid » acsid выложи код..ясновидящих тут нет)<?
require_once("adminonly.php");
if (isset($_GET['day']) && $_GET['day'] != '')
{
$day = $_GET['day'];
}
if (isset($_GET['month']) && $_GET['month'] != '')
{
$month = $_GET['month'];
}
if (isset($_GET['year']) && $_GET['year'] != '')
{
$year = $_GET['year'];
}
if (isset($_GET['title']) && $_GET['title'] != '')
{
$title = $_GET['title'];
}
if (isset($_GET['body']) && $_GET['body'] != '')
{
$body = $_GET['body'];
}
$news = fopen("../templates/datas/news.dat", "a") or die("Невозможно открыть фай |
| Roler USA Hater 1368 |
# Дата: 27 Май 2006 12:46 Сорри плиз за оффтоп, но я в РНР новичок, решил напистаь гоствеху на файлах. Вопрос - как мне сохранять сообщения вмест с логином, мылом и урлом сайта, лучше в одни файл, а потом это читать. |
| Рамиль minibb moder 1152 |
# Дата: 27 Май 2006 12:53 Roler Используй код выше, форму могу дать я. Код чтения... да он тоже у меня есть. Всё будет сохраняться в один файл, одно сообщение - ода строка |
| acsid Alfa Guru 2469 |
# Дата: 27 Май 2006 13:27 ° Поправил: acsid Рамиль начнём с того что $_GET[]том передавать крайне не рекомендую. лучше постом. второе как бы ты там не решил передавать значения делай так: возьмём на примере $month $month = htmlspecialchars(trim($_GET['month'])); ili $month = htmlspecialchars(trim($_POST['month'])); а эту хрень htmlspecialchats($_POST[]); убери .. я когда писал тебе это, думал ты догадаешься что к чему..) |
| Рамиль minibb moder 1152 |
# Дата: 27 Май 2006 14:59 acsid Спасибо. Только вот почему » acsid $_GET[]том передавать крайне не рекомендую |
| acsid Alfa Guru 2469 |
# Дата: 27 Май 2006 15:07 ° Поправил: acsid » Рамиль $_GET[]том передавать крайне не рекомендуюхм ну например потому что допустим ты передаёшь гетом текст из формы русский длинной допустим 400 символов.. + ещё куча переменных --это изврат.. да и ломать такой скрипт легче.. не нужно формы менять .. |
| Рамиль minibb moder 1152 |
# Дата: 27 Май 2006 15:13 acsid » acsid да и ломать такой скрипт легче..Пробовал?
Ещё однин вопрос: » Рамиль Народ, помогите составить регулярное выражение!
Нужно, чтобы в строке находилось число, состоящее только из одной цифры, а потом заменялось preg_replace на число, найденное в строке плюс 0 спереди. У меня получился такой код: if (preg_match("/^[1-9]/i", $day, $match)) { $day = preg_replace("/^[1-9]/i", "0".$day, $day); } Но, почему-то у цифр, с любым количеством знаков, вставлялось по обоим краям по нулю, а вот что нужно не работало |
| acsid Alfa Guru 2469 |
# Дата: 27 Май 2006 15:55 ° Поправил: acsid Рамиль т.к. я несовсем понял твои регулярки .. сделал по описанию.. подстроишь сам:
$day="3423012";//переменная с числом
if(is_numeric($day)){//если это число
$var=substr($day,0,1);//отрезаем все ,оставляем тока первое
$match=str_replace($day,"0$day",$match); заменяем это число в строке и стави
м перед ним ноль
echo $match; //в итоге получишь 03 заменённое в строке $match
}
скрип работает если переменная содержит числа. ..($day, $match) - это ведь числа ? нетак ли? ![]() |
| Roler USA Hater 1368 |
# Дата: 28 Май 2006 02:26 Рамиль Спасибо к5онечно, но мне охота ещё и его понять. |
| acsid Alfa Guru 2469 |
# Дата: 28 Май 2006 03:29 ° Поправил: acsid Roler создай новую тему,напиши что именно тебе не ясно(пхп). обьясню подробно |
| Рамиль minibb moder 1152 |
# Дата: 28 Май 2006 03:40 acsid $day="3423012";//переменная с числом
if(is_numeric($day)){//если это число
$var=substr($day,0,1);//отрезаем все ,оставляем тока первое
$match=str_replace($day,"0$day",$match); заменяем это число в строке и стави
м перед ним ноль
echo $match; //в итоге получишь 03 заменённое в строке $match
} Надо бы добавить сюда условие, чтобы если $day > 9, изменения не происходило |
| acsid Alfa Guru 2469 |
# Дата: 28 Май 2006 03:42 ° Поправил: acsid$day="3423012";//переменная с числом
if(is_numeric($day)){//если это число
if($day =< 9){//если меньше или равно 9ти заменяем
$var=substr($day,0,1);//отрезаем все ,оставляем тока первое
$match=str_replace($day,"0$day",$match); заменяем это число в строке и с
тави
м перед ним ноль
echo $match; //в итоге получишь 03 заменённое в строке $match
}
} |
| Рамиль minibb moder 1152 |
# Дата: 28 Май 2006 03:45 ° Поправил: Рамиль acsid » Рамиль Надо бы добавить сюда условие, чтобы если $day > 9, изменения не происходилоСорри, это смогу зделать сам. Думал, это будет сложнее
--- Топик был написан раньше чем предыдущий |
| . 1 . 2 . >> |
|
Powered by miniBB forum software © 2001-2008
Powered by miniBB-gzipper. Original size:50431, gzipped size:11952 |