Syntax regulárneho výrazu

Keď interpret PHP spracováva súbor, hľadá značky, ktoré označujú, kde začína a končí kód PHP. Čokoľvek mimo dvojice počiatočných a koncových značiek bude tlmočník ignorovať (t. j. bude jednoducho odovzdané webovému serveru tak, ako je). Napríklad súbor odovzdaný interpretu PHP má nasledujúci kód:

Tlmočník to bude ignorovať a jednoducho ho odovzdá tak, ako je, najprv webovému serveru, ktorý ho odovzdá prehliadaču.

Aj to bude tlmočník ignorovať a jednoducho sa odošle na webový server tak, ako je.

Ak súbor obsahuje iba PHP kód alebo sa nachádza na úplnom konci súboru, to znamená, že za ním nie je nič, potom je uzatváracia značka prednostne vynechaná (nešpecifikovaná). To pomáha vyhnúť sa pridávaniu náhodných prázdnych znakov za koncovú značku PHP, čo môže spôsobiť nežiaduce efekty.

PHP umožňuje aj krátky otvárací tag

Medzery

V kóde PHP môžete použiť medzery: medzery, tabulátory a zlomy riadkov. Počet bielych znakov nie je obmedzený a závisí od preferencií programátora, ktorého hlavným cieľom je vytvorenie prehľadného a ľahko čitateľného textu programu (zdrojového kódu).

Nižšie uvedený príklad ukazuje PHP kód, ktorý používa medzery:

Vzorový kód mohol byť napísaný na jednom riadku bez použitia medzier, ale takýto kód by bol menej čitateľný:

Posledná aktualizácia 27. novembra 2019 07:10:59 (UTC/GMT +8 hodín)

Syntax otvárania a zatvárania značiek PHP

Existujú štyri rôzne páry otváracích a zatváracích značiek, ktoré možno použiť v php. Tu je zoznam značiek.

  • predvolená syntax
  • krátke otvorené značky
  • Na konci súboru vynechajte uzatváraciu značku PHP

Predvolená syntax

Predvolená syntax začína "".

Príklad:

krátke otvorené značky

Krátke značky začínajú "Značky krátkeho štýlu sú dostupné iba vtedy, keď sú povolené v konfiguračnom súbore php.ini na serveroch.

Príklad:

Na konci súboru vynechajte uzatváraciu značku PHP

Odporúča sa, aby sa uzatváracia značka PHP vynechala v súbore obsahujúcom iba kód PHP, aby sa predišlo výskytu náhodných medzier alebo nových riadkov pridaných za uzatváraciu značku PHP, čo môže spustiť ukladanie do vyrovnávacej pamäte a spôsobiť nevyžiadané efekty.

Príklad:

Oddelenie príkazov PHP

V PHP sú príkazy ukončené bodkočiarkou (;), ako napríklad C alebo Perl. Záverečná značka bloku PHP kódu automaticky obsahuje bodkočiarku, nie je potrebné mať bodkočiarku ukončujúcu posledný riadok PHP bloku.

Pravidlá oddelenia výpovedí

  • bodkočiarkou
  • A/ALEBO
  • uzatváracia značka PHP

Platné kódy

Vo vyššie uvedenom príklade sú prítomné bodkočiarka(;) aj koncová značka PHP.

Vo vyššie uvedenom príklade nie je za poslednou inštrukciou bodkočiarka (;), ale je prítomná uzatváracia značka PHP.

Vo vyššie uvedenom príklade je v poslednej inštrukcii bodkočiarka (;), ale neexistuje žiadna uzatváracia značka PHP.

PHP rozlišovanie malých a veľkých písmen

V PHP užívateľom definované funkcie, triedy, kľúčové slová základného jazyka (napríklad if, else, while, echo atď.) nerozlišujú veľké a malé písmená. Preto sú tri echo príkazy v nasledujúcom príklade rovnaké.

príklad-1

"); ECHO("Učíme sa rozlišovať malé a veľké písmená v PHP
"); EcHo("Učíme sa rozlišovať malé a veľké písmená v PHP
"); ?>

Učíme sa PHP rozlišovanie malých a veľkých písmen Učíme sa PHP rozlišovanie malých a veľkých písmen

Na druhej strane všetky premenné rozlišujú veľké a malé písmená.

Zvážte nasledujúci príklad. Iba prvý výpis zobrazuje hodnotu ako $suma, pretože $suma, $AMOUNT, $amoUNT sú tri rôzne premenné.

príklad-2

