За последние 24 часа нас посетили 18837 программистов и 1619 роботов. Сейчас ищут 934 программиста ...

Столбец в текстовом файле -> строка на php

Тема в разделе "PHP для новичков", создана пользователем FRiK, 16 май 2008.

  1. FRiK

    FRiK Активный пользователь

    С нами с:
    16 май 2008
    Сообщения:
    20
    Симпатии:
    0
    Адрес:
    Нижний Новгород
    Вопрос в следующем. Есть .txt файл, в котором столбцом расположены слова, например:
    Код (Text):
    1. тест
    2. тест1
    3. тест2
    4. тест3
    Нужно обработать этот файл так, чтобы на пхп (НО не в браузере) выводились слова в 1 строку через пробел:
    Код (Text):
    1. тест тест1 тест2 тест3
    Пробовал по-разному, получается все время так, что в исходнике браузера то же самое, что и в текстовом файле, хотя браузер легко обрабатывает так как надо, т.е. слова выводятся в строчку через пробел.
     
  2. Professor

    Professor Активный пользователь

    С нами с:
    2 янв 2008
    Сообщения:
    121
    Симпатии:
    0
    Адрес:
    г. Одесса, Украина
    echo implode(" ", file("file.txt"));
     
  3. FRiK

    FRiK Активный пользователь

    С нами с:
    16 май 2008
    Сообщения:
    20
    Симпатии:
    0
    Адрес:
    Нижний Новгород
    Если бы было так просто, я бы не написал сюда. НА первый взгляд мне тоже показалось верным подобное решение, но, к сожалению, оно не дает нужного результата. Сами проверьте. Браузер выводит в строчку, а исходник страницы содержит все тот же столбец...
     
  4. Taris

    Taris Активный пользователь

    С нами с:
    13 май 2008
    Сообщения:
    29
    Симпатии:
    0
  5. FRiK

    FRiK Активный пользователь

    С нами с:
    16 май 2008
    Сообщения:
    20
    Симпатии:
    0
    Адрес:
    Нижний Новгород
    Taris, это тоже пробовал, результат не тот, который нужен. Пожалуйста, проверяйте код, прежде чем постить сюда :)
     
  6. Professor

    Professor Активный пользователь

    С нами с:
    2 янв 2008
    Сообщения:
    121
    Симпатии:
    0
    Адрес:
    г. Одесса, Украина
  7. Professor

    Professor Активный пользователь

    С нами с:
    2 янв 2008
    Сообщения:
    121
    Симпатии:
    0
    Адрес:
    г. Одесса, Украина
    Нет, не прав...
    вот мой вариант, работает:
    PHP:
    1.  
    2. $var = file ("file.txt");
    3. foreach ($var as $a) {
    4.     $v = str_replace ("\r\n", "", $a);
    5.     $arr[] = $v;
    6. }
    7.  
    8. echo implode (" ", $arr);
     
  8. Professor

    Professor Активный пользователь

    С нами с:
    2 янв 2008
    Сообщения:
    121
    Симпатии:
    0
    Адрес:
    г. Одесса, Украина
  9. FRiK

    FRiK Активный пользователь

    С нами с:
    16 май 2008
    Сообщения:
    20
    Симпатии:
    0
    Адрес:
    Нижний Новгород
    Ага, спасибо. Все работает. Вся соль была в переносе строки. В последнем примере не хватает " " в implode. Только не уверен, будет ли работать подобное в линуксе :) Но, для начала и этого хватит.
     
  10. NOmeR1

    NOmeR1 Активный пользователь

    С нами с:
    11 май 2008
    Сообщения:
    97
    Симпатии:
    0
    А почему бы не так?
    Код (Text):
    1. echo preg_replace('~[\r\n]+~', " ", file_get_contents("file.txt"));
    На 1 ф-цию меньше )
     
  11. FRiK

    FRiK Активный пользователь

    С нами с:
    16 май 2008
    Сообщения:
    20
    Симпатии:
    0
    Адрес:
    Нижний Новгород
    Ага, так тоже работает :)
     
  12. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    PHP:
    1. print implode(' ', file('file.txt', FILE_IGNORE_NEW_LINES));
     
  13. FRiK

    FRiK Активный пользователь

    С нами с:
    16 май 2008
    Сообщения:
    20
    Симпатии:
    0
    Адрес:
    Нижний Новгород
    Нет, это не катит. Можно успокоится, решение уже найдено :)
     
  14. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Катит, если правильно сохранить текстовый файл.
     
  15. Professor

    Professor Активный пользователь

    С нами с:
    2 янв 2008
    Сообщения:
    121
    Симпатии:
    0
    Адрес:
    г. Одесса, Украина
    У Сергея как всегда самый элегантный вариант ответа) Заслуга опыта, да.