За последние 24 часа нас посетили 16711 программистов и 1692 робота. Сейчас ищут 903 программиста ...

Как заменить повторяющиеся слова в строках файла на другие?

Тема в разделе "PHP для новичков", создана пользователем SV4, 24 сен 2011.

  1. SV4

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

    С нами с:
    24 сен 2011
    Сообщения:
    59
    Симпатии:
    0
    Адрес:
    Красноярск
    Всем доброго времени суток!
    У меня возник вопрос, по работе с текстовым файлом.
    Есть файл, в который записана информация вот в таком виде:

    http://webworth.info/interzarabok.hut2.ru
    http://www.tatlia.com/interzarabok.hut2.ru
    http://www.estibot.com/appraise.php?a=a ... ok.hut2.ru
    http://www.ks1234.com/alexa/index.asp?u ... ok.hut2.ru
    http://www.sitonomy.com/?url=interzarabok.hut2.ru
    http://judgespot.com/review/interzarabok.hut2.ru
    http://whois.domaintools.com/interzarabok.hut2.ru
    ...................................................................и так далее.

    Как осуществить замену адреса interzarabok.hut2.ru на любой другой?
    То есть, ввести в форму какой либо адрес и он записался вместо этого, во все строки текстового файла.
    Заранее очень благодарен за помощь!
     
  2. caballero

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

    С нами с:
    23 сен 2011
    Сообщения:
    18
    Симпатии:
    0
    str_replace()
     
  3. SV4

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

    С нами с:
    24 сен 2011
    Сообщения:
    59
    Симпатии:
    0
    Адрес:
    Красноярск
    Благодарю за помощь!
    Будем пробовать, что получится.
     
  4. SV4

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

    С нами с:
    24 сен 2011
    Сообщения:
    59
    Симпатии:
    0
    Адрес:
    Красноярск
    Как происходит замена значений разобрался, но ведь функция str_replace() работает лишь с одной строкой.
    А у меня их более трех сотен.
    То есть мне нужна функция, для работы с массивом.
     
  5. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Ты говоришь, что вся твоя информация записана в файл. Значит можно получить информацию не в виде массива, а в виде одной большой длинной строки, вместе с переносами. Например, с помощью функции file_get_contents()
    Списки всех имеющихся в php функций есть на сайте разработчиков: http://www.php.net .
     
  6. SV4

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

    С нами с:
    24 сен 2011
    Сообщения:
    59
    Симпатии:
    0
    Адрес:
    Красноярск
    Ну да. Вообще как вариант подошло.
    Сделал скрипт вот такого вида:
    <?php
    $urls = file_get_contents('urls.txt');/*выводим текстовый файл в одну строку*/
    $str1 = "interzarabok.hut2.ru"; /*значение которое следует заменить в строке*/
    $str2 = $_POST["url"];/*получили значение из формы*/
    $rezult = str_replace($str1, $str2, $urls);/*замена значений*/
    print $rezult;/*вывели все дело на экран*/
    ?>
    Конечно на выходе, смотрится как-то безобразно.
    Весь итог в переменной $rezult выводится в одну строку.
     
  7. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Естественно. Браузеру до фонаря, что в строке есть переносы строк. Браузеры их не отображают. Посмотри в браузере исходный код страницы и убедись, что переносы строк там на самом деле есть. Для переноса строки в браузере используется тег <br />
    Чтобы вывод был разбит по строкам в браузере - нужно заменить все переводы строк (символ "\n" или "\r\n") на <br /> . Это можно сделать и с помощью того же str_replace(), но вообще для этого существует специальная функция в php:
    nl2br()
    В твоём случае, вывод может быть следующим:
    PHP:
    1. <?php
    2. // ...
    3. print nl2br($rezult);
    4. ?>
     
  8. SV4

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

    С нами с:
    24 сен 2011
    Сообщения:
    59
    Симпатии:
    0
    Адрес:
    Красноярск
    Отлично!
    То что надо.
    Еще раз спасибо за помощь!