"); echo("Suma je: AMOUNT $
"); echo("Suma je: $amoUNT
"); ?>

Suma je: 200 Suma je: Suma je:

Necitlivosť PHP na biele miesta

Vo všeobecnosti nie sú na obrazovke viditeľné medzery vrátane medzier, tabulátorov a znakov na konci riadku, t.j. návraty vozňa. V PHP na bielych znakoch nezáleží pri kódovaní. Môžete rozdeliť jeden riadkový príkaz na ľubovoľný počet riadkov alebo počet samostatných príkazov spolu na jednom riadku.

Nasledujúce dva príklady sú rovnaké:

Príklad:

"; echo "Jeho trieda je: $trieda a číslo role. je $roll_no"; ) student_info("David Rayy", "V", 12) ?>

Príklad: Pokročilá necitlivosť na biele znaky

"; echo "Jeho trieda je: $trieda a číslo role. je $roll_no"; ) student_info("David Rayy", "V", 12) ?>

Meno študenta je: David Rayy Jeho trieda je: V a číslo role. je 12

Príklad: Necitlivosť medzier s tabulátormi a medzerami

V nasledujúcom príklade sa v numerickej operácii používajú medzery a tabulátory, ale v oboch prípadoch vráti $xyz rovnakú hodnotu.

"; // tabulátory a medzery $xyz = 11 + 12; echo $xyz; ?>

PHP: Jednoriadkový a viacriadkový komentár

jednoriadkový komentár

PHP podporuje nasledujúce dva rôzne spôsoby komentovania.

# Toto je jednoriadkový komentár.

//Toto je ďalší spôsob jednoriadkového komentára.

Príklad:

viacriadkové komentáre

PHP podporuje komentáre v štýle "C". Komentár začína dvojicou znakov /* a končí dvojicou znakov */.

/* Toto je test s viacerými komentármi,
a tieto riadky budú ignorované
v čase vykonania */

Príklad:

Viacriadkové komentáre nie je možné vnoriť

Prvý PHP skript

Tu je prvý PHP skript, ktorý vo webovom prehliadači zobrazí "Hello World...".

<?php echo "Ahoj svet..."; ?>

Značky hovoria webovému serveru, aby všetko v značkách považoval za kód PHP, ktorý sa má spustiť. Kód je veľmi jednoduchý. Používa vstavanú funkciu PHP "echo" na zobrazenie textu "Hello World ..." na webovej stránke. Všetko mimo týchto značiek sa odosiela priamo do prehliadača.

obrazová prezentácia


Kombinácia PHP a HTML

Syntax PHP je použiteľná iba v rámci značiek PHP.

PHP môže byť vložené do HTML a umiestnené kdekoľvek v dokumente.

Keď je PHP vložené do HTML dokumentov a PHP analyzuje tento dokument, interpretuje sa sekcia uzavretá s otváracou značkou () PHP a ignorujte zvyšok dokumentu.

PHP a HTML sú zobrazené spolu v nasledujúcom príklade.

Stránka PHP

cvič tu online:

Regulárne výrazy sú veľmi užitočným nástrojom pre vývojárov. S ich pomocou môžete nájsť, definovať alebo nahradiť text, slová alebo akékoľvek iné znaky. Dnešný článok obsahuje 15 najužitočnejších regulárnych výrazov, ktoré bude potrebovať každý webový vývojár.

Úvod do regulárnych výrazov

Mnoho začínajúcich vývojárov považuje regulárne výrazy za veľmi ťažké na pochopenie a použitie. V skutočnosti nie je všetko také ťažké, ako by sa mohlo zdať. Skôr než prejdeme priamo k regulárnym výrazom s ich užitočným a všestranným kódom, pozrime sa na základy:

Syntax regulárneho výrazu

Regulárny výraz Prostriedky
foo reťazec "foo"
^ foo Reťazec začína na „foo“
foo$ Reťazec končí „foo“
^foo$ "foo" sa vyskytuje iba raz v rade
a, b alebo c
akýkoľvek malý znak
[^A-Z] akýkoľvek znak, ktorý nie je napísaný veľkými písmenami
(gif|jpg) Znamená „gif“ aj „jpeg“
+ Jedno alebo viac malých písmen
Akékoľvek číslo, bodka alebo znamienko mínus
^{1,}$ Akékoľvek slovo, aspoň jedno písmeno, číslo alebo _
()() wy, wz, xy alebo xz
(^A-Za-z0-9) Akýkoľvek znak (nie číslo alebo písmeno)
({3}|{4}) Znamená tri písmená alebo 4 čísla

