PHP: sətirlərlə işləmək. PHP sətir funksiyaları

Veb saytları statik və dinamik olaraq bölmək olar. İnternetdə gözəl vizit kartı hazırlamağa imkan verən HTML və CSS-i mənimsədikdən sonra çoxları PHP-də dinamik veb-saytı necə yaratmaq barədə düşünür. Eyni zamanda, maket dizayneri nəzərə almalıdır ki, indi o, veb proqramlaşdırmanı öyrənməyə başlayır: saytla işləmə prinsipləri fərqli olacaq. PHP-də yeni başlayanların qarşılaşdığı ilk problemlərdən biri sətirlərlə işləmək, onları oxumaq və emal etməkdir.

Qeyd etmək lazımdır ki, PHP-də çoxlu sayda metodlar var, ona görə də siz onları ən sadə manipulyasiyalarla öyrənməyə başlamalısınız, məsələn, sətir çıxarmaq, axtarış etmək, alt sətir almaq və ya əvəz etmək, hərfi dəyişdirmək və sətir uzunluğunu qaytarmaq. Bir çox funksiyalar kiril hərfləri ilə yaxşı işləmir. Buna görə də, bütün nümunələr aydınlıq üçün ingilis dilində yazılmışdır. Kiril sətirləri üçün eyni funksiyalardan istifadə olunur, lakin mb_ prefiksi ilə (məsələn, mb_strpos()). Analoqlardan istifadə etməzdən əvvəl php.ini uzantısı=php_mbstring.dll-də sətri şərhdən çıxarmaq lazımdır, sadəcə olaraq nöqtəli vergülü silmək lazımdır.

Sətirin yaradılması və çıxarılması

Biz tanınmış əks-səda dili konstruksiyasından istifadə edərək ekrana sətirin çıxışını təhlil edəcəyik. Proqramçı dərhal xətti çıxara bilər:

echo "Bu Yeni Xəttdir"

və ya əvvəlcə dəyişən yaradın və sonra onu ekrana çap edin:

$str = "Bu, Yeni Xəttdir";

Birində bir neçə sətir göstərmək lazımdırsa, onda birləşməyə müraciət edin:

əks-səda "Bu". "Yeni". "Xətt";

$str1 = "Bu";

$str2 = "Yeni";

$str3 = "String";

echo $str1 . $str2 . $str3;

Sonuncu halda, ekran görünəcək Bu NewLine. Echo çağırarkən dərhal boşluq əlavə edilə bilər:

echo $str1 . " " . $str2 . " " . $str3;

Bu halda, ekranda görünəcək: "Bu, Yeni Xəttdir." Birləşdirmə yalnız çıxış zamanı deyil, həm də sətir yaratarkən mümkündür:

$str1 = "Bu";

$str2 = "Yeni";

$str3 = "String";

$string = $str1 . " " . $str2 . " " . $str3;

echo $string;

Echo həm kiril, həm də kiril əlifbasını göstərir. Əgər dəyişənlərdən birində nömrə varsa, onda birləşmə zamanı bu nömrə müvafiq sətirə çevriləcək:

$sum = $i + $i; //indi $sum 4 rəqəmini ehtiva edir

echo $i . " + " . $i . " = " . $sum;

Ekranda görünəcək: "2 + 2 = 4".

Xidmət simvolları

Tutaq ki, sətir ($string = "Belə") ilə müəyyən edilir. Sonra nəzarət ardıcıllığından tamamilə təhlükəsiz istifadə edə bilərsiniz:

  • \n xətt yayımını həyata keçirir;
  • \r vaqonu qaytarır;
  • \" qoşa dırnaq işarələrindən qaçır:
    • echo "\"ikiqat\" dırnaqlarla sətir"; //Qoşa dırnaq ilə sətir
  • \$ dollardan qaçır;
  • \\ tərs xəttdən qaçır.

Daha bir çox ardıcıllıq var, onların hamısını rəsmi PHP sənədlərində tapmaq olar.

Alt sətirin ilk baş verməsinin yerini necə tapmaq olar

Deyək ki, sadə bir xəttimiz var:

Həm də adları olan iki sətirimiz var:

$name = "Yemelyan";

$anotherName = "Ketrin";

Birinci sətirdə bu iki adın olub-olmadığını bilməliyik. Bunun üçün strpos($str, $search) funksiyasından istifadə edin. Axtarılan alt sətirin mövqeyini qaytarır, $search, əgər həmin sətir orijinalda varsa, $str. Əks halda, funksiya yalançı məntiqi dəyəri qaytarır. Məsələn, strpos($string, $anotherName) false, strpos($string, $name) isə tam ədəd qaytaracaq. Kod belə olacaq (vəzifə ekranda görünəndə versiyanı yazacağıq):

$string = "Mənim adım Yemelyandır və mənim 27 yaşım var";

$name = "Yemelyan";

$anotherName = "Ketrin";

echo strpos($string, $otherName); // yalan göstərəcək

echo strpos($string, $name); //alt sətirin ilk baş verməsinin mövqeyini çap edəcək

Nəzərə alın ki, sətir nömrələnməsi sıfırdan başlayır, yəni bizim vəziyyətimizdə sonuncu sətirdə 11 rəqəmi göstərilir (boşluqlar da sayılır).

Alt sətirin və tələlərin son baş vermə mövqeyinin tapılması

Əgər strpos() funksiyası ilk hadisənin mövqeyini qaytarırsa, onun tərs funksiyası strrpos() alt sətirin sonuncu baş verməsini axtarır.

Başlanğıc nömrələmə ilə bağlı bəzi tələlər var. Bunu nəzərə almağa dəyər: PHP-də sətirlərlə işləmək müqayisələrdə məhdudiyyətlərlə çətinləşə bilər. Beləliklə, müqayisə operatorunu inkarla istifadə etməmək daha yaxşıdır: strpos($str, $search)!=false. PHP-nin istənilən versiyasında belə ekvivalentliyə malik nümunələr düzgün işləməyə bilər, çünki sətirlərin nömrələnməsi sıfırdan başlayır, məntiqi şərhdə isə 0 yanlışdır. Bu, strrpos() funksiyasına da aiddir.

Alt sətirin baş vermə sayını necə tapmaq olar

Çox vaxt sətirdə alt sətirin ilk və ya sonuncu baş verməsinin yerini deyil, onların ümumi sayını tapmaq lazımdır. Bunun üçün ən azı iki dəyişəni emal edən substr_count() funksiyasından istifadə edin: substr_count($str, $search). Tam ədəd qaytarır. Əgər axtarış sahəsini sətirlə azaltmaq lazımdırsa, onda funksiyaya daha iki dəyişən ötürülür: müvafiq olaraq sətirin əvvəli və sonu. Yəni, bu halda funksiya belə adlanır: substr_count($str, $search, $start, $end). Funksiya orijinal $str sətirinin $start-dan $end-ə qədər olan intervalda $search alt sətirini axtaracaq. Sətir tapılmazsa, funksiya sıfırı qaytaracaq.

PHP-də sətrin hərfini necə dəyişdirmək olar: nümunələr

Sətirləri müqayisə etmək üçün hərflərin dəyişdirilməsi tez-tez istifadə olunur və deyək ki, istifadəçi proqrama ali tanrının adını daxil etməlidir. İstifadəçinin cavabı müqayisə ediləcək “Bir” variantı var. Əgər daxil edilmiş mətn mövcud mətnlə uyğun gəlmirsə (məsələn, istifadəçi “bir” və ya “ONE” yazır), proqram doğru əvəzinə yalanı qaytaracaq. Bunun qarşısını almaq üçün hal dəyişdirmə funksiyasından istifadə olunur. Bu, PHP saytının teqləri olduqda tez-tez istifadə olunur: "şəxsi" sözünün yüzlərlə variantının ("Şəxsi", "şəxsi", "ŞƏXSİ" və s.) əvəzinə yalnız bir kiçik hərf işarəsi var.

strtolower() funksiyası hərfi kiçik hərflərə dəyişir. Tutaq ki, $catName = "Fluffy" xətti var. strtolower($catName) funksiyası "tüklü" sətri qaytaracaq. Siz strtoupper() funksiyasından istifadə edərək hərfi böyük hərflə dəyişə bilərsiniz.

