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 вместо
echo "Hello World!"; ?>
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 " php" and ends with "?>".
Príklad:
krátke otvorené značky
Krátke značky začínajú "" and ends with "?>Značky krátkeho štýlu sú dostupné iba vtedy, keď sú povolené v konfiguračnom súbore php.ini na serveroch.
Príklad:
echo "PHP example with short-tags"; ?>
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.
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."[^>]*>(.*?)".$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
$fp = fopen("http://www.catswhocode.com/blog","r"); while (!feof($fp))( $page .= fgets($fp, 4096); ) $titre = eregi("
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ťazcaPopis
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ť.
Pozornosť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.
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ňujteecho 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: "<
Pozri tiež popis funkcie