PHP funkcie pre regulárne výrazy

Funkcia Popis
preg_match() Funkcia preg_match() hľadá reťazec podľa daného vzoru, ak sa reťazec nájde, vráti hodnotu true a v opačnom prípade vráti hodnotu false
preg_match_all() Funkcia preg_match_all() nájde všetky výskyty reťazca daného vzorom
preg_replace() Funkcia preg_replace() funguje rovnakým spôsobom ako ereg_replace(), okrem toho, že regulárne výrazy možno použiť na určenie vzoru vyhľadávania a reťazca, ktorým sa nájdená hodnota nahradí.
preg_split() Funkcia preg_split() je rovnaká ako funkcia split(), okrem toho, že regulárny výraz možno použiť ako parameter pre vzor vyhľadávania.
preg_grep() Funkcia preg_grep() prehľadáva všetky prvky vstupného poľa a vracia všetky prvky, ktoré zodpovedajú vzoru regulárneho výrazu.
preg_quote() Uniká zo znakov regulárneho výrazu

Overenie názvu domény

Kontrola, či je reťazec platným názvom domény

$url = "http://komunitasweb.com/"; if (preg_match("/^(http|https|ftp)://(*(?:.*)+):?(d+)?/?/i", $url)) ( echo "Vaša adresa URL je v poriadku ."; ) else ( echo "Chybná webová adresa."; )

Zvýrazňovanie slov v texte

Toto je veľmi užitočný regulárny výraz, môžete ho použiť na nájdenie správneho slova a jeho zvýraznenie. Obzvlášť užitočné pre zobrazenie výsledkov vyhľadávania.

$text = "Ukážka vety z KomunitasWebu, regulárny výraz sa stal populárnym vo webovom programovaní. Teraz sa učíme regulárny výraz. Podľa wikipédie sa regulárne výrazy (skrátené ako regulárny výraz alebo regulárny výraz, s tvarmi množného čísla regulárne výrazy, regulárne výrazy alebo regulárne výrazy) píšu vo formálnom jazyk, ktorý môže byť interpretovaný procesorom regulárneho výrazu“; $text = preg_replace("/b(regex)b/i", " 1", $text); echo $text;

Zvýraznenie výsledkov vyhľadávania na blogu WordPress

Ako už bolo spomenuté v predchádzajúcom príklade, tento príklad kódu je užitočný vo výsledkoch vyhľadávania a existuje skvelý spôsob, ako implementovať túto funkciu do blogu wordpress.

Otvorte súbor search.php a nájdite funkciu the_title(). Nahraďte ho nasledujúcim kódom:

echo $title;

Teraz nad tento riadok pridajte tento kód:

\0", $title); ?>

Uložte súbor search.php a otvorte style.css. Pridajte nasledujúci riadok:

Strong.search-excerpt ( background: yellow; )

Získanie všetkých obrázkov z dokumentu HTML

Ak ste niekedy potrebovali získať všetky obrázky z webovej stránky, tento kód by mal byť, že môžete jednoducho vytvoriť nakladač obrázkov pomocou funkcií cURL

$obrazok = pole(); 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["rozšírenie"])) (if (($info["rozšírenie"] == "jpg") || ($info["extension"] == "jpeg") || ($info["extension"] == "gif") || ($info["extension"] == "png")) array_push($ obrázky, $url); ))

Odstráňte duplicitné slová (nerozlišujú sa malé a veľké písmená)

Opakujete často slová pri písaní? Tento regulárny výraz vám pomôže.

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

Odstránenie opakovanej interpunkcie

To isté, len pre interpunkciu. Rozlúčte sa s dvojitými čiarkami.

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

Vyhľadajte značky XML/HTML

Táto jednoduchá funkcia má dva argumenty. Prvým je značka, ktorú potrebujete nájsť, a druhým je premenná obsahujúca XML alebo HTML. Táto funkcia je opäť veľmi vhodná na použitie s cURL.

Funkcia get_tag($tag, $xml) ( $tag = preg_quote($tag); preg_match_all("(<".$tag."[^>]*>(.*?).")", $xml, $zhoduje sa, PREG_PATTERN_ORDER); vrátiť $ zhody; )

Vyhľadajte značky XHTML/XML so špecifickou hodnotou atribútu

Táto funkcia je veľmi podobná predchádzajúcej, až na to, že značke môžete nastaviť požadovaný atribút. Napríklad môžete ľahko nájsť

.

Funkcia get_tag($attr, $value, $xml, $tag=null) ( if(is_null($tag)) $tag = "\w+"; inak $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, $zhody, PREG_PATTERN_ORDER); návrat $zhody; )