PHP-də sətir uzunluğunu necə tapmaq olar: funksiyalarla işləmək

Çox vaxt bir simin uzunluğunu tapmaq lazımdır. Məsələn, PHP-də bu növ sətirlərlə işləmək dövrə yaradan zaman lazım ola bilər. Sətiri axtarmaq üçün rəqəmi - simvolların sayını qaytaran strlen() funksiyasından istifadə edin. Unutmamalıyıq ki, sonuncu simvolda strlen($str)-1 rəqəmi olacaq, çünki nömrələmə sıfırdan başlayır.

PHP-də alt sətirin alınması və dəyişdirilməsi: sətirlərlə işləmək

Alt sətir əldə etmək iki və ya üç arqument götürə bilən substr() funksiyası ilə həyata keçirilir: substr($str, $start, $end). Tutaq ki, bizdə $string = "Fluffy cat" var və biz ikinci simvoldan dördüncü simvola qədər alt sətri əldə etmək istəyirik. Nömrələmə sıfırdan başladığı üçün bu alt sətirlə dəyişən belə görünəcək: $newString = substr($string, 1, 4). $newString = substr($string, 1) daxil etsək, ikinci simvoldan sonuncuya (yəni "luffy") qədər alt sətir alacağıq. Bu kod strlen(): substr($string, 1, strlen($string)) istifadə edən tam sətir kodu ilə eynidir.

Alt sətri əvəz etmək üçün üç dəyişən qəbul edən str_replace() funksiyasından istifadə edin: str_replace($subStr, $newSub, $str). Bir çox funksiyalardan fərqli olaraq, str_replace() kiril simvolları ilə düzgün işləyir və prefikslə analoqu yoxdur. Misal:

$str = "Bu gün hava dəhşətlidir!";

$newStr = str_replace("dəhşətli", "gözəl", $str); //Bu gün gözəl hava!

Bir sətri nömrəyə çevirmək

Veb proqramlaşdırmanı öyrənən hər kəs gec-tez sətri rəqəmə çevirməli olur. Bunun üçün iki oxşar funksiyadan istifadə olunur: intval() və floatval(), hər biri bir $string dəyişənini alır. Onlar bir-birindən yalnız qaytarılan məlumat növünə görə fərqlənirlər: intval() tam ədədi, floatval() isə üzən nöqtə nömrəsini qaytarır.

Həm intval() həm də floatval() funksiyalarından istifadə etmək üçün sətir rəqəmlərlə başlamalıdır və bunlar rəqəmə çevriləcək. Əgər rəqəmlərin ardınca hər hansı hərflər dəsti gəlirsə, onlar sadəcə nəzərə alınmayacaq. Sətirin hərflərlə başlaması halında, funksiyadan istifadə sıfır qaytaracaq. İdeal olaraq, xətt yalnız rəqəmlərdən ibarət olmalıdır.

Ədədin sətirə çevrilməsi

Çox vaxt nömrələri sətirə çevirmək lazımdır. Yarım ədəd götürüb kvadratına çevirmək lazımdırsa, deyin (məsələn, bərabərliyin doğru olub olmadığını yoxlayın: 88 x 88 + 33 x 33 = 8833). Bu halda, strval() funksiyasından istifadə olunur, hansı ki, sətri rəqəmlə qaytarır. Bundan sonra, yeni sətirlə bütün digər hərəkətləri yerinə yetirə bilərsiniz: dəyişdirin, alt sətirin baş verməsini axtarın və digər funksiyalar. Lazım gələrsə, yuxarıda təsvir edilmiş metoddan istifadə edərək sətir yenidən nömrəyə çevrilə bilər.

Məqalə sətirlərlə əlaqəli bütün funksiyaların yalnız kiçik bir hissəsini araşdırdı. Bəzi təsvir olunmamış funksiyalar simvollarla işləyir, lakin çoxu spesifikliyə görə materiala daxil edilməyib. Bu xüsusiyyətlərlə tanış olmaq üçün siz ən son məlumatları əks etdirən rəsmi PHP sənədlərini oxumağa davam etməlisiniz.

Özünə hörmət edən istənilən veb proqramçı PHP dilini bilməlidir ki, bu dildən veb səhifələr yaratmaq olar. Bu dil C və C++ dillərinə əsaslanır və buna görə də bu dil üçün xarakterik olan bir çox konstruksiyaya malikdir. Məsələn, PHP-də sətrin uzunluğu C-də olduğu kimi eyni adlı funksiya ilə qaytarılır. Bu məqalədə sətirlərdən, eləcə də onlar üzərində yerinə yetirilə bilən əməliyyatlardan bəhs edilir.

Amma funksiyalardan danışmazdan əvvəl əsas tərifi verək. Sətir hər biri tam olaraq bir bayt yer tutan simvollar ardıcıllığıdır. Bu o deməkdir ki, PHP 256 simvolu dəstəkləyir. Bundan məntiqi olaraq belə nəticə çıxır ki, bu dildə Unicode üçün heç bir dəstək yoxdur - axı Unicode-da daha çox simvol var.

PHP-də sətirlərlə hansı əməliyyatlar var? Sətin uzunluğu, onların birləşdirilməsi (bağlanması), simvol kodunun qaytarılması və əksinə ən sadə nümunələrdir. Daha mürəkkəb olanlar var - alt sətir axtarışı, hashing, inversiya. Və etiketləri silmək, naxışa görə axtarış etmək, ayırıcıdan istifadə edərək alt sətirlərə bölmək kimi şeylər də var... Siz hər şeyi sadalaya bilməzsiniz! Buna görə də, biz onlardan ən ümumi və faydalı haqqında danışacağıq.

PHP-də ilk və ən çox istifadə edilən funksiya sətir uzunluğudur. O, strlen adlanır və parametr kimi tək simvol ardıcıllığını alır. Bu sadədir.

$bar=strlen($foo); // $bar üçə bərabərdir

PHP-də sətir uzunluğu sıfır ola bilər. Belə bir xətt boş adlanır.

Növbəti funksiya birləşmə və ya birləşmədir. Sadəcə olaraq, iki sətirdən birini düzəldir.

$foo = "Salam,";

$bar = "sülh!";

$baz=concat($foo, $bar);

echo $baz; // “Salam, dünya!” çap edəcək.

Ayrı-ayrı simvollarla işləmək üçün iki tərs funksiya da var. Ord - simvol kodunu qaytarır, chr - simvolu kodla müəyyən edir.

$bar=ord($foo); // $bar 113-dür

$baz=chr($bar); // $baz "q"-a bərabərdir

Daha bir maraqlı funksiyanı - tarixi qeyd etməmək mümkün deyil. PHP-də sətirlər vaxtı göstərmək üçün şablon kimi istifadə edilə bilər. Məsələn, “H:m:s” sətirini tarixə keçirsəniz və nəticəni göstərsəniz, ekranda iki nöqtə ilə ayrılmış cari server vaxtı görünəcək, məsələn, “11:08:34”.

İndi partlama funksiyasına baxaq. Göstərilən simvolun hər birinin sərhədi olduğunu nəzərə alaraq sətri elementlərə bölür. Bu olduqca mürəkkəb səslənir, amma əslində hər şey olduqca aydındır. Məsələn, “root|12:56:49|təkər” xətti var. Sonra belə yaza bilərsiniz:

$foo=explode(“root|12:56:49|təkər”, “|”);

Nəticədə, $foo massivi üç elementdən ibarət olacaq - "kök", "12:56:49", "təkər". Funksiyanı çağırarkən ayırıcı təyin etməsəniz, o, standart olaraq boşluq hesab olunacaq. Daha bir isteğe bağlı parametr var - ayrılmış alt sətirlərin maksimum sayı.

Aşağıdakı funksiya HTML teqlərini sətirdən silir. Buna strip_tags deyilir. Partlayış funksiyası kimi, onun əlavə ikinci parametri var - tərk edilməli olan etiketlərin siyahısı.

