Syntax för reguljära uttryck
När PHP-tolken bearbetar en fil letar den efter taggar, som anger var PHP-koden börjar och slutar. Allt utanför ett par start- och sluttaggar kommer att ignoreras av tolken (dvs. kommer helt enkelt att ges till webbservern som den är). Till exempel har filen som skickas till PHP-tolken följande kod:
Detta kommer att ignoreras av tolken och kommer helt enkelt att ges som det är, först till webbservern, som i sin tur ger till webbläsaren.
Även detta kommer att ignoreras av tolken och kommer helt enkelt att skickas till webbservern som den är.
Om filen endast innehåller PHP-kod eller om den ligger i slutet av filen, det vill säga det finns inget efter den, så är den avslutande taggen helst utelämnad (ej specificerad). Detta hjälper till att undvika att lägga till slumpmässiga blanksteg efter PHP-sluttaggen, vilket kan orsaka oönskade effekter.
PHP tillåter också en kort öppningstagg вместо
echo "Hello World!"; ?>
Blanktecken
I PHP-kod kan du använda blanksteg: mellanslag, tabbar och radbrytningar. Antalet blanksteg är inte begränsat och beror på programmerarens preferenser, vars huvudmål är att skapa en tydlig och lättläst programtext (källkod).
Exemplet nedan visar PHP-kod som använder blanksteg:
Exempelkoden kunde ha skrivits på en enda rad utan att använda blanksteg, men sådan kod skulle vara mindre läsbar:
Senaste uppdatering den 27 november 2019 07:10:59 (UTC/GMT +8 timmar)
PHP öppning och stängning Tags syntax
Det finns fyra olika par av öppnings- och stängningstaggar som kan användas i php. Här är listan med taggar.
- standardsyntax
- korta öppna Taggar
- Utelämna PHP-sluttaggen i slutet av filen
Standardsyntax
Standardsyntaxen börjar med " php" and ends with "?>".
Exempel:
korta öppna Taggar
De korta taggarna börjar med "" and ends with "?>". Korta stiltaggar är endast tillgängliga när de är aktiverade i php.ini-konfigurationsfilen på servrar.
Exempel:
echo "PHP example with short-tags"; ?>
Utelämna PHP-sluttaggen i slutet av filen
Det rekommenderas att en avslutande PHP-tagg utelämnas i en fil som endast innehåller PHP-kod så att förekomster av oavsiktliga blanksteg eller nya rader som läggs till efter PHP-sluttaggen, vilket kan starta outputbuffring och orsaka ouppropade effekter kan undvikas.
Exempel:
Separation av PHP-uttalanden
I PHP avslutas satser med semikolon (;) som C eller Perl. Den avslutande taggen för ett block med PHP-kod innebär automatiskt ett semikolon, det finns inget behov av att ha ett semikolon som avslutar den sista raden i ett PHP-block.
Regler för uttalandeseparering
- ett semikolon
- OCH/ELLER
- en avslutande PHP-tagg
Giltiga koder
I exemplet ovan finns både semikolon(;) och en avslutande PHP-tagg.
I exemplet ovan finns det inget semikolon(;) efter den sista instruktionen men en avslutande PHP-tagg finns.
I exemplet ovan finns det ett semikolon(;) i den sista instruktionen men det finns ingen avslutande PHP-tagg.
PHP skiftlägeskänslighet
I PHP är användardefinierade funktioner, klasser, nyckelord för kärnspråk (till exempel if, else, while, echo etc.) skiftlägesokänsliga. Därför är de tre ekosatserna i följande exempel lika.
exempel-1
"); ECHO("Vi lär oss PHP-skiftlägeskänslighet
"); EchHo("Vi lär oss PHP skiftlägeskänslighet
");
?>
Vi lär oss PHP skiftlägeskänslighet Vi lär oss PHP skiftlägeskänslighet
Å andra sidan är alla variabler skiftlägeskänsliga.
Betrakta följande exempel. Endast det första påståendet visar värdet som $amount eftersom $amount, $AMOUNT, $amoUNT är tre olika variabler.
exempel-2
"); echo("Beloppet är: $AMOUNT
"); echo("Beloppet är: $amoUNT
");
?>
Beloppet är: 200 Beloppet är: Beloppet är:
PHP blanksteg okänslighet
I allmänhet är blanksteg inte synligt på skärmen, inklusive mellanslag, flikar och radsluttecken, dvs. vagnretur. I PHP spelar blanksteg ingen roll i kodning. Du kan bryta en enradssats till valfritt antal rader eller antal separata satser tillsammans på en enda rad.
Följande två exempel är desamma:
Exempel:
"; echo "Hans klass är: $class och Roll No. är $roll_no"; ) student_info("David Rayy", "V", 12) ?>
Exempel: Avancerad okänslighet för blanksteg
"; echo "Hans klass är: $class och Roll No. är $roll_no"; ) student_info("David Rayy", "V", 12) ?>
Elevens namn är: David Rayy. Hans klass är: V and Roll No. är 12
Exempel: okänslighet för blanksteg med tabbar och mellanslag
I följande exempel används mellanslag och tabbar i en numerisk operation, men i båda fallen returnerar $xyz samma värde.
"; // tabbar och mellanslag $xyz = 11 + 12; echo $xyz; ?>
PHP: En rad och flera rader Kommentarer
en rad kommentar
PHP stöder följande två olika sätt att kommentera.
# Det här är en kommentar på en rad.
//Detta är ett annat sätt att kommentera en rad.
Exempel:
kommentarer på flera rader
PHP stöder "C", stilkommentarer. En kommentar börjar med teckenparet /* och slutar med teckenparet */.
/* Detta är ett test med flera kommentarer,
och dessa rader kommer att ignoreras
vid tidpunkten för utförande */
Exempel:
Kommentarer med flera rader kan inte kapslas
Första PHP-skriptet
Här är det första PHP-skriptet som kommer att visa "Hello World..." i webbläsaren.
<?php echo "Hello World..."; ?>
Taggarna säger åt webbservern att behandla allt inuti taggarna som PHP-kod som ska köras. Koden är väldigt enkel. Den använder en inbyggd PHP-funktion "eko" för att visa texten "Hello World ..." på webbsidan. Allt utanför dessa taggar skickas direkt till webbläsaren.
bildpresentation
Kombinera PHP och HTML
PHP-syntax är endast tillämplig inom PHP-taggar.
PHP kan bäddas in i HTML och placeras var som helst i dokumentet.
När PHP är inbäddat i HTML-dokument och PHP analyserar detta dokument tolkas det avsnittet som omges av en öppningstagg () av PHP och ignorera resten av dokumentet.
PHP och HTML ses tillsammans i följande exempel.
träna här online:
Reguljära uttryck är ett mycket användbart verktyg för utvecklare. Med deras hjälp kan du hitta, definiera eller ersätta text, ord eller andra tecken. Dagens artikel innehåller 15 av de mest användbara reguljära uttrycken som alla webbutvecklare behöver.
Introduktion till reguljära uttryck
Många nybörjare tycker att reguljära uttryck är mycket svåra att förstå och använda. Faktum är att allt inte är så svårt som det kan verka. Innan vi hoppar direkt in i reguljära uttryck, med deras användbara och mångsidiga kod, låt oss ta en titt på grunderna:
Syntax för reguljära uttryck
Vanligt uttryck | Betyder att |
foo | Strängen "foo" |
^foo | Strängen börjar med "foo" |
foo$ | Strängen slutar med "foo" |
^foo$ | "foo" förekommer bara en gång i rad |
a, b eller c | |
alla gemener | |
[^A-Z] | alla tecken som inte är i versaler |
(gif|jpg) | Betyder både "gif" och "jpeg" |
+ | Ett eller flera gemener |
Valfritt tal, punkt eller minustecken | |
^{1,}$ | Vilket ord som helst, minst en bokstav, siffra eller _ |
()() | wy, wz, xy eller xz |
(^A-Za-z0-9) | Vilket tecken som helst (inte en siffra eller bokstav) |
({3}|{4}) | Betyder tre bokstäver eller fyra siffror |
PHP-funktioner för reguljära uttryck
Fungera | Beskrivning |
preg_match() | Funktionen preg_match() söker efter en sträng enligt ett givet mönster, returnerar true om strängen hittas och i annat fall false |
preg_match_all() | Funktionen preg_match_all() hittar alla förekomster av en sträng som ges av ett mönster |
preg_replace() | Funktionen preg_replace() fungerar på samma sätt som ereg_replace(), förutom att reguljära uttryck kan användas både för att ange sökmönstret och strängen att ersätta det hittade värdet med. |
preg_split() | Funktionen preg_split() är samma som split(), förutom att ett reguljärt uttryck kan användas som en parameter för ett sökmönster. |
preg_grep() | Funktionen preg_grep() söker igenom alla element i inmatningsmatrisen och returnerar alla element som matchar det reguljära uttrycksmönstret. |
preg_quote() | Undviker tecken i reguljära uttryck |
Verifiering av domännamn
Kontrollera om en sträng är ett giltigt domännamn
$url = "http://kommunitasweb.com/"; if (preg_match("/^(http|https|ftp)://(*(?:.*)+):?(d+)?/?/i", $url)) ( echo "Din webbadress är okej ."; ) else ( echo "Fel url."; )
Ordmarkering i text
Detta är ett mycket användbart reguljärt uttryck, du kan använda det för att hitta rätt ord och markera det. Särskilt användbart för att visa sökresultat.
$text = "Exempelsats från KomunitasWeb, regex har blivit populärt inom webbprogrammering. Nu lär vi oss regex. Enligt wikipedia skrivs reguljära uttryck (förkortade som regex eller regexp, med pluralformer regex, regexps eller regexen) i en formell språk som kan tolkas av en processor för reguljära uttryck"; $text = preg_replace("/b(regex)b/i", " 1", $text); echo $text;
Markera sökresultat i en WordPress-blogg
Som nämnts i föregående exempel är detta kodexempel användbart i sökresultaten och det finns ett utmärkt sätt att implementera denna funktion i en wordpress-blogg.
Öppna din search.php-fil och hitta funktionen_title(). Ersätt den med följande kod:
echo $title;
Nu, ovanför den här raden, lägg till denna kod:
\0", $title); ?>
Spara filen search.php och öppna style.css. Lägg till följande rad:
Strong.search-excerpt ( bakgrund: gul; )
Hämta alla bilder från ett HTML-dokument
Om du någonsin behövt få alla bilder från en webbsida bör den här koden vara att du enkelt kan skapa en bildladdare med hjälp av cURL-funktioner
$image = array(); preg_match_all("/(img|src)=("|\")[^"\">]+/i", $data, $media); unset($data); $data = preg_replace("/(img|src)("|\"|="|=\")(.*)/i", "$3", $media); foreach ($data som $url) ( $info = pathinfo($url); if (isset($info["extension"])) ( if (($info["extension"] == "jpg") || ($info["extension"] == "jpeg") || ($info["extension"] == "gif") || ($info["extension"] == "png")) array_push($ bilder, $url); ) )
Ta bort dubbletter av ord (inte skiftlägeskänsliga)
Upprepar du ofta ord medan du skriver? Detta reguljära uttryck kommer att hjälpa.
$text = preg_replace("/s(w+s)1/i", "$1", $text);
Ta bort upprepade skiljetecken
Samma sak, bara för skiljetecken. Säg adjö till dubbla kommatecken.
$text = preg_replace("/.+/i", ".", $text);
Sök efter XML/HTML-taggar
Denna enkla funktion tar två argument. Den första är taggen du behöver hitta, och den andra är variabeln som innehåller XML eller HTML. Återigen är den här funktionen väldigt bekväm att använda med cURL.
Funktion get_tag($tag, $xml) ( $tag = preg_quote($tag); preg_match_all("(<".$tag."[^>]*>(.*?)".$tag.">.")", $xml, $matches, PREG_PATTERN_ORDER); returnera $matches; )
Sök efter XHTML/XML-taggar med ett specifikt attributvärde
Denna funktion är mycket lik den föregående, förutom att du kan ställa in önskat attribut till taggen. Till exempel kan du enkelt hitta
Funktion get_tag($attr, $value, $xml, $tag=null) (if(is_null($tag)) $tag = "\w+"; annars $tag = preg_quote($tag); $attr = preg_quote($ attr); $value = preg_quote($value); $tag_regex = "/<(".$tag.")[^>]*$attr\s*=\s*". "(["\"])$värde\\2[^>]*>(.*?)<\/\\1>/" preg_match_all($tag_regex, $xml, $matches, PREG_PATTERN_ORDER); return $matches; )
Hitta hexadecimala färgvärden
Ytterligare ett användbart verktyg för en webbutvecklare! Det låter dig hitta/kontrollera det hexadecimala värdet för en färg.
$string = "#555555"; if (preg_match("/^#(?:(?:(3))(1,2))$/i", $string)) ( echo "exempel 6 framgångsrikt."; )
Sök efter artikeltitel
Denna kodbit kommer att hitta och visa texten inuti taggarna
$fp = fopen("http://www.catswhocode.com/blog","r"); while (!feof($fp))( $page .= fgets($fp, 4096); ) $titre = eregi("
Apache-logganalys
De flesta webbplatser körs på den välkända Apache-webbservern. Om din webbplats är en av dem, varför inte använda PHP och reguljära uttryck för att analysera Apache-loggar?
//Loggar: Apache webbserver //Lyckade träffar endast till HTML-filer. Användbart för att räkna antalet sidvisningar. "^((?#klient-IP eller domännamn)S+)s+((?#basic authentication)S+s+S+)s+[((?#date and time)[^]]+)]s+"(?: GET|POST|HEAD) ((?#file)/[^ ?"]+?.html?)??((?#parameters)[^ ?"]+)? HTTP/+"s+(?#statuskod)200s+((?#bytes överförda)[-0-9]+)s+"((?#referrer)[^"]*)"s+"((?#user agent )[^"]*)"$" //Loggar: Apache-webbserver //404-fel endast "^((?#klient-IP eller domännamn)S+)s+((?#basic authentication)S+s+S+) s+[((?#datum och tid)[^]]+)]s+"(?:GET|POST|HEAD) ((?#fil)[^ ?"]+)??((?#parameters)[ ^?"]+)? HTTP/+"s+(?#statuskod)404s+((?#bytes överförda)[-0-9]+)s+"((?#referrer)[^"]*)"s+"((?#user agent )[^"]*)"$"
Ersätt dubbla citattecken med smarta citattecken
Om du är en typografiälskare kommer du att älska detta reguljära uttryck som ersätter vanliga dubbla citattecken med smarta citattecken. Ett liknande reguljärt uttryck används i wordpress i sidinnehåll.
Preg_replace("B"b([^"x84x93x94rn]+)b"B", "?1?", $text);
Omfattande lösenordskontroll
Detta reguljära uttryck säkerställer att minst sex tecken, siffror, bindestreck och understreck skrivs in i textfältet.
Textfältet måste innehålla minst en versal, en gemen och en siffra.
"A(?=[-_a-zA-Z0-9]*?)(?=[-_a-zA-Z0-9]*?)(?=[-_a-zA-Z0-9]*?) [-_a-zA-Z0-9](6,)z"
WordPress: Använda ett reguljärt uttryck för att få bilder från ett inlägg
Eftersom många av er är WordPress-användare kan det vara användbart att ha en kod som gör att du kan hämta alla bilder från texten i en artikel och mata ut dem.
För att använda den här koden klistrar du bara in den i valfri fil i ditt tema.
post_content; $szSearchPattern = "~ ]* />~"; // Kör preg_match_all för att ta alla bilder och spara resultaten i $aPics preg_match_all($szSearchPattern, $szPostContent, $aPics); // Kontrollera om vi har minst 1 bild $iNumberOfPics = count($aPics); if ($iNumberOfPics > 0) ( // Nu här skulle du göra vad du än behöver göra med bilderna // I det här exemplet visas bilderna bara för ($i=0; $i< $iNumberOfPics ; $i++) { echo $aPics[$i]; }; }; endwhile; endif; ?>
Generering av automatiska uttryckssymboler
En annan funktion som används i wordpress är att den låter dig automatiskt ersätta smileysymboler med en smileybild.
$texte="En text med en smiley:-)"; echo str_replace(":-)"," ",$text);
JavaScript är blockerat i din webbläsare. Tillåt JavaScript för att den här webbplatsen ska fungera!
strip_tags
(PHP 3 >= 3.0.8, PHP 4, PHP 5)
strip_tags- Tar bort HTML- och PHP-taggar från en strängBeskrivning
sträng strip_tags(sträng str[, sträng tillåtna_taggar])Den här funktionen returnerar strängen str med HTML- och PHP-taggarna borttagna. För att ta bort taggar används en automat, liknande den som används i funktionen fgetss().
Det valfria andra argumentet kan användas för att ange taggar som inte ska tas bort.
UppmärksamhetKommentar: Argumentet allowable_tags lades till i PHP 3.0.13 och PHP 4.0b3. Från och med PHP 4.3.0 tas även HTML-kommentarer bort.
Därför att strip_tags() inte kontrollerar HTML-kodens korrekthet, kan oavslutade taggar leda till att text som inte ingår i taggarna tas bort.
Exempel 1: Användningsexempel strip_tags()
$text = "Paragraf.
Lite mer text"; echo strip_tags($text); echo "\n\n-------\n"; // radera inteecho strip_tags($text, "
"); // Tillåt ,,echo strip_tags($text, " ");
Detta exempel kommer att mata ut:
Paragraf. Lite mer text -------
Paragraf.
Lite mer text
UppmärksamhetDen här funktionen ändrar inte attributen för taggarna som anges i argumentet allowable_tags, inklusive stil och onmouseover.
Sedan PHP 5.0.0 strip_tags() säkert att hantera data i binär form.
Denna funktion har en betydande nackdel - det är limningen av ord när du tar bort taggar. Dessutom har funktionen sårbarheter. Alternativ funktion som liknar strip_tags:
c" * - "smutsig" html är korrekt bearbetad när tecken kan hittas i taggattributvärden< >* - trasig html bearbetas korrekt * - kommentarer, skript, stilar, PHP, Perl, ASP-kod, MS Word-taggar, CDATA klipps ut * - text formateras automatiskt om den innehåller html-kod * - skydd mot förfalskningar som: "<
Se även funktionsbeskrivning