Nájdite hexadecimálne hodnoty farieb

Ďalší užitočný nástroj pre webového vývojára! Umožňuje vám nájsť/skontrolovať hexadecimálnu hodnotu farby.

$string = "#555555"; if (preg_match("/^#(?:(?:(3))(1,2))$/i", $string)) ( echo "príklad 6 úspešný."; )

Vyhľadávanie názvu článku

Tento kúsok kódu nájde a zobrazí text vo vnútri značiek , na html stránke.

$fp = fopen("http://www.catswhocode.com/blog","r"); while (!feof($fp))( $page .= fgets($fp, 4096); ) $titre = eregi(" (.*)",$page,$regs); echo $regs; fclose($fp);

Analýza protokolu Apache

Väčšina stránok beží na známom webovom serveri Apache. Ak je vaša stránka jednou z nich, prečo nepoužiť PHP a regulárne výrazy na analýzu protokolov Apache?

//Protokoly: Webový server Apache //Úspešné zásahy iba do súborov HTML. Užitočné na počítanie počtu zobrazení stránky. "^((?#adresa IP alebo názov domény klienta)S+)s+((?#základné overenie)S+s+S+)s+[((?#dátum a čas)[^]]+)]s+"(?: GET|POST|HEAD) ((?#file)/[^ ?"]+?.html?)??((?#parameters)[^ ?"]+)? HTTP/+"s+(?#stavový kód)200s+((?#prenesených bajtov)[-0-9]+)s+"((?#referrer)[^"]*)"s+"((?#user agent )[^"]*)"$" //Protokoly: webový server Apache //len chyby 404 "^((?#adresa IP klienta alebo názov domény)S+)s+((?#základné overenie)S+s+S+) s+[(?#dátum a čas)[^]]+)]s+"(?:GET|POST|HEAD) ((?#súbor)[^ ?"]+)??((?#parametre)[ ^ ?"]+)? HTTP/+"s+(?#stavový kód)404s+((?#prenesených bajtov)[-0-9]+)s+"((?#referrer)[^"]*)"s+"((?#user agent )[^"]*)"$"

Nahradenie dvojitých úvodzoviek inteligentnými úvodzovkami

Ak ste milovníkom typografie, zamilujete si tento regulárny výraz, ktorý nahrádza bežné dvojité úvodzovky inteligentnými úvodzovkami. Podobný regulárny výraz sa používa vo wordpresse v obsahu stránky.

