html текст
All interests
  • All interests
  • Design
  • Food
  • Gadgets
  • Humor
  • News
  • Photo
  • Travel
  • Video
Click to see the next recommended page
Like it
Don't like
Add to Favorites

15 регулярок, которые должен знать каждый PHP-программист


Регулярные выражения — это хорошо известный и очень полезный инструмент для разработчиков. С их помощью можно удобно находить, определять или заменять текст, слова или любые другие символы. В сегодняшнем посте я постарался собрать 15 наиболее полезных регулярных выражений для PHP-программиста, которые также пригодятся любому другому практикующему веб-разработчику.

С одной стороны я действительно пытался подобрать наиболее ходовые и востребованные в реальной жизни примеры, которые предварительно были мной основательно протестированы, и которые можно широко использовать в тысячи реальных ситуаций. С другой стороны — эти примеры можно использовать при начальном обучении регулярным выражениям: здесь есть как совсем простые, так и весьма глубокомысленные приёмы, тем более я считаю, что учиться новичку всегда лучше и эффективней на конкретных практических примерах.

Перед тем как приступать к чтению, остаётся лишь добавить, что это перевод вот этой статьи от Джан-Баптисты Джунга.

регулярные запросы регулярки regex PHP

Невольное предупреждение: если какой-то нижеприведенный листинг в силу не совсем удачной верстки выходит за экран блога, вы можете просто выделить его полностью и скопировать в буфер обмена, после чего вставить уже непосредственно в свой редактор, в котором вы работаете с кодом.

1. Проверка доменного имени

Проверяем, является ли строка правильным доменным именем?

$url = "http://blogerator.ru/";
if (preg_match('/^(http|https|ftp)://([A-Z0-9][A-Z0-9_-]*(?:.[A-Z0-9][A-Z0-9_-]*)+):?(d+)?/?/i', $url)) {
    echo "Your url is ok.";
} else {
    echo "Wrong url.";
}


2. Подсветка слова в тексте

Это очень полезное регулярное выражение, с его помощью вы можете найти нужное слово и подсветить его. Особенно полезно для отображения результатов поиска.

$text = "Sample sentence from BLOGERATOR.RU, regex has become popular in web programming. Now we learn regex. According to wikipedia, Regular expressions (abbreviated as regex or regexp, with plural forms regexes, regexps, or regexen) are written in a formal language that can be interpreted by a regular expression processor";
$text = preg_replace("/b(regex)b/i", '<span style="background:#5fc9f6">1</span>', $text);
echo $text;


3. Подсветка результатов поиска в WordPress-блоге

Как уже говорилось в предыдущем примере, этот пример кода, удобно использовать в выдаче поисковых результатов и есть отличный способ внедрить эту функцию в Wordpress-блог.

Откройте ваш файл search.php , и найдите функцию the_title() . Замените ее следующим кодом:

echo $title;

Теперь, выше этой строки, добавьте этот код:

<?php
    $title  = get_the_title();
    $keys= explode(" ",$s);
    $title  = preg_replace('/('.implode('|', $keys) .')/iu',
        '<strong class="search-excerpt">\0</strong>',
        $title);
?>

Сохраните файл search.php , и откройте style.css . Добавьте туда следующую строку:

strong.search-excerpt { background: yellow; }


4. Получение всех картинок из HTML-документа

Если вам когда-нибудь требовалось получить все картинки с веб-страницы, этот код должен быть вы легко сможете создать загрузчик изображений с помощью возможностей cURL:

$images = array();
preg_match_all('/(img|src)=("|\')[^"\'>]+/i', $data, $media);
unset($data);
$data = preg_replace('/(img|src)("|\'|="|=\')(.*)/i', "$3", $media[0]);
 
foreach ($data as $url) {
    $info = pathinfo($url);
    if (isset($info['extension'])) {
        if (($info['extension'] == 'jpg') ||
                ($info['extension'] == 'jpeg') ||
                ($info['extension'] == 'gif') ||
                ($info['extension'] == 'png'))
            array_push($images, $url);
    }
}


5. Удаление повторяющихся слов (не чувствителен к регистру)

Во время печатания, часто повторяются слова? Поможет вот это регулярное выражение.

$text = preg_replace("/s(w+s)1/i", "$1", $text);


6. Удаление повторяющейся пунктуации

То же самое, только для пунктуации. Попрощайтесь с двойными запятыми.

