internet pencereler Android
Genişletmek

Preg PHP örneklerini değiştirin. Örneklerle PHP'de düzenli ifadeler

PHP, modern programlama diline varsayıldığı gibi, geliştiriciye düzenli ifadeleri kullanmak için bir dizi işlev sunar. Karmaşık kriterlerdeki diğer satırlara satırları arayabilirsiniz.

  • Preg_pattern_order;
  • Preg_set_order.

Birinci düzenlemeye göre sıralama, arama sonuçlarını normal ifadenin numarasıyla büyütür (varsayılan değer). İkinci durumda, sonuçlar kendi konumlarının konumunda gruplandırılmıştır.

Sembol - Şablon Öğesi

Şablonun karakterleri çalıştırdığını hatırlamak önemlidir. Programlama, hangi veri türünün "sembol" olduğunu unuttu. Modern diller "string" kavramının altına düşmez, ancak şablonla ilgili olarak anlamak için gereklidir: burada sembolleri manipüle eder.

Bir şablon inşa etmek, her şeyden önce, istenen karakter dizisini belirtir. Bu açıkça öğrenilirse, şablonda hata olmaz. Her durumda, çok daha küçük olacak.

  • a şablonun belirli bir unsurudur - Sembol.
  • a-Z, bir şablonun bir elemanıdır, aynı zamanda bir karakterdir, ancak yalnızca A'dan Z'ye bir değere sahip olan, alt kayıttaki tüm latincedir.
  • 0-9, bir rakamdır ve herhangi bir, ancak 1-3 - sadece 1, 2 veya 3.

Şablonda kayıt önemlidir. İlk ve son şablon sembolleri çok önemlidir. Şablonun nerede başladığını ve nasıl bittiğini belirleyebilirsiniz.

İşlev şablonu

PHP Preg maçı Tümü Standart Normal İfade Sözdizimini kullanır. İçinde belirtilen karakterlerden birini belirtir:

  • Sadece A, B, C karakterleri.
  • [^ ABC] A, B, C sembolleri hariç hepsi
  • \\ w ve \\ w - metin veya metin sembolü değil.
  • \\ s ve \\ s boş veya boş bir sembol değil.
  • \\ D ve \\ d - rakam veya bir rakam değil.

Tekrarlamanın sembolleri kıvırcık parantez ile belirlenir - (n, m) ve önceki sembole aittir.

  • n "daha az değil" tekrarını gösterir;
  • m - tekrarlama "artık değil."

Sözdizimi, şablonlar oluşturmak için birçok seçenek sunar, ancak Azov ile başlamak en iyisidir, yani karmaşık öğelerin ve kombinasyonların eksik olduğu basit, kişisel olarak yazılmıştır.

Basitçe söylemek gerekirse, gerekli miktarları belirten gerçek karakterleri listeledi ve "^" sembolünün başlangıcına tekabül ettiğini ve "^" sembolünün, dizgenin sonu, basit desenleri oluşturabilirsiniz. Nitelikli profesyonellerden gerçek olarak kurulan normal ifadelerin analiz edilmesi, tüm uygulamaları eşleştirin karmaşık preg eşleşmesi oluşturmak için güçlü bilgi edinebilirsiniz. PHP arsenal sadece bu iki fonksiyonla sınırlı değildir, ancak en sık kullanılırlar.

Basit uygulama

Bir tamsayı için şablon:

  • "/*/"

Ayrıca bir tamsayının bir kalıbı, ancak önünde bir işaret olabilir ("+", "-") ve ön / arkada ekstra boşluklar olabilir:

  • / ^ [\\ s | \\ + | \\ -] (0,1) * /

Benzer şekilde:

  • / \u003d [\\ S | \\ + | '-] (0.1) * ((.) * / - bir noktaya sahip bir sayı.
  • /[E-posta Korumalı]+ \\. (2.3) / - e-posta tanıma seçeneği.

Preg maçı için kendi şablonlarınızı uygulamak, internetteki örnekleri, site sayfalarının ve diğer kaynakların analizi, kendi şablon kitaplığınızı oluşturmanıza olanak sağlar.

Bilgi aramak için seçenekler ayarlanabilir. Özellikle, son iki tasarım farklı şekilde simüle edilebilir. Birçok durumda, tercihin daha hızlı ve daha doğru olan şablonun istenen tesadüfini sağlayacaktır. PHP preg ile eşleşen uygulama, yanı sıra diğer dillerde benzer fonksiyonlar, uygulamalar, dikkat ve şablonların doğruluğunun ön doğrulamasını gerektirir.

Bu makale, PHP RegeXP örneklerinin bir seçim sunar. Düzenli ifadelerin örnekleri (normal ifadeler) çok iyi ve kullanışlı bir koleksiyon. Düzenli ifadelerin tüm örnekleri PHP'ye kabul edilebilir. Sağlıkta Kullanım!

Bir etki alanı adını kontrol etme örneği

Bu, PHP snippet, bir dizgenin geçerli bir etki alanı adı olup olmadığını kontrol eder.

?:. *) +) :? (D +)? /? / İ ", $ URL)) (Echo" URL'niz Tamam. ";) Başka (yankı" Yanlış URL. ";)

Metin içindeki kelimeyi vurgulamanın bir örneği

Metinde istenen kelimeyi aramak ve aydınlatmak için çok faydalı düzenli ifade. Özellikle kod, bir arama sonuçları çıktısı oluştururken kullanışlıdır.

$ Text \u003d "Komunitasweb'den örnek cümle, Regex web programlamasında popüler hale geldi. Şimdi Regex'i öğreniyoruz. Vikipedi'ye göre, düzenli ifadeler (regex veya regexp olarak kısaltılmış, PRAL formları ile regexp, regexps veya regexen) resmi olarak yazılmıştır. Normal bir ifade işlemcisi tarafından yorumlanabilecek dil; $ Metin \u003d preg_replace ("/ b (regex) b / i", " 1", $ metin); echo $ metin;

Arama sonuçlarının arka ışığının uygulanmasına bir örnekWordpress.

Search.php dosyasını açın ve the_title () işlevini bulun. Bir sonraki dizeyle değiştirin:

Yankı $ başlık;

Ve şimdi, bu kodu değiştirilmeden önce yerleştirin:

\0", $ başlık);?\u003e

Arama.php dosyanızı kaydedin ve Style.CSS'leri açın. Aşağıdaki satıra ekleyin:

Strong.Search-alınt (arka plan: sarı;)

Görüntülerin alınmasına bir örnekHTML yöntemi regexp

Bu PHP kodunun normal ifadeleri kullanarak, tüm görüntüleri ve URL adresini arar.

$ Images \u003d dizi (); preg_match_all ("/ (img | src) \u003d (" | ") [^" "\u003e] + / i", $ veri, $ medya); Unsem ($ veri); $ veri \u003d preg_replace ("/ (img | src) (" | "| \u003d" | \u003d ") (. *) / I", "3 $", $ medya); Foreach ($ url olarak $ veriler) ($ info \u003d pathinfo ($ URL); eğer (ISSET ($ bilgi ["uzantısı"])) (eğer (($ bilgi ["uzantısı"] \u003d\u003d "JPG") || ($ bilgi ["uzantı"] \u003d\u003d "JPEG") || ($ bilgi ["uzantılı"] \u003d\u003d "GIF") || ($ bilgi ["uzantılı"] \u003d\u003d "png")) array_push ($) Görüntüler, $ url);)))