Preg_replace("B"b([^"x84x93x94rn]+)b"B", "?1?", $text);

Komplexná kontrola hesla

Tento regulárny výraz zabezpečí, že sa do textového poľa zadá aspoň šesť znakov, číslic, pomlčiek a podčiarkovníkov.

Textové pole musí obsahovať aspoň jedno veľké písmeno, jedno malé písmeno a jedno číslo.

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

WordPress: Použitie regulárneho výrazu na získanie obrázkov z príspevku

Keďže mnohí z vás sú používateľmi WordPressu, môže byť pre vás užitočné mať kód, ktorý vám umožní získať všetky obrázky z textu článku a vytlačiť ich.

Ak chcete použiť tento kód, jednoducho ho vložte do ľubovoľného súboru vo vašej téme.

post_content; $szSearchPattern = "~ ]* />~"; // Spustite preg_match_all, aby ste získali všetky obrázky a uložili výsledky do $aPics preg_match_all($szSearchPattern, $szPostContent, $aPics); // Skontrolujte, či máme aspoň 1 obrázok $iNumberOfPics = count($aPics); if ($iNumberOfPics > 0) ( // Teraz by ste s obrázkami urobili všetko, čo potrebujete urobiť // V tomto príklade sú obrázky zobrazené len pre ($i=0; $i< $iNumberOfPics ; $i++) { echo $aPics[$i]; }; }; endwhile; endif; ?>

Generovanie automatických emotikonov

Ďalšou funkciou používanou vo wordpresse je, že vám umožňuje automaticky nahradiť smajlíky obrázkom smajlíka.

$texte="Text so smajlíkom:-)"; echo str_replace(":-)"," ",$text);

JavaScript je vo vašom prehliadači zablokovaný. Povoľte JavaScript pre túto stránku!

strip_tags

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

strip_tags- Odstráni HTML a PHP tagy z reťazca

Popis

reťazec strip_tags(reťazec str[, reťazec povolené_značky])

Táto funkcia vráti reťazec str s odstránenými značkami HTML a PHP. Na odstránenie značiek sa používa automat podobný tomu, ktorý sa používa vo funkcii fgetss().

Voliteľný druhý argument možno použiť na určenie značiek, ktoré by sa nemali odstraňovať.

komentár: Argument allowable_tags bol pridaný v PHP 3.0.13 a PHP 4.0b3. Od PHP 4.3.0 sú odstránené aj HTML komentáre.

Pozornosť

Pretože strip_tags() nekontroluje správnosť HTML kódu, nedokončené tagy môžu viesť k odstráneniu textu, ktorý v tagoch ​​nie je.

Príklad 1: Príklad použitia strip_tags()
$text = "

Odsek.

Ešte nejaký text"; echo strip_tags($text); echo "\n\n-------\n"; // neodstraňujte

echo strip_tags($text, "

"); // Povoliť ,,echo strip_tags($text, " ");

Tento príklad vypíše:

Odsek. Ešte nejaký text -------

Odsek.

Ešte nejaký text

Pozornosť

Táto funkcia nemení atribúty značiek špecifikovaných v argumente allowable_tags, vrátane štýlu a onmouseover.

Od PHP 5.0.0 strip_tags() bezpečné manipulovať s údajmi v binárnej forme.

Táto funkcia má značnú nevýhodu - je to lepenie slov pri odstraňovaní značiek. Okrem toho má funkcia slabé miesta. Alternatívna funkcia podobná strip_tags:

c" * - "špinavý" html je správne spracovaný, keď sa v hodnotách atribútov značky nachádzajú znaky< >* - poškodený html je spracovaný správne * - komentáre, skripty, štýly, PHP, Perl, ASP kód, MS Word tagy, CDATA sú vystrihnuté * - text je automaticky naformátovaný, ak obsahuje html kód * - ochrana proti falzifikátom ako: "<script>alert("ahoj") script>" * * @param string $s * @param pole $allowable_tags Pole tagov, ktoré nebudú odstránené * Príklad: "b" -- tag zostane s atribútmi, " " -- značka zostane bez atribútov * @param bool $is_format_spaces Formátovať medzery a zlomy riadkov? * Výstupný textový vzhľad (obyčajný) čo najbližšie k vzhľadu textu vo vstupe prehliadača. * Inými slovami, správne konvertuje text/html na text/obyčajný. * Text je naformátovaný len vtedy, ak boli odstránené nejaké značky * @param pole $pair_tags pole názvov párových tagov, ktoré sa majú odstrániť spolu s obsahom * pozri predvolené hodnoty * @param pole $para_tags pole názvov párových značiek, s ktorými sa bude zaobchádzať ako s odsekmi (ak $is_format_spaces = true) * pozri predvolené hodnoty * @return string * * @license http://creativecommons.org/licenses/by-sa/3.0/ * @author Nasibullin Rinat, http: //orangetie.ru/ * @charset ANSI * @verzia 4.0.14 */ funkcia strip_tags_smart(/*string*/ $s, pole $allowable_tags = null, /*boolean*/ $is_format_spaces = true, pole $pair_tags = pole ("script", "style", "map", "iframe", "frameset", "object", "applet", "co mment", "tlačidlo", "textarea", "select"), pole $para_tags = array("p", "td", "th", "li", "h1", "h2", "h3", "h4", "h5", "h6", "div", "form", "title", "pre")) ( //návrat strip_tags($s); statický $_callback_type = false; statické $_allowable_tags = array(); statické $_para_tags = pole(); #regulárny výraz pre atribúty značiek #správne procesy nečisté a nefunkčné HTML v jednobajtovej alebo viacbajtovej znakovej sade UTF-8! static $re_attrs_fast_safe = "(?!) #príkaz, ktorý nasleduje po značke #správne atribúty (?> [^>"\"]+ | (?<=[\=\x20\r\n\t]|\xc2\xa0) "[^"]*" | (?<=[\=\x20\r\n\t]|\xc2\xa0) \"[^\"]*\")* #incorrect attributes [^>]*+"; if (is_array($s)) ( if ($_callback_type === "strip_tags") ( $tag = strtolower($s); if ($_allowable_tags) ( #tag s atribútmi if (array_key_exists($ tag, $_allowable_tags)) vráti $s; #tag bez atribútov if (array_key_exists("<" . $tag . ">", $_allowable_tags)) ( if (substr($s, 0, 2) === ""; if (substr($s, -2) === "/>") return "<" . $tag . " />";návrat"<" . $tag . ">"; ) ) if ($tag === "br") vráti "\r\n"; if ($_para_tags && array_key_exists($tag, $_para_tags)) vráti "\r\n\r\n"; vráti ""; ) trigger_error("Neznámy typ spätného volania "" . $_callback_type . ""!", E_USER_ERROR); ) if (($pos = strpos($s, "<")) === false || strpos($s, ">", $pos) === false) #zlepšenie rýchlosti ( #značky sa nenašli vrátia $s; ) $dĺžka = strlen($s); #nespárované značky (otváranie, zatváranie, !DOCTYPE, menný priestor MS Word) $re_tags = "~:*+)?) #1 " . $re_attrs_fast_safe . " > ~sxSX"; $patterns = array("/<([\?\%]) .*? \\1>/sxSX", #embedded PHP, Perl, kód ASP "/<\!\\]>/sxSX", #CDATA bloky #"/<\!\[ [\x20\r\n\t]* .*? \]>/sxSX", #:UKONČENÉ: Značky typu MS Word... "/<\!--.*?-->/sSX", #comments #MS Word značky ako "...", #podmienené spustenie kódu pre typ IE " HTML " #podmienené spustenie kódu pre typ IE "HTML" #pozri http://www.tigir.com/comments.htm "/<\! (?:--)?+ \[ (?>[^\]"\"]+ | "[^"]*" | \"[^\"]*\")* \] (?:--)?+ > /sxSX",); if ($pair_tags) ( #paired tags s obsahom: foreach ($pair_tags ako $k => $v) $pair_tags[$k] = preg_quote($v, "/"); $patterns = "/<((?i:" . implode("|", $pair_tags) . "))" . $re_attrs_fast_safe . "(? .*? <\/(?i:\\1)" . $re_attrs_fast_safe . ">/sxSX"; ) #d($patterns); $i = 0; #ochrana slučky $max = 99; while ($i< $max) { $s2 = preg_replace($patterns, "", $s); if (preg_last_error() !== PREG_NO_ERROR) { $i = 999; break; } if ($i == 0) { $is_html = ($s2 != $s || preg_match($re_tags, $s2)); if (preg_last_error() !== PREG_NO_ERROR) { $i = 999; break; } if ($is_html) { if ($is_format_spaces) { /* В библиотеке PCRE для PHP \s - это любой пробельный символ, а именно класс символов [\x09\x0a\x0c\x0d\x20\xa0] или, по другому, [\t\n\f\r \xa0] Если \s используется с модификатором /u, то \s трактуется как [\x09\x0a\x0c\x0d\x20] Браузер не делает различия между пробельными символами, друг за другом подряд идущие символы воспринимаются как один */ #$s2 = str_replace(array("\r", "\n", "\t"), " ", $s2); #$s2 = strtr($s2, "\x09\x0a\x0c\x0d", " "); $s2 = preg_replace("/ [\x09\x0a\x0c\x0d]++ | <((?i:pre|textarea))" . $re_attrs_fast_safe . "(? .+? <\/(?i:\\1)" . $re_attrs_fast_safe . ">\K /sxSX", " ", $s2); if (preg_last_error() !== PREG_NO_ERROR) ( $i = 999; break; ) ) #pole značiek, ktoré nebudú odstránené, ak ($allowable_tags) $_allowable_tags = array_flip ($allowable_tags); #pair značky, ktoré sa budú považovať za odseky if ($para_tags) $_para_tags = array_flip($para_tags); ) )#if #tags processing if ($is_html) ( $_callback_type = "strip_tags"; $s2 = preg_replace_callback($re_tags, __FUNCTION__, $s2); $_callback_type = false; if (preg_last_error() !== PREG_NO_ERROR) ( $i = 999; break; ) ) if ($s === $s2) break ; $ s = $s2; $i++; )#while if ($i >= $max) $s = strip_tags($s); #príliš veľa cyklov na nahradenie... if ($is_format_spaces && strlen($s) != = $length) ( #odstrániť duplicitné medzery $s = preg_replace("/\x20\x20++/sSX", " ", trim($s)); #odstrániť medzery pred a za novými riadkami $s = str_replace (pole ("\r\n\x20", "\x20\r\n"), "\r\n", $s); #nahradiť 3 a viac nových riadkov 2 novými riadkami $s = preg_replace(" /[ \r\n](3,)+/sSX", "\ r\n\r\n", $s); ) vrátiť $s; ) ?>

Pozri tiež popis funkcie