Sadə funksiyalar - birləşmə, alt sətir axtarışı, sətir uzunluğu - PHP kifayət qədər tez şərh edir. Lakin şablondan istifadə edərək axtarışın işlənməsi və ya etiketlərin silinməsi kifayət qədər uzun vaxt apara bilər. Buna görə də, proqramların həyata keçirilməsinin müəyyən vaxt tələb etdiyini nəzərə alaraq, bacarıqla tərtib edilməlidir. Normal skript maksimum 10 saniyə işləməlidir və bundan sonra o, veb-səhifənin heç olmasa bir hissəsini göstərməlidir, əks halda istifadəçi onu tərk edəcək. Lakin adətən veb proqramlar daha sürətli işləyir, çünki PHP kodu serverdə işləyir və brauzer PHP skriptinin çıxışını ehtiva edən skriptdən yaradılan səhifəni alır.

Hər sətir lentindən əvvəl HTML sətir kəsmə kodunu daxil edir

  • nömrə_formatı - Qrup ayrılması ilə nömrəni formatlayır
  • ord - Simvolun ASCII kodunu qaytarır
  • parse_str - Sətri dəyişənlərə təhlil edir
  • çap - sətri çap edir
  • çapf
  • quoted_printable_decode - sitat gətirilən çap üsulu ilə kodlanmış sətri deşifrə edir
  • quotemeta - Xüsusi simvollardan qaçır
  • rtrim - sətrin sonundakı boşluqları aradan qaldırır
  • sha1 - Sətirin SHA1 hashını qaytarır
  • sha1_file - Faylın SHA1 hashını qaytarır
  • oxşar_mətn - İki sətirin oxşarlıq dərəcəsini hesablayır
  • soundex - Sətir üçün soundex düyməsini qaytarır
  • sprintf
  • sscanf - Verilmiş formata uyğun olaraq sətri təhlil edir
  • strcasecmp - İkili təhlükəsiz olan hərflərə həssas olmayan sətir müqayisəsi
  • strcmp - İkili təhlükəsiz sətirlərin müqayisəsi
  • strcoll - Cari yerli dil əsasında sətirləri müqayisə edin
  • strcspn - sətrin əvvəlində maskaya uyğun gəlməyən hissənin uzunluğunu qaytarır
  • stripcslashes - addcslashes() funksiyasının yaratdığı simvol qaçışını aradan qaldırır
  • stripos - kiçik hərflərə həssas olmayan, alt sətirin ilk baş verdiyi mövqeyi qaytarır
  • stripslashes - addslashes() tərəfindən yaradılan simvol qaçışını aradan qaldırır
  • strip_tags - HTML və PHP teqlərini sətirdən silir
  • strstr - strstr funksiyasına bənzəyir, lakin hərfdən asılı deyil
  • strlen - sətrin uzunluğunu qaytarır
  • strrnatcasecmp - Alqoritmdən istifadə edərək hərflərə həssas olmayan sətirləri müqayisə edin
  • strrnatcmp - "təbii sifariş" alqoritmindən istifadə edərək sətirlərin müqayisəsi
  • strncasecmp
  • strncmp - sətirlərin ilk n simvolunun hərflərə həssas olmayan, binar təhlükəsiz müqayisəsi
  • strpos - Sətirdə alt sətirin ilk baş verməsini tapır
  • strhrchr
  • strrev - sətri tərsinə çevirir
  • strripos - kiçik hərflərə həssas olmayan, alt sətirin son baş verməsinin mövqeyini qaytarır
  • strrpos - Simvolun sətirdə sonuncu baş verməsini tapır
  • strspn - Maskaya uyğun gələn sətirin əvvəlindəki hissənin uzunluğunu qaytarır
  • strstr - Alt sətirin ilk baş verməsini tapır
  • strtok - sətri bölür
  • strtolower - sətri kiçik hərflərə çevirir
  • strtoupper - sətri böyük hərflərə çevirir
  • strtr - Verilmiş simvolları çevirir
  • str_ireplace - str_replace() funksiyasının hərflərə həssas olmayan variantı.
  • str_pad - Verilmiş uzunluğa başqa bir sətir ilə sətri yerləşdirir
  • str_repeat - Təkrarlanan sətri qaytarır
  • str_replace - Axtarış sətirini əvəzedici sətirlə əvəz edir
  • str_rot13 - Sətirdə ROT13 transformasiyasını həyata keçirir
  • str_shuffle - sətirdəki simvolları qarışdırır
  • str_split - sətri massiləyə çevirir
  • str_word_count - Sətirdəki sözlər haqqında məlumatı qaytarır
  • substr - Funksiya sətrin bir hissəsini qaytarır
  • substr_count - Sətirdə alt sətirin baş vermə sayını hesablayır
  • substr_replace - Sətirin bir hissəsini əvəz edir
  • trim - sətirin əvvəlindən və sonundan boşluqları aradan qaldırır
  • ucfirst - Sətirin ilk simvolunu böyük hərflərə çevirir
  • ucwords - Sətirdəki hər sözün ilk simvolunu böyük hərfə çevirir
  • vprintf - Formatlanmış sətri çap edir
  • vsprintf - Formatlanmış sətri qaytarır
  • wordwrap - Sətir kəsilməsi simvolundan istifadə edərək verilmiş sayda simvol üçün sətri bükür
  • Sətirlərə tətbiq edilən müqayisə operatorlarının xüsusiyyətləri.

    $bir = 1; // Nömrə bir. $sıfır = 0; // Sıfır rəqəmini təyin edin. əgər ($bir == "") əks-səda 1; // Aydındır ki, bərabər deyil - 1 çıxmır. if ($zero == "") echo 2; //* Diqqət! Gözləntilərin əksinə olaraq 2 çap edir! əgər ("" == $sıfır) echo 3; //* Və bu da kömək etməyəcək - çap edir!.. if ("$zero" == "") echo 4; // Düzdür. if (strval($zero) == "") echo 5; // Bu da düzgündür - çap etmir 5. if ($zero === "") echo 6; // Daha yaxşı yol, lakin PHP 3-də işləmir.

    doğramaq()

    Chop() funksiyası arxadakı boşluqları və yeni sətirləri sildikdən sonra sətri qaytarır. Chop() funksiyasının sintaksisi belədir:

    string chop (simli sim)

    Aşağıdakı misalda chop() funksiyası əlavə yeni sətirləri silir:

    $header = "Mündəricat\n\n"; $başlıq = doğramaq($başlıq); // $header = "Mündəricat"

    str_pad()

    str_pad() funksiyası verilmiş simvollarla müəyyən uzunluğa sətri yerləşdirir və formatlanmış sətri qaytarır. str_pad() funksiyasının sintaksisi:

    string str_pad (string string, int pad_length [, string pad [, int pad_type]])

    Əgər əlavə doldurma parametri göstərilməyibsə, sətir boşluqlarla doldurulur. Əks halda, sətir verilmiş simvollarla doldurulur. Varsayılan olaraq, xətt sağda doldurulur; lakin siz padding_type parametrini STR_PAD_RIGHT, STR_PAD_LEFT və ya STR_PAD_BOTH keçə bilərsiniz ki, bu da cərgəni göstərilən istiqamətdə dolduracaq. Nümunə standart parametrlərlə str_pad() funksiyası ilə sətir dolmasını nümayiş etdirir:

    $qida = "salat"; print str_pad ($food, 5): // "salad" sətirini çap edir Aşağıdakı nümunədə str_pad() funksiyasının əlavə parametrlərindən istifadə olunur: $header = "Mündəricat" str_pad çapı ($header, 5, "= +=+=" , STR_PAD_BOTH); // Brauzer =+=+= Mündəricat Cədvəli =+=+=" xəttini göstərir.

    trim()

    trim() funksiyası sətirin hər iki ucundakı bütün boşluqları silir və nəticədə yaranan sətri qaytarır. Trim() funksiyasının sintaksisi:

    simli trim (simli ölkə)

    \n, \r, \t, \v və \0 xüsusi simvolları da silinən boşluğa daxil edilir.

    ltrim()

    lrim() funksiyası sətrin sol kənarındakı bütün boşluqları və xüsusi simvolları silir və nəticədə yaranan sətri qaytarır. ltrim() funksiyasının sintaksisi:

    string ltrim (string string)

    Funksiya trim() funksiyası ilə eyni xüsusi simvolları silir.

    strlen()

    String Uzunluğunun Müəyyən edilməsi

    Simvollarla sətirin uzunluğunu strlen() funksiyasından istifadə etməklə təyin etmək olar. strlen() funksiyasının sintaksisi:

    int strlen (sətir sətri)

    Aşağıdakı nümunə strlen() funksiyasından istifadə edərək sətir uzunluğunun necə təyin olunacağını nümayiş etdirir:

    $string = "salam"; $uzunluq = strlen($string); // $uzunluq = 5

    İki sətirin müqayisəsi

    İki sətirin müqayisəsi istənilən dildə ən vacib sətir əməliyyatlarından biridir. Bu problem bir neçə fərqli yolla həll olunsa da, PHP-də dörd sətir müqayisə funksiyası var:

    strcmp()

    strcmp() funksiyası hərf hərfinə həssas şəkildə iki sətri müqayisə edir. strcmp() funksiyasının sintaksisi: int strcmp (string string1, string string2)

    Müqayisə başa çatdıqdan sonra strcmp() üç mümkün dəyərdən birini qaytarır:

    • 1 və 2-ci sətir eyni olarsa 0;
    • < 0, если строка1 меньше, чем строка2;
    • > 0, əgər sətir2 sətir1-dən kiçikdirsə.

    $sthng1 = "kərə yağı"; $string2 = "kərə yağı"; if ((strcmp($string1. $string2)) == 0) : print "Strlər ekvivalentdir!"; endif; // if əmri TRUE qaytarır

    strcasecmp()

    strcasecmp() funksiyası tam olaraq strcmp() funksiyası ilə eyni işləyir, bir istisna ilə - müqayisə zamanı simvolların vəziyyəti nəzərə alınmır. strcasecmp() funksiyasının sintaksisi:

    int strcasecmp (string string1, string string2)

    Aşağıdakı parça iki eyni sətri müqayisə edir:

    $string1 = "kərə yağı"; $string2 = "Kərə yağı"; if ((strcmp($string1, $string2)) == 0) : print "Strlər ekvivalentdir!"; endif; // if əmri TRUE qaytarır

    strspn()

    strspn() funksiyası sətir2-də mövcud olan simvolları ehtiva edən sətir1-in birinci seqmentinin uzunluğunu qaytarır. strspn() funksiyasının sintaksisi:

    int strspn (string string1, string string2)

    Aşağıdakı fraqment parolu yoxlamaq üçün strspn() funksiyasının necə istifadə edildiyini göstərir:

    $parol = "12345"; if (strspn($password, "1234567890") != strlen($password)) : print "Parol yalnız rəqəmlərdən ibarət ola bilməz!"; endif:

    strcspn()

    strcspn() funksiyası sətir2-də olmayan simvolları ehtiva edən sətir1-in birinci seqmentinin uzunluğunu qaytarır. strcspn() funksiyasının sintaksisi:

    int strcspn (string string1, string string2)

    Aşağıdakı fraqment parolu yoxlamaq üçün strcspn() funksiyasından istifadə edir:

    $parol = "12345"; if (strcspn($password, "1234567890") == 0) : print "Parol yalnız rəqəmlərdən ibarət ola bilməz!"; endif;

    Normal ifadələrdən istifadə etmədən sətir məlumatlarının işlənməsi

    Böyük həcmli məlumatların işlənməsi zamanı müntəzəm ifadə funksiyaları proqramın icrasını xeyli ləngidir. Bu funksiyalar yalnız müntəzəm ifadələrin həqiqətən zəruri olduğu nisbətən mürəkkəb sətirləri emal edərkən istifadə edilməlidir. Mətnin təhlili nisbətən sadə qaydalara əsasən aparılırsa, emal prosesini əhəmiyyətli dərəcədə sürətləndirən standart PHP funksiyalarından istifadə edə bilərsiniz. Bütün bu funksiyalar aşağıda təsvir edilmişdir.

    strtok()

    strtok() funksiyası ikinci parametrlə müəyyən edilmiş ayırıcılardan istifadə edərək sətri tokenlərə bölür. strtok() funksiyasının sintaksisi:

    string strtok (string string, string limiters)

    strtok() funksiyasının bir qəribə cəhəti var: sətri tam bölmək üçün funksiya bir neçə dəfə ardıcıl olaraq çağırılmalıdır. Növbəti dəfə funksiya çağırılanda o, sətirdən növbəti işarəni çıxarır. Bu halda, sətir parametri yalnız bir dəfə müəyyən edilir - funksiya sətirdəki cari vəziyyəti sətir tam olaraq tokenlərə təhlil edilənə və ya yeni sətir parametri təyin olunana qədər izləyir. Aşağıdakı misal çoxlu ayırıcılardan istifadə edərək sətirin bölünməsini nümayiş etdirir:

    $info = "WJ Gi1more: [email protected]| Columbus, Ohio"; // İki nöqtə (:), şaquli sətir (|) və vergül (.) ilə ayrılmışdır $tokens = ":|,"; $tokenized = strtok($info, $tokens); // Çap massivi elementlər $tokenized isə ($tokenized) : echo "Element = $tokenized
    "; // Nəzərə alın ki, strtok-a sonrakı zənglər // birinci arqumenti keçmir $tokenized = strtok($tokens); endwhile; Nəticə: Element = WJGilmore Element = [email protected] Element = Columbus Element = Ohio

    parse_str()

    parse_str() funksiyası sətirdəki cütləri təhlil edir və cari əhatə dairəsində dəyişənlərə dəyərlər təyin edir. Parse_str() funksiyasının sintaksisi:

    void parse_str (sətir sətri)

    parse_str() funksiyası HTML forma məlumatları və ya digər zəngin məlumatları ehtiva edən URL-ləri təhlil edərkən xüsusilə faydalıdır. Aşağıdakı nümunə URL vasitəsilə ötürülən məlumatları təhlil edir. Sətir, hiperlinkdə tərtib edilmiş və ya HTML formasına daxil edilmiş səhifələr arasında məlumat ötürməyin standart üsuludur:

    $url = "fname=wj&lname=gilmore&zip=43210"; parse_str($url); // parse_str() icra edildikdən sonra aşağıdakı dəyişənlər mövcuddur: // $fname = "wj": // $lname = "gilmore"; // $zip = "43210"

    Bu funksiya URL-lərlə işləmək üçün nəzərdə tutulduğundan, işarə (&) işarəsinə məhəl qoymur.

    partlatmaq()

    explode() funksiyası sətri elementlərə bölür və həmin elementləri massiv kimi qaytarır. Explode() funksiyasının sintaksisi:

    massiv partlaması (sətir ayırıcı, sətir sətri [, int həddi])

    Ayırıcının hər bir nümunəsində parçalanma baş verir və nəticədə fraqmentlərin sayı əlavə hədd parametri ilə məhdudlaşdırıla bilər.

    explode() funksiyası aşağıdakı misalda sətirin bölünməsini nümayiş etdirir:

    $info = "wilson | beysbol | Hindistanlılar"; $user = partlatmaq("|", $info); // $user = "wilson"; // $user = "beysbol"; // $user = "Hindistanlılar";

    Explode() funksiyası yuxarıda təsvir edilən POSIX müntəzəm ifadə funksiyası split() ilə demək olar ki, eynidir. Əsas fərq ondan ibarətdir ki, nizamlı ifadələrin parametrlər kimi ötürülməsinə yalnız split() çağırıldıqda icazə verilir.

    partlatmaq()

    explode() funksiyası sətri massiv elementlərinə bölürsə, onun qarşılığı olan implode() funksiyası massivi sətirdə birləşdirir. Implode() funksiyasının sintaksisi:

    string implode (sətir ayırıcı, massiv fraqmentləri)

    Massivdən sətir yaratmaq aşağıdakı misalda göstərilmişdir:

    $ohio_cities = massiv("Kolumb", "Yanqstaun", "Klivlend", "Cincinnati"); $city_string = implode("l", $ohio_cities); // $city_string = "Kolumb | Youngstown | Klivlend | Cincinnati";

    implode() ləqəbi var, join() funksiyası.

    strpos()

    strpos() funksiyası sətirdə verilmiş alt sətirin ilk nümunəsini tapır. strpos() funksiyasının sintaksisi:

    int strpos (sətir sətri, sətir alt sətir [, int ofset])

    Əlavə ofset parametri axtarışın başlamalı olduğu mövqeyi müəyyənləşdirir. Əgər alt sətir tapılmazsa, strpos() FALSE (0) qaytarır.

    Aşağıdakı misal log faylında tarixin ilk baş verməsinin yerini müəyyən edir:

    $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-cu il ilk dəfə jurnalda hansı mövqedə görünür? $pos = strpos($log, "1999"); // $pos = 95. çünki "1999"-un birinci instansiyası // $log dəyişəninin tərkibində olan xəttin 95-ci mövqeyindədir.

    strpos()

    strrpos() funksiyası sətirdə verilmiş simvolun son nümunəsini tapır. strrpos() funksiyasının sintaksisi:

    int strpos (sətir sətri, simvol simvolu)

    İmkanlar baxımından bu funksiya həmkarından - strpos() funksiyasından daha aşağıdır, çünki o, bütün sətir üçün deyil, yalnız bir simvolu axtarmağa imkan verir. Əgər sətir ikinci parametr kimi strrpos() funksiyasına ötürülürsə, axtarışda onun yalnız birinci simvolu istifadə olunacaq.

    str_replace()

    str_replace() funksiyası verilmiş alt sətirin bütün baş vermələri üçün sətirdə axtarış aparır və onları yeni alt sətirlə əvəz edir. str_replace() funksiyasının sintaksisi:

    string str_replace (sətir alt sətir, sətir dəyişdirmə, sətir sətir)

    Bu bölmədə daha sonra təsvir edilən substr_replace() funksiyası sətrin yalnız müəyyən hissəsini əvəz etməyə imkan verir. Aşağıda str_replace() funksiyasının sətirdə qlobal dəyişdirməni yerinə yetirmək üçün necə istifadə edildiyi göstərilir.

    Əgər alt sətir heç vaxt sətirdə görünmürsə, orijinal sətir dəyişməz qalır:

    $favorite_food = "Mənim sevimli yeməklərim dondurma və toyuq qanadlarıdır"; $favorite_food = str_replace("toyuq_qanadları", "pizza", $favohte_food); // $favorite_food = "Mənim sevimli yeməklərim dondurma və pizzadır"

    strstr()

    strstr() funksiyası verilmiş alt sətirin ilk baş verməsi ilə başlayan sətir hissəsini qaytarır. strstr() funksiyasının sintaksisi:

    string strstr (string string, string substring)

    Aşağıdakı nümunə URL-dən domen adını çıxarmaq üçün strstr() funksiyasından istifadə edir:

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

    substr()

    Substr() funksiyası verilmiş başlanğıc mövqedən başlayan və verilmiş uzunluğa malik olan sətir hissəsini qaytarır. Substr() funksiyasının sintaksisi:

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

    Əgər isteğe bağlı uzunluq parametri göstərilməyibsə, alt sətirin müəyyən edilmiş başlanğıc mövqeyindən başlaması və sətirin sonuna qədər davam etməsi nəzərdə tutulur. Bu funksiyadan istifadə edərkən nəzərə alınmalı dörd şey var:

    • başlanğıc parametri müsbət olarsa, qaytarılan alt sətir verilmiş nömrə ilə xəttin mövqeyindən başlayır;
    • başlanğıc parametri mənfi olarsa, qaytarılan alt sətir mövqedən başlayır (sətir uzunluğu - başlanğıc);
    • uzunluq müsbət olarsa, qaytarılan alt sətir başlanğıcdan başlanğıca+uzunluğa qədər bütün simvolları ehtiva edir. Əgər sonuncu qiymət sətirin uzunluğunu aşırsa, sətrin sonuna qədər olan simvollar qaytarılır;
    • uzunluq mənfi olarsa, qaytarılan alt sətir sətirin sonundan müəyyən edilmiş məsafədə bitir.

    Unutmayın ki, başlanğıc parametri xəttin birinci simvolundan ofseti təyin edir; ona görə də qaytarılmış sətir əslində simvol nömrəsindən başlayır (start + 1).

    Aşağıdakı nümunə substr() alt sətrini nümayiş etdirir:

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

    Müsbət uzunluq parametri ilə nümunə:

    $avtomobil = "1944 Ford"; $model = substr($car, 0, 4); // $model = "1944" Mənfi uzunluq parametri ilə nümunə: $car = "1944 Ford"; $model = substr($car, 2, -5); // $model = "44"

    substr_count()

    Substr_count() funksiyası verilmiş sətirdə alt sətirin baş vermə sayını qaytarır. substr_count() funksiyasının sintaksisi belədir: int substr_count (string string, string substring) Aşağıdakı misalda substr_count() funksiyası ain alt sətirinin baş vermə sayını hesablayır: $tng_twist = "Yağış əsasən düzənliklərə yağır. İspaniya"; $count = substr_count($tng_twist, "ain"); // $count = 4

    substr_replace()

    Substr_replace() funksiyası sətirin verilmiş mövqedən başlayan hissəsini əvəz edir. İsteğe bağlı uzunluq parametri göstərilibsə, göstərilən uzunluq fraqmenti dəyişdirilir; əks halda, dəyişdirmə dəyişdirmə siminin bütün uzunluğu boyunca həyata keçirilir. substr_replace() funksiyasının sintaksisi:

    string substr_replace (string string, string dəyişdirilməsi, int start [, int length])

    Başlanğıc və uzunluq parametrləri müəyyən qaydalara uyğun olaraq təyin olunur:

    • başlanğıc parametri müsbət olarsa, dəyişdirmə göstərilən mövqedən başlayır;
    • başlanğıc parametri mənfi olarsa, dəyişdirmə mövqedən başlayır (string uzunluğu -start);
    • uzunluq parametri müsbət olarsa, göstərilən uzunluğun bir parçası dəyişdirilir;
    • uzunluq mənfi olarsa, dəyişdirmə mövqedə başa çatır (sim uzunluğu - uzunluq).

    Substr_replace() funksiyasından istifadə edərək sadə mətnin dəyişdirilməsi aşağıdakı nümunədə nümayiş etdirilir:

    $favs = " "s favorite links"; $name = "Alessia"; // "0, 0" parametrləri o deməkdir ki, dəyişdiriləcək fraqment // başlayır və sətrin birinci mövqeyində bitir. $favs - substr_replace( $favs, $name , 0, 0);

    Nəticə:

    Alessia'nın sevimli bağlantıları

    Sətirlərin və faylların HTML formatına və əksinə çevrilməsi

    Sətiri və ya bütöv faylı veb-brauzerdə baxmaq üçün uyğun formata çevirmək (və ya əksinə) ilk baxışda göründüyündən daha asandır. PHP-nin bunun üçün xüsusi funksiyaları var.

    Mətnin HTML-ə çevrilməsi

    Düz mətni tez bir zamanda veb-brauzer formatına çevirmək çox adi bir işdir. Bu bölmədə təsvir olunan funksiyalar onu həll etməyə kömək edəcək.

    nl2br()

    nl2br() funksiyası bütün yeni sətir simvollarını (\n) ekvivalent HTML konstruksiyaları ilə əvəz edir.

    nl2br() funksiyasının sintaksisi:

    sətir nl2br (simli sətir)

    Yeni sətir simvolları ya görünən (yəni, sətirə açıq şəkildə daxil edilmiş) və ya görünməz (məsələn, redaktorda daxil edilmiş) ola bilər. Aşağıdakı nümunə \n simvollarını sətir fasilələri ilə əvəz etməklə mətn sətirini HTML formatına çevirir:

    // Redaktorda göstərilən mətn sətri. $text_recipe = "Şəfa sousu resepti: 1 konserv bişmiş pomidor 3 xörək qaşığı təzə limon suyu Qarışdırın, server soyuq."; // Yeni sətirləri çevirin
    $htinl_recipe = nl2br($text_recipe) $html_recipe-in ​​sonrakı çıxışı brauzerə aşağıdakı HTML mətnini qaytaracaq: Ziyafət sousu resepti:
    1 bişmiş pomidor
    3 xörək qaşığı təzə limon suyu
    Birlikdə qarışdırın, server soyuq.

    htmlentities()

    htmlentities() funksiyası simvolları ekvivalent HTML konstruksiyalarına çevirir. Htmlentities funksiyasının sintaksisi:

    string htmlentities (string string)

    Aşağıdakı nümunə brauzerə çıxış üçün sətir simvollarının lazımi əvəzlənməsini həyata keçirir:

    $user_input = "Cafe Francaise adlı yemək kitabı" xərclənir

    htmlentities() funksiyası hazırda yalnız ISO-8559-1 (ISO-Latın-1) kodlaşdırma simvolları üçün işləyir. Həmçinin, boşluqları gözlədiyiniz kimi çevirmir.

    htmlspecialchars()

    htmlspecialchars() funksiyası HTML kontekstində xüsusi məna daşıyan müəyyən simvolları ekvivalent HTML konstruksiyaları ilə əvəz edir. htmlspecialchars() funksiyasının sintaksisi:

    sətir htmlspecialchars (sətir sətri)

    html xüsusi chars() funksiyası hazırda aşağıdakı simvolları çevirir: & &; " " "-ə çevrilir; -ə çevrilir.

    Xüsusilə, bu xüsusiyyət istifadəçilərin interaktiv veb proqramlarında (məsələn, onlayn forumlarda) HTML işarələməsini yazmağın qarşısını alır. HTML işarələməsindəki səhvlər bütün səhifənin düzgün formalaşmamasına səbəb ola bilər. Bununla belə, bu problemin daha səmərəli həlli var - strip_tags() funksiyasından istifadə edərək sətirdən teqləri tamamilə silmək.

    Aşağıdakı nümunə htmlspeclalchars() funksiyası ilə potensial təhlükəli simvolların silinməsini nümayiş etdirir:

    $user_input = "Mən sadəcə ala bilmirəm PHP və o möhtəşəm yemək reseptləri!"; $conv_input = htmlspecialchars($user_input); // $conv_input = "Mən sadəcə bacara bilmirəm"<> PHP və o inanılmaz yemək reseptləri!"

    Əgər htmlspecialchars() funksiyası nl2br() ilə birlikdə istifadə olunursa, sonuncu htmlspecialchars() funksiyasından sonra çağırılmalıdır. Əks halda dizaynlar
    nl2br() çağırmaqla yaradılan , görünən simvollara çevrilir.

    get_html_translation_table()

    get_html_translation_table() funksiyası mətni HTML ekvivalentlərinə çevirmək üçün əlverişli vasitə təmin edir get_htrril_translation_table() funksiyasının sintaksisi:

    get_html_translation_table sətri (int cədvəli)

    get_html_translation_table() funksiyası htmlspecialchars() və htmlentities() standart funksiyalarının işində istifadə olunan iki tərcümə cədvəlindən (cədvəl parametri ilə müəyyən edilir) birini qaytarır. Qaytarılan dəyər mətni HTML koduna çevirmək üçün başqa bir standart funksiya olan strtr() ilə birlikdə istifadə edilə bilər.

    Cədvəl parametri iki dəyərdən birini qəbul edir:

    • HTML_ENTITIES;
    • HTML_SPECIALCHARS.

    Aşağıdakı nümunə mətni HTML-yə çevirmək üçün get_html_translation_table() funksiyasından istifadə edir:

    $string = "İtaliyada pasta e il piatto piu amato"; $translate = get_html_translation_table(HTML_ENTITIES); çap strtr($string, $translate); // Xüsusi simvollar HTML konstruksiyalarına // çevrilir və brauzerdə düzgün şəkildə göstərilir.

    Yeri gəlmişkən, array_flip() funksiyası mətni əks istiqamətdə HTML-yə çevirməyə və orijinal mətni bərpa etməyə imkan verir. Tutaq ki, əvvəlki misalda strtr() nəticəsini çap etmək əvəzinə, biz onu $translated sətir dəyişəninə təyin etdik.

    Aşağıdakı misalda orijinal mətn array_flip() funksiyası ilə bərpa olunur:

    $translate = array_flip($translate); $translated_string - "İtaliyada La pasta é il piatto piú amato"; $original_string = strtr($translated_string, $translate); // $original_string = "İtaliyada La pasta e il piatto piu amato";

    strtr()

    strtr() funksiyası sətri tərcümə edir, yəni mənbə sətirindəki bütün simvolları təyinat sətirindəki müvafiq simvollarla əvəz edir. strtr() funksiyasının sintaksisi:

    string strtr (string string, string source, string təyinat)

    Əgər mənbə və təyinat sətirləri müxtəlif uzunluqlardadırsa, uzun sətir qısa sətirə uyğunlaşmaq üçün kəsilir.

    strtr() funksiyasını iki parametrlə çağırmaq üçün alternativ sintaksis mövcuddur; bu halda, ikinci parametrdə açarları dəyişdirilən alt sətirlərə uyğun gələn və dəyərləri əvəzlənən alt sətirlərə uyğun gələn assosiativ massiv var. Aşağıdakı nümunə HTML teqlərini XML kimi konstruksiyalarla əvəz edir:

    " => "

    ", "" => "

    "); $string = "

    Bu gün PHP ilə işləyən Xəbərlərdə

    "; print strtr($string, $source); // sətri çap edir " Bu gün PHP-Powered News-da" ?>

    HTML-ni düz mətnə ​​çevirin

    Bəzən HTML faylını düz mətnə ​​çevirmək lazımdır. Aşağıda təsvir edilən funksiyalar bu tapşırığı yerinə yetirməkdə sizə kömək edəcək.

    strip_tags()

    strip_tags() funksiyası bütün HTML və PHP teqlərini sətirdən çıxarır, onda yalnız mətn qalır. strip_tags() funksiyasının sintaksisi belədir:

    string strip_tegs (string string [, string allow_terri])

    İsteğe bağlı allow_tags parametri silinmə prosesi zamanı atlanmalı olan teqləri təyin etməyə imkan verir.

    Aşağıda strip_tags():

    $user_input = "Mən sadəcə sevgi PHP və gurme reseptlər!"; $stripped_input = strip_tags($user_input); // $stripped_input = "Mən sadəcə olaraq PHP və gurme reseptlərini sevirəm!";

    Aşağıdakı nümunə hamısını deyil, yalnız bəzi teqləri silir:

    $input = "Mən sevgiüçün ye!!"; $strip_input = strip_tags ($user_input, " "); // $strip_input = "Mən sevirəm ye!!";

    Teqləri mətndən silmək də fgetss() funksiyası tərəfindən həyata keçirilir.

    get_meta_tags()

    get_meta_tags() funksiyası mətnin çevrilməsi ilə birbaşa əlaqəli olmasa da, qeyd etməyə dəyər çox faydalı funksiyadır. Get_meta_tags() funksiyasının sintaksisi:

    get_meta_tags massivi (sətir fayl_adı/URL [, int daxil_yol])

    get_meta_tags() funksiyası META teqləri üçün HTML faylı axtarmaq üçün nəzərdə tutulub.

    META etiketləri əsasən axtarış motorları tərəfindən istifadə edilən səhifə haqqında məlumat ehtiva edir. Bu teqlər bir cüt teq içərisindədir... . META teqlərinin istifadəsi aşağıdakı fraqmentdə nümayiş etdirilir (bunu misal.html adlandıraq, çünki o, Siyahı 8.2-də istifadə olunacaq): PHP Reseptləri get_meta_tags() funksiyası sənədin baş hissəsində META sözü ilə başlayan teqləri axtarır və assosiativ massivdə adları və onların məzmununu etiketləyin. Siyahı 8.2 example.html faylına tətbiq edilən bu funksiyanı nümayiş etdirir. Siyahı 8.2. get_meta_tags() istifadə edərək HTML faylından META teqlərinin çıxarılması

    $meta_tags = get_meta_tags("example.html"): // $meta_tags dəyişəni aşağıdakı məlumatları ehtiva edən massivdən ibarətdir: // $meta_tags["açar sözlər"] = "PHP, kod, reseptlər, veb" // $meta_tags[ "description" ] = "PHP Məlumatı" // $meta_tags["author"] = "KDG";

    Maraqlı bir təfərrüat: META etiket məlumatları yalnız serverdə yerləşən fayllardan deyil, digər URL-lərdən də çıxarıla bilər.

    Sətri böyük və kiçik hərflərə çevirin

    PHP-də sətirlərin hərfini dəyişdirmək üçün nəzərdə tutulmuş dörd funksiya var:

    strtolower()

    strtolower() funksiyası sətirdəki bütün əlifba simvollarını kiçik hərflərə çevirir. strtolower() funksiyasının sintaksisi:

    string strtolower(string string)

    Qeyri-əlifba simvolları funksiya tərəfindən dəyişdirilmir. strtolower() istifadə edərək sətri kiçik hərflərə çevirmək aşağıdakı nümunədə nümayiş etdirilir:

    $sentence = "PHP-nin BİŞİRMƏSİ və PROQRAMLANMASI mənim iki sevimli dilimdir!"; $sentence = strtolower($sentence); // Funksiya çağırışından sonra $sentence sətrini ehtiva edir // "php-nin bişirilməsi və proqramlaşdırılması mənim iki sevimlimdir!"

    strtoupper()

    Sətirlər yalnız kiçik hərflərə deyil, həm də böyük hərflərə çevrilə bilər. Dönüşüm aşağıdakı sintaksisə malik olan strtoupper() funksiyası ilə həyata keçirilir:

    string strtoupper (string string)

    Qeyri-əlifba simvolları funksiya tərəfindən dəyişdirilmir. strtoupper() funksiyasından istifadə edərək sətri böyük hərflərə çevirmək aşağıdakı nümunədə nümayiş etdirilir:

    $sentence = "Pişirmə və proqramlaşdırma PHP mənim iki sevimli dilimdir!"; $sentence = strtoupper($sentence); // Funksiya çağırışından sonra, $sentence sətrini ehtiva edir // "PHP BİRİŞİ VƏ PROQRAMLAMA MƏNİM İKİ FAVORİTİMDİR!"

    ucfirst()

    ucfirst() funksiyası əlifba simvolu olması şərti ilə sətirin ilk simvolunu böyük hərfə çevirir. ucfirst() funksiyasının sintaksisi:

    ucfirst string (simli sətir)

    Qeyri-əlifba simvolları funksiya tərəfindən dəyişdirilmir. Sətirin birinci simvolunun ucfirst() funksiyası ilə çevrilməsi aşağıdakı nümunədə nümayiş etdirilir:

    &sentence = "Pişirmə və proqramlaşdırma PHP mənim iki sevimli dilimdir!"; $sentence = ucfirst($sentence); // Funksiya çağırışından sonra $sentence sətrini ehtiva edir // "PHP-nin bişirilməsi və proqramlaşdırılması mənim iki sevimlidir!"

    ucwords()

    ucwords() funksiyası sətirdəki hər sözün ilk hərfini böyük hərflərə çevirir. ucwords() funksiyasının sintaksisi:

    string ucwords (string string")

    Qeyri-əlifba simvolları funksiya tərəfindən dəyişdirilmir. "Söz" digər sətir elementlərindən boşluqlarla ayrılmış simvollar ardıcıllığı kimi müəyyən edilir. Aşağıdakı nümunə ucwords() funksiyasının sözlərin ilk simvollarını necə çevirdiyini nümayiş etdirir:

    $sentence = "Pişirmə və proqramlaşdırma PHP mənim iki sevimli dilimdir!"; $sentence = ucwords($sentence); // Funksiya çağırışından sonra $sentence sətrini ehtiva edir // "PHP-nin bişirilməsi və proqramlaşdırılması mənim iki sevimlimdir!"

    strhr()

    strrchr("string", "o") - Alt sətirin sonuncu baş verməsini tapır

    Əgər alt sətir tapılmazsa, FALSE qaytarır.

    strchr() funksiyasından fərqli olaraq, əgər axtarış sətri birdən çox simvoldan ibarətdirsə, yalnız birinci simvol istifadə olunur.

    İkinci parametr sətir deyilsə, o, tam ədədə çevrilir və simvol kodu kimi qəbul edilir.

    // $PATH-dən son kataloqu əldə edin $dir = substr(strrchr($PATH, ":"), 1); // axırıncı sətir fasiləsindən sonra hər şeyi əldə edin $text = "1-ci sətir\nsətir 2\nsətir 3"; $last = substr(strrchr($text, 10), 1);

    highlight_string()

    highlight_string - vurğulanan sətir sintaksisi.

    qarışıq highlight_string (string str [, bool return])

    highlight_string() funksiyası PHP-nin daxili sintaksis işıqlandırmasında müəyyən edilmiş rənglərdən istifadə edərək str-in sintaksis rəngli versiyasını çıxarır.

    İkinci qaytarma parametri TRUE olarsa, highlight_string() vurğulanmış kod versiyasını çap etmək əvəzinə sətir kimi qaytaracaq. İkinci parametr TRUE deyilsə, highlight_string() müvəffəqiyyətlə TRUE, uğursuzluqda isə FALSE qaytaracaq.

    Qeyd: 1.qaytarma parametri PHP 4.2.0-dan başlayaraq əlçatan oldu. Bundan əvvəl standart olaraq işləyirdi, yəni. YANLIŞ.
    2. Highlight_String() funksiyası PHP kodunu teqlərə görə fərqləndirir. show_source()- sinonim highlight_file(). Defolt vurğu rəngini dəyişdirmək üçün aşağıdakı PHP direktivlərindən istifadə edin:

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

    əlavə tire()

    - Sətirdəki xüsusi simvollardan qaçır

    Hər bir xüsusi simvoldan əvvəl əlavə edilmiş tərs xətt (\) ilə sətri qaytarır, məsələn, verilənlər bazası sorğusunda bu sətirdən sonra istifadə etmək üçün.

    Tək dırnaq ("), qoşa dırnaq ("), tərs xətt (\) və NUL (NULL bayt) qaçırılır.

    $str = "Adınız O"reillydir?"; // çıxışlar: Adınız O\"reillydir? echo addslashes($str);

    zolaqlar

    - addslashes() funksiyası tərəfindən yaradılan qaçan simvolları silir Qaçan tərs kəsikləri aradan qaldırır. (\" çevrilir "və s.). İkiqat tərs kəsiklər (\\) tək tərs kəsiklərə (\) çevrilir.

    söz sarğı()

    Sətir kəsilməsindən istifadə edərək verilmiş sayda simvol üçün sətir bükür // Wordwrap() istifadə edərək. funksiya sitat($ourText, $maxlen=60, $prefiks="> ") ( $st = wordwrap($ourText, $maxlen-strlen($prefiks), "\n"); $st = $prefix.str_replace( "\n", "\n$prefix", $st); return $st; echo cite("İlk tərtib etdiyim Matrix təbii olaraq mükəmməl idi, o, qüsursuz, əzəmətli bir sənət əsəri idi. Zəfər yalnız ona bərabərdir. onun əzabının qaçılmazlığı hər bir insana xas olan naqisliyin nəticəsidir. Beləliklə, mən sizin təbiətinizin müxtəlif qrotesklərini daha dəqiq əks etdirmək üçün onu yenidən dizayn etdim uğursuzluq.", 20);

    > Birinci Matrix I > tərtib etdiyim tamamilə > təbii > mükəmməl idi, > bir sənət əsəri idi - > qüsursuz, əzəmətli. > Zəfər > yalnız onun monumental > uğursuzluğu ilə bərabərdir. Onun əzabının > qaçılmazlığı > hər bir insana xas olan > natamamlığın nəticəsi olaraq indi mənə aydın görünür. , > Mən > onu > sizin > tarixinizə əsaslanaraq > daha çox > dəqiq əks etdirmək üçün > təbiətinizin müxtəlif > qroteskrilərini yenidən dizayn etdim. > Ancaq > yenə > uğursuzluqdan məyus oldum.


    Daha ətraflı: PHP-də obyekt proqramlaşdırması
    .

    Simlər əsaslardan biridir PHP-də dəyişən növləri. Siz onlarla ədədlər, Boolean dəyişənləri və massivlər kimi işləməlisiniz. Əlbəttə ki, tərtibatçılar PHP bizim üçün asanlaşdırmaq üçün simlərlə işləmək, artıq bizim üçün bir çox hazır funksiyaları qurmuşuq. Və ən çox istifadə olunanlar haqqında danışacağıq.

    Nə zaman istifadə etdiyim funksiyadan başlayaq PHP-də sətirlərlə işləmək müntəzəm olaraq - strlen(). Bu funksiya sətirin uzunluğunu (sətirdəki simvolların sayını) qaytarır:

    $str = "Bu mənim sətirimdir";
    echo strlen($str);
    ?>

    Hesab edirəm ki, bu funksiyanın şərhə ehtiyacı yoxdur.

    Həm də çox istifadə olunan ikisi var sətir funksiyaları- Bu strtolower()strtoupper(). Bu funksiyalar sətri müvafiq olaraq kiçik və böyük hərflərə çevirməyə imkan verir:

    $str = "Bu mənim sətirimdir";
    echo strtolower($str)."
    ";
    echo strtoupper($str);
    ?>

    Çox faydalı string funksiyasıdır substr() orijinal sətirdən bir alt sətir qaytarır:

    $str = "Bu mənim sətirimdir";
    echo substr($str, 1)."
    ";
    echo substr($str, 4, 2)."
    ";
    ?>

    Gördüyünüz kimi, bu funksiya iki və ya üç parametr ehtiva edə bilər. Birinci parametr mənbə sətiridir, ikinci parametr isə mənbə sətirindəki simvolun nömrəsidir və nəticədə yaranan sətirdə birinci olacaq. Qeyd: simvolların nömrələnməsi 0-dan başlayır(yəni bizim nümunəmizdə 1-ci simvolu - " h"). Üçüncü parametr əldə etmək istədiyimiz sətir uzunluğu deməkdir. Bu parametr göstərilməyibsə, ikinci parametrdən başlayaraq sətirin sonuna qədər sətir qaytarılır. Ümumiyyətlə, nəticə və hər şey sizə aydın olacaq.

    Başqa bir faydalı PHP-də string funksiyası- Bu str_replace(). Adından da göründüyü kimi, bu funksiya bir hissəsi dəyişdirilmiş bir sətir qaytarır:

    $str = "Bu mənim sətirimdir";
    echo str_replace("mənim", "sizin", $str);
    ?>

    Çıxış aşağıdakı sətirdir: " Bu sizin siminizdir". Yəni, bu funksiya birinci parametrin göstərdiyi sətri üçüncü parametrin göstərdiyi sətirdə ikinci parametrin göstərdiyi sətirlə əvəz etdi və nəticəni qaytardı.

    Və nəzərdən keçirəcəyimiz son funksiyadır strpos(). Bu funksiya sətirdə alt sətir baş verməsini axtarır və hadisənin ilk simvolunun nömrəsini qaytarır (unutmayın ki, simvolların nömrələnməsi 1 deyil, 0-dan başlayır):

    $str = "Bu mənim sətirimdir";
    echo strpos($str, "is");
    ?>

    Gördüyünüz kimi, bu funksiya çox sadə və çox vacibdir, çünki sətirdə axtarış aparmağa imkan verir. Həmçinin strpos() funksiyaları Ofseti təyin edən daha bir əlavə parametr var. Nəzərinizə çatdırım ki, bu funksiya ilk hadisəni axtarır. Məsələn, bizim nümunəmizdə " edir" sətirdə iki dəfə baş verir, lakin bu funksiya ilk baş verən üçün simvol nömrəsini qaytardı. Buna görə də, digər hadisələrin nömrələrini əldə etmək üçün üçüncü parametri - ofseti təyin etməlisiniz:

    $str = "Bu mənim sətirimdir";
    echo strpos($str, "is", 4);
    ?>

    Beləliklə, indi biz növbəti hadisədəki xarakterin nömrəsinə sahibik. Və nəhayət, demək istərdim ki, giriş tapılmasa, funksiya geri qayıdacaq yalan. Və bu anda bir çox insan səhv edir. Sadə bir misal verək:

    $str = "Bu mənim sətirimdir";
    if (strpos($str, "Th") == false) echo "String tapılmadı";
    else echo "String tapıldı";
    ?>

    Aydındır ki, " Th" orijinal sətirdə yer alır və ilk hadisənin simvol nömrəsidir 0 . Ancaq bu skripti işlətsəniz, görəcəksiniz ki, " sətir tapılmadı"Niyə? Haqqında məqaləni oxusanız ekvivalent operator, onda bu suala heç bir problem olmadan cavab verə bilərsiniz. Ancaq yoxsa, onda izah edəcəyəm. Fakt budur ki, bir funksiyamız olduğundan strpos() qayıtdı 0 , A 0 baxımından PHP- Bu yalan, sonra asanlıqla şərtin doğru olduğu qənaətinə gəldi (axı, solda yalan və sağ yalan). Mən nə etməliyəm? Cavab sadədir: ekvivalent operatorundan istifadə edin (işarə olunur === ), təkcə dəyərləri müqayisə etmir (bizim nümunəmizdə bərabərdir PHP), həm də onların növləri:

    $str = "Bu mənim sətirimdir";
    if (strpos($str, "Th") === false) echo "String tapılmadı";
    else echo "String tapıldı";
    ?>

    İndi bunu görəcəksiniz" sim tapıldı". Gördüyünüz kimi, ekvivalent operator hər an özünü elan edə bilər və bu barədə həmişə yadda saxlamaq lazımdır, əks halda çətin səhvlərdən qaça bilməyəcəksiniz.

    Əlbəttə ki, bu, bütün dəst deyil. sətir funksiyaları, tərtibatçılar tərəfindən bizə təqdim edilmişdir PHP, lakin təcrübəmə əsaslanaraq sizə ən çox istifadə olunanların siyahısını verdim PHP-də string funksiyaları.

    simvollarla uzunluq (7)

    => string(141) o deməkdir ki, $message massivdir, ona görə də strlen($message) etməlisiniz< 141 ...

    Məndə 141 simvol uzunluğunda bir sətir var. Aşağıdakı kodu istifadə edərək, sətir 140-dan böyük və ya kiçik olarsa, mesajı qaytarmaq üçün if ifadəsi var.

    Libxml_istifadə_daxili_səhvlər(DOĞRU); $dom = yeni DOMDocument(); $dom->loadHTMLFile($mənbə); $xml = simplexml_import_dom($dom); libxml_use_internal_errors(FALSE); $message = $xml->xpath("//div[@class="müsabiqə"]"); əgər (strlen($mesaj)< 141) { echo "There Are No Contests."; } elseif(strlen($message) >142) ( "Bir Aktiv Müsabiqə Var" əks-sədası; )

    Mən $message-də var_dump-dan istifadə etdim və bu, string => string(141) mənim problemim olduğunu göstərir. Mən if ifadəsi üçün rəqəmləri dəyişdirəndə<130 и>131, sətir 131-dən böyük olsa da, yenə də 1-ci mesajı qaytarır. 141-dən az istifadə etdiyim nömrədən asılı olmayaraq, həmişə "Müsabiqə yoxdur" alıram. mənə qayıtdı.

    => string(141) o deməkdir ki, $message sətir deyil, massivdir və $message 141 simvol uzunluğunda sətirdir

    xpath sətri qaytarmır. O, sətirə göndərilə bilən xml elementləri olan massivi qaytarır.

    If (count($message)) ( if (strlen((string)$message)< 141) { echo "There Are No Contests."; } else if(strlen((string)$message) >142) ( "Bir Aktiv Müsabiqə Var" əks-sədası; ) )

    əvəzinə ümumi sintaksisi sınayın:

    Əgər (strlen($message)<140) { echo "less than 140"; } else if (strlen($message)>140) ( əks-səda "140-dan çox"; ) else ( əks-səda "dəqiq 140"; )

    Çünki $xml->xpath həmişə qaytarır massiv , strlen gözləyir xətt .

    Bununla bağlı problemlər yaşadım və nəhayət öz həllimi yaratmağa qərar verdim. Normal ifadə mühərrikindən istifadə etmədən:

    Funksiya ($text, $word) ehtiva edir ( $found = false; $spaceArray = partlatmaq(" ", $text); $nonBreakingSpaceArray = partlatmaq(chr(160), $text); if (in_array($word, $spaceArray) ) ||.in_array($word, $nonBreakingSpaceArray)) ( $found = true; ) return $found )

    Siz qeyd edə bilərsiniz ki, əvvəlki həllər bir sözün digəri üçün prefiks kimi istifadəsinə cavab deyil. Nümunənizi istifadə etmək üçün:

    $a = "Necəsən?"; $b = "beldən alovlanan yubka"; $c = "vardır";

    Yuxarıdakı nümunələrlə, həm $a, həm də $b $c ehtiva edir, lakin siz funksiyanızın sizə yalnız $a-nın $c ehtiva etdiyini bildirməsini istəyə bilərsiniz.



    Əlaqədar nəşrlər