Preg match all знайти всі входження php. PHP regexp: приклади регулярних виразів. WordPress: Використання регулярного виразу для отримання картинок із запису

У цій статті надана добірка php regexp прикладів. Дуже гарна та корисна колекція прикладів регулярних виразів (regular expressions). Всі приклади регулярних виразів є прийнятними для PHP. Використовуйте на здоров'я!

Приклад перевірки доменного імені

Даний, php сніпет перевіряє, чи є рядок допустимим доменним ім'ям.

?:.*)+):?(d+)?/?/i", $url)) ( echo "Your url is ok."; ) else ( echo "Wrong url."; )

Приклад підсвічування слова в тексті

Дуже корисний регулярний вираз для пошуку та підсвічування потрібного слова в тексті. Особливо код корисний, під час створення висновку результатів пошуку.

$text = "Сample sentence from KomunitasWeb, regex has become popular in web programming. Next we learn regex. Посилання на 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 regular expression processor"; $text = preg_replace("/b(regex)b/i", "1", $text); echo $text;

Приклад реалізації підсвічування результатів пошуку WordPress

Відкрийте файл search.php та знайдіть функцію the_title(). Замініть її наступним рядком:

Echo $title;

А тепер, перед заміненим рядком, вставте цей код:

Збережіть файл search.php і відкрийте style.css. Додайте до нього наступний рядок:

Strong.search-excerpt ( background: yellow; )

Приклад отримання зображень з HTML методом regexp

Даний шматок php коду використовує регулярні вирази, шукає всі зображення та адресу url до них.

$images = array(); preg_match_all("/(img|src)=("|")[^"">]+/i", $data, $media); unset($data); $data=preg_replace("/(img|src)("|"|="|=")(.*)/i","$3",$media); 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); ) )

Видалення слів, що повторюються (без урахування регістру)

Чи часто зустрічаються слова, які повторюються? Тоді приклад цього регулярного виразу буде корисним.

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

Видалення точок, що повторюються

Те ж саме, тільки з точками, що повторюються.

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

Відповідність XML / HTML тегів

Ця проста функція приймає два аргументи: тег (відповідності якому ви хочете знайти), XML або html код.

Function get_tag($tag, $xml) ( $tag = preg_quote($tag); preg_match_all("(]*>(.*?).")", $xml, $matches, PREG_PATTERN_ORDER); return $matches; )

Пошук XHTML/XML тегів із певними значеннями атрибутів

Цей приклад схожий на попередню функцію, тільки ви можете значно розширити пошук, наприклад знайти .

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 = "/]*$attr\s*=\s*". .*?)/" preg_match_all($tag_regex, $xml, $matches, PREG_PATTERN_ORDER); return $matches; )

Пошук шістнадцяткових значень кольору

Відмінний приклад регулярного виразу, який шукає відповідності шістнадцяткових значень кольору у заданих рядках. Для чого це? Можливо, ви хочете написати сервіс зі стиснення CSS коду або щось подібне.

$string = "#555555"; if (preg_match("/^#(?:(?:(3))(1,2))$/i", $string)) ( echo "example 6 successful."; )

Приклад пошуку title на заданій сторінці

Цей цікавий приклад PHP коду з regexp шукає та повертає текст між тегами та .

Feof($fp))( $page .= fgets($fp, 4096); ) $titre = eregi("(.*)",$page,$regs); echo $regs; fclose($fp);

Парсинг логу Apache

Більшість сайтів працюють на відомих серверах Apache. Якщо ваш сайт також працює на ньому, можна зробити парсинг лога сервера за допомогою php regexp.

//Logs: Apache web server //Successful hits to HTML files only. Застосовується для Counting number of page views. "^((?#client IP або domain name)S+)s+((?#basic authentication)S+s+S+)s+[((?#date and time)[^]]+)]s+"(?: GET|POST|HEAD) ((?#file)/[^?"]+?.html?)??((?#parameters)[^?"]+)? HTTP/+"s+(?#status code)200s+((?#bytes transferred)[-0-9]+)s+"((?#referrer)[^"]*)"s+"((?#user agent )[^"]*)"$" //Logs: Apache web server //404 помилки тільки "^((?#client IP or domain name)S+)s+((?#basic authentication)S+s+S+) s+[((?#date and time)[^]]+)]s+"(?:GET|POST|HEAD) ((?#file)[^ ?"]+)??((?#parameters)[ ^ ?"]+)? HTTP/+"s+(?#status code)404s+((?#bytes transferred)[-0-9]+)s+"((?#referrer)[^"]*)"s+"((?#user agent )[^"]*)"$"

Приклад перевірки складності пароля

Відмінний приклад регулярного виразу, що перевіряє рівень складності пароля. Пароль повинен складатися з шести символів, містити хоча б: один заголовний символ, малий символ, цифру.

"A(?=[-_a-zA-Z0-9]*?)(?=[-_a-zA-Z0-9]*?)(?=[-_a-zA-Z0-9]*?) [-_a-zA-Z0-9](6,)z"

Заміна текстових смайликів на графічні смайлики

Даний приклад коду змінюватиме текстовий смайлик, на ваш графічний. Цікавий та корисний php сніппет.

$texte="A text with a smiley:-)"; echo str_replace(":-)"," ", $ Texte);

Приклад регулярного виразу для отримання зображень з html коду

Варто сказати, що даний php код використовується в wordpress, для пошуку та обробки зображень.