Получить строку из file_get_content , помогите

grendmaster

Постоялец
Регистрация
21 Апр 2010
Сообщения
67
Реакции
2
Привет всем,помогите плиз получить всю строку целиком
PHP:
for ($i=0; $i<60; $i++) 
{ 
    $text = file_get_contents('C:/wtexty/'.$i.'.txt');
$title = $text[0];
$title выводит только первую букву,а нужна вся строка
если меняю file_get_contents на file(), строка получается целиком,но перестает работать весь скрипт,чтение манов не помогло ;)
 
file_get_contents - получает содержимое файла в виде строки. При обращении $file[0] - ты обращаешься к первой букве (если рассматривать строку как массив из букв). варианты решения:

PHP:
$text_arr = file('C:/wtexty/'.$i.'.txt'); 
$title = trim($text_arr[0]); 
$text = implode('', $text_arr); 
unset($text_arr);

PHP:
     $text = file_get_contents('C:/wtexty/'.$i.'.txt'); 
preg_match("~^.*?\n~", $text , $title_preg);
$title =trim( $title_preg[0] );
 
Нет,не работает так,вообще пустые переменные получаются
я думаю здесь все дело в том что две переменные обращаются к одному файлу с разными требованиями так сказать,одной нужен файл целиком - поскольку счетчик,а другой нужен этот же файл построчно,может эту незадачу можно как то по другому порешать ?
 
Вот так.
PHP:
$text = file_get_contents('C:/wtexty/'.$i.'.txt'); 
preg_match("/^.*\n/Uis", $text , $title_preg);
$title =trim( $title_preg[0] );
 
Нет и так не пашет, вернее $title работает и строку выводит, а $text пусто
 
Нет и так не пашет, вернее $title работает и строку выводит, а $text пусто
Если $title работает нормально , то и $text должно быть хоть что-то, тк именно оттуда берётся значение. В этом коде ошибок нет, но у тебя скорее всего переменная $text где то затирается в другом месте.
 
Все,спасибо большое KillDead и dandandan,заработало наконец то,сорри тут маленько сам ступил поэтому сразу и не работало,
когда из PHP уберут все запятые,точки скобки и кавычки начну изучать основательно,:))

dandandan а что ето за хитрое такое Uis?
 
Все,спасибо большое KillDead и dandandan,заработало наконец то,сорри тут маленько сам ступил поэтому сразу и не работало,
когда из PHP уберут все запятые,точки скобки и кавычки начну изучать основательно,:))
dandandan а что ето за хитрое такое Uis?
Скрытое содержимое доступно для зарегистрированных пользователей!

i- не обращаем внимание на регистр
s- работа с мультистроками
U- шаблон захватин не максимум возможного а минимум.
хотя, по идее они все ненужны в данной задаче
 
Не проще
PHP:
for ($i=0; $i<60; $i++) {
  $text = file_get_contents('C:/wtexty/'.$i.'.txt'); 
  $text_explode = explode(PHP_EOL, $text);
  $title = $text_explode[0];
?
 
Не проще
PHP:
for ($i=0; $i<60; $i++) {
  $text = file_get_contents('C:/wtexty/'.$i.'.txt'); 
  $text_explode = explode(PHP_EOL, $text);
  $title = $text_explode[0];
?
Я об этом подумал, но в варианте list($title,) = explode() но посчитал что разбивать текст в массив - намного хуже по ресурсам- хотя это экономия на спичках.
+ PHP_EOL в принципе как и с \n нужно быть осторожнее (если посчитать это аксиомой как перенос строки)- если вдруг файлик создадите под виндой в блокноте и перекините на серв, то при разбиении только по \n (сам символ уйдёт) но \r останется. Неприятный и неочевидный баг, который может всплыть неожиданно.
 
Назад
Сверху