За последние 24 часа нас посетили 53956 программистов и 1716 роботов. Сейчас ищут 1094 программиста ...

Извлечь из поля значение только одной строки

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

  1. fastdeath

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

    С нами с:
    16 май 2009
    Сообщения:
    47
    Симпатии:
    0
    Ребят, как можно из таблицы jos_content - поля metadata извлечь значения только строки ,начинающейся с meta_keywords= , отсеев всё остальное (при этом в результате извлечения meta_keywords= отображаться не должно)
    Например в таблице есть

    Код (Text):
    1. TEXT TEXT
    2. TEXT TEXT
    3. meta_keywords=бла бла бла
    4. TEXT TEXT
    5. TEXT TEXT
    Должно отображаться только
    Код (Text):
    1. бла бла бла
     
  2. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    Регулярное выражение или explode.
     
  3. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
  4. fastdeath

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

    С нами с:
    16 май 2009
    Сообщения:
    47
    Симпатии:
    0
    Вы конечно извините ,что имеете дело с болваном,но у меня ни то что с пхп нет ничего общего,а даже с английским.
     
  5. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Регулярками делается это так:

    PHP:
    1. <?php
    2.  
    3. /**
    4.  * Строка с текстом
    5.  * Можете получать с помощью file_get_contents
    6.  */
    7. $text = file_get_contents('file_with_text.txt');
    8.  
    9. // Ищем строки
    10. if(preg_match_all('/^meta_keywords=(.+)$/m', $text, $matches)) {
    11.     echo '<pre>'.print_r($matches, true).'</pre>';
    12. } else echo "Ничего не найдено";
    13.  
    14. ?>
     
  6. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Функциями так:
    PHP:
    1. <?php
    2. $text = ''//Сюда данные с поля
    3. echo ($res=array_shift(explode("\n",substr($text,strpos($text,'meta_keywords=')+14))))?$res:'Ничего не найдено';
    =)
     
  7. fastdeath

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

    С нами с:
    16 май 2009
    Сообщения:
    47
    Симпатии:
    0
    Это как?
    Сори тупость >>>
     
  8. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Это
    PHP:
    1.  
    2. $text='TEXT TEXT
    3. TEXT TEXT
    4. meta_keywords=бла бла бла
    5. TEXT TEXT
    6. TEXT TEXT';
     
  9. fastdeath

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

    С нами с:
    16 май 2009
    Сообщения:
    47
    Симпатии:
    0
    Не, Вы не поняли,это извлекается так (для полного поля)
    $query = 'SELECT `metadata` '
    . ' FROM #__content'
    . ' WHERE id=' . $id;
     
  10. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Трындец. =)
     
  11. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    PHP:
    1. <?php
    2.  
    3. $query = 'SELECT `metadata` FROM `content` WHERE `metadata` LIKE "meta_keywords=%"';
    4.  
    5. ?>
    Это?