Синтаксис на регулярен израз
Когато PHP интерпретаторът обработва файл, той търси тагове, които показват къде започва и завършва PHP кодът. Всичко извън чифт начални и крайни тагове ще бъде игнорирано от интерпретатора (т.е. просто ще бъде предоставено на уеб сървъра така, както е). Например, файлът, предаден на PHP интерпретатора, има следния код:
Това ще бъде игнорирано от интерпретатора и просто ще бъде дадено както е, първо на уеб сървъра, който от своя страна ще даде на браузъра.
Това също ще бъде игнорирано от интерпретатора и просто ще бъде предадено на уеб сървъра така, както е.
Ако файлът съдържа само PHP код или се намира в самия край на файла, т.е. няма нищо след него, тогава затварящият таг е за предпочитане да бъде пропуснат (не е посочен). Това помага да се избегне добавянето на произволни празни знаци след PHP крайния таг, което може да причини нежелани ефекти.
PHP също позволява кратък отварящ таг вместо
echo "Hello World!"; ?>
Празни знаци
В PHP код можете да използвате празни знаци: интервали, раздели и нови редове. Броят на интервалите не е ограничен и зависи от предпочитанията на програмиста, чиято основна цел е да създаде ясен и лесен за четене програмен текст (изходен код).
Примерът по-долу показва PHP код, който използва празни знаци:
Примерният код би могъл да бъде написан на един ред без използване на празни знаци, но такъв код би бил по-малко четим:
Последна актуализация на 27 ноември 2019 г. 07:10:59 (UTC/GMT +8 часа)
Синтаксис на PHP отварящи и затварящи тагове
Има четири различни двойки отварящи и затварящи тагове, които могат да се използват в php. Ето списъка с етикети.
- синтаксис по подразбиране
- кратки отворени етикети
- Пропуснете PHP затварящия таг в края на файла
Синтаксис по подразбиране
Синтаксисът по подразбиране започва с " php" and ends with "?>".
Пример:
кратки отворени етикети
Кратките етикети започват с "" and ends with "?>". Кратките стилови тагове са налични само когато са активирани в конфигурационния файл php.ini на сървърите.
Пример:
echo "PHP example with short-tags"; ?>
Пропуснете PHP затварящия таг в края на файла
Препоръчва се затварящ PHP таг да бъде пропуснат във файл, съдържащ само PHP код, така че да се избегнат случайни празни интервали или нови редове, добавени след PHP затварящия таг, което може да започне буфериране на изхода, причинявайки нежелани ефекти.
Пример:
Разделяне на PHP изрази
В PHP изразите се завършват с точка и запетая (;) като C или Perl. Затварящият таг на блок от PHP код автоматично предполага точка и запетая, няма нужда да има точка и запетая, завършваща последния ред на PHP блок.
Правила за разделяне на изявленията
- точка и запетая
- И/ИЛИ
- затварящ PHP таг
Валидни кодове
В горния пример присъстват точка и запетая(;) и затварящ PHP таг.
В горния пример няма точка и запетая(;) след последната инструкция, но присъства затварящ PHP таг.
В горния пример има точка и запетая(;) в последната инструкция, но няма затварящ PHP таг.
Чувствителност към главни и малки букви на PHP
В PHP дефинираните от потребителя функции, класове, основни езикови ключови думи (например if, else, while, echo и т.н.) са нечувствителни към малки и големи букви. Следователно трите ехо оператора в следващия пример са равни.
пример-1
"); ECHO("Учим чувствителността към малки и главни букви в PHP
"); EcHo("Учим чувствителността към главни и малки букви на PHP
");
?>
Учим чувствителността към малки и главни букви в PHP Учим чувствителността към малки и главни букви в PHP
От друга страна, всички променливи са чувствителни към малки и малки букви.
Помислете за следния пример. Само първият израз показва стойността като $amount, защото $amount, $AMOUNT, $amoUNT са три различни променливи.
пример-2
"); echo("Сумата е: $AMOUNT
"); echo("Сумата е: $amoUNT
");
?>
Сумата е: 200 Сумата е: Сумата е:
Нечувствителност към интервали в PHP
По принцип празното пространство не се вижда на екрана, включително интервали, табулатори и знаци в края на реда, т.е. връщане на карета. В PHP празното пространство няма значение при кодирането.Можете да разделите израз на един ред на произволен брой редове или брой отделни изрази заедно на един ред.
Следните два примера са еднакви:
Пример:
"; echo "Неговият клас е: $class и Roll No. е $roll_no"; ) student_info("David Rayy", "V", 12) ?>
Пример: Разширена нечувствителност към интервали
"; echo "Неговият клас е: $class и Roll No. е $roll_no"; ) student_info("David Rayy", "V", 12) ?>
Името на ученика е: Дейвид Рей Неговият клас е: V и номер на свитък. е 12
Пример: Нечувствителност към бели интервали с раздели и интервали
В следващия пример интервалите и разделите се използват в числова операция, но и в двата случая $xyz връща същата стойност.
"; // раздели и интервали $xyz = 11 + 12; echo $xyz; ?>
PHP: Коментари с един ред и няколко реда
коментар на един ред
PHP поддържа следните два различни начина за коментиране.
# Това е коментар от един ред.
//Това е друг начин за едноредов коментар.
Пример:
многоредови коментари
PHP поддържа коментари в стил "C". Коментарът започва с двойката знаци /* и завършва с двойката знаци */.
/* Това е тест с множество коментари,
и тези редове ще бъдат игнорирани
в момента на изпълнение */
Пример:
Коментарите с няколко реда не могат да бъдат вложени
Първи PHP скрипт
Ето първия PHP скрипт, който ще покаже "Hello World..." в уеб браузъра.
<?php echo "Здравей свят..."; ?>
Етикетите казват на уеб сървъра да третира всичко вътре в таговете като PHP код за изпълнение. Кодът е много прост. Той използва вградена PHP функция "echo", за да покаже текста "Hello World ..." в уеб страницата. Всичко извън тези тагове се изпраща директно към браузъра.
картинно представяне
Комбиниране на PHP и HTML
PHP синтаксисът е приложим само в PHP тагове.
PHP може да бъде вграден в HTML и поставен навсякъде в документа.
Когато PHP е вграден в HTML документи и PHP анализира този документ, се интерпретира секцията, оградена с отварящ таг () на PHP и игнорирайте останалата част от документа.
PHP и HTML се виждат заедно в следния пример.
практикувайте тук онлайн:
Регулярните изрази са много полезен инструмент за разработчиците. С тяхна помощ можете да намерите, дефинирате или замените текст, думи или други знаци. Днешната статия съдържа 15 от най-полезните регулярни изрази, от които всеки уеб разработчик ще се нуждае.
Въведение в регулярните изрази
Много начинаещи разработчици намират регулярните изрази за много трудни за разбиране и използване. Всъщност всичко не е толкова трудно, колкото може да изглежда. Преди да преминем директно към регулярните изрази с техния полезен и многофункционален код, нека да разгледаме основите:
Синтаксис на регулярен израз
Редовен израз | Средства |
Фу | Низът "foo" |
^фу | Низът започва с "foo" |
foo$ | Низът завършва с "foo" |
^foo$ | "foo" се среща само веднъж в ред |
a, b или c | |
всяка малка буква | |
[^A-Z] | всеки знак, който не е в главни букви |
(gif|jpg) | Означава едновременно „gif“ и „jpeg“ |
+ | Един или повече малки букви |
Произволно число, точка или знак минус | |
^{1,}$ | Всяка дума, поне една буква, цифра или _ |
()() | wy, wz, xy или xz |
(^A-Za-z0-9) | Всеки знак (не цифра или буква) |
({3}|{4}) | Означава три букви или 4 цифри |
PHP функции за регулярни изрази
функция | Описание |
preg_match() | Функцията preg_match() търси низ според даден модел, връща true, ако низът е намерен, и false в противен случай |
preg_match_all() | Функцията preg_match_all() намира всички срещания на низ, даден от шаблон |
preg_replace() | Функцията preg_replace() работи по същия начин като ereg_replace(), с изключение на това, че регулярните изрази могат да се използват както за указване на шаблона за търсене, така и на низа, с който да се замени намерената стойност. |
preg_split() | Функцията preg_split() е същата като split(), с изключение на това, че регулярен израз може да се използва като параметър за модел на търсене. |
preg_grep() | Функцията preg_grep() търси във всички елементи на входния масив, като връща всички елементи, които съответстват на модела на регулярен израз. |
preg_quote() | Избягва символите на регулярния израз |
Проверка на име на домейн
Проверка дали даден низ е валидно име на домейн
$url = "http://komunitasweb.com/"; if (preg_match("/^(http|https|ftp)://(*(?:.*)+):?(d+)?/?/i", $url)) ( echo "Вашият URL адрес е ок ."; ) else ( echo "Грешен url."; )
Маркиране на думи в текста
Това е много полезен регулярен израз, можете да го използвате, за да намерите точната дума и да я маркирате. Особено полезно за показване на резултати от търсене.
$text = "Примерно изречение от KomunitasWeb, регулярният израз стана популярен в уеб програмирането. Сега научаваме регулярен израз. Според wikipedia регулярните изрази (съкратено като regex или regexp, с форми за множествено число regexes, regexps или regexen) се записват във формален език, който може да се интерпретира от процесор за регулярен израз"; $text = preg_replace("/b(regex)b/i", " 1", $текст); ехо $текст;
Маркиране на резултати от търсене в WordPress блог
Както бе споменато в предишния пример, този примерен код е полезен в резултатите от търсенето и има чудесен начин да внедрите тази функция в блог на wordpress.
Отворете файла search.php и намерете функцията the_title(). Заменете го със следния код:
echo $title;
Сега над този ред добавете този код:
\0", $title); ?>
Запазете файла search.php и отворете style.css. Добавете следния ред:
Strong.search-excerpt ( фон: жълт; )
Получаване на всички изображения от HTML документ
Ако някога ви се наложи да получите всички снимки от уеб страница, този код трябва да бъде, можете лесно да създадете програма за зареждане на изображения, като използвате възможностите на cURL
$ изображение = масив (); preg_match_all("/(img|src)=("|\")[^"\">]+/i", $data, $media); изключване ($ данни); $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($ изображения, $url); ))
Премахване на дублиращи се думи (без значение за главни и малки букви)
Често ли повтаряте думи, докато пишете? Този регулярен израз ще помогне.
$text = preg_replace("/s(w+s)1/i", "$1", $text);
Премахване на повтаряща се пунктуация
Същото, само за препинателни знаци. Кажете сбогом на двойните запетаи.
$text = preg_replace("/.+/i", ".", $text);
Търсене на XML/HTML тагове
Тази проста функция приема два аргумента. Първият е етикетът, който трябва да намерите, а вторият е променливата, съдържаща XML или HTML. Отново, тази функция е много удобна за използване с cURL.
Функция get_tag($tag, $xml) ( $tag = preg_quote($tag); preg_match_all("(<".$tag."[^>]*>(.*?)".$tag.">.")", $xml, $съвпадения, PREG_PATTERN_ORDER); върне $ съвпадения; )
Търсете XHTML/XML тагове с конкретна стойност на атрибут
Тази функция е много подобна на предишната, с изключение на това, че можете да зададете желания атрибут на тага. Например, можете лесно да намерите
Функция 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); върне $matches; )
Намерете шестнадесетични цветови стойности
Още един полезен инструмент за уеб разработчик! Позволява ви да намерите/проверите шестнадесетичната стойност на цвят.
$string = "#555555"; if (preg_match("/^#(?:(?:(3))(1,2))$/i", $string)) ( echo "пример 6 успешен.";)
Търсене на заглавие на статия
Тази част от кода ще намери и покаже текста вътре в таговете
$fp = fopen("http://www.catswhocode.com/blog","r"); докато (!feof($fp))( $page .= fgets($fp, 4096); ) $titre = eregi("
Разбор на регистрационен файл на Apache
Повечето сайтове работят на добре познатия уеб сървър Apache. Ако вашият сайт е един от тях, защо не използвате PHP и регулярни изрази за анализиране на регистрационните файлове на Apache?
//Дневници: уеб сървър на Apache //Само успешни посещения на HTML файлове. Полезно за отчитане на броя показвания на страници. "^((?#клиентски IP адрес или име на домейн)S+)s+((?#основно удостоверяване)S+s+S+)s+[((?#дата и час)[^]]+)]s+"(?: GET|POST|HEAD) ((?#file)/[^ ?"]+?.html?)??((?#parameters)[^ ?"]+)? HTTP/+"s+(?#статус код)200s+((?#прехвърлени байта)[-0-9]+)s+"((?#referrer)[^"]*)"s+"((?#потребителски агент )[^"]*)"$" //Дневници: уеб сървър на Apache //само 404 грешки "^((?#IP клиент или име на домейн)S+)s+((?#основно удостоверяване)S+s+S+) s+[((?#дата и час)[^]]+)]s+"(?:GET|POST|HEAD) ((?#файл)[^ ?"]+)??((?#параметри)[ ^?"]+)? HTTP/+"s+(?#статус код)404s+((?#прехвърлени байта)[-0-9]+)s+"((?#referrer)[^"]*)"s+"((?#потребителски агент )[^"]*)"$"
Замяна на двойни кавички с интелигентни кавички
Ако сте любител на типографията, ще ви хареса този регулярен израз, който замества обикновените двойни кавички с интелигентни кавички. Подобен регулярен израз се използва в wordpress в съдържанието на страницата.
Preg_replace("B"b([^"x84x93x94rn]+)b"B", "?1?", $текст);
Пълна проверка на паролата
Този регулярен израз ще гарантира, че най-малко шест знака, цифри, тирета и долни черти са въведени в текстовото поле.
Текстовото поле трябва да съдържа поне една главна буква, една малка буква и едно число.
„A(?=[-_a-zA-Z0-9]*?)(?=[-_a-zA-Z0-9]*?)(?=[-_a-zA-Z0-9]*?) [-_a-zA-Z0-9](6,)z"
WordPress: Използване на регулярен израз за получаване на изображения от публикация
Тъй като много от вас са потребители на WordPress, може да ви е полезно да имате код, който ви позволява да получите всички изображения от текста на статия и да ги изведете.
За да използвате този код, просто го поставете във всеки файл във вашата тема.
post_content; $szSearchPattern = "~ ]* />~"; // Изпълнете preg_match_all, за да вземете всички изображения и да запазите резултатите в $aPics preg_match_all($szSearchPattern, $szPostContent, $aPics); // Проверете дали имаме поне 1 изображение $iNumberOfPics = count($aPics); if ($iNumberOfPics > 0) ( // Сега тук бихте направили всичко, което трябва да направите с изображенията // За този пример изображенията се показват само за ($i=0; $i< $iNumberOfPics ; $i++) { echo $aPics[$i]; }; }; endwhile; endif; ?>
Генериране на автоматични емотикони
Друга функция, използвана в wordpress, е, че ви позволява автоматично да замените символите на усмивка с изображение на усмивка.
$texte="Текст с усмивка:-)"; ехо str_replace(":-)"," ",$текст);
JavaScript е блокиран във вашия браузър. Разрешете JavaScript, за да работи този сайт!
strip_tags
(PHP 3 >= 3.0.8, PHP 4, PHP 5)
strip_tags- Премахва HTML и PHP тагове от низОписание
низ strip_tags(низ str[, низ допустими_тагове])Тази функция връща низа str с премахнати HTML и PHP тагове. За премахване на етикети се използва автомат, подобен на този, използван във функцията fgetss().
Незадължителният втори аргумент може да се използва за указване на тагове, които не трябва да се премахват.
вниманиекоментар:Аргументът allowable_tags беше добавен в PHP 3.0.13 и PHP 4.0b3. Считано от PHP 4.3.0, HTML коментарите също са премахнати.
защото strip_tags()не проверява коректността на HTML кода, незавършените тагове могат да доведат до премахване на текст, който не е включен в таговете.
Пример 1: Пример за използване strip_tags()
$текст = "Параграф.
Още малко текст"; echo strip_tags($text); echo "\n\n-------\n"; // не изтривайecho strip_tags($текст, "
"); // Позволява ,,echo strip_tags($текст, " ");
Този пример ще изведе:
Параграф. Още малко текст -------
Параграф.
Още малко текст
вниманиеТази функция не променя атрибутите на таговете, посочени в аргумента allowable_tags, включително style и onmouseover.
От PHP 5.0.0 strip_tags()безопасен за работа с данни в двоична форма.
Тази функция има значителен недостатък - това е залепването на думи при изтриване на етикети. Освен това функцията има уязвимости. Алтернативна функция, подобна на strip_tags:
c" * - "мръсният" html се обработва правилно, когато знаците могат да бъдат намерени в стойностите на атрибута на етикета< >* - повреденият html се обработва правилно * - коментари, скриптове, стилове, PHP, Perl, ASP код, MS Word тагове, CDATA се изрязват * - текстът се форматира автоматично, ако съдържа html код * - защита срещу фалшификати като: "<
Вижте също описание на функцията