Php karakter oluşumu. PHP'deki strpos işlevi: bir alt dizginin konumunu belirleme. Dizeyi büyük ve küçük harfe dönüştür

  • 03.11.2019

Dizeler, web geliştirme sorunlarını çözerken sürekli çalışmanız gereken çok önemli bir veri türüdür. Bu makale PHP geliştiricinizin hayatını kolaylaştıracak çok faydalı 10 numarayı açıklamaktadır.

html etiketlerini dizeden otomatik olarak kaldır

Kullanıcı tarafından doldurulan formları kullanırken bazen tüm gereksiz etiketleri kaldırmanız gerekir. Bu görev, strip_tags() işlevi kullanılarak kolayca çözülebilir:

$ metin = strip_tags ($ girdi, "");

$ start ve $ end arasındaki metni alın

Böyle bir işlev geliştiricinin cephaneliğinde olmalıdır: orijinal dizeyi başlangıç ​​ve bitiş olarak alır ve $ start ve $ end arasında bulunan metni döndürür.

GetBetween ($ içerik, $ başlangıç, $ bitiş) ($ r = patlat ($ başlangıç, $ içerik); if (isset ($ r)) ($ r = patlat ($ bitiş, $ r); return $ r; ) dönüş "";)

Bir URL'yi bir köprüye dönüştürme

URL'yi bir WordPress blogunda bir yorum formuna koyarsanız, otomatik olarak bir köprüye dönüşür. Aynı işlevi web sitenize veya web uygulamanıza da uygulamak istiyorsanız aşağıdaki kodu kullanabilirsiniz:

$ url = "Jean-Baptiste Jung (http://www.webdevcat.com)"; $ url = preg_replace ("#http: // (+) #", "", $ url);

Twitter için metni 140 karakter dizisine bölme

Belki bunu biliyorsun heyecan 140 karaktere kadar olan mesajları kabul eder. Uygulamanızın popüler bir sosyal mesajlaşma sitesiyle etkileşim kurmasını sağlamayı planlıyorsanız, mesajları 140 karaktere indiren bir özelliğin sizin için yararlı olması muhtemeldir.

fonksiyon split_to_chunks ($ to, $ text) ($ total_length = (140 - strlen ($ to)); $ text_arr = patlat ("", $ metin); $ i = 0; $ mesaj = ""; foreach ($ text_arr $ word olarak) (if (strlen ($ mesaj [$ i]. $ word. "")<= $total_length){ if ($text_arr == $word){ $message[$i] .= $word; } else { $message[$i] .= $word . " "; } } else { $i++; if ($text_arr == $word){ $message[$i] = $word; } else { $message[$i] = $word . " "; } } } return $message; }

URL'yi dizeden kaldırın

Birçok kişi, trafik almak veya geri bildirim sağlamak için blog yorumlarında URL'ler bırakır. Bu tür bağlantılar blogu kirletir ve çok fazla olması durumunda sahibi için hayal kırıklığına neden olabilir. Yani bir sonraki fonksiyon çok faydalı olacak!

$ string = preg_replace ("/ \ b (https? | ftp | dosya): \ / \ / [ [e-posta korumalı]# \ /%? = ~ _ | $!:,.;] * / i "," ", $ string);

Bir dizeyi bir sümüklü böcek haline dönüştürün

SEO uyumlu bir bilgi (kalıcı bağlantı için) oluşturmanız mı gerekiyor? Aşağıdaki işlev, parametre olarak bir dize alır ve SEO uyumlu bir bilgi döndürür. Basit ve etkili!

Fonksiyon bilgisi ($ str) ($ str = strtolower (trim ($ str)); $ str = preg_replace ("/ [^ a-z0-9 -] /", "-", $ str); $ str = preg_replace ("/ - + /", "-", $str); dönüş $str;)

Bir CSV dosyasını ayrıştırma

CSV (Coma ile ayrılmış değerler) dosyaları, verileri depolamanın ve aktarmanın kolay bir yoludur ve bu tür dosyaları PHP'de ayrıştırmak son derece kolaydır. Bana inanmıyor musun? Aşağıdaki kod, bir CSV dosyasının işlenmesini gösterir:

$ fh = fopen ("contacts.csv", "r"); while ($ satırı = fgetcsv ($ fh, 1000, ",")) (echo "İletişim: ($ satırı)";)

Başka bir dizede bir dize arayın

Dize başka bir dizgede bulunuyorsa ve onu bulmanız gerekiyorsa, sorun basitçe çözülür:

İşlev ($ str, $ içerik, $ yok sayma = doğru) (if ($ yok sayma) ($ str = strtolower ($ str); $ içerik = strtolower ($ içerik);) strpos ($ içerik, $ str)? doğru yanlış;)

Dizenin belirli bir desenle başladığını kontrol etme

Java gibi bazı programlama dillerinde, bir dizenin belirli bir kalıpla başlayıp başlamadığını kontrol etmenizi sağlayan startWith yöntemi/işlevi bulunur. Ne yazık ki PHP'nin bu kadar basit bir yerleşik işlevi yoktur.
Yine de, bunu kendimiz yapabiliriz ve dahası, çok basit:

İşlev String_Begins_With ($ iğne, $ samanlık) (dönüş (substr ($ samanlık, 0, strlen ($ iğne)) == $ iğne);)

Vurgulamak dizeden e-posta

Spam gönderenlerin e-posta adreslerinizi nasıl aldığını hiç merak ettiniz mi? Basit. Bir web sayfası alırlar (örneğin bir forumdan) ve e-posta adreslerini çıkarmak için html kodunu ayrıştırırlar. Aşağıdaki kod, parametre olarak bir dize alır ve içerdiği tüm e-postaları yazdırır. Lütfen bu kodu spam için kullanmayın!