Yinelenen kelimelerin çıkarılması (kayıt hariç)

Genellikle tekrarlanan kelimeler var mı? Daha sonra bu düzenli ifadenin örneği sizin için yararlı olacaktır.

$ Text \u003d Preg_Replace ("/ s (w + s) 1 / i", "1 $", $ metin);

Yinelenen noktaları kaldırma

Aynı, sadece tekrar eden noktaları ile.

$ Text \u003d Preg_Replace ("/.+/ i", ".", $ metin);

XML / HTML etiketlerini eşleştirme

Bu basit özellik iki argüman alır: etiket (bulmak istediğiniz eşleştirme), XMLI HTML kodu.

Function Get_tag ($ Tag, $ XML) ($ Tag \u003d Preg_quote ($ Tag); preg_match_all ("(" (<".$tag."[^>]*>(.*?). ")", $ XML, $ maçlar, preg_pattern_order); $ Maçlar iade; )

Tanımlanmış öznitelik değerleri olan XHTML / XML etiketlerini arayın

Bu örnek, önceki özelliğe benzer, yalnızca aramayı önemli ölçüde genişletebilirsiniz.

.

Fonksiyon get_tag ($ attr, $ value, $ xml, $ tag \u003d null) (if (is_null ($ Tag)) $ Tag \u003d "\\ w +"; else $ tag \u003d preg_quote ($ etiket); $ attr \u003d preg_quote ( $ Attr); $ value \u003d preg_quote ($ değeri); $ tag_regex \u003d "/<(".$tag.")[^>] * $ Attr \\ s * \u003d \\ s * "." (["\\"]) $ Değeri \\\\ 2 [^\u003e] *\u003e (. *?)<\/\\1>/ "preg_match_all ($ tag_regex, $ xml, $ maçlar, preg_pattern_order); $ maçlar iade;)

Hex renk değerlerini arayın

Belirtilen satırlarda onaltılık renk değerlerine uyumu arayan düzenli bir ifadenin mükemmel bir örneği. Bu ne için? Belki bir CSS kodu sıkıştırma hizmeti veya böyle bir şey yazmak istersiniz.

$ string \u003d "# 555555"; Eğer (preg_match ("/ ^ # (? :(? :( 3)) (1,2)) $ / i", $ string)) (yankı "Örnek 6 Başarılı.";)

Arama Örneğibelirtilen bir sayfada başlık

Regexp ile olan PHP kodunun bu ilginç örneği arıyor ve etiketler arasında metin döndürür. ve.

Feof ($ fp)) ($ sayfa. \u003d FGETS ($ fp, 4096);) $ titre \u003d eregi (" (.*)", $ Sayfa, $ regs); echo $ regs; FClose ($ fp);

Parsing Loke Apache

Çoğu site tanınmış Apache sunucuları üzerinde çalışır. Siteniz de üzerinde çalışıyorsa, PHP RegeXP'yi kullanarak bir sunucu günlük ayrıştırma yapabilirsiniz.

// logs: Apache Web Server // HTML dosyalarına yalnızca başarılı isabet eder. Sayfa görünümlerinin sayısını saymak için kullanışlıdır. "^ ((? # Client IP veya Etki Alanı Adı) S +) S + ((? # Temel Kimlik Doğrulama) S + S + S +) S + [(((? # Tarih ve Saat) [^]] +)] s + "(?: Get | Post | Kafa) (((? #File) / [^?"] +? "HTML?) ?? ((? # Parametreler) [^?"] +)? Http / + "s + (? # Status kodu) 200s + ((? # Bytes transfer) [- 0-9] +) S +" ((? # Yönlendirici) [^ "] *)" S + "(( ? # Kullanıcı aracısı) [^ "] *)" $ "// günlükler: Apache Web Server // 404 Yalnızca Hatalar" ^ ((? # Client IP veya Etki Alanı Adı) S +) S + ((? # Temel Kimlik Doğrulama) S + s + s +) s + [((? # Tarih ve saat) [^]] +)] s + "(?: Get | Post | kafa) (((? #File) [^?"] + ) ?? ((? # Parametreler) [^? "] +)? HTTP / + "S + (? # Durum Kodu) 404S + ((((? #) +) S +" ((? # Yönlendirici) [^ "] *)" S + "( (? # Kullanıcı aracısı) [^ "] *)" $ "

Şifre karmaşıklığı kontrolü örneği

Parolanın karmaşıklığının seviyesini kontrol eden normal bir ifadenin mükemmel bir örneği. Şifre 6 karakterden oluşmalı, en azından: bir başlık sembolü, küçük harfli bir karakter, bir rakam.

"A (? \u003d [-_ a-za-z0-9] *?) (? \u003d [-_ a-za-z0-9] *?) (? \u003d [-_ A-ZA-Z0-9] *?) [-_a-za-z0-9] (6,) z "

Metin İfadelerini Grafik İfadelerine Değiştirme

Bu kod örneği, grafiğinizde Metin İfadesini değiştirecektir. İlginç ve kullanışlı PHP snippet.

$ texte \u003d "Smiley ile bir metin :-)"; Echo str_replace (":-)", " ", $ texte);

Görüntüleri almak için normal bir ifadenin örneğihTML Kodu

Bu PHP kodunun WordPress'de kullanıldığını, görüntüyü aramak ve işlemek için kullanılacağını söylemeye değer.

mESAJ İÇERİĞİ; $ szsearchpattern \u003d "~ ] * /\u003e ~ "; Sayım ($ apics); eğer ($ ISBEROFPICS\u003e 0) (// burada resimlerinizi halledebilirsiniz // bu örnekte, bunlar için görüntülenecekler ($ i \u003d 0; $ ben< $iNumberOfPics ; $i++) { echo $aPics[$i]; }; }; endwhile; endif; ?>

Umarım bir PHP RegeXP örneklerinin bir seçim için faydalı olabilirsiniz. İlginç ekler veya normal ifadelerin (PHP) örnekleri varsa, yorumları yazın.

(PHP 4, PHP 5, PHP 7)

preg_replace - Düzenli ifadeyi arar ve değiştirir

Parametreler Listesi

İstenen desen. Hem bir dize hem de satır dizisi olabilir.

Ayrıca, modası geçmiş olan bazı pcre değiştiricileri de mevcuttur " e."(Preg_replace_eval), sadece bu fonksiyon için spesifik.

Değiştirme

Yedek için satır veya satır dizisi. Bu parametre bir dize ise ve desen bir dizidir, tüm şablonlar bu dize ile değiştirilecektir. Desen ve değiştirme dizileri ise, her desen elemanı karşılık gelen eleman ile değiştirilecektir. Değiştirme dizisi, desen dizisinden daha az öğe içeriyorsa, modeldeki tüm ekstra şablonlar boş dizelerle değiştirilir.

değiştirme referans içerebilir \\\\ n.veya (PHP 4.0.4 ile başlayarak) $ n.ve son seçenek tercih edilir. Böyle bir bağlantı, N-PodMack'e karşılık gelen bir alt dizişle değiştirilecektir. n 0 ila 99 arasında değer alabilir ve \\0 (veya $0 ) Tüm şablonun girilmesine karşılık gelir. Podmas maskeleri, bir birimden başlayarak soldan sağa doğru numaralandırılır. Ters vuruşu kullanmak için çoğaltılmalıdır (PHP String "\\\\" ).

Podmascus'a referansları kullanarak şablonu değiştirirken, doğrudan maskenin arkasında bir rakam olması gerektiğinde bir durum oluşabilir (örneğin, çakıştırılmış maskenin hemen ardından sayıları ayarlayın). Bu durumda, türün tanıdık gösterimini kullanmak imkansızdır. \\1 Reformlara referans için. Kayıt, örneğin, \\11 , utanç preg_replace () Bağlantıyı kullanmak isteyip istemediğinizi anlayamayacağından \\1 ardından bir rakam 1 Ya da sadece bağlantıyı kullanmak istiyorsun \\11 Hiçbir şeyin olması gerektiği. Tasarım kullanırsanız bu yanlış anlama elimine edilebilir. \${1}1 İzole bir bağlantı kullanma $1 ve yanındaki numara 1 .

Eski bir değiştirici kullanırken e. Bu özellik bazı karakterleri korur (yani " , " , \ ve boş bağlantıları değiştiren satırlarda null). Bu, tek veya çift tırnak içinde geri bağlantıları kullanırken sözdizimin doğruluğunu onaylamak için yapılır (örneğin, "Strlen (\\" $ 1 \\ ") + Strlen (" 2 "$") "). Yorumlanan dizginin nasıl görüneceğini doğru bir şekilde gerçekleştirmek için PHP Satır İşleme Sözdizimine sahip olduğunuzdan emin olun.

Konu.

Arama ve değiştirme için satır veya satır dizisi.

Konu bir dizi ise, subcect dizisinin her bir elemanı için değiştirme ile arama yapılır ve geri dönüş değeri de bir dizi olacaktır.

Her konu satırı için her şablonun mümkün olan maksimum miktarı. Varsayılan eşittir -1 (kısıtlamalar yok).

Belirtiyse, bu değişken değiştirme sayısı ile doldurulur.

İade değerleri

preg_replace () Konu parametresi bir dizi ise bir dizi döndürür, aksi takdirde dize döndürülür.

Eğer tesadüfler bulunursa, konunun yeni sürümü iade edilir, aksi takdirde konu iade edilmesi durumunda, dışa dönük olarak iade edilir. BOŞ.

Hatalar

Modası geçmiş bir değiştirici kullanırken "\\ e" seviye hatası acele eder E_deprecated..

Değişiklikler Listesi

Örnek

Örnek # 1 Bir belgeyi kullanarak, ardından bir rakam

$ String \u003d "15 Nisan 2003";
$ Pattern \u003d "/ (\\ w +) (\\ d +), (\\ d +) / i";
$ değiştirme \u003d "$ (1) 1, 3 $";
echo preg_replace ($ desen, $ değiştirme, $ string);
?>

Örnek # 2 Sayısal indeksli dizilerin fonksiyon argümanları olarak kullanımı preg_replace ()

$ String \u003d. "Hızlı kahverengi tilki tembel köpeğin üstünden atladı.";
$ Patterns \u003d dizi ();
$ Desenler [0] \u003d "/ hızlı /";
$ Desenler [1] \u003d "/ kahverengi /";
$ Patterns [2] \u003d "/ tilki /";
$ değiştirme \u003d dizi ();
$ değiştirme [2] \u003d "Bear";
$ değiştirme [1] \u003d "siyah";
$ değiştirme [0] \u003d "Yavaş";

?>

Bu örneğin sonucu:

Ayı siyah yavaş tembel köpeğin üzerinden atladı.

Tuş şablonlarını ve değiştirmelerinin sıralaması, istenen sonucu alın:

ksort ($ desenler);
ksort ($ değiştirme);
echo preg_replace ($ patterns, $ değiştirme, $ string);
?>

Bu örneğin sonucu:

Yavaş siyah ayı tembel köpeğin üzerinden atladı.

Örnek # 3 Birkaç şablon için değiştirme

$ Patterns \u003d dizi ( "/ (19 | 20) (\\ D (2)) - (\\ D (1,2)) - (\\ D (1,2)) /",
"/ ^ \\ s * ((\\ w +)) \\ s * \u003d /");
$ değiştirin \u003d dizi ("\\ 3 / \\ 4 / \\ 1 \\ 2", "$ \\ 1 \u003d");
echo preg_replace ($ desenler, $ değiştirme "(startdate) \u003d 1999-5-27");
?>

Düzenli ifadeler, şablona karşılık gelen sekans dizgisinde bulmanızı sağlar. Örneğin, "Vasya (. *) Pupkin şablonu, Vasya ve Pupkin kelimeleri arasında bir sıra bulmanıza izin verecek. Altı rakam bulmanız gerekiyorsa, sonra "(6)" yazıyoruz (örneğin, altı ila sekiz hane, daha sonra "(6.8)"). İşte bir sembol seti işaretçisi ve gerekli miktarın bir işaretçisi olarak bu tür şeyleri bölünmüştür:

<набор символов><квантификатор><жадность>

Bir karakter kümesi yerine, herhangi bir karakterin bir belirlenmesi - bir nokta kullanılabilir, belirli bir karakter kümesi belirtilebilir (diziler desteklenir - "0-9"). "Bu karakter kümesi dışında" belirtilebilir.

Resmi PHP belgelerindeki işaretçi sayısı "ölçer" denir. Terim uygundur ve eğer kaldıraç taşır. Böylece, ölçer, bir sabit ("(6)") ya da sayısal bir aralık olarak ("(6,8)") ve soyut "herhangi bir sayı, dahil 0" ("*" gibi özel bir değere sahip olabilir. ), "Herhangi bir doğal sayı" - 1'den sonsuzluğa ("+": "Belge + .txt"), "0 veya 1" ("?"). Varsayılan olarak, bu karakter kümesi için ölçekti bir ("Document.txt") eşittir.

Kombinasyonlar için daha esnek bir arama için, bu paketler "semboller - bir niceleyicilik" ayarları yapılabilir.

Esnek bir araç olarak, normal ifadeler bükülür, ancak kesinlikle değil: Uygulamalarının bölgesi sınırlıdır. Örneğin, bir sabit satırı diğerine değiştirmeniz gerekirse, tekrar sabitlenmiş, Str_Replace'ü kullanın. PHP geliştiriciler, ErEg_Replace veya Preg_Replace'in bu karmaşık fonksiyonlarının uğruna kullanmamayı, çünkü bunları aradıklarında, dizenin yorumlanması meydana gelir ve bu sistem kaynaklarını tüketir. Ne yazık ki, bu sizin en sevdiğiniz acemi PHP programcıları komisyoncusudur.

Yalnızca tam olarak ne "orada" satırını bilmiyorsanız, düzenli ifadeler kullanın. Örneklerden: Servis karakterlerinin ve kısa kelimelerin arama dizesinden ve aşırı boşluklardan (veya daha doğrusu, tüm boşluklar sıkıştırıldığı) bir arama kodu: "+" bir boşlukla değiştirilir). Bu işlevlerin yardımıyla, geri bildiriminizi bırakan e-posta kullanıcısını kontrol ediyorum. Birçok yararlı yapılabilir, ancak aklınızda bulundurmanız önemlidir: düzenli ifadeler Omnipotent değildir. Örneğin, büyük metindeki karmaşık değiştirme yapmamak daha iyidir. Sonuçta, örneğin, program planında bir kombinasyon "(. *)", Tüm metin sembollerinin büstü anlamına gelir. Ve eğer şablon çizginin başlangıcına veya sonuna bağlı değilse, program tarafından tüm metin boyunca "hareket eder" şablonu ve çift kaba kuvvet veya kare için oldukça kaba kuvvet ortaya çıkar. Başka bir kombinasyonun "(. *)" Küba'da büstü, vb. Anlamına geldiğini tahmin etmek zor değildir. Üçüncü derece, 5 kilobayt metnini söyleyin. 125.000.000.000 (kelimelerle: yüz yirmi beş milyar operasyon) ortaya çıkıyor. Tabii ki, kesinlikle yaklaşırsanız, çok fazla işlem olacak ve dört ya da sekiz kat daha az olacaktır, ancak sayıların kendisi de önemlidir.

Karakter kümesi

. noktaherhangi bir sembol
[<символы>] köşeli parantezkarakter sınıfı ("herhangi bir"). Örneğin
[^<символы>] olumsuz sembol sınıfı ("hariç" biri ")
- darbekarakterlerin sınıfındaki dizinin belirlenmesi ("" - sayılar)
\\ D. Sadece sayılar
\\ D.[^0-9] Sayıların yanı sıra
\\ W. Harfler ve sayılar
\\ W.[^ a-z0-9]Harfler ve sayılar hariç
\\ S. Kör sembolleri: Boşluk, sekme, satır transferi
\\ S.[^ ] Küresel sembollerin yanı sıra
| (Biri | Diğer)Bu yerde, listelenen seçeneklerden biri olabilir, örneğin: (Vasya | Peter | Masha). Örneğe girmek istemiyorsanız, kullanın (?: ...)

Sembol sınıfını sadece bir tane belirlemek için kullanmayın ("+" yerine tamamen "+"). Sembol sınıfına bir nokta yazmayın - bu herhangi bir karakterdir, sonra sınıftaki diğer karakterler basitçe gereksiz olacaktır (ve negatif sınıfta tüm karakterleri reddedilecektir).

Nüsle

Miktar, belirli bir değer ve sınırlar olarak belirtilebilir. Belirtilenlerin sayısı nicelleştiricinin altına düşerse, ekspresyonun parçasının kırık dize ile çakıştığı kabul edilir. Sözdizimi:

{<количество> }

{<минимум> , <максимум> }

Yalnızca gerekli minimumları belirlemeniz gerekirse, ancak maksimum yok, virgülleri koyarız ve ikinci numarayı yazmazız: "(5,)" ("Minimum 5"). En sık kullanılan ölçüler için özel atamalar vardır:

Uygulamada, bu tür karakterler kıvırcık parantezlerden daha sık kullanılmaktadır.

Çapa

Bu karakterler buna göre başlangıcında ve hattın sonunda durmalıdır.

Açgözlülük

Soru işareti ayrıca bir miktar minimize edici olarak görünür:
.*?

$1"$ RE1 \u003d" | \\ (. *) \\ | İxs "; $ RE2 \u003d" | \\ (. *?) \\ | İxs "; $ sonuç \u003d preg_replace ($ re1, $ 'ya, $ ST); yankı" açgözlü versiyon: ".htmlspecialchars ($ sonuç, ," Windows-1251 ")."
"; $ Sonuç \u003d Preg_Replace ($ RE2, $ TO, $ STR); ECHO" tembel versiyonu: ".htmlspecialchars ($ sonuç, ," Windows-1251 ")."
";?\u003e Örnek sonucu: açgözlü versiyonu: yağ metni [B] ve burada - daha da fazla yağ iade edildi Tembel versiyonu: yağ metni [B] ve burada - daha büyük İade

Şablonun dizi, fark ettiğiniz gibi, başlar ve eğimlerle biter. İkincisinden sonra, parametreler takip edilir:

bEN.kayıt Bağımlı Arama
m.

Çok satırlı mod. Varsayılan olarak, PCRE sadece aynı çizgide olan bir şablonla olan tesadüfler ve "^" ve "$" karakterleri, yalnızca metnin başlangıcı ve sonuyla çakışmaktadır. Bu parametre ayarlandığında, "^" ve "$", bireysel çizgilerin başlangıcına ve sonuna karşı çakışır.

s.sembol "." (nokta) Hat Transferi ile çakışıyor (varsayılan - Hayır)
A.metnin başlangıcına bağlanma
E."$" Sembolüne yalnızca metnin sonu ile neden olur. Parfict M yüklü ise yoksayılır.
UHer bir miktar için "açgözlülük" tersine çevirerek (bir miktar maliyetinden sonra "?", Bu miktar "açgözlü" olmaktan vazgeçer).
e.Yedek dize PHP kodu olarak yorumlanır.

Düzenli ifadelerle çalışmak için fonksiyonlar

  • preg_grep.
  • preg_Match - düzenli bir ifade kontrolü gerçekleştirir. Bu özellik sadece ilk tesadüf arıyor!
  • preg_match_all.
  • preg_quote - Karakterleri düzenli ifadelerde kalkan. Şunlar. Tüm servis sembollerine (örneğin, parantez, köşeli parantez, vb.) Kelimenin tam anlamıyla algılanması için bir çizgi ekler. Herhangi bir kullanıcı bilgisi girişiniz varsa ve normal ifadelerle kontrol ederseniz, iletilen değişkende servis karakterleri sergilemek daha iyidir.
  • preg_replace
  • preg_replace_callback - düzenli ifade ve değiştirme ile bir arama yapar
  • preg_split.

preg_grep

İşlev preg_grep. - Şablonla eşleşen bir dizi oluşum döndürür

Sözdizimi

dizi. preg_grep. (String pattern, dizi girişi [, int bayrakları])

preg_grep (), belirtilen desen düzenine karşılık gelen gelen bir giriş dizisinin unsurlarından oluşan bir dizi döndürür.

Bayraklar parametresi aşağıdaki değerleri alabilir:

Preg_grep_invert.
Bu bayrak ayarlandıysa, Preg_Grep () işlevi, belirtilen desen şablonuyla eşleşmeyen dizi öğelerini döndürür.
Preg_grep () işlevi tarafından döndürülen sonuç aynı endeksleri bir dizi kaynak verisi olarak kullanır. Bu davranış uygun değilse, REIDEXING için PREG_GREP () tarafından döndürülen diziye array_values \u200b\u200b() uygulayın.
Basit kod:

// dizinin tüm öğelerini döndürür, // yüzer nokta numaralarını içeren $ fl_array \u003d preg_grep ("/ ^ (\\ d +)? \\. \\ D + $ /", $ dizi);

preg_match

İşlev preg_match - Düzenli bir ifade kontrolü gerçekleştirir

Sözdizimi

int. preg_match (String pattern, string konusu [, dizi maçları [, int bayrakları [, int ofset]]]) Belirtilen metin konusu maçında desen şablonu ile arar

Ek eşleşmeler parametresinin belirtilmesi durumunda, arama sonuçları ile doldurulur. $ Maçlar öğesi, tüm şablonun, $ eşleşmelerinin - ilk denizaltıya karşılık gelen dizinin bir parçası olan tüm şablonun, $ eşleşmelerinin bir kısmını içerecektir.

bayraklar aşağıdaki değerleri alabilir:

Preg_offset_capture.

Arama, satırın başlangıcından itibaren soldan sağa doğru yapılır. İsteğe bağlı ofset parametresi, arama için alternatif bir başlangıç \u200b\u200bpozisyonunu belirtmek için kullanılabilir. Substr () () ($ konusu, $ ofset) üzerindeki konuyu değiştirerek benzer bir sonuç elde edilebilir.

Preg_match () işlevi bulunan uygunluk sayısını döndürür. Bu, preg_match () ilk tesadüf işleminden sonra çalışmalarını durdurduğundan, bu 0 (tesadüf bulunamadı) ve 1 olabilir. Tüm tesadüfleri bulmanız veya saymanız gerekirse, Preg_Match_All () işlevini kullanmalısınız. Yürütme sırasında herhangi bir hata oluştuğunda Preg_Match () işlevi false döndürür.

Öneri: Belirli bir satırda bir alt dizinin varlığını kontrol etmeniz gerekiyorsa, Pregg_match () işlevini kullanmayın. Bu görevi çok daha hızlı yerine getirirken, bu Strpos () veya Strstr () için kullanın.

Basit kod

Basit kod

Basit kod

Örnek sonucu:

alan adı: Site

preg_match_all.

İşlev preg_match_all. - Dizede küresel bir şablon araması yapar

Sözdizimi

int. preg_match_all. (String pattern, string konusu, dizi maçları [, int bayrakları [, int ofset]])

Konu dizesindeki desen şablonuyla tüm tesadüfleri arıyor ve sonucu bayrak bayraklarının kombinasyonu ile belirlenen sırayla eşleşmeler dizisine koyar.

İlk uyumu bulduktan sonra, bir sonraki arama, hattın başından itibaren değil, son bulunan girişin sonundan itibaren gerçekleştirilecektir.

Ek bayraklar parametresi, aşağıdaki değerleri birleştirebilir (Preg_Settern_order'ı Anlamsızca ile aynı anda kullanıldığını anlamak gereklidir):

Preg_pattern_order.
Bu bayrak takılıysa, sonuç şu şekilde sipariş edilecektir: $ Maçlar öğesi, şablonun bir dizi eksiksiz girişi içeriyorsa, $ Maçlar öğesi, ilk podmascus'a ve benzeri bir dizi içerir.

Basit kod

]+>(.*)] +\u003e | U "," misal:
bu bir test
", $ OUT, PREG_PATTERN_ORDER); ECHO $ \u200b\u200bdışarı.", "$ dışarı." \\ n "; echo $ dışarı.", ". $ dışarı." \\ n ";?\u003e Örneğin sonucu: misal:,
bu bir test
Örnek:, bu bir testtir

Gördüğümüz gibi, $ OUT şablonun bir dizi eksiksiz girişi içeriyor ve $ OUT elemanı, etiketlerde yer alan bir dizi alt dizin içeriyor.

Preg_set_order
Bu bayrak takılıysa, sonuç aşağıdaki gibi sipariş edilecektir: $ Maçlar öğesi ilk oluşum setini içerir, $ Maçlar öğesi bir ikinci oluşum seti, vb.

Basit kod

]+>(.*)] +\u003e | U "," misal:
bu bir test
", $ OUT, PREG_SET_ORDER); ECHO $ \u200b\u200bdışarı.", ". $ Dışarı." \\ N "; echo $ dışarı.", "$ Dışarı." \\ N ";?\u003e Örnek örneğinin sonucu: misal:, Misal:
bu bir test
, bu bir test

Bu durumda, bir $ maç dizisi ilk oluşum setini içerir, yani: $ Maçlar öğesi tüm şablonun ilk girişini içerir, $ Maçlar öğesi, ilk denkliğin ilk girişini içerir. Benzer şekilde, bir $ maç dizisi bir ikinci oluşum seti içerir ve böylece her bir kadran için bulunur.

Preg_offset_capture.
Bu bayrak belirtilirse, kaynak hattındaki konumu her biri için belirtilecektir. Bu bayrağın geri dönüş verilerinin formatını değiştirdiği unutulmamalıdır: Her giriş, substring'in bulunduğu sıfır elemanında ve birinci ofsette bir dizi olarak döner.

Bayrağın kullanılmaması durumunda, varsayılan değer Preg_Pattern_Order.

Arama, satırın başlangıcından itibaren soldan sağa doğru yapılır. İsteğe bağlı ofset parametresi, arama için alternatif bir başlangıç \u200b\u200bpozisyonunu belirtmek için kullanılabilir. Substr () () ($ konusu, $ ofset) üzerindeki konuyu değiştirerek benzer bir sonuç elde edilebilir.

Yürütme sırasında herhangi bir hata oluştuğunda, şablonun bulundu (sıfır olabilir) veya false sayısını döndürür.

Basit kod

Basit kod

kalın yazı.beni tıkla."; preg_match_all (" / (<([\w]+)[^>]*>)(.*)(<\/\\2>) / ", $ Html, $ maçlar); için ($ i \u003d 0; $ i< count($matches); $i++) { echo "matched: " . $matches[$i] . "\n"; echo "part 1: " . $matches[$i] . "\n"; echo "part 2: " . $matches[$i] . "\n"; echo "part 3: " . $matches[$i] . "\n\n"; } ?> Örneğin sonucu: eşleşti: kalın yazı. Bölüm 1: Bölüm 2: Kalın Metin Bölüm 3: Eşleşti: beni tıkla. Bölüm 1: Bölüm 2: Beni tıklayın Bölüm 3:

preg_quote.

İşlev preg_quote - Normal ifadelerdeki sembolleri kalkanlar

Sözdizimi

dize preg_quote (String str [, string sınırlayıcı])

Preg_quote () özelliği, String Str'u alır ve her servis karakterinden önce zıt yatayı ekler. Bu, dize değişkenleri şablonun tasarımında bulunursa, komut dosyası işlemi sırasında değeri değişebilir.

Ek sınırlayıcı parametresinin belirtilmesi durumunda, bu da korumalı olacaktır. Bu, PCRE fonksiyonlarında kullanılan sınırlayıcıyı korumak için uygundur. En yaygın sınırlayıcı "/" sembolüdür.

Düzenli ifadelerde, aşağıdaki semboller hizmet olarak kabul edilir :. \\\\ + *? [^] $ () () \u003d!< > | :

Basit kod

Basit kod

"$ Kelime."", $ textbody); echo $ textbody;?\u003e Örnek sonucu: Bu kitap * Çok * Bulması zor.

preg_replace

İşlev preg_replace - Düzenli ifadeyi arayın ve değiştirin

Sözdizimi

karışık. preg_replace (Karışık desen, karışık değiştirme, karışık konu [, int limiti])

Desen şablonuyla eşleşmeler dizgisinde arar ve değiştirme üzerine değiştirir. Sınır parametresinin belirtilmesi durumunda, şablon girişinin limit serbest bırakılması değiştirilecektir; Sınır, -1'e eşit şekilde indirilirse, şablonun girişi değiştirilir.

Değiştirme, \\\\ n veya (PHP 4.0.4 ile başlayan) $ n'nin referanslarını içerebilir ve son seçenek tercih edilir. Her referans, yuvarlak parantez içine alınmış N "substratus'a karşılık gelen bir alt yuva ile değiştirilecektir. N, 0 ila 99 arasında değerleri alabilir ve referans \\\\ 0 (veya 0 $), tüm şablonun girişine karşılık gelir. Podmas Maskeler, birden başlayarak soldan sağa doğru numaralandırılmıştır.

Gönderilere referansları kullanarak şablonun değiştirilmesini kullanırken, sayı doğrudan maske için takip edildiğinde bir durum oluşabilir. Bu durumda, \\\\ n formunun notasyonu bir hataya yol açar: ilk denizaltıya referans, ardından bir sayı 1, on birinci denizaltı referans olarak yorumlanacak, \\\\ 11 olarak kaydedilecektir. Bu yanlış anlama, \\ $ (1) 1 tasarımını kullanırsanız, ilk denizaltıya izole edilmiş bir referansı gösteren ve 1 numaralı bir referansı kullanırsanız elimine edilebilir.

Basit kod

Bu örneğin sonucu:

Eğer fonksiyonun yürütülmesi sırasında, şablonla olan tesadüfler tespit edildi, değiştirilmiş alt ayrım değeri iade edilecektir, aksi takdirde kaynak metin konusu iade edilecektir.

Preg_Replace () işlevinin ilk üç parametresi tek boyutlu diziler olabilir. Dizinin diziyi işleme koyarken anahtarları kullanması durumunda, dizide bulundukları sırayla alınırlar. Desen ve değiştirme için bir dizideki tuşları belirlemek gerekli değildir. Dizinleri hala kullanmaya karar verdiyseniz, değiştirilen şablonları ve satırları eşleştirmek için, dizilerin her biri için KSTORT () işlevini kullanın.

Ayı siyah yavaş tembel köpeğin üzerinden atladı.

Ksort () kullanarak, istediğiniz sonucu alırız:

Yavaş siyah ayı tembel köpeğin üzerinden atladı.

Konu parametresi bir dizi ise, şablonun üzerinde arama ve değiştirme öğelerinin her biri için yapılır. İade sonucu da bir dizi olacaktır.

Desen ve yedek parametrelerin dizileri olduğu durumlarda, Preg_Replace () sırayla her iki dizinden eleman çifti ile çıkarır ve arama ve değiştirme işlemi için kullanır. Değiştirme dizisi desenden daha fazla öğe içeriyorsa, değiştirme için eksik eşyalar yerine boş çizgiler alınacaktır. Desenin bir dizi olması durumunda ve değiştirme, Desen dizisinin her bir elemanı için bir dizedir, modelin üzerinde arama ve değiştirme gerçekleştirilecektir (dizinin tüm elemanları dönüşümlü olarak olacaktır, değiştirme hattı sabit kalırken ). Desen bir dize olduğunda seçenek ve değiştirme bir dizidir, mantıklı değil.

/ E değiştirici, Preg_Replace () işlevinin () davranışını değiştirir. Gerekli ikameleri yerine getirdikten sonra yedek parametrenin bir PHP kodu olarak yorumlandığı ve yalnızca bunun yerine kullanıldıktan sonra yorumlandığı şekilde değiştirir. Bu değiştiriciyi kullanarak dikkatli olun: değiştirme parametresi, doğru bir PHP kodu içermelidir, aksi takdirde Prex_Replace () işlevinin parametrelerini içeren bir dizede, sözdizimi hatası oluşacaktır.

Örnek kod: Birkaç şablon için değiştirme

Bu örnek ortaya çıkacak:

$ startdate \u003d "5/27/1999";

Örnek Kod: Değiştirici / E kullanma

] *\u003e / E "," "\\\\ 1" .strtoupper ("\\\\ 2"). "\\\\ 3" ", $ html_body);?\u003e

Örnek Kod: Tüm HTML etiketlerini en üst kayıt olana dönüştürür

]*?>.*?"Si", // javascript'i keser ""<[\/\!]*?[^<>] *?\u003e "Si", // html etiketlerini keser "" ([[\\ r \\ n]) [\\ s] + "", // boşluk karakterlerini keser "" & (quot | # 34); "I" , // HTML varlıklarının yerini alan "" & (AMP | # 38); "I", "" & lt | # 60); "I", "" & (GT | # 62); "I", "" Nbsp | # 160); "I", "" & (IExcl | # 161); "I", "" & (Cent | # 162); "Ben", "" & (Pound | # 163); "I "," "& (Kopyalama | # 169);" I "," "(\\ D +);" E "); // bir php kodu olarak yorumla $ değiştirin \u003d dizi ("", "", "\\\\ 1", "\\" "," & ","<", ">",", CHR (161), CHR (162), CHR (163), CHR (169), "CHR (\\\\ 1)"); $ Text \u003d Preg_Replace ($ Arama, $ değiştirme, $ belge); ?\u003e

preg_replace_callback

İşlev preg_replace_callback - Geri arama işlevini kullanarak düzenli ifade ve değiştirme arar

Sözdizimi

karışık. preg_replace_callback (Karışık desen, geri arama geri arama, karışık konu [, int limiti])

Bu fonksiyonun davranışı, büyük ölçüde Preg_Replace () tarafından hatırlatılır, çünkü yedek parametre yerine, bir dizi bulaşan girişlerin gelen bir parametre olarak iletildiği bir geri arama işlevi belirtmeniz gerekir. Beklenen sonuç, değiştirilecek bir dizedir.

Basit kod

\\ s * \\ w | ", Create_Function (// bu durumda tek tırnak kullanılarak, temelde, // alternatif - tüm karakterler" $ "$ maçlar", "Return strtolower ($ maçlar);"), $ line); Echo $ satır;) FCLOKE ($ fp);?\u003e

preg_split.

İşlev preg_split. - Dize düzenli ifade ile kırar

Sözdizimi

dizi. preg_split. (String pattern, string konusu [, int sınırı [, int bayrakları]])

Desen şablonuna karşılık gelen sınırlara bölünen belirtilen konu dizgisinin bir alt dizesinden oluşan bir dizi döndürür.

Sınır parametresi belirtilirse, işlev limit alt diziden daha fazla döner. Özel limit değeri, -1'e eşit, kısıtlama eksikliği anlamına gelir, başka bir isteğe bağlı bayrak parametresi belirtmek için çok kullanışlıdır.

Bayraklar, aşağıdaki bayrakların keyfi bir kombinasyonu olabilir (bağlantı operatörü ile gerçekleşir "|"):

Preg_split_no_empty
Bu bayrağın belirtilmesi durumunda, Preg_Split () işlevi yalnızca boş olmayan bir alt çizelgeyi döndürür.

Preg_split_delim_capture.
Bu bayrağın belirtilmesi durumunda, ayırma düzenindeki parantez içine alınan ifade, belirtilen satırdan da çıkarılır ve fonksiyona geri döner. Bu bayrak PHP 4.0.5'e eklendi.

Preg_split_offset_capture.
Bu bayrak belirtilirse, bulunan her bir alt tabaka için orijinal satırdaki konumu belirtilecektir. Bu bayrağın geri dönüş verilerinin formatını değiştirdiği unutulmamalıdır: Her giriş, substring'in bulunduğu sıfır elemanında ve birinci ofsette bir dizi olarak döner.

Kod örnekleri

Açılıştaki turuncu braketinin peşinde olması durumunda ?: "Dize yakalama oluşmaz ve akım zorlayıcının numaralandırılmamasıdır. Örneğin," Beyaz Kraliçe "satırına eşlenirse ((((?: kırmızı | beyaz) şablon (King | queen)), olacak "White Queen" ve "Queen" tarafından yakalanacak ve sırasıyla 1 ve 2 numaralandırılacaklar:

$ r \u003d "/ the ((?: kırmızı | beyaz) (King | Kraliçesi)) /"; 0 \u003d "beyaz kral"; 1 \u003d "beyaz kral"; 2 \u003d "King";

Normal ifadeler hakkında daha fazla bilgi:


Düzenli ifadeler kontrol hizmetleri:


Devamını oku: Kütüphane Kıvırmak PHP'de.
.

Düzenli ifadeler, geliştiriciler için çok faydalı bir araçtır. Yardımlarıyla, metin, kelimeleri veya diğer karakterleri bulabilir, tanımlayabilir veya değiştirebilirsiniz. Günümüzün makalesinde, herhangi bir web geliştiricisini kullanacak olan 15 en faydalı düzenli ifade toplanır.

Düzenli ifadelere giriş

Birçok acemi geliştirici, anlamak ve kullanmak için düzenli ifadeler düzenli olarak görünüyor. Aslında, göründüğü gibi her şey çok zor değil. Doğrudan düzenli ifadelere geçmeden önce, faydalı ve çok yönlü kodlarıyla, tabana bir göz atalım:

Düzenli ifadelerin sözdizimi

Düzenli ifade Anlamına geliyor
foo. "Foo" satır
^ foo Dize "foo" ile başlar
foo $. Dize "foo" üzerinde bitiyor
^ Foo $. "Foo" sadece bir kez satırda meydana gelir.
a, b veya c
küçük harfte herhangi bir karakter
[^ A-z] büyük harfte olmayan herhangi bir karakter
(Gif | jpg) Hem "GIF" hem de "JPEG" anlamına gelir.
+ Alt sicilin bir veya daha fazla sembolü
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 sembol (sayı ve harf yok)
({3}|{4}) Üç harf veya 4 sayı anlamına gelir

Düzenli ifadeler için PHP işlevleri

İşlev Açıklama
preg_match () Preg_match () işlevi belirtilen şablon boyunca bir dize arıyor, dize diğer durumlarda, dize her ikisi de yanlışsa, doğrular
preg_match_all () Preg_match_all () işlevi, şablon tarafından belirtilen dizenin tüm girişini bulur.
preg_replace () Preg_Replace () işlevi, EREG_REPEYE () ile aynı prensiple geçerlidir, bu, normal ifadelerin hem arama şablonunu hem de değiştirilecek değeri ile değiştirilecek olan bir dizgenin belirlenmesi için kullanılabilecekleri gibi kullanılabilecek.
preg_split () Preg_split () işlevi, normal ifadenin arama şablonu için bir parametre olarak kullanılabileceği dışında, bölünmenin yanı sıra bölünmüş () işlevi görür.
preg_grep () Preg_grep () işlevi, giriş dizisinin tüm öğelerini arıyor, normal ifade düzenine karşılık gelen tüm öğeleri döndürür.
preg_quote () Düzenli ifade karakterlerini kaydırır

Bir etki alanı adını kontrol etme

Dize doğru alan adı olup olmadığını kontrol edin

$ url \u003d "http://komunitasweb.com/"; if (preg_match ("/ ^ http | httpps | ftp)): // (* (* (? :: *) +) :() :)? /? / I", $ url)) (yankı "URL'niz tamam . ";) Başka (yankı" yanlış URL. ";)

Metin içindeki kelimeyi vurgulayın

Bu çok faydalı bir düzenli ifadedir, doğru kelimeyi bulabilir ve vurgulayabilirsiniz. Özellikle arama sonuçlarını görüntülemek için kullanışlıdır.

$ Text \u003d "Komunitasweb'den örnek cümle, Regex web programlamasında popüler hale geldi. Şimdi Regex'i öğreniyoruz. Vikipedi'ye göre, düzenli ifadeler (regex veya regexp olarak kısaltılmış, PRAL formları ile regexp, regexps veya regexen) resmi olarak yazılmıştır. Normal bir ifade işlemcisi tarafından yorumlanabilecek dil; $ Metin \u003d preg_replace ("/ b (regex) b / i", " 1", $ metin); echo $ metin;

Arka Işık Arama Sonuçları WordPress blogunda

Önceki örnekte belirtildiği gibi, bu kod örneği, arama sonuçlarının düzenlenmesinde kullanımı uygundur ve bu işlevi WordPress blogunda uygulamak için harika bir yoldur.

Arama.php dosyanızı açın ve the_title () işlevini bulun. Aşağıdaki kodla değiştirin:

Yankı $ başlık;

Şimdi, bu satırın üstünde, bu kodu ekleyin:

\0", $ başlık);?\u003e

Search.php dosyasını kaydedin ve Style.css'leri açın. Bir sonraki dizeyi ekleyin:

Strong.Search-alınt (arka plan: sarı;)

Tüm resimleri HTML belgesinden almak

Tüm resimleri bir web sayfasından almanız gerektiğinde, bu kod, curl yeteneklerini kullanarak kolayca görüntü yükleyici oluşturabilmelidir.