$text = preg_replace("/.+/i", ".", $text);


7. Поиск XML/HTML тэгов

Эта простая функция, принимает два аргумента. Первый — это тэг, который вам нужно найти, и второй — это переменная, содержащая XML или HTML. Повторюсь, эту функцию очень удобно использовать вместе с cURL.

function get_tag( $tag, $xml ) {
  $tag = preg_quote($tag);
  preg_match_all('{<'.$tag.'[^>]*>(.*?)</'.$tag.'>.'}',
                   $xml,
                   $matches,
                   PREG_PATTERN_ORDER);
 
  return $matches[1];
}


8. Поиск XHTML/XML тэгов с определенным значением атрибута

Эта функция очень похожа на предыдущую, за исключением того, что вы можете задать тегу нужный атрибут. Например, вы легко сможете найти < div id=”header”> .

function get_tag( $attr, $value, $xml, $tag=null ) {
  if( is_null($tag) )
    $tag = '\w+';
  else
    $tag = preg_quote($tag);
 
  $attr = preg_quote($attr);
  $value = preg_quote($value);
 
  $tag_regex = "/<(".$tag.")[^>]*$attr\s*=\s*".
                "(['\"])$value\\2[^>]*>(.*?)<\/\\1>/"
 
  preg_match_all($tag_regex,
                 $xml,
                 $matches,
                 PREG_PATTERN_ORDER);
 
  return $matches[3];
}


9. Поиск шестнадцатеричных значений цветов

Еще один полезный инструмент для веб-разработчика! Он позволяет вам находить/проверять шестнадцатеричные значение цвета.

$string = "#555555";
if (preg_match('/^#(?:(?:[a-fd]{3}){1,2})$/i', $string)) {
echo "example 6 successful.";
}


10. Поиск заголовка статьи

Этот фрагмент кода найдет и выведет на экран текст, находящийся внутри тэгов

Читать дальше
Twitter
Одноклассники
Мой Мир

материал с blogerator.ru

284
    +266 surfers

      Add

      You can create thematic collections and keep, for instance, all recipes in one place so you will never lose them.

      No images found
      Previous Next 0 / 0
      500
      • Advertisement
      • Animals
      • Architecture
      • Art
      • Auto
      • Aviation
      • Books
      • Cartoons
      • Celebrities
      • Children
      • Culture
      • Design
      • Economics
      • Education
      • Entertainment
      • Fashion
      • Fitness
      • Food
      • Gadgets
      • Games
      • Health
      • History
      • Hobby
      • Humor
      • Interior
      • Moto
      • Movies
      • Music
      • Nature
      • News
      • Photo
      • Pictures
      • Politics
      • Psychology
      • Science
      • Society
      • Sport
      • Technology
      • Travel
      • Video
      • Weapons
      • Web
      • Work
        Submit
        Valid formats are JPG, PNG, GIF.
        Not more than 5 Мb, please.
        30
        surfingbird.ru/site/
        RSS format guidelines
        500
        • Advertisement
        • Animals
        • Architecture
        • Art
        • Auto
        • Aviation
        • Books
        • Cartoons
        • Celebrities
        • Children
        • Culture
        • Design
        • Economics
        • Education
        • Entertainment
        • Fashion
        • Fitness
        • Food
        • Gadgets
        • Games
        • Health
        • History
        • Hobby
        • Humor
        • Interior
        • Moto
        • Movies
        • Music
        • Nature
        • News
        • Photo
        • Pictures
        • Politics
        • Psychology
        • Science
        • Society
        • Sport
        • Technology
        • Travel
        • Video
        • Weapons
        • Web
        • Work

          Submit

          Thank you! Wait for moderation.

          Тебе это не нравится?

          You can block the domain, tag, user or channel, and we'll stop recommend it to you. You can always unblock them in your settings.

          • pleshner
          • домен blogerator.ru

          Get a link

          Спасибо, твоя жалоба принята.

          Log on to Surfingbird

          Recover
          Sign up

          or

          Welcome to Surfingbird.com!

          You'll find thousands of interesting pages, photos, and videos inside.
          Join!

          • Personal
            recommendations

          • Stash
            interesting and useful stuff

          • Anywhere,
            anytime

          Do we already know you? Login or restore the password.

          Close

          Add to collection

             

            Facebook

            Ваш профиль на рассмотрении, обновите страницу через несколько секунд

            Facebook

            К сожалению, вы не попадаете под условия акции