işlev Extract_emails ($ str) (// Bir dizeden tüm e-postaları çıkaran normal ifade: $ regexp = "/()+\@(()+\.)+((2,4))+/i"; preg_match_all ($ regexp, $ str, $ m); return isset ($ m)? $ m: dizi ();) $ test_string = "Test dizesi ... [e-posta korumalı] Diğer formatları kontrol etme: [e-posta korumalı]; bilgi çubuğu Başka bir kontrol: [e-posta korumalı] test6example.org [e-posta korumalı] [e-posta korumalı]örnek.org [e-posta korumalı]! foo! .org foobar "; print_r (extract_emails ($ test_string));

1.1K

PHP strpos işlevi, belirli bir dizede bir alt dize bulmak için kullanılır. Belirtilen alt dizenin ilk oluşumunun sayısal değerini döndürür.

strpos kullanmak için sözdizimi

PHP strpos işlevi aşağıdaki gibi kullanılır:

$ pozisyon = strpos ($ verilen_string, $ search_string);

Not: strpos işleviyle arama yaparken büyük/küçük harf duyarlıdır. Bu nedenle, “Test” ve “test” anahtar kelimelerinin aranması farklı sonuçlar verecektir.

Konum sayımı 1'den değil 0'dan başlar.

Örnek olarak demo sürümlerini kullanarak, belirli bir alt diziyi ve kullanıcı tarafından girilen bir değeri bulmak için bu işlevin kullanımını göstereceğim.

strpos işlevini kullanmanın basit bir örneği

PHP'nin strpos işlevinin nasıl çalıştığını göstermek için arama değerlerini kullandığım aşağıdaki örneğe göz atın:


Çevrimiçi demoyu ve kodu görüntüleyin

PHP kodu:

"; echo" Verilen alt dizin şurada bulundu: $ position ";)?>

strpos PHP örneği:

Dize arama terimini içerir: 'strpos'! Verilen alt dize şurada bulundu: 10

Kullanıcı tarafından girilen bir terimi bulmak için strpos kullanımına bir örnek

Bu yöntem, belirli senaryolarda yararlı olabilir. Örneğin, belirli kelimelerin bir forma girilmesine izin verilmediğinde.

Ayrıca, arama için kullanıcı tarafından belirtilen kelimenin orijinal dizide içerip içermediğini kontrol edebilirsiniz. Buna dayanarak, belirli sonuçları bir yanıt şeklinde görüntüleyebilirsiniz.

Bu demoda, kullanıcı metin kutusuna bir terim girebilir. Düğmeye tıklandıktan sonra, orijinal dizenin bir alt dize içerip içermediğini kontrol etmek için strpos işlevi çalıştırılır. İlgili mesaj ekranda görüntülenecektir:


Demo için aşağıdaki kaynak satırını kullandım:

$ source_string = "Bu demoda, strpos kullanarak string'in arama terimi içerip içermediğini kontrol etmek için kullanıcı tarafından girilen bir arama terimi kullanıyorum!";

İşlevin false döndürüp döndürmediğini görmek için farklı harfler deneyin veya sözcükleri arayın. Alternatif olarak, farkı görmek için terimleri büyük veya küçük harflerle yazmayı deneyin.

Bunun için aşağıdaki PHP strpos utf 8 örneği kullanıldı:

"; if ($ pozisyon === false) (echo" Kaynak dize şunları içermiyor: "$ search_term"! ";) else (echo" Dize arama terimini içeriyor: "$ search_term"!
"; echo" Verilen alt dize şurada bulundu: $ position ";) echo"

"; } ?>

Örnek olarak strpos PHP işaretlemesini de görebilirsiniz:

Tam sürüm demo sayfasının kaynak kodunda görülebilir.

Ayrıca, sitenizde bir arama motoru oluşturmak için bir veritabanını kaynak olarak kullanabilirsiniz.

Stripos işleviyle büyük/küçük harfe duyarsız arama

Belirtildiği gibi, PHP'nin strpos işlevi büyük/küçük harf duyarlıdır. Dizeleri büyük/küçük harfe duyarsız bir şekilde aramak için PHP stripos işlevini kullanın.

Sözdizimi strpos ile hemen hemen aynıdır:

$ pozisyon = şeritler ($ verilen_string, $ search_string);

Şimdi size stripoların nasıl çalıştığını göstereceğim.

Stripos işlevinin kullanıldığı örnek

Bu demoda, arama kaynağı şu dizedir:

$ source_string = "Bu, stringleri aramak için kullanılan bir stripos Tutorial'dır. Verilen bir stringin bir arama stringi içerip içermediğini söyler!";

Arama terimi: $ search_term = "öğretici";

Her satır beslemesinden önce HTML satır sonu kodu ekler

  • number_format - Bir sayıyı ayrı gruplarla biçimlendirir
  • ord - Karakterin ASCII kodunu döndürür
  • parse_str - Bir dizeyi değişkenlere ayrıştırır
  • print - Bir dize yazdırır
  • baskı
  • quoted_printable_decode - Alıntılanan yazdırılabilir kodlanmış bir dizenin kodunu çözer
  • Quotemeta - Özel karakterlerden kaçar
  • rtrim - Satır sonundaki boşlukları kaldırır
  • sha1 - Dizenin SHA1 karmasını döndürür
  • sha1_file - Dosyanın SHA1 karmasını döndürür
  • benzer_metin - İki dizenin benzerliğini hesaplar
  • soundex - Bir dizgenin soundex anahtarını döndürür
  • sprintf
  • sscanf - Bir dizeyi belirli bir biçime göre ayrıştırır
  • strcasecmp - Büyük/küçük harfe duyarsız dize karşılaştırması, ikili kasa
  • strcmp - İkili güvenli dize karşılaştırması
  • strcoll - Geçerli yerel ayara göre dizeleri karşılaştır
  • strcspn - Maskeyle eşleşmeyen satırın başındaki parçanın uzunluğunu döndürür
  • stripcslashes - addcslashes () tarafından üretilen karakter kaçmasını kaldırır
  • stripos - Bir alt dizenin ilk oluşumunun büyük/küçük harfe duyarlı olmayan konumunu döndürür
  • stripslashes - Çıkan şerit çizgilerini () kaldırır
  • strip_tags - Bir dizgeden HTML ve PHP etiketlerini çıkarır
  • stristr - strstr'ye benzer, ancak büyük/küçük harfe duyarlı değildir
  • strlen - Bir dizgenin uzunluğunu döndürür
  • strnatcasecmp - Bir algoritma kullanarak büyük/küçük harfe duyarsız dize karşılaştırması
  • strnatcmp - "doğal sıralama" algoritmasını kullanarak dizelerin karşılaştırılması
  • strncasecmp
  • strncmp - İkili veriler için güvenli, dizelerin ilk n karakterinin büyük/küçük harf duyarlı olmayan karşılaştırması
  • strpos - Bir dizede bir alt dizenin ilk oluşumunu bulur
  • strrchr
  • strrev - Dizeyi ters çevir
  • strripos - Bir alt dizenin son oluşumunun konumunu döndürür, büyük/küçük harfe duyarlı değildir
  • strrpos - Bir karakterin bir dizgedeki son örneğini bulur
  • strspn - Maskeyle eşleşen satırın başlangıcındaki parçanın uzunluğunu döndürür
  • strstr - Bir alt dizenin ilk oluşumunu bulur
  • strtok - Bir dizeyi böler
  • strtolower - Dizeyi küçük harfe çevir
  • strtoupper - Bir dizeyi büyük harfe dönüştürür
  • strtr - Verilen karakterleri dönüştürür
  • str_ireplace - str_replace() öğesinin büyük/küçük harfe duyarlı olmayan sürümü.
  • str_pad - Bir dizeyi belirli bir uzunlukta başka bir dizeyle doldurma
  • str_repeat - Yinelenen bir dize döndürür
  • str_replace - Arama dizesini yeni bir dizeyle değiştirir
  • str_rot13 - Bir dizgede ROT13 dönüşümü gerçekleştirir
  • str_shuffle - Bir dizgedeki karakterleri karıştır
  • str_split - Bir dizeyi diziye dönüştürür
  • str_word_count - Bir dizgede bulunan kelimeler hakkında bilgi verir
  • substr - İşlev, bir dizgenin bir kısmını döndürür
  • substr_count - Bir dizede bir alt dizenin oluşum sayısını sayar
  • substr_replace - Bir dizgenin bir kısmını değiştirir
  • trim - Bir dizenin başındaki ve sonundaki boşlukları kaldırır
  • ucfirst - Bir dizenin ilk karakterini büyük harfe dönüştürür
  • ucwords - Bir dizedeki her kelimenin ilk karakterini büyük harfe dönüştürür
  • vprintf - Biçimlendirilmiş bir dize yazdırır
  • vsprintf - Biçimlendirilmiş bir dize döndürür
  • wordwrap - Satır sonu karakterini kullanarak belirli sayıda karakter için satır sonu gerçekleştirir
  • Dizelere uygulanan karşılaştırma operatörlerinin özellikleri.

    $ bir = 1; // Bir numara. $ sıfır = 0; // Sayıyı sıfıra ayarlayın. if ($ one == "") echo 1; // Açıkça eşit değil - 1 çıktısı vermez if ($ zero == "") echo 2; //* Dikkat! Beklentilerin aksine, 2 yazdırır! if ("" == $ sıfır) echo 3; // * Bu da işe yaramaz - yazdırır! .. if ("$ zero" == "") echo 4; // Doğru. if (strval ($ sıfır) == "") echo 5; // Bu da doğrudur - 5 çıktısı vermez. if ($ zero === "") echo 6; // En iyi yol, ancak PHP 3'te geçerli değil.

    kesmek ()

    Chop () işlevi, sondaki boşluktan ve yeni satırlar kaldırıldıktan sonra bir dize döndürür. Chop() işlevinin sözdizimi şöyledir:

    dize doğrama (dize dize)

    Aşağıdaki örnekte, chop () işlevi fazla yeni satırları kaldırır:

    $ başlık = "İçindekiler \ n \ n"; $ başlık = doğrama ($ başlık); // $ başlık = "İçindekiler"

    str_pad ()

    str_pad () işlevi, bir dizeyi belirtilen karakterlerle belirli bir uzunluğa hizalar ve biçimlendirilmiş bir dize döndürür. str_pad () işlevinin sözdizimi şöyledir:

    string str_pad (string string, int padding_length [, string padding [, int padding_type]])

    İsteğe bağlı dolgu parametresi belirtilmemişse, dize boşluklarla doldurulur. Aksi takdirde, dize belirtilen karakterlerle doldurulur. Varsayılan olarak, satır sağ dolguludur; ancak, dizeyi belirtilen yönde dolduracak olan padding_type parametresinde STR_PAD_RIGHT, STR_PAD_LEFT veya STR_PAD_BOTH iletebilirsiniz. Örnek, varsayılan parametrelerle str_pad () işleviyle bir dize doldurmayı gösterir:

    $ yemek = "salata"; print str_pad ($ food, 5): // "salad" dizesini yazdırır Aşağıdaki örnek, str_pad () işlevine isteğe bağlı parametreler kullanır: $ header =" İçindekiler "; print str_pad ($ header, 5," = + = + = " , STR_PAD_BOTH); // Tarayıcı, = + = + = İçindekiler = + = + = " dizesini görüntüler

    kırpmak ()

    trim () işlevi, dizenin her iki ucundaki boşlukları kaldırır ve elde edilen dizeyi döndürür. trim () işlevinin sözdizimi şöyledir:

    dize trimi (dize ülkesi]

    \ n, \ r, \ t, \ v ve \ 0 özel karakterleri de boşluklardan çıkarılır.

    sınır ()

    lrim () işlevi, dizenin sol kenarındaki tüm boşlukları ve özel karakterleri kaldırır ve elde edilen dizeyi döndürür. ltrim () işlevinin sözdizimi şöyledir:

    string ltrim (string string)

    İşlev, trim () ile aynı özel karakterleri kaldırır.

    strlen ()

    Bir dizenin uzunluğunu belirleme

    Bir dizenin karakter cinsinden uzunluğu strlen () işlevi kullanılarak belirlenebilir. strlen() işlevinin sözdizimi şöyledir:

    int strlen (dize dizesi)

    Aşağıdaki örnek, strlen () işleviyle bir dizenin uzunluğunun nasıl belirleneceğini gösterir:

    $ string = "merhaba"; $ uzunluk = strlen ($ dizgi); // $ uzunluk = 5

    İki diziyi karşılaştırma

    İki dizeyi karşılaştırmak, herhangi bir dilde en önemli dize işlemlerinden biridir. Bu görevi gerçekleştirmenin birkaç farklı yolu olmasına rağmen, PHP'nin dört dize karşılaştırma işlevi vardır:

    strcmp ()

    strcmp () işlevi, iki dizeyi büyük/küçük harfe duyarlı bir şekilde karşılaştırır. strcmp () işlevinin sözdizimi int strcmp'dir (string string1, string string2)

    Karşılaştırma tamamlandıktan sonra strcmp (), olası üç değerden birini döndürür:

    • 0 satır1 ve satır2 aynıysa;
    • < 0, если строка1 меньше, чем строка2;
    • > 0, satır2 satır1'den küçükse.

    $ sthng1 = "tereyağı"; $ string2 = "tereyağı"; if ((strcmp ($ string1. $ string2)) == 0): print "Dizeler eşdeğerdir!"; endif; // if komutu TRUE değerini döndürür

    strcasecmp ()

    strcasecmp () işlevi, bir istisna dışında strcmp () işleviyle tamamen aynı şekilde çalışır - karşılaştırma büyük/küçük harfe duyarlı değildir. strcasecmp() işlevinin sözdizimi şöyledir:

    int strcasecmp (dize satırı1, dize satırı2)

    Aşağıdaki kod parçası, iki özdeş dizeyi karşılaştırır:

    $ string1 = "tereyağı"; $ string2 = "Tereyağı"; if ((strcmp ($ string1, $ string2)) == 0): print "Dizeler eşdeğerdir!"; endif; // if komutu TRUE değerini döndürür

    strspn ()

    strspn () işlevi, dize2'de bulunan karakterleri içeren dize1'in ilk bölümünün uzunluğunu döndürür. strspn() işlevinin sözdizimi şöyledir:

    int strspn (dize dizgi1, dizgi dizgi2)

    Aşağıdaki kod parçası, bir parolayı doğrulamak için strspn () işlevinin nasıl kullanıldığını gösterir:

    $ şifre = "12345"; if (strspn ($ parola, "1234567890")! = strlen ($ parola)): print "Parola yalnızca sayılardan oluşamaz!"; son:

    strcspn ()

    strcspn () işlevi, dize2'de bulunmayan karakterleri içeren dize1'in ilk bölümünün uzunluğunu döndürür. strcspn() işlevinin sözdizimi şöyledir:

    int strcspn (dize dizgi1, dizgi dizgi2)

    Aşağıdaki kod parçası, bir parolayı doğrulamak için strcspn () işlevini kullanır:

    $ şifre = "12345"; if (strcspn ($ parola, "1234567890") == 0): print "Parola yalnızca sayılardan oluşamaz!"; endif;

    Düzenli ifadeler kullanmadan dize verilerini işleme

    Büyük miktarda bilgiyi işlerken, düzenli ifade işlevleri programın yürütülmesini önemli ölçüde yavaşlatır. Bu işlevler yalnızca, düzenli ifadelerin gerçekten gerekli olduğu nispeten karmaşık dizeleri işlerken kullanılmalıdır. Metin analizi nispeten basit kurallara göre yapılırsa, işlemeyi önemli ölçüde hızlandıran standart PHP işlevlerini kullanabilirsiniz. Bu özelliklerin tümü aşağıda açıklanmıştır.

    strtok ()

    strtok () işlevi, ikinci parametre tarafından belirtilen sınırlayıcılara dayalı olarak dizeyi belirteçlere böler. strtok() işlevinin sözdizimi şöyledir:

    string strtok (string string, string sınırlayıcılar)

    strtok () işlevinin bir tuhaflığı vardır: dizeyi tamamen bölmek için işlev art arda birkaç kez çağrılmalıdır. Bir sonraki çağrıda işlev, dizeden sonraki belirteci çıkarır. Bu durumda, dize parametresi yalnızca bir kez ayarlanır - işlev, dize tamamen belirteçlere ayrıştırılana veya yeni bir dize parametresi ayarlanana kadar dizedeki geçerli konumu izler. Aşağıdaki örnek, bir dizeyi birden çok sınırlayıcıya bölmeyi gösterir:

    $ info = "WJ Gi1more: [e-posta korumalı]| Columbus, Ohio "; // Sınırlayıcılar - iki nokta üst üste (:), boru (|) ve virgül (.) $ Belirteçler =": ​​|, "; $ belirteçlenmiş = strtok ($ bilgi, $ belirteç); // Diziyi yazdır elementler $ tokenized while ($ tokenized): echo "Element = $ tokenized
    "; // Not: sonraki strtok çağrılarında // ilk argüman iletilmez $ tokenized = strtok ($ jetonlar); endwhile; Sonuç: Element = WJGilmore Element = [e-posta korumalı] Eleman = Columbus Elemanı = Ohio

    parse_str ()

    parse_str() işlevi, bir satırdaki çiftleri ayıklar ve geçerli kapsamdaki değişkenlere değerler atar. parse_str() işlevinin sözdizimi şöyledir:

    void parse_str (dize dizesi)

    Parse_str (), özellikle HTML form verilerini veya diğer genişletilmiş bilgileri içeren URL'leri işlerken kullanışlıdır. Aşağıdaki örnek, bir URL üzerinden iletilen bilgileri ayrıştırır. Bir dize, bir köprüde derlenmiş veya bir HTML formuna yazılmış, sayfalar arasında veri aktarmanın standart yoludur:

    $ url = "fname = wj & lname = gilmore & zip = 43210"; parse_str ($ url); // parse_str () yürütüldükten sonra aşağıdaki değişkenler kullanılabilir: // $ fname = "wj": // $ lname = "gilmore"; // $zip = "43210"

    Bu işlev URL'lerle çalışmak üzere tasarlandığından ve işareti (&) karakterini yok sayar.

    patlatmak ()

    Patlama () işlevi, dizeyi öğelere böler ve bu öğeleri bir dizi olarak döndürür. patlat () işlevinin sözdizimi şöyledir:

    dizi patlatma (dize sınırlayıcı, dize dize [, int eşik])

    Ayırıcının her bir örneği için bölme gerçekleşir ve alınan parça sayısı, isteğe bağlı eşik parametresi ile sınırlandırılabilir.

    Bir dizeyi patlatma () ile bölmek aşağıdaki örnekte gösterilmiştir:

    $ info = "wilson | beyzbol | kızılderililer"; $ kullanıcı = patlat ("|", $ bilgi); // $ kullanıcı = "wilson"; // $ kullanıcı = "beyzbol"; // $ kullanıcı = "Hintliler";

    patlat () işlevi, yukarıda açıklanan POSIX split () normal ifade işleviyle hemen hemen aynıdır. Temel fark, parametrelerde normal ifadelerin iletilmesine yalnızca split() çağrılırken izin verilmesidir.

    patlamak ()

    Patlama () bir dizeyi dizi öğelerine bölerse, karşılığı olan implode (), diziyi bir dizede birleştirir. implode () işlevinin sözdizimi şöyledir:

    string implode (dize ayırıcı, dizi parçaları)

    Bir diziden bir dizi oluşturmak aşağıdaki örnekte gösterilmiştir:

    $ ohio_cities = dizi ("Columbus", "Youngstown", "Cleveland", "Cincinnati"); $ city_string = implode ("l", $ ohio_cities); // $ city_string = "Columbus | Youngstown | Cleveland | Cincinnati";

    Implode () bir takma ada sahiptir, join () işlevi.

    şeritler ()

    strpos () işlevi, belirtilen alt dizenin ilk örneğini bir dizede bulur. strpos() işlevinin sözdizimi şöyledir:

    int strpos (dize dizesi, dize alt dizesi [, int ofset])

    İsteğe bağlı ofset parametresi, aramanın başlaması gereken konumu belirtir. Alt dize bulunamazsa, strpos () YANLIŞ (0) döndürür.

    Aşağıdaki örnek, bir günlük dosyasındaki bir tarihin ilk oluşumunun konumunu belirler:

    $ log = "206.169.23.11:/www/:2000-08-10 206.169.23.11:/www/logs/:2000-02-04 206.169.23.11:/www/img/:1999-01-31"; // 1999 ilk kez dergide hangi pozisyonda görünüyor? $ konum = strpos ($ günlük, "1999"); // $ pos = 95. çünkü ilk örnek "1999" // $ log değişkeninde bulunan satırın 95. konumunda

    strrpos ()

    strrpos () işlevi, dizede belirtilen karakterin son örneğini bulur. strrpos() işlevinin sözdizimi şöyledir:

    int strpos (dize dizesi, karakter karakteri)

    Yetenekler açısından, bu işlev, tüm dize için değil, yalnızca tek bir karakter için arama yapmanıza izin verdiği için, karşılığı olan strpos () işlevinden daha düşüktür. İkinci parametrede strrpos () öğesine bir dize iletilirse, aramada yalnızca ilk karakteri kullanılır.

    str_replace ()

    str_replace () işlevi, belirli bir alt dizenin tüm oluşumları için bir dize arar ve bunları yeni bir alt dizeyle değiştirir. str_replace () işlevinin sözdizimi şöyledir:

    string str_replace (dize alt dizesi, dize değiştirme, dize dizesi)

    Bu bölümün ilerleyen kısımlarında açıklanan substr_replace () işlevi, bir dizenin yalnızca belirli bir bölümünü değiştirmenize olanak tanır. Aşağıda, bir dizgede genel değiştirmeler gerçekleştirmek için str_replace () işlevinin nasıl kullanıldığı gösterilmektedir.

    Alt dize dizede hiçbir zaman oluşmazsa, orijinal dize değişmez:

    $favori_food = "En sevdiğim yiyecekler dondurma ve tavuk kanadı"; $ favori_yemek = str_replace ("tavuk_kanatları", "pizza", $ favori_yemek); // $favori_food = "En sevdiğim yiyecekler dondurma ve pizza"

    strstr ()

    strstr () işlevi, belirli bir alt dizenin ilk oluşumunda başlayan bir dize bölümünü döndürür. strstr() işlevinin sözdizimi şöyledir:

    string strstr (dize dizesi, dize alt dizesi)

    Aşağıdaki örnek, bir URL'den bir alan adı çıkarmak için strstr () işlevini kullanır:

    $ url = "http://www.apress.com"; $ etki alanı - strstr ($ url, "."); // $ alan = ".apress.com"

    alt dizi ()

    substr () işlevi, bir dizenin belirli bir başlangıç ​​konumunda başlayan ve belirli bir uzunluğa sahip bölümünü döndürür. substr() işlevinin sözdizimi şöyledir:

    string substr (string string, int start [, int uzunluk])

    İsteğe bağlı parametre uzunluğu belirtilmezse, alt dizenin belirtilen başlangıç ​​konumundan başlayıp dizenin sonuna kadar devam ettiği varsayılır. Bu özelliği kullanırken dikkate alınması gereken dört şey vardır:

    • start parametresi pozitifse, döndürülen alt dize, verilen sayı ile dizenin konumunda başlar;
    • start parametresi negatifse, döndürülen alt dizi konumunda başlar (dizi uzunluğu - başlangıç);
    • uzunluk pozitifse, başlangıç ​​konumundan başlangıç ​​+ uzunluk'a kadar olan tüm karakterler döndürülen alt dizeye dahil edilir. Son değer dizenin uzunluğunu aşarsa, dizenin sonuna kadar olan karakterler döndürülür;
    • uzunluk negatifse, döndürülen alt dize, dizenin sonundan belirtilen mesafede biter.

    start parametresinin, dizenin ilk karakterinden olan uzaklığı belirttiğini unutmayın; bu nedenle, döndürülen dize aslında numaralandırılmış (start + 1) karakterden başlar.

    Aşağıdaki örnek, substr () işleviyle bir dizenin bir bölümünün seçimini gösterir:

    $ araba = "1944 Ford"; Smodel = substr ($ araba, 6); // Smodel = "Ford"

    Pozitif parametre uzunluğuna sahip örnek:

    $ araba = "1944 Ford"; $ model = substr ($ araba, 0, 4); // $ model = "1944" Negatif uzunluk parametreli örnek: $ araba = "1944 Ford"; $ model = substr ($ araba, 2, -5); // $ model = "44"

    substr_count ()

    substr_count () işlevi, belirli bir dizede bir alt dizenin oluşum sayısını döndürür. substr_count () işlevinin sözdizimi şöyledir: int substr_count (dize dizesi, dize alt dizesi) Aşağıdaki örnekte, substr_count () işlevi ain alt dizesinin oluşum sayısını sayar: $ tng_twist = "Yağmur esas olarak ovalara düşer Ispanya'nın"; $ sayı = substr_count ($ tng_twist, "ain"); // $ sayı = 4

    substr_replace ()

    substr_replace () işlevi, bir dizenin belirli bir konumda başlayan kısmını değiştirir. İsteğe bağlı uzunluk parametresi belirtilirse, belirtilen uzunluktaki parça değiştirilir; aksi takdirde, değiştirme, değiştirme dizisinin tüm uzunluğu boyunca gerçekleştirilir. substr_replace () işlevinin sözdizimi şöyledir:

    string substr_replace (string string, string değiştirme, int start [, int uzunluk])

    Başlangıç ​​ve uzunluk parametreleri belirli kurallara göre ayarlanır:

    • start parametresi pozitif ise, değiştirme verilen konumdan başlar;
    • start parametresi negatifse, değiştirme konumunda başlar (dize uzunluğu -başlangıç);
    • uzunluk parametresi pozitifse, verilen uzunluğun parçası değiştirilir;
    • uzunluk negatifse, değiştirme konumunda biter (dize uzunluğu - uzunluk).

    substr_replace () ile basit metin değişimi aşağıdaki örnekte gösterilmiştir:

    $ favs = "" s favori bağlantıları "; $ name =" Alessia "; // Parametreler" 0, 0 "değiştirilen parçanın // başladığı ve dizenin ilk konumunda bittiği anlamına gelir. $ favs - substr_replace ($ favoriler, $ isim , 0, 0); $ favorileri yazdır:

    Sonuç:

    Alessia'nın favori linkleri

    Dizeleri ve dosyaları HTML biçimine veya tam tersine dönüştürün

    Bir dizgiyi veya tüm dosyayı bir web tarayıcısında görüntülenmeye uygun bir biçime dönüştürmek (veya tam tersi) ilk bakışta göründüğünden daha kolaydır. PHP'nin bunun için özel işlevleri vardır.

    Metni HTML'ye dönüştürme

    Düz metni hızlı bir şekilde web tarayıcı formatına dönüştürmek çok yaygın bir iştir. Bu bölümde açıklanan işlevler, onu çözmenize yardımcı olacaktır.

    nl2br ()

    nl2br () işlevi, tüm yeni satır karakterlerini (\ n) eşdeğer HTML yapılarıyla değiştirir.

    nl2br() işlevinin sözdizimi şöyledir:

    string nl2br (dize dizisi)

    Yeni satırlar hem görünür (yani, açıkça satıra dahil edilmiş) hem de görünmez (örneğin, düzenleyiciye girilmiş) olabilir. Aşağıdaki örnek, \ n'yi satır sonlarıyla değiştirerek bir metin dizesini HTML biçimine dönüştürür:

    // Editörde görüntülenen metin dizisi. $ text_recipe = "Parti Sosu tarifi: 1 kutu haşlanmış domates 3 yemek kaşığı taze limon suyu Karıştırın, sunucu soğuk."; // Yeni satır karakterlerini şuna çevir
    $ htinl_recipe = nl2br ($ text_recipe) $ html_recipe'in sonraki çıktısı tarayıcıya aşağıdaki HTML metnini gönderir: Parti Sosu tarifi:
    1 kutu haşlanmış domates
    3 yemek kaşığı taze limon suyu
    Birlikte karıştırın, sunucu soğuk.

    htmlentities ()

    htmlentities () işlevi, karakterleri eşdeğer HTML yapılarına dönüştürür. htmlentities işlevinin sözdizimi şöyledir:

    string htmlentities (string string)

    Aşağıdaki örnek, tarayıcıda görüntülenmesi için gerekli dize karakterlerinin değiştirilmesini gerçekleştirir:

    $ user_input = "Cafe Francaise başlıklı yemek kitabı" maliyetleri

    htmlentities () işlevi şu anda yalnızca ISO-8559-1 (ISO-Latin-1) karakterleri için çalışır. Ayrıca, boşlukları beklediğiniz gibi dönüştürmez.

    htmlözel karakterler ()

    htmlspecialchars () işlevi, HTML bağlamında özel anlamı olan bazı karakterleri eşdeğer HTML yapılarıyla değiştirir. htmlspecialchars() işlevinin sözdizimi şöyledir:

    string htmlspecialchars (string string)

    html özel karakter () işlevi şu anda aşağıdaki karakterleri dönüştürür: &, &'ye dönüştürür; "", "'ye dönüştürür; >'ye dönüştürür.

    Özellikle bu özellik, kullanıcıların etkileşimli web uygulamalarında (elektronik forumlar gibi) HTML işaretlemesi girmesini önlemeye yardımcı olur. HTML işaretlemesindeki hatalar, tüm sayfanın hatalı oluşturulmasına neden olabilir. Ancak, bu soruna daha etkili bir çözüm var - strip_tags () işlevini kullanarak etiketleri dizeden tamamen kaldırmak.

    Aşağıdaki örnek, potansiyel olarak tehlikeli karakterlerin htmlspeclalchars () işleviyle kaldırılmasını gösterir:

    $ user_input = "Sadece alamıyorum" PHP'nin ve o muhteşem yemek tariflerinin! "; $ conv_input = htmlspecialchars ($ user_input); // $ conv_input =" Sadece yapabilirim "t<> PHP & amp; o muhteşem yemek tarifleri!"

    htmlspecialchars(), nl2br() ile birlikte kullanılıyorsa, ikincisi htmlspecialchars()'dan sonra çağrılmalıdır. Aksi takdirde yapılar
    nl2br() çağrılarak oluşturulan, görünür karakterlere dönüştürülür.

    get_html_translation_table ()

    get_html_translation_table () işlevi, metni HTML eşdeğerlerine dönüştürmek için uygun bir yol sağlar. get_htrril_translation_table () işlevinin söz dizimi şöyledir:

    string get_html_translation_table (int tablosu)

    get_html_translation_table() işlevi, htmlspecialchars () ve htmlentities () standart işlevlerinde kullanılan iki çeviri tablosundan (tablo parametresi tarafından tanımlanır) birini döndürür. Dönüş değeri, metni HTML'ye dönüştürmek için başka bir standart işlev olan strtr () ile birlikte kullanılabilir.

    table parametresi iki değerden birini alır:

    • HTML_ENTITIES;
    • HTML_SPECIALCHARS.

    Aşağıdaki örnek, metni HTML'ye dönüştürürken get_html_translation_table () işlevini kullanır:

    $ string = "İtalya'da La makarna e il piatto piu amato"; $ translate = get_html_translation_table (HTML_ENTITIES); print strtr ($ string, $ tercüme); // Özel karakterler HTML yapılarına dönüştürülür // ve tarayıcıda doğru şekilde oluşturulur.

    Bu arada, array_flip() işlevi, metni ters yönde HTML'ye dönüştürmenize ve orijinal metni geri yüklemenize olanak tanır. Önceki örnekte strtr () sonucunu yazdırmak yerine, onu $ çevrilmiş dize değişkenine atadığımızı varsayalım.

    Aşağıdaki örnekte, orijinal metin array_flip () işlevi tarafından geri yüklenir:

    $ tercüme = dizi_flip ($ tercüme); $ translate_string - "İtalya'da La makarna é il piatto piú amato"; $ orijinal_dizge = strtr ($ çevrilmiş_dize, $ tercüme); // $ orijinal_string = "İtalya'da La makarna e il piatto piu amato";

    strtr ()

    strtr () işlevi bir dizeyi çevirir, yani kaynak dizedeki tüm karakterleri hedef dizedeki karşılık gelen karakterlerle değiştirir. strtr() işlevinin sözdizimi şöyledir:

    string strtr (dize dizesi, dize kaynağı, dize hedefi)

    Kaynak ve hedef dizelerin uzunlukları farklıysa, uzun dize kısa dizeye sığacak şekilde kısaltılır.

    İki parametreli strtr() çağırmak için alternatif bir sözdizimi vardır; bu durumda, ikinci parametre, anahtarları ikame edilmiş alt dizelere ve değerleri ikame edilmiş alt dizelere karşılık gelen bir ilişkisel dizi içerir. Aşağıdaki örnek, HTML etiketlerini XML benzeri yapılarla değiştirir:

    " => "

    ", "" => "

    "); $dizi ="

    PHP Destekli Haberlerde Bugün

    "; strtr yazdır ($ dize, $ kaynak); // Dize yazdır" PHP Destekli Haberlerde Bugün" ?>

    HTML'yi Düz Metne Dönüştürme

    Bazen bir HTML dosyasını düz metne dönüştürmek gerekli hale gelir. Aşağıda açıklanan işlevler bu görevde size yardımcı olacaktır.

    strip_tags ()

    strip_tags () işlevi, bir dizeden tüm HTML ve PHP etiketlerini çıkarır ve içinde yalnızca metin bırakır. strip_tags() işlevinin sözdizimi şöyledir:

    string strip_tags (string string [, string allow_ters])

    İsteğe bağlı allow_tags parametresi, silme işlemi sırasında hangi etiketlerin atlanması gerektiğini belirtmenize olanak tanır.

    Aşağıda, strip_tags () işlevini kullanarak bir dizeden tüm HTML etiketlerini çıkarmanın bir örneği verilmiştir:

    $ user_input = "Ben sadece Aşk PHP ve gurme yemek tarifleri! "; $ stripped_input = strip_tags ($ user_input); // $ stripped_input =" Sadece PHP'yi ve gurme tarifleri seviyorum! ";

    Aşağıdaki örnek, etiketlerin tümünü değil, yalnızca bazılarını kaldırır:

    $ girdi = "Ben Aşk ile yemek yemek!! "; $ strip_input = strip_tags ($ user_input," "); // $ strip_input =" Seviyorum yemek yemek!!";

    Etiketlerin metinden kaldırılması da fgetss() işleviyle yapılır.

    get_meta_tags()

    get_meta_tags() işlevi doğrudan metin dönüştürme ile ilgili olmasa da değinilmesi gereken çok kullanışlı bir işlevdir. get_meta_tags() işlevinin sözdizimi şöyledir:

    dizi get_meta_tags (dize dosya adı / URL [, int include_path])

    get_meta_tags() işlevi, HTML dosyasında META etiketleri aramak için tasarlanmıştır.

    META etiketleri, öncelikle arama motorları tarafından kullanılan bir sayfa hakkında bilgi içerir. Bu etiketler bir çift etiketin içindedir .... Aşağıdaki pasaj META etiketlerinin kullanımını gösterir (Liste 8.2'de kullanılacağı için buna example.html diyelim): PHP Tarifler get_meta_tags () işlevi, belge başlığında META ile başlayan etiketleri arar ve etiket adlarını ve bunların adlarını saklar. bir ilişkisel dizideki içerikler. Liste 8.2, bu işlevin example.html dosyasına uygulanmasını gösterir. Liste 8.2. get_meta_tags () işlevini kullanarak META etiketlerini HTML dosyasından çıkarın

    $ meta_tags = get_meta_tags ("example.html"): // $ meta_tags değişkeni aşağıdaki bilgileri içeren bir dizi içerir: // $ meta_tags ["keywords"] = "PHP, kod, tarifler, web" // $ meta_tags [ "açıklama" ] = "PHP Bilgisi" // $ meta_tags ["yazar"] = "KDG";

    İlginç bir detay: META etiketlerinin verileri yalnızca sunucuda bulunan dosyalardan değil, diğer URL'lerden de çıkarılabilir.

    Dizeyi büyük ve küçük harfe dönüştür

    PHP'nin bir dizgenin büyük/küçük harf durumunu değiştirmek için dört işlevi vardır:

    strtolower ()

    strtolower () işlevi, bir dizedeki tüm alfabetik karakterleri küçük harfe dönüştürür. strtolower() işlevinin sözdizimi şöyledir:

    string strtolower (string string)

    Alfabetik olmayan karakterler işlev tarafından değiştirilmez. Bir dizgiyi strtolower() işleviyle küçük harfe dönüştürmek aşağıdaki örnekte gösterilmiştir:

    $ cümle = "PİŞİRME ve PROGRAMLAMA PHP benim İKİ favorimdir!"; $ cümle = strtolower ($ cümle); // Fonksiyonu çağırdıktan sonra, $ cümlesi // "php'yi pişirmek ve programlamak benim en sevdiğim iki şeydir!"

    strtoupper ()

    Dizeler yalnızca küçük harfe değil, büyük harfe de dönüştürülebilir. Dönüştürme, aşağıdaki sözdizimine sahip olan strtoupper () işlevi tarafından gerçekleştirilir:

    string strtoupper (string string)

    Alfabetik olmayan karakterler işlev tarafından değiştirilmez. Bir dizgiyi strtoupper() işleviyle büyük harfe dönüştürmek aşağıdaki örnekte gösterilmiştir:

    $ cümle = "PHP'yi pişirmek ve programlamak benim en sevdiğim iki şey!"; $ cümle = strtoupper ($ cümle); // Fonksiyonu çağırdıktan sonra, $ cümlesi // "PHP YAPMAK VE PROGRAMLAMAK İKİ FAVORİMİDİR!" satırını içerir.

    ucfirst ()

    ucfirst () işlevi, alfabetik bir karakter olması koşuluyla, bir dizenin ilk karakterini büyük harfe dönüştürür. ucfirst() işlevinin sözdizimi şöyledir:

    string ucfirst (string string)

    Alfabetik olmayan karakterler işlev tarafından değiştirilmez. Bir dizenin ilk karakterinin ucfirst () işleviyle dönüştürülmesi aşağıdaki örnekte gösterilmiştir:

    & cümle = "PHP'yi pişirmek ve programlamak benim en sevdiğim iki şey!"; $ cümle = ucfirst ($ cümle); // Fonksiyonu çağırdıktan sonra $ cümlesi // "PHP'yi pişirmek ve programlamak benim iki favorim!"

    iki kelime ()

    ucwords () işlevi, bir dizedeki her kelimenin ilk harfini büyük harfe dönüştürür. ucwords() işlevinin sözdizimi şöyledir:

    string ucwords (string string ")

    Alfabetik olmayan karakterler işlev tarafından değiştirilmez. Bir "kelime", dizenin geri kalanından boşluklarla ayrılmış bir karakter dizisi olarak tanımlanır. Aşağıdaki örnek, kelimelerin ilk karakterlerinin ucwords () işlevini kullanarak dönüştürülmesini gösterir:

    $ cümle = "PHP'yi pişirmek ve programlamak benim iki favorim!"; $ cümle = ucwords ($ cümle); // Fonksiyon çağrısından sonra $ cümlesi // "Aşçılık ve Programlama PHP Benim İki Favorimdir!" satırını içerir.

    strrchr ()

    strrchr ("string", "o") - Bir alt dizenin son tekrarını bulur

    Alt dize bulunamazsa YANLIŞ döndürür.

    strchr()'den farklı olarak, arama dizesi birden fazla karakter içeriyorsa, yalnızca ilk karakter kullanılır.

    İkinci parametre bir dize değilse, bir tamsayıya dönüştürülür ve bir karakter kodu olarak kabul edilir.

    // $ PATH dizininden son dizini al $ dir = substr (strrchr ($ PATH, ":"), 1); // son satır beslemesinden sonraki her şeyi al $ text = "Satır 1 \ nSatır 2 \ nSatır 3"; $ last = substr (strrchr ($ metin, 10), 1);

    vurgu_dizesi ()

    Highlight_string - bir dizenin sözdizimi vurgulaması.

    karışık vurgu_dizesi (string str [, bool dönüş])

    Highlight_string () işlevi, PHP'nin satır içi sözdizimi vurgulamasında tanımlanan renkleri kullanarak str'nin sözdizimi renkli sürümünü çıkarır.

    İkinci dönüş parametresi DOĞRU ise, vurgu_dizesi (), renklendirilmiş kod sürümünü yazdırmak yerine bir dize olarak döndürür. İkinci parametre DOĞRU değilse, vurgu_dizesi () başarı durumunda DOĞRU, başarısızlık durumunda YANLIŞ döndürür.

    Not: 1. Dönüş parametresi PHP 4.2.0'dan beri kullanıma sunulmuştur. Bundan önce, varsayılan olarak çalıştı, yani. YANLIŞ.
    2. İşlev Highlight_String (), PHP kodunu etiketlerle ayırt eder. show_source ()- eşanlamlı sözcük vurgu_dosyası ()... Varsayılan vurgu rengini değiştirmek için aşağıdaki PHP yönergelerini kullanın:

    Highlight.bg #FFFFFF Highlight.comment # FF8000 Highlight.default # 0000BB Highlight.html # 000000 Highlight.keyword # 007700 Highlight.string # DD0000 in .htaccess: php_flag Highlight.bg PHP'de #FFFFFF: if (@ini_get ("highlight" .bg ") ==" ") ...

    ekler ()

    - Bir dizedeki özel karakterlerden kaçar

    Örneğin, bu dizenin bir veritabanı sorgusunda daha sonra kullanılması için her özel karakterden önce bir ters eğik çizginin (\) eklendiği bir terim döndürür.

    Tek tırnak ("), çift tırnak ("), ters eğik çizgi (\) ve NUL (NULL bayt) öncelenir.

    $ str = "Adınız O mu" reilly? "; // çıktılar: Adınız O \" reilly mi? eko lashes ($ str);

    şeritler

    - Addslashes () işlevi tarafından üretilen karakter çıkışını kaldırır Ters eğik çizgi çıkışını kaldırır. (\ "dönüştürür" vb.). Çift ters eğik çizgi (\\) tek ters eğik çizgiye (\) dönüştürülür.

    sözcük kaydırma ()

    Satır sonu karakterini kullanarak belirli sayıda karakter için satır sonu gerçekleştirir // Wordwrap () kullanma. function alıntı ($ ourText, $ maxlen = 60, $ prefix = ">") ($ st = wordwrap ($ ourText, $ maxlen-strlen ($ önek), "\ n"); $ st = $ prefix.str_replace ( "\ n", "\ n $ prefix", $ st); return $ st;) echo cite ("Tasarladığım ilk Matrix oldukça doğaldı, bir sanat eseriydi - kusursuz, yüce. Her insanın doğasında var olan kusurluluğun bir sonucu olarak, onun sonunun kaçınılmazlığını şimdi anlıyorum.Böylece, doğanızın değişen tuhaflıklarını daha doğru bir şekilde yansıtmak için onu tarihinize dayanarak yeniden tasarladım. başarısızlıktan yine hüsrana uğradı.", 20);

    > Tasarlanan ilk Matrix I> oldukça> doğal> mükemmeldi, bir> sanat eseriydi -> kusursuz, yüce. > Bir zafer> yalnızca> anıtsal> başarısızlığına eşit. Sonunun>kaçınılmazlığı>,> her> insanoğlunun doğasında bulunan> kusurluluğun> bir sonucu olarak> bana şimdi> görünür. Bu nedenle,>> tarihinize> dayanarak> yeniden tasarladım> doğanızın değişen> tuhaflıklarını> daha doğru bir şekilde yansıtmak için. > Ancak, yine>> başarısızlıkla> hüsrana uğradım.


    Sonraki oku: PHP'de nesne programlama
    .

    PHP, diğer dizelerdeki dizeleri aramak için çeşitli yollar sunar. Olağan işlevler vardır. Normal ifadeler kullanmak mümkündür. Geliştirici, sözdizimi kurallarını gözlemlerken kendi bilgi arama yöntemini geliştirebilir.

    Dizelerin aranması, istenen karakterin veya dizinin doğru yerde varlığının doğrulanması gerçeğiyle sınırlı değildir. Bir nesne bir dizi olabilir - bu sadece bir diziden daha kapsamlı bir bilgi kavramıdır. Arama, özellikle tespit anına acil bir karar eşlik ettiğinde etkilidir ve ek işlem gerektirmez.

    Temel arama işlevi

    Arama, strpos () işlevidir. Bunun sonucu ya bir boole değeridir ya da dizide (birinci parametre) istenenin (ikinci parametre) oluşum konumundan (üçüncü parametre) konumudur. Son parametre belirtilmezse, arama dizenin sıfır konumundan yapılır.

    Bu örnekte, bir dizgede PHP araması örnek olarak tek bir karakter kullanılarak gösterilmiştir. Sembol yerine bir dize kullanabilirsiniz. PHP, programcıyı satır boyutlarında kısıtlamaz, ancak makul sınırlar esastır.

    Dizelerdeki dizeleri, ilk veya son oluşumdan itibaren büyük/küçük harfe duyarlı bir şekilde arayabilir ve normal ifadeler kullanabilirsiniz. Diğer tüm durumlarda olduğu gibi, betiğin bulunduğu sayfanın kodlanması esastır.

    Bazı durumlarda, sadece strpos () yerine iconv_strpos () değişkenini kullanmak mantıklıdır. Çoğu durumda, bir PHP dizgisinde bir alt dizgi aramak, kusursuz bir doğruluk sağlayacaktır: sayfanın ve dizgenin kodlamasını aynı kodlamada tutmak yeterlidir.

    Standart yaklaşımın özellikleri

    Bir PHP dizgisinde bir alt dizgi aramasının sonucu yoksa: arama sonucu yoktur ve sonuç bir boole değeri olacaktır. Ancak, istenen alt dizi sıfır konumundan başlıyorsa, sonucun karşılaştırma ve analizi işlemlerinde bu özellikle vurgulanmalıdır. Sonuç 0 olduğunda, bu false sonucundan çok da farklı değildir.

    JavaScript'ten farklı olarak PHP, dizeler konusunda daha tutucudur ve bugüne kadar dizeler dizelerdir. Onlarla çalışmak satır içi işlevlerdir: basit strpos düzeyinden düzenli ifadeler kullanan karmaşık işlevlere.

    Şunları yapmak için aramanız gerekir:

    • algoritmanın yönüne karar vermek;
    • aradığınızı başka bir şeyle değiştirin;
    • olayı kontrol edin;
    • istatistik sayacını artırın, vb.

    Bu, algoritmanın olağan mantığıdır, JavaScript daha da ileri gitti ve "dizeleri" nesne olarak tanıdı. Ancak uygulamada tek başına tanınma yeterli değildir. "Dize" kavramından soyutlarsak ve onunla gerçek bir nesne anlarsak, "bir dizede bir dize arama" sorusu PHP, gerçek bir yöntem bağlamında formüle etmeye izin verir, örneğin bir elma olgunlaşabilir, sadece kırmızı olduğunda değil.

    Bir elmanın tanımında "kırmızı" kelimesinin klasik olarak aranması, meyvenin olgunluğu hakkında güvenilir bir cevabın garantisi değildir. Elma bir dizge ile değil de bir nesne ile temsil ediliyorsa, PHP dizgede bir dizge aramasını strpos olarak değil, gerçek bir nesnenin yöntemi olarak gerçekleştirecektir. Ancak, yöntem gövdesinde strpos işlevinin kullanılacağının garantisi yoktur.

    Özel çözümlerde standart fonksiyonlar

    Alışılmış bilgi işlemenin (bir kişi tarafından) karakteristik bir özelliği: hedef veya karar olduğunda neyin önemli olduğu, konum. Diğer tüm durumlarda, neyin mevcut olduğu önemli değildir, belirtilmesi ve daha sonraki eylemlerin temeli olması önemlidir.

    Arama, trim, str_replace ve diğer işlevlerde dolaylı olarak gerçekleştirilir. Patlatma / içe çarpmayı birlikte kullanırken ve dizileri manipüle ederken ilginç bir arama seçeneği mevcuttur.

    PHP'nin tüm işlevlerini kullanırsanız, bir dizgede arama yapmak, anlambilimi kolayca edinir, olağan sözdiziminin ötesine geçer ve gerçek anlam elde etmek için bir neden haline gelir. Anlamı manipüle etmek insanlara daha tanıdık, bir algoritma için daha güvenli ve dizeleri nesnelere dönüştürmek, makine kodlarından modern programlama dillerinin dünyasına geçmek gibidir.

    Bir dizgede bir karakterin ilk oluşumunu bulur.

    Sözdizimi:

    String strchr (string samanlık, string iğne)

    Bu işlev, strstr () işleviyle aynı şekilde çalışır.

    Dizede baştaki karakterlerin bulunmadığını belirler.
    Sözdizimi:

    Int strcspn (string str1, string str2)

    strspn () işlevi, tamamen str2'deki karakterler olmayan str1'in ilk bölümünün uzunluğunu döndürür.

    strpbrk ()

    Belirli bir kümeden (PHP5) herhangi bir karakter için bir dizede arama yapın

    Sözdizimi:

    Dize strpbrk (dize samanlık, dize char_list)

    strpbrk () samanlıkta char_list'teki karakterleri arar ve karakterin bulunduğu konumdan başlayarak dizeyi döndürür (veya karakter bulunamazsa FALSE). Char_list büyük/küçük harfe duyarlıdır.

    $ text = "Bu Basit Bir Metindir.";

    echo strpbrk ($ metin, "mi"); // "Basit bir metindir" sonucunu döndürür. "i" karakteri daha erken ortaya çıkar

    echo strpbrk ($ metin, "S"); // "Basit metin" döndürür. karakterler büyük/küçük harfe duyarlıdır
    ?>

    Bir dizede bir alt dizenin ilk oluşumunu bulur.
    Sözdizimi:

    String strstr (string samanlık, string iğne)

    strstr () işlevi, saman parametresi tarafından belirtilen dizenin, iğne parametresi tarafından belirtilen ilk kısımdan sonuna kadar olan kısmını döndürür.

    $ e-posta = " [e-posta korumalı]";
    $ etki alanı = strstr ($ e-posta, "@");
    // veya $ etki alanı = strstr ($ e-posta, ord ("@"))
    yankı $ etki alanı;
    // @ mail.ru'yu görüntüler

    Bir alt dizenin ilk oluşumunu bulma, büyük/küçük harfe duyarlı değil.
    Sözdizimi:

    String stristr (string samanlık, string iğne)

    stristr () işlevi, saman parametresi tarafından belirtilen dizenin, iğne parametresi tarafından belirtilen ilk kısımdan sonuna kadar olan kısmını döndürür.
    Başarısızlık durumunda false döndürür.
    Bu işlev büyük/küçük harfe duyarsızdır.
    iğne bir dize değilse, değer bir tamsayıya dönüştürülür ve istenen karakterin kodu olarak kullanılır.

    Bir alt dizenin son tekrarını bulun.
    Sözdizimi:

    String strrchr (string samanlık, string iğne)

    strrchr () işlevi, iğne parametresinde belirtilen son kısımdan sonuna kadar samanlık parametresi tarafından belirtilen dizenin bölümünü döndürür.
    Başarısızlık durumunda false döndürür.
    Bu işlev büyük/küçük harfe duyarlıdır.
    iğne bir dize değilse, değer bir tamsayıya dönüştürülür ve istenen karakterin kodu olarak kullanılır.

    // $ PATH içindeki son dizini al
    $ dir = substr (strrchr ($ YOL, ":"), 1);
    // ve burada son satır beslemesinden sonraki her şeyi alıyoruz $ text = "text 1nText2nText3";
    echo substr (strrchr ($ metin, 10), 1);

    Belirtilen dizede bir alt dizenin ilk oluşumunun konumunu bulur.
    Sözdizimi:

    Int strpos (dize nerede, ne dizesi [, int nereden])

    strpos () işlevi, dizedeki alt dizeyi bulmaya çalışır ve başarılı olursa, dizedeki bu alt dizenin konumunu (dizini) döndürür.
    Dizenin ilk karakterinin indeksi 0'dır. Dizenin başından değil de başka bir konumdan arama yapmak istiyorsanız, nereden isteğe bağlı parametresi belirtilebilir. Bu durumda, bu pozisyon nereden geçilmelidir. Alt dize bulunamazsa, işlev false döndürür.

    if (strpos ($ metin, "a") === false) echo "Bulunamadı!";
    // Kontrol et: üç eşittir işareti

    Belirtilen dizede bir alt dizenin ilk oluşumunun konumunu büyük/küçük harfe duyarlı olmadan bulur.
    Sözdizimi:

    Int stripos (dize nerede, ne dizesi [, int nereden])

    stripos () işlevi, dizedeki alt dizeyi bulmaya çalışır ve başarılı olursa, dizedeki bu alt dizenin konumunu (dizini) döndürür.
    strpos() işlevinden farklı olarak, bu işlev büyük/küçük harfe duyarlı değildir. Dizenin ilk karakteri 0 dizinine sahiptir.
    Satırın başından değil, başka bir konumdan arama yapmak istiyorsanız, nereden isteğe bağlı parametre belirtilebilir.
    Bu durumda, bu pozisyon nereden geçilmelidir. Alt dize bulunamazsa, işlev false döndürür.
    what parametresi bir dize değilse, bu durumda değeri bir tam sayıya dönüştürülür ve istenen karakterin kodu olarak kullanılır.

    $ mystring1 = "xyz";
    $ mystring2 = "ABC";

    $ konum1 = şeritler ($ mystring1, $ beni bul);
    $ pos2 = şeritler ($ mystring2, $ beni bul);

    // Elbette "a", "xyz" içinde yer almaz
    if ($ pos1 === yanlış) (
    echo "Dize" $ findme "" dizesinde bulunamadı" $ mystring1 "";
    }

    // === kullanıldığını unutmayın. == kullanmak başarısız olur
    // sonuç, "a" sıfır konumunda olduğundan if ($ pos2! == false) (
    echo "Bulundu" $ beni "içinde" $ mystring2 "$ pos2 konumunda";
    }
    ?>

    Not: Stripos () işlevi, verileri ikili biçimde bulmak için kullanılabilir.
    Destek: PHP 5

    Belirtilen dizede belirtilen parçanın bulunduğu son konumu bulur.
    Sözdizimi:

    Int strrpos (dize nerede, dize ne)

    Bu işlev nerede satırında sembolün neyle karşılaştığını (eğer ne ise) son konumu arar.
    birkaç karakterden oluşan bir dize, sonra yalnızca ilki algılanır, gerisi herhangi bir rol oynamaz).

    İstenen karakter dizedeki ilk karakterse veya hiç mevcut değilse, işlev 0 döndürür.

    Gerekli karakter bulunamazsa false döndürür.

    substr_count

    Bir dizedeki bir parçanın oluşum sayısını bulur.
    Sözdizimi:

    Int substr_count (dize nerede, dize ne)

    substr_count () işlevi, where dizesinde bulunan parçaların sayısını döndürür.

    Echo substr_count ("www.spravkaweb.ru", ".");
    // 3 yazdırır

    Dizede baştaki karakterlerin varlığını belirler.
    Sözdizimi:

    Int strspn (string str1, string str2)

    strspn () işlevi, tamamen str2'deki karakterlerden oluşan str1'in ilk bölümünün uzunluğunu döndürür.

    Echo strspn ("www.spravkaweb.ru", "abc");
    // 3 yazdırır