Php kısa etiketleri çalışmıyor. Düzenli ifadeler için PHP işlevleri
Düzenli ifadeler çok kullanışlı araç geliştiriciler için. Onların yardımıyla metin, kelime veya diğer karakterleri bulabilir, tanımlayabilir veya değiştirebilirsiniz. Bugünün makalesinde, herhangi bir web geliştiricisinin ihtiyaç duyacağı en kullanışlı 15 düzenli ifadeyi topladık.
Normal İfadelere Giriş
Birçok acemi geliştirici, normal ifadeleri anlamak ve kullanmak için çok zor buluyor. Aslında, her şey göründüğü kadar karmaşık değildir. Kullanışlı ve çok yönlü kodlarıyla doğrudan düzenli ifadelere geçmeden önce, temel bilgilere bir göz atalım:
Normal İfade Sözdizimi
Düzenli ifade | Anlamına geliyor |
ahmak | "foo" dizisi |
^ foo | Satır "foo" ile başlar |
foo $ | Satır "foo" ile bitiyor |
^ foo $ | "Foo" bir satırda yalnızca bir kez oluşur |
a, b veya c | |
herhangi bir küçük harf | |
[^ A'dan Z'ye] | büyük harf olmayan herhangi bir karakter |
(gif | jpg) | Hem "gif" hem de "jpeg" anlamına gelir |
+ | Bir veya daha fazla küçük harf |
Herhangi bir rakam, nokta veya eksi işareti | |
^{1,}$ | Herhangi bir kelime, en az bir harf, sayı veya _ |
()() | wy, wz, xy veya xz |
(^ A-Za-z0-9) | Herhangi bir karakter (sayı veya harf değil) |
({3}|{4}) | Üç harf veya 4 rakam anlamına gelir |
Düzenli ifadeler için PHP işlevleri
İşlev | Açıklama |
preg_match () | preg_match () işlevi, belirli bir desene göre bir dize arar, dize bulunursa true, aksi takdirde false döndürür |
preg_match_all () | Preg_match_all () işlevi, desenli bir dizenin tüm oluşumlarını bulur |
preg_replace () | preg_replace () işlevi, ereg_replace () işleviyle aynı şekilde çalışır, ancak normal ifadelerin hem arama modelini belirtmek hem de bulunan değeri değiştirecek dize için kullanılabilmesi dışında. |
preg_split () | preg_split() işlevi, normal ifadenin arama modeli için bir parametre olarak kullanılabilmesi dışında split() işleviyle aynıdır. |
preg_grep () | Preg_grep () işlevi, giriş dizisinin tüm öğelerini arar ve kalıpla eşleşen tüm öğeleri döndürür Düzenli ifade. |
preg_quote () | Normal ifade karakterlerinden kaçar |
Alan adı kontrolü
Dizenin doğru olup olmadığını kontrol etme alan adı
$ url = "http://komunitasweb.com/"; if (preg_match ("/^(http|https|ftp)://(*(?:.*)+):?(d+)?/?/i", $ url)) (echo "URL'niz tamam . ";) else (echo" Yanlış url. ";)
Metinde kelime vurgulama
Bu çok kullanışlı bir normal ifadedir, istediğiniz kelimeyi bulmak ve vurgulamak için kullanabilirsiniz. Özellikle arama sonuçlarını görüntülemek için kullanışlıdır.
$ text = "KomunitasWeb'den örnek cümle, regex web programlamada popüler hale geldi. Artık regex öğreniyoruz. Wikipedia'ya göre, Düzenli ifadeler (regex veya regexp, çoğul formları regex, regexps veya regexen olarak kısaltılır) resmi bir şekilde yazılır. bir normal ifade işlemcisi tarafından yorumlanabilen dil "; $ metin = preg_replace ("/ b (normal ifade) b / i", " 1", $ metin); yankı $ metin;
Bir WordPress blogunda arama sonuçlarını vurgulama
Önceki örnekte bahsedildiği gibi, bu kod örneği arama sonuçları için kullanışlıdır ve bu özelliği bir wordpress blogunda uygulamanın harika bir yolu vardır.
search.php dosyanızı açın ve the_title() işlevini bulun. Aşağıdaki kodla değiştirin:
Yankı $ başlığı;
Şimdi, bu satırın üstüne şu kodu ekleyin:
\0", $başlık);?>
search.php dosyasını kaydedin ve style.css dosyasını açın. Aşağıdaki satırı ekleyin:
Strong.search-alıntı (arka plan: sarı;)
Bir HTML belgesinden tüm görüntüleri alma
Bir web sayfasından tüm resimleri almanız gerekiyorsa, bu kod orada olmalıdır. CURL özelliklerini kullanarak kolayca bir resim yükleyici oluşturabilirsiniz.
$ görüntüler = dizi (); preg_match_all ("/ (img | src) = (" | \ ") [^" \ ">] + / i", $ veri, $ medya); ayarlanmamış ($ veri); $ data = preg_replace ("/ (img | src) (" | \ "| =" | = \ ") (. *) / i", "$ 3", $ medya); foreach ($ data as $ url) ($ info = pathinfo ($ url); if (isset ($ info ["extension"])) (if (($ info ["extension"] == "jpg")) || ($ bilgi ["uzantı"] == "jpeg") || ($ bilgi ["uzantı"] == "gif") || ($ bilgi ["uzantı"] == "png")) array_push ($ resimler, $ url);))
Yinelenen kelimeleri kaldırın (büyük/küçük harfe duyarlı değil)
Yazarken, kelimeler sıklıkla tekrarlanıyor mu? Bu normal ifade yardımcı olacaktır.
$ metin = preg_replace ("/ s (w + s) 1 / i", "$ 1", $ metin);
Yinelenen noktalama işaretlerini kaldırma
Aynı, sadece noktalama işaretleri için. Çift virgülle vedalaşın.
$ metin = preg_replace ("/.+/ i", ".", $ metin);
XML / HTML etiketlerini arayın
Bu, iki argüman alan basit bir fonksiyondur. Birincisi bulmanız gereken etiket, ikincisi ise XML veya HTML içeren bir değişkendir. Yine, bu işlevin cURL ile birlikte kullanılması çok uygundur.
get_tag ($ etiketi, $ xml) işlevi ($ etiketi = preg_quote ($ etiketi); preg_match_all ("(<".$tag."[^>]*>(.*?)".$tag.">. ")", $ xml, $ eşleşmeleri, PREG_PATTERN_ORDER); $ eşleşmelerini döndür; )
Belirli bir öznitelik değerine sahip XHTML / XML etiketlerini bulma
Bu işlev, etikete istediğiniz özelliği atayabilmeniz dışında bir öncekine çok benzer. Örneğin, kolayca bulabilirsiniz
get_tag işlevi ($ attr, $ değeri, $ xml, $ etiketi = boş) (if (is_null ($ etiketi)) $ etiketi = "\ w +"; else $ etiketi = preg_quote ($ etiketi); $ attr = preg_quote ( $ attr); $ değer = preg_quote ($ değer); $ tag_regex = "/<(".$tag.")[^>] * $ attr \ s * = \ s * "." (["\"]) $ değer \\ 2 [^>] *> (. *?)<\/\\1>/ "preg_match_all ($ tag_regex, $ xml, $ eşleşmeleri, PREG_PATTERN_ORDER); dönüş $ eşleşmeleri;)
Onaltılık Renk Değerlerini Bulma
Web geliştiricileri için başka bir faydalı araç! Onaltılık renk değerini bulmanızı/kontrol etmenizi sağlar.
$ dizi = "# 555555"; if (preg_match ("/ ^ # (? :(? :( 3)) (1,2)) $ / i", $ string)) (echo "örnek 6 başarılı.";)
Makale başlığı bulma
Bu kod parçacığı, etiketlerin içindeki metni bulur ve görüntüler.
$ fp = fopen ("http://www.catswhocode.com/blog", "r"); while (! feof ($ fp)) ($ sayfa. = fgets ($ fp, 4096);) $ titre = eregi ("
Apache Günlüklerini Ayrıştırma
Sitelerin çoğu iyi bilinen Apache web sunucusunda çalışıyor. Siteniz bunlardan biriyse, Apache günlüklerini ayrıştırmak için neden PHP ve normal ifadeleri kullanmıyorsunuz?
// Günlükler: Apache web sunucusu // Yalnızca HTML dosyalarına başarılı isabetler. Sayfa görüntüleme sayısını saymak için kullanışlıdır. "^ ((? # istemci IP veya alan adı) S +) s + ((? # temel kimlik doğrulama) S + s + S +) s + [((? # tarih ve saat) [^]] +)] s +" (?: GET | POST | HEAD) ((? #File) / [^? "] + ?. html?) ?? ((? # Parametreler) [^?"] +)? HTTP / + "s + (? # Durum kodu) 200s + ((? # Aktarılan bayt) [- 0-9] +) s +" ((? # Yönlendiren) [^ "] *)" s + "(( ? # Kullanıcı aracısı ) [^ "] *)" $ "// Günlükler: Apache web sunucusu // yalnızca 404 hataları" ^ ((? # İstemci IP'si veya etki alanı adı) S +) s + ((? # Temel kimlik doğrulama) S + s + S +) s + [((? # tarih ve saat) [^]] +)] s + "(?: GET | POST | HEAD) ((? #file) [^?"] +) ?? ((? # parametreler) [ ^? "] +)? HTTP / + "s + (? # Durum kodu) 404s + ((? # Aktarılan bayt) [- 0-9] +) s +" ((? # Yönlendiren) [^ "] *)" s + "(( ? # Kullanıcı aracısı ) [^ "] *)" $ "
Çift tırnakları akıllı tırnaklarla değiştirme
Bir tipografi aşığıysanız, alışılmışın yerini alan bu regex'i seveceksiniz. ikili alıntı, akıllı tırnak ile. Benzer bir regex, sayfanın içeriğinde wordpress tarafından kullanılır.
Preg_replace ("B" b ([^ "x84x93x94rn] +) b" B ","? 1? ", $ Metin);
Karmaşık şifre kontrolü
Bu normal ifade, metin kutusuna en az altı karakter, sayı, kısa çizgi ve alt çizgi girildiğinden emin olur.
Metin kutusu en az bir büyük harf, bir küçük harf ve bir sayı içermelidir.
"A (? = [-_ a-zA-Z0-9] *?) (? = [-_ a-zA-Z0-9] *?) (? = [-_ a-zA-Z0-9] *?) [-_a-zA-Z0-9] (6,) z "
WordPress: Bir Gönderiden Resim Almak için Normal Bir İfade Kullanma
çoğunuz öyle olduğunuzdan WordPress kullanıcıları tarafından, makalenin metninden tüm resimleri almanıza ve görüntülemenize izin veren bir koda ihtiyacınız olabilir.
Bu kodu kullanmak için temanızın herhangi bir dosyasına yapıştırmanız yeterlidir.
Mesaj İçeriği; $ szSearchPattern = "~ ] * /> ~ "; // Tüm görüntüleri almak ve sonuçları $ aPics'e kaydetmek için preg_match_all komutunu çalıştırın. count ($ aPics); if ($ iNumberOfPics> 0) (// Şimdi burada resimlerle ne yapman gerekiyorsa yapacaksın // Bu örnekte resimler sadece ($ i = 0; $ i) için gösteriliyor< $iNumberOfPics ; $i++) { echo $aPics[$i]; }; }; endwhile; endif; ?>
Otomatik ifadeler oluşturma
Wordpress'te kullanılan bir diğer özellik ise, ifadeleri otomatik olarak bir gülen yüz resmi ile değiştirmektir.
$ texte = "Suratlı bir metin :-)"; echo str_replace (":-)", " ", $ metin);
JavaScript tarayıcınızda engellendi. Lütfen sitenin çalışması için JavaScript'i etkinleştirin!
strip_tags
(PHP 3> = 3.0.8, PHP 4, PHP 5)
strip_tags- Bir dizeden HTML ve PHP etiketlerini kaldırırAçıklama
sicim strip_tags(string str [, string allowable_tags])Bu işlev, HTML ve PHP etiketlerinin kaldırıldığı dizgeyi döndürür. Etiketleri kaldırmak için, fonksiyonda kullanılana benzer bir otomat kullanılır. fgets () .
Kaldırılmaması gereken etiketleri belirtmek için isteğe bağlı ikinci argüman kullanılabilir.
DikkatYorum Yap: Allowable_tags bağımsız değişkeni PHP 3.0.13 ve PHP 4.0b3'te eklendi. İLE BİRLİKTE PHP sürümleri 4.3.0 HTML yorumları da kaldırılmıştır.
Çünkü strip_tags () HTML kodunun doğruluğunu kontrol etmez, eksik etiketler, etiketlerde yer almayan metnin silinmesine neden olabilir.
Örnek 1. Kullanım örneği strip_tags ()
$ metin = "Paragraf.
Biraz daha metin "; echo strip_tags ($ metin); echo" \ n \ n ------- \ n "; // kaldırmaEcho strip_tags ($ metin, "
"); // İzin vermek ,,echo strip_tags ($ metin, " ");
Bu örnek çıktı verecektir:
Paragraf. Biraz daha metin -------
Paragraf.
Biraz daha metin
DikkatBu işlev, stil ve onmouseover dahil olmak üzere allow_tags bağımsız değişkeninde belirtilen etiketlerin özniteliklerini değiştirmez.
PHP 5.0.0'dan beri strip_tags () verileri ikili biçimde işlemek için güvenlidir.
Bu işlevin önemli bir dezavantajı vardır - etiketleri kaldırırken kelimelerin yapıştırılmasıdır. Ayrıca, işlevin güvenlik açıkları vardır. strip_tags'e benzer alternatif bir işlev:
c "* -" kirli "html, etiket öznitelik değerlerinde semboller bulunduğunda doğru şekilde işlenir< >* - bozuk html doğru işlenir * - yorumlar, komut dosyaları, stiller, PHP, Perl, ASP kodu, MS Word etiketleri, CDATA kesilir * - html kodu içeriyorsa metin otomatik olarak biçimlendirilir * - sahteciliğe karşı koruma: "<
Ayrıca fonksiyon açıklamasına bakın
Son güncelleme 27 Kasım 2019 07:10:59 (UTC / GMT +8 saat)
PHP açılış ve kapanış Etiketler sözdizimi
PHP'de kullanılabilecek dört farklı açılış ve kapanış etiketi çifti vardır. İşte etiketlerin listesi.
- Varsayılan sözdizimi
- Kısa açık Etiketler
- Dosyanın sonundaki PHP kapanış etiketini atlayın
Varsayılan sözdizimi
Varsayılan sözdizimi " ile başlar php" and ends with "?>".
Örnek:
Kısa açık Etiketler
Kısa etiketler " ile başlar" and ends with "?>". Kısa stil etiketleri, yalnızca sunuculardaki php.ini yapılandırma dosyasında etkinleştirildiklerinde kullanılabilir.
Örnek:
echo "PHP example with short-tags"; ?>
Dosyanın sonundaki PHP kapanış etiketini atlayın
Yalnızca PHP kodunu içeren bir dosyada kapanış PHP etiketinin atlanması önerilir, böylece yanlışlıkla boşluk veya PHP kapanış etiketinden sonra eklenen yeni satırlar, çağrılmayan efektlere neden olan çıktı arabelleğe almayı başlatabilir.
Örnek:
PHP deyimi ayırma
PHP'de ifadeler C veya Perl gibi noktalı virgül (;) ile sonlandırılır. PHP kodu bloğunun kapanış etiketi otomatik olarak bir noktalı virgül anlamına gelir, PHP bloğunun son satırını noktalı virgülle sonlandırmaya gerek yoktur.
İfade ayırma kuralları
- noktalı virgül
- VE / VEYA
- kapanış PHP etiketi
Geçerli Kodlar
Yukarıdaki örnekte, hem noktalı virgül (;) hem de kapanış PHP etiketi mevcuttur.
Yukarıdaki örnekte, son talimattan sonra noktalı virgül (;) yoktur, ancak bir kapanış PHP etiketi mevcuttur.
Yukarıdaki örnekte, son komutta noktalı virgül (;) var ama kapanış PHP etiketi yok.
PHP Büyük/küçük harf duyarlılığı
PHP'de kullanıcı tanımlı işlevler, sınıflar, temel dil anahtar sözcükleri (örneğin if, else, while, echo vb.) büyük/küçük harfe duyarsızdır. Bu nedenle aşağıdaki örnekteki üç yankı ifadesi eşittir.
Örnek 1
"); ECHO ("PHP büyük/küçük harf duyarlılığını öğreniyoruz
"); EcHo ("PHP büyük/küçük harf duyarlılığını öğreniyoruz
");
?>
PHP büyük/küçük harf duyarlılığını öğreniyoruz PHP büyük/küçük harf duyarlılığını öğreniyoruz PHP büyük/küçük harf duyarlılığını öğreniyoruz
Öte yandan, tüm değişkenler büyük/küçük harfe duyarlıdır.
Aşağıdaki örneği düşünün. $tutar, $AMOUNT, $amoUNT üç farklı değişken olduğundan, yalnızca ilk ifade değeri $tutar olarak görüntüler.
Örnek - 2
"); echo (" Tutar: $ AMOUNT
"); echo (" Tutar: $ miktar
");
?>
Tutar: 200 Tutar: Tutar:
PHP boşluk duyarsızlığı
Genel olarak, boşluklar, sekmeler ve satır sonu karakterleri de dahil olmak üzere ekranda boşluk görünmez. taşıma iadeleri. PHP'de boşluk, kodlamada "önemli değildir. Tek satırlık bir ifadeyi istediğiniz sayıda satıra bölebilir veya tek bir satırda birden fazla ayrı ifadeyi birlikte bölebilirsiniz.
Aşağıdaki iki örnek aynıdır:
Örnek:
"; echo" Sınıfı: $ sınıfı ve Rulo No. $ roll_no ";) Student_info (" David Rayy "," V ", 12) nedir?>
Örnek: Gelişmiş boşluk duyarsızlığı
"; echo" Sınıfı: $ sınıfı ve Rulo No. $ roll_no ";) Student_info (" David Rayy "," V ", 12) nedir?>
Öğrencinin Adı: David Rayy Sınıfı: V ve Rulo No. 12 yaşında
Örnek: Sekmeler ve boşluklarla boşluk duyarsızlığı
Aşağıdaki örnekte, sayısal bir işlemde boşluklar ve sekmeler kullanılmıştır, ancak her iki durumda da $ xyz aynı değeri döndürür.
"; // sekmeler ve boşluklar $ xyz = 11 + 12; echo $xyz;?>
PHP: Tek satır ve Çoklu satır Yorumlar
Tek satırlık yorum
PHP, aşağıdaki iki farklı yorum yöntemini destekler.
# Bu tek satırlık bir yorumdur.
// Bu, tek satırlık yorumun başka bir yoludur.
Örnek:
Çok satırlı yorumlar
PHP, stil yorumlarını "C" yi destekler. Bir yorum / * karakter çifti ile başlar ve * / karakter çifti ile sona erer.
/ * Bu bir çoklu yorum testidir,
ve bu satırlar yoksayılacak
yürütme sırasında * /
Örnek:
Birden çok satırlı yorumlar iç içe geçemez
İlk PHP Komut Dosyası
İşte web tarayıcısında "Merhaba Dünya ..." gösterecek ilk PHP betiği.
& lt?php echo "Merhaba Dünya ..."; ?>
Etiketler, web sunucusuna, etiketlerin içindeki her şeyi çalıştırılacak PHP kodu olarak ele almasını söyler. Kod çok basit. Web sayfasında "Merhaba Dünya ..." metnini görüntülemek için yerleşik bir PHP işlevi "echo" kullanır. Bu etiketlerin dışındaki her şey doğrudan tarayıcıya gönderilir.
resimli sunum
PHP'yi birleştirmek ve HTML
PHP sözdizimi yalnızca PHP etiketleri içinde geçerlidir.
PHP, HTML'ye gömülebilir ve belgenin herhangi bir yerine yerleştirilebilir.
PHP, HTML belgelerine gömülü olduğunda ve PHP bu belgeyi ayrıştırdığında, bir açılış etiketi () ve belgenin geri kalan kısımlarını yok sayın.
Aşağıdaki örnekte PHP ve HTML birlikte görülmektedir.
Burada çevrimiçi pratik yapın:
PHP yorumlayıcısı dosyayı ayrıştırdığında etiketleri arar.PHP kodunun nerede başlayıp nerede bittiğini gösterir. Bir çift açma ve kapama etiketinin dışındaki herhangi bir şey yorumlayıcı tarafından göz ardı edilecektir (yani, web sunucusuna olduğu gibi verilecektir). Örneğin, PHP yorumlayıcısına iletilen bir dosya aşağıdaki koda sahiptir:
Bu, yorumlayıcı tarafından göz ardı edilecek ve ilk olarak web sunucusuna olduğu gibi verilecek ve bu da onu tarayıcıya verecektir.
Bu da yorumlayıcı tarafından göz ardı edilecek ve web sunucusuna olduğu gibi iletilecektir.
Dosya yalnızca PHP kodu içeriyorsa veya dosyanın en sonunda bulunuyorsa, yani ondan sonra hiçbir şey yoksa, kapatma etiketinin atlanması (belirtmeyin) tercih edilir. Bu, PHP bitiş etiketinden sonra istenmeyen etkilere neden olabilecek rastgele boşluk karakterlerinin eklenmesini önlemeye yardımcı olur.
PHP ayrıca kısa bir açılış etiketinin kullanılmasına da izin verir. вместо
echo "Hello World!"; ?>
boşluk karakterleri
PHP kodunda boşluk kullanılabilir: boşluklar, sekmeler ve satır sonları. Boşluk karakterlerinin sayısı sınırlı değildir ve asıl amacı açık ve okunması kolay bir program metni (kaynak kodu) oluşturmak olan programcının tercihlerine bağlıdır.
Aşağıdaki örnek, boşluk kullanan PHP kodunu göstermektedir:
Örnek kod, boşluk kullanılmadan tek bir satıra yazılabilirdi, ancak bu kod daha az okunabilir olurdu: