За последние 24 часа нас посетили 17040 программистов и 1652 робота. Сейчас ищут 963 программиста ...

Как исключить из строки текст.

Тема в разделе "PHP для новичков", создана пользователем mainet, 7 мар 2013.

  1. mainet

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

    С нами с:
    31 май 2012
    Сообщения:
    77
    Симпатии:
    0
    Есть строка
    Код (Text):
    1.  
    2. $str = '<title>Заголовок</title><p>текст 1</p><p>текст 2</p>'
    Как вытащить отдельно"<title>Заголовок</title>" в новую переменную ??? И как удалить из строки $str - "<title>Заголовок</title>" ???
    Спасибо.
     
  2. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Код (PHP):
    1. $str = '<title>Заголовок</title><p>текст 1</p><p>текст 2</p>';
    2. preg_match('/<title>.*<\/title>/', $str, $matches);
    3.  
    4. print_r($matches);
    5.  
    preg_replace
    Удачи.
     
  3. mainet

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

    С нами с:
    31 май 2012
    Сообщения:
    77
    Симпатии:
    0
    Пустой массив.
     
  4. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Посмотри исходный код страницы или

    Код (PHP):
    1. echo htmlspecialchars($matches[0]); 
     
  5. mainet

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

    С нами с:
    31 май 2012
    Сообщения:
    77
    Симпатии:
    0
    Входная строка:
    Код (Text):
    1.  
    2. <title>
    3.         <p>Заголовок 1</p>
    4.         <p>Текст текст</p>
    5. </title>
    6. <p>Текст </p>
    7. <p>Текст </p>

    Код (Text):
    1.  
    2. echo htmlspecialchars($matches[0]);
    Undefined offset: 0

    pattern в preg_match надо наверное изменить, но я не понимаю что это за условия такие. И в документации найти не могу (((
     
  6. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Код (PHP):
    1. preg_match('/<title>[\W\w]*<\/title>/', $str, $matches); 
    Ну может ты уже определишься какие данные тебе надо парсить?
     
  7. mainet

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

    С нами с:
    31 май 2012
    Сообщения:
    77
    Симпатии:
    0
    Спасибо smitt. Куда можно денежку перевести ? :)
     
  8. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    В фонд защиты амурских тигров. Они будут тебе очень благодарны :)