$ Images \u003d dizi (); preg_match_all ("/ (img | src) \u003d (" | \\ ") [^" \\ "\u003e] + / i", $ veri, $ medya); Unsem ($ veri); $ veri \u003d preg_replace ("/ (img | src) (" | \\ "| \u003d" | \u003d \\ ") (. *) / I", "3 $", $ medya); Foreach ($ url olarak $ veriler) ($ info \u003d pathinfo ($ URL); eğer (ISSET ($ bilgi ["uzantısı"])) (eğer (($ bilgi ["uzantısı"] \u003d\u003d "JPG") || ($ bilgi ["uzantı"] \u003d\u003d "JPEG") || ($ bilgi ["uzantılı"] \u003d\u003d "GIF") || ($ bilgi ["uzantılı"] \u003d\u003d "png")) array_push ($) Görüntüler, $ url);)))

Yinelenen kelimelerin çıkarılması (kaydolmaya duyarlı değildir)

Yazdırma sırasında, kelimeler genellikle tekrarlanır? Bu düzenli ifadeye yardımcı olacaktır.

$ Text \u003d Preg_Replace ("/ s (w + s) 1 / i", "1 $", $ metin);

Yinelenen noktalama işaretlerinin çıkarılması

Aynı, sadece noktalama işaretleri için. Çift virgülle vurun.

$ Text \u003d Preg_Replace ("/.+/ i", ".", $ metin);

XML / HTML etiketlerini ara

Bu basit özellik iki argüman alır. Birincisi, bulmanız gereken bir etikettir ve ikincisi, XML veya HTML içeren bir değişkendir. Tekrar ediyorum, bu özellik curl ile kullanmak için çok uygundur.

Function Get_tag ($ Tag, $ XML) ($ Tag \u003d Preg_quote ($ Tag); preg_match_all ("(" (<".$tag."[^>]*>(.*?). ")", $ XML, $ maçlar, preg_pattern_order); $ Maçlar iade; )

XTML / XML etiketlerini belirli bir özellik değeri ile arayın

Bu özellik, istenen özelliğe sorabilmeniz dışında, öncekine çok benzer. Örneğin, kolayca bulabilirsiniz.

.

Fonksiyon get_tag ($ attr, $ value, $ xml, $ tag \u003d null) (if (is_null ($ Tag)) $ Tag \u003d "\\ w +"; else $ tag \u003d preg_quote ($ etiket); $ attr \u003d preg_quote ( $ Attr); $ value \u003d preg_quote ($ değeri); $ tag_regex \u003d "/<(".$tag.")[^>] * $ Attr \\ s * \u003d \\ s * "." (["\\"]) $ Değeri \\\\ 2 [^\u003e] *\u003e (. *?)<\/\\1>/ "preg_match_all ($ tag_regex, $ xml, $ maçlar, preg_pattern_order); $ maçlar iade;)

Onaltılık çiçek değerleri için ara

Bir Web Geliştirici için başka bir kullanışlı araç! Onaltılık renk değerini bulmanızı / kontrol etmenizi sağlar.

$ string \u003d "# 555555"; Eğer (preg_match ("/ ^ # (? :(? :( 3)) (1,2)) $ / i", $ string)) (yankı "Örnek 6 Başarılı.";)

Arama başlığı makaleleri

Bu kod snippet, etiketlerin içinde olan metni bulur ve görüntüleyecektir. , HTML sayfasında.

$ Fp \u003d fopen ("http://www.catswhocode.com/blog", "r"); Süre (! Feof ($ fp)) ($ sayfa. \u003d FGETS ($ fp, 4096);) $ titre \u003d eregi (" (.*)", $ Sayfa, $ regs); echo $ regs; FClose ($ fp);

Apache günlükleri ayrıştırma

Çoğu site tanınmış Apache Web sunucusunda çalışıyor. Siteniz aralarında ise, Apacha'nın günlüklerini reddetmek için neden PHP ve düzenli ifadeleri kullanmıyorsunuz?

// logs: Apache Web Server // HTML dosyalarına yalnızca başarılı isabet eder. Sayfa görünümlerinin sayısını saymak için kullanışlıdır. "^ ((? # Client IP veya Etki Alanı Adı) S +) S + ((? # Temel Kimlik Doğrulama) S + S + S +) S + [(((? # Tarih ve Saat) [^]] +)] s + "(?: Get | Post | Kafa) (((? #File) / [^?"] +? "HTML?) ?? ((? # Parametreler) [^?"] +)? Http / + "s + (? # Status kodu) 200s + ((? # Bytes transfer) [- 0-9] +) S +" ((? # Yönlendirici) [^ "] *)" S + "(( ? # Kullanıcı aracısı) [^ "] *)" $ "// günlükler: Apache Web Server // 404 Yalnızca Hatalar" ^ ((? # Client IP veya Etki Alanı Adı) S +) S + ((? # Temel Kimlik Doğrulama) S + s + s +) s + [((? # Tarih ve saat) [^]] +)] s + "(?: Get | Post | kafa) (((? #File) [^?"] + ) ?? ((? # Parametreler) [^? "] +)? HTTP / + "S + (? # Durum Kodu) 404S + ((((? #) +) S +" ((? # Yönlendirici) [^ "] *)" S + "( (? # Kullanıcı aracısı) [^ "] *)" $ "

Çift tırnak "SMART" tırnaklarının değiştirilmesi

Eğer bir tipografi amatörseniz, akıllı alıntılarda sıradan çift tırnak çalınan bu düzenli ifadenin tadını çıkaracaksınız. Sayfa içeriğinde WordPress'de benzer bir düzenli ifade kullanılır.

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

Kapsamlı şifre kontrolü

Bu düzenli ifade, metin alanına en az altı karakterin, figürün, tire ve alt çizginin tanıtılmasını sağlayacaktır.

Metin alanı en az bir üst kayıt sembolü, bir alt kayıt ve bir rakam içermelidir.

"A (? \u003d [-_ a-za-z0-9] *?) (? \u003d [-_ a-za-z0-9] *?) (? \u003d [-_ A-ZA-Z0-9] *?) [-_a-za-z0-9] (6,) z "

WordPress: Kayıttan resim almak için düzenli bir ifade kullanarak

Birçoğunuzun WordPress kullanıcısıysanız, tüm resimleri makalenin metninden almanıza ve bunları getirmenize olanak sağlayan kod için yararlı olabilirsiniz.

Bu kodu kullanmak için, sadece konunuzun herhangi bir dosyasına ekleyin.

mESAJ İÇERİĞİ; $ szsearchpattern \u003d "~ ] * /\u003e ~ "; // Preg_Match_all'u ALS'yi IPICS'i almak için çalıştırın ve sonuçları $ Szsearchpattern, $ SzpostContent, $ apics, $ apics); // en az 1 resmimiz olup olmadığına bakın. ); ($ ISBEROFOPICS\u003e 0) (// Nower) (// Nower, görüntülerle yapmanız gereken her şeyi yapacaksınız ($ i \u003d 0; $ i)< $iNumberOfPics ; $i++) { echo $aPics[$i]; }; }; endwhile; endif; ?>

Otomatik İfadeler Nesil

WordPress'te kullanılan bir diğer özellik - Gülen karakterlerin gülen fotoğrafın üzerinde otomatik olarak değiştirmenizi sağlar.

$ texte \u003d "Smiley ile bir metin :-)"; Echo str_replace (":-)", " ", $ texte);