[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Прочитать строку из файла - вопрс
Kira
Доброго времени. С пхп знаком на уровне "приходилось редактировать файлы"
Такой вопрос: нужно читать первую строку из файла чтобы через переменную вывести ее в нужном мне месте и удалить ее после этого из файла. какую функцию использовать? тоесть должно получится как то так:
$mytext = $blabla->blabla(С:\mutextfile.txt чтобы можно было вставлять $mytext в нужное место, и тоже самое нужно сделать для всего текста в файле, в данном случае текст не должен из файла удаляться
Помогите плииииз rolleyes.gif честно гуглил, то что находил пытался применить методом научного тыка - не помогло.
twin
file() - читаем файл в массив, array_shift() вытаскиваем из него первый элемент, implode() - собираем массив в строку через \n, file_put_contents() - безопасно записываем обратно в файл. Последняя функция для PHP не ниже 5-й версии.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Kira
$mytxt = file('mufile.txt'); //читаем файл в массив

$mytx = array_shift($mytxt) //вытаскиваем из него первый элемент

$implode("\n", $mytx) //собираем массив в строку через \n

$file_put_contents('mufile.txt') //безопасно записываем обратно в файл


что-то опять неправильно делаю, синтаксиса не знаю.. в чем ошибка?
Raito-kun
это код? как насчет точки с запятой после каждой строки?)
Kira
поставил точки с запятой, фигурные скобки - начала вставляться одна первая строка $mytx! Спасибо, хоть что-то заработало. Но из файла эта строка не удалилась. В чем осталась ошибка


PHP
{

$mytxt file('mufile.txt'); //читаем файл в массив

$mytx array_shift($mytxt); //вытаскиваем из него первый элемент

implode("\n"$mytx); //собираем массив в строку через \n

file_put_contents('mufile.txt'); //безопасно записываем обратно в файл

}

Raito-kun
PHP
<?php
        $mytxt 
file('test.txt'); //читаем файл в массив

        
$mytx array_shift($mytxt); //вытаскиваем из него первый элемент

        
implode("\n"$mytxt); //собираем массив в строку через \n

        
file_put_contents('test.txt'$mytxt); //безопасно записываем обратно в файл


Kira
Спасибо!!! Получилось biggrin.gif Хотя это называется разжевали и в рот положили.

Еще вопрос cool.gif как проделать тоже самое только не для одной строки а для n строк?

ЗЫ посоветуйте мануал по пхп, те что в сети находил слишком унылы, с такими примерами, которые на практике мне никогда не пригодятся.
twin
Функция array_shift() вытаскивает первый элемент. Значит надо применить её n раз и всё.
А мануал не мануал, но кое что почитать можно тут. По крайней мере я отвечу на вопросы. (здесь отвечу)

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
КRiCo
Цитата (twin @ 7.08.2009 - 04:27)
Функция array_shift() вытаскивает первый элемент. Значит надо применить её n раз и всё.
А мануал не мануал, но кое что почитать можно тут. По крайней мере я отвечу на вопросы. (здесь отвечу)

а можно вопрос...
а как прочитать какую либо строку из файла зная только определённые символы которые хранятся в етой строке...заранее спрасибо!
FatCat
Цитата (КRiCo @ 21.09.2009 - 13:45)
как прочитать какую либо строку из файла зная только определённые символы которые хранятся в етой строке...

Проверкой по массиву.
PHP
$finded = array(); // Массив для найденных строк
$mytxt = file('mufile.txt');
foreach(
$mytxt as $stroka)
{
    if( stristr($stroka, $searched) // если строка содержит искомое
        
$finded[] = $stroka// добавляем строку в массив найденных
}
echo "<p>".implode("</p><p>",$finded)."</p>";


_____________
Бесплатному сыру в дырки не заглядывают...
Гость_Николай
Цитата (FatCat @ 21.09.2009 - 13:54)
Цитата (КRiCo @ 21.09.2009 - 13:45)
как прочитать какую либо строку из файла зная только определённые символы которые хранятся в етой строке...

Проверкой по массиву.
$finded = array(); // Массив для найденных строк
$mytxt = file('mufile.txt');
foreach($mytxt as $stroka)
{
    if( stristr($stroka, $searched) ) // если строка содержит искомое
        $finded[] = $stroka; // добавляем строку в массив найденных
}
echo "<p>".implode("</p><p>",$finded)."</p>";

а если нужно несколько строк найти
$searched и
$searched_2 как быть в этом случае?
Valick
Гость_Николай, используйте базу данных, там все гораздо проще

_____________
Стимулятор ~yoomoney - 41001303250491
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.