За последние 24 часа нас посетили 21438 программистов и 1698 роботов. Сейчас ищут 1862 программиста ...

организовать регулярку

Тема в разделе "Регулярные выражения", создана пользователем fastdeath, 30 авг 2009.

  1. fastdeath

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

    С нами с:
    16 май 2009
    Сообщения:
    47
    Симпатии:
    0
    Ребят ,как организовать регулярку: выводить из массива $its (внизу примеры) всё что от meta_keywords= (опуская саму meta_keywords=) до robots=(опуская)

    PHP:
    1. html_title= meta_description=Allen Iverson, NBA, Miami Heat, meta_keywords=Allen Iverson, NBA, Miami Heat, robots=index, follow googlebot= copyright=  
    Должно остаться Allen Iverson, NBA, Miami Heat,


    PHP:
    1. html_title= meta_description=Tracy McGrady, Houston Rockets, NBA meta_keywords=Tracy McGrady, Houston Rockets, NBA robots=index, follow googlebot= copyright=  
    Должно остаться Tracy McGrady, Houston Rockets, NBA
     
  2. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Без регулярного выражения можно спокойно обойтись.
    Даю пример (видите, как всё просто?):

    PHP:
    1. <?
    2.  
    3. // Исходная строка с тегами
    4. $str = 'html_title= meta_description=Allen Iverson, NBA, Miami Heat, meta_keywords=Allen Iverson, NBA, Miami Heat, robots=index, follow googlebot= copyright=';
    5.  
    6.  
    7. // Вычисление результатирующей строки
    8. $start  = strpos($str, "meta_description") + strlen("meta_description=");
    9. $length = strpos($str, "meta_keywords") - $start;
    10.  
    11. // Подготовка готового варианта
    12. $keywords = trim(substr($str, $start, $length), ", ");
    13.  
    14. // Смотрим на готовый результат
    15. echo $keywords . "<br /><br />";
    16.  
    17. // Можем разбить на массив
    18. echo "<pre>" . print_r(explode(", ", $keywords), true) . "</pre>";
    19.  
    20. ?>
    Logic will save the World!
     
  3. fastdeath

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

    С нами с:
    16 май 2009
    Сообщения:
    47
    Симпатии:
    0
    А как я могу осуществить следующее.
    Например прописать
    PHP:
    1.     $html.=" <a href=\"index.php?option=com_search&searchword=$tag&searchphrase=exact&ordering=newest\">".$tag."</a>";
    Где каждый тег( например такие Allen Iverson, NBA, Miami Heat,) откликался на переменную $tag .
    Например должно получиться так Allen Iverson(линк у которого идёт на index.php?option=com_search&searchword=Allen+Iverson&searchphrase=exact&ordering=newest/ , NBA ( тоже залинкована на index.php?option=com_search&searchword=NBA&searchphrase=exact&ordering=newest\ и тд ?
     
  4. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    fastdeath
    Не лениться и изучить пример, который я дал выше.
    Я даже показал, как на массив разбить, неужели вы не умеете перебирать элементы массива?
     
  5. fastdeath

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

    С нами с:
    16 май 2009
    Сообщения:
    47
    Симпатии:
    0
    PHP:
    1. $tags = 'Allen Iverson, NBA, Miami Heat';
    2. $tags = explode(',', $tags);
    3. foreach ($tags as $tag)
    4. {
    5.         $html.=" <a href=\"index.php?option=com_search&searchword=$tag &searchphrase=exact&ordering=newest\">".$tag."</a>";
    6. }  
    Вот так пойдёт?
     
  6. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Самое оно!
     
  7. fastdeath

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

    С нами с:
    16 май 2009
    Сообщения:
    47
    Симпатии:
    0
    блин, вот это
    Код (Text):
    1. <?
    2.  
    3.  // Исходная строка с тегами
    4.  $str = 'html_title= meta_description=Allen Iverson, NBA, Miami Heat, meta_keywords=Allen Iverson, NBA, Miami Heat, robots=index, follow googlebot= copyright=';
    5.  
    6.  
    7.  // Вычисление результатирующей строки
    8.  $start  = strpos($str, "meta_description") + strlen("meta_description=");
    9.  $length = strpos($str, "meta_keywords") - $start;
    10.  
    11.  // Подготовка готового варианта
    12.  $keywords = trim(substr($str, $start, $length), ", ");
    13.  
    14.  // Смотрим на готовый результат
    15.  echo $keywords . "<br /><br />";
    16.  
    17.  // Можем разбить на массив
    18.  echo "<pre>" . print_r(explode(", ", $keywords), true) . "</pre>";
    19.  
    20.  ?>
    перестаёт работать,если meta description пусто
    например meta_description= meta_keywords=Allen Iverson, NBA, Miami Heat, robots=index,