PHP: strrpos istifadə edərək sözünüzü çıxarın

html kodu

PHP ilə işləyirsinizsə və yalnız mənbə mətninizdən bir hissə göstərmək və bir neçə simvolda kəsmək istəyirsinizsə, orta sətirlə işlənibsə çıxarışınız çirkin görünə bilər. Bunu ASP-də və ASP.NET-də yerinə yetirmək üçün bir funksiya yazmalıydım ki, bu da son boşluğu tapmaq və orada kəsmək üçün sonuncu simvoldan geri döndü. Bir növ xoşagəlməz və bir az həddini aşmaq. Əslində bunu evimdə hərəkətdə görə bilərsiniz səhifə burada yalnız ilk 500 simvolu təqdim edirəm.

Bu gün PHP ilə eyni funksiyanı inkişaf etdirməyə tam hazır idim, ancaq (həmişəki kimi) PHP-nin onsuz da yerinə yetirən bir funksiyası olduğunu gördüm, strrpos.

Köhnə kod birinci simvoldan istədiyiniz maksimum simvol sayına ($ maxchars) qədər bir alt sətir ($ content) götürəcəkdir:

$ content = substr ($ content, 0, $ maxchars); echo $ content;

Yeni kod:

$ content = substr ($ content, 0, $ maxchars); $ pos = strrpos ($ məzmun, ""); əgər ($ pos> 0) {$ content = substr ($ content, 0, $ pos); } echo $ content;

Beləliklə, yeni kod əvvəlcə aradığınız simvol limitindəki məzmunu kəsir. Bununla birlikdə, növbəti addım məzmunda son boşluğu (”“) axtarmaqdır. $ pos bu mövqedə qalacaq. İndi sadəcə $ pos> 0 olub olmadığını soruşaraq məzmunda həqiqətən bir boşluq olduğunu təmin edirəm. Olmazsa, məzmunu istədiyim simvol sayına görə kəsəcək. Boşluq varsa, içərimdəki məkanı lütflə kəsəcək.

Bu, maksimum simvol sayının birləşməsini istifadə edərək sözün üstündə kəsməyin gözəl bir yoludur. Ümid edirəm xoşlayırsan!

Və bunu edən bir ASP.NET funksiyası olub olmadığını öyrənəcəyimə əminəm ... birini tapa bilmədim.

7 Şərhlər

  1. 1
  2. 2
  3. 3
  4. 4

    $ Content əvvəlcə $ maxchars'dan QISA olduqda, kod yazıldığı kimi boşluq üçün sağdan sola baxacaq və son sözü kəsəcəkdir. $ Məzmunun sonunda boşluğu birləşdirə və ya (strlen ()…)

  5. 5

    Bu bir funksiya kimi işləyirdi (əvvəlki şərhə müraciət edərək):

    showexcerpt funksiyası ($ content, $ maxchars) {

    if (strlen ($ content)> $ maxchars) {

    $ content = substr ($ content, 0, $ maxchars);
    $ pos = strrpos ($ məzmun, "");

    əgər ($ pos> 0) {
    $ content = substr ($ content, 0, $ pos);
    }

    $ content qaytarın. "...";

    } Else {

    $ məzmunu qaytarmaq;

    }

    }

  6. 6

    Son xarakterimiz nöqtə, nida işarəsi və ya sual işarəsi kimi bir durğu xarakteri daşıyırsa nə olar? Təəssüf ki, bu kod sözügedən durğu işarəsindən əvvəlki sözün hamısını siləcəkdir.  

    Düşünürəm ki, bir az daha möhkəm bir şey yazsanız daha yaxşı olar.

  7. 7

Siz nə düşünürsünüz?

Bu sayt spam azaldılması üçün Akismet istifadə edir. Yorumunuzun necə işləndiyini öyrənin.