Помогите с PHP

Тема в разделе "PHP", создана пользователем Tima111, 12 окт 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Tima111

    Tima111 Читатель

    Заблокирован
    Регистр.:
    5 июл 2007
    Сообщения:
    218
    Симпатии:
    486
    Люди помогите.
    Дано:
    PHP:
    <?php
    $text
    ='&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbspТекст текст текст текст.
    <br>&nbsp;&nbsp;&nbsp;Текст текст текст текст.
    &nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Текст текст текст текст.'
    ;
    echo 
    $text;
    ?>
    Нужно чтобы на выходе было:
    Код:
    &nbsp;&nbsp;&nbsp;Текст текст текст текст.
    <br>&nbsp;&nbsp;&nbsp;Текст текст текст текст.
    &nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Текст текст текст текст.
    Т.е. нужно в начале строки проверить есть ли лишнее <br> и урезать его, но только в начале, но не во всём тексте.
    Думал сначало отрезать от текста первые 50 символов и проверять на наличие тэга <br>, но есть такие варианты параметра $text где есть длинный нужный тег (вставка рисунка).
    Может есть какой-то вариант?
     
  2. Sanuch

    Sanuch

    Регистр.:
    25 май 2009
    Сообщения:
    207
    Симпатии:
    70
    PHP:
    $text preg_replace('/^<br[^>]*>/si'''$text);
     
    Tima111 нравится это.
  3. Tima111

    Tima111 Читатель

    Заблокирован
    Регистр.:
    5 июл 2007
    Сообщения:
    218
    Симпатии:
    486
    Sanuch, спасибо, но вариант не работает :(
    Наверное задачу не правильно описал...
    Нужно удалить <br> в первом предложении. Или первой строчке. Но не во всём тексте.
    BR находится не в самом начале, он может быть и после 20-200 знаков...
     
  4. Sanuch

    Sanuch

    Регистр.:
    25 май 2009
    Сообщения:
    207
    Симпатии:
    70
    позднее время суток сказывается на работоспособности :ah:
    PHP:
    if (preg_match('/^(&nbsp;)+<br[^>]*>.*/si',$text,$out))
        {
            
    $text preg_replace('/<br[^>]*>/si'''$text1);
        }
     
    Tima111 нравится это.
  5. Tima111

    Tima111 Читатель

    Заблокирован
    Регистр.:
    5 июл 2007
    Сообщения:
    218
    Симпатии:
    486
    Sanuch, спасибо огромное! :yahoo: :ay:
     
  6. monz

    monz Создатель

    Регистр.:
    24 авг 2009
    Сообщения:
    37
    Симпатии:
    0
    Я прошу прощения, вопрос немножко не по теме. Я новичок в PHP и возникла такая проблема при записи в текстовый файл.
    $tempo=($param1.$param2);
    $param1="hello";
    $param2="world";

    Записую их в файл таким образом:

    $file=fopen("test.txt","a+");
    fwrite($file,"$tempo\r\n");
    fclose($file);

    В результате в текстовом фале world получаеться с новой строки. Подскажите пожайлуста как записать hello world в одну строку.
     
  7. vadoru

    vadoru Постоялец

    Регистр.:
    28 янв 2007
    Сообщения:
    122
    Симпатии:
    46
    странно что у Вас вообще что то в файл записывается (я имею в виду последовательность строк в коде).

    PHP:

    $param1
    ="hello";
    $param2="world";
    $tempo=($param1.$param2); 
    // или $tempo=$param1." ".$param2;
    $file=fopen("test.txt","a+");
    fwrite($file,"$tempo\r\n");
    fclose($file);

     
  8. Tima111

    Tima111 Читатель

    Заблокирован
    Регистр.:
    5 июл 2007
    Сообщения:
    218
    Симпатии:
    486
    monz, сделайте так, если ненужны пробелы по бокам (функция trim:(
    PHP:
    $param1="hello"
    $param2="world"
    $tempo=($param1.$param2);  
    // или $tempo=$param1." ".$param2; 
    $tempo=trim($tempo);
    $file=fopen("test.txt","a+"); 
    fwrite($file,$tempo."\r\n"); 
    fclose($file);
     
Статус темы:
Закрыта.