PHP: ამოიღე შენი ნაწყვეტი სიტყვაზე strrpos- ის გამოყენებით

html კოდი

თუ თქვენ მუშაობთ PHP- სთან და გსურთ ნახოთ მხოლოდ ამონაწერი თქვენი საწყისი ტექსტიდან და შეწყვიტოთ იგი რამდენიმე სიმბოლოზე, თქვენი ამონაწერი შეიძლება გამოიყურებოდეს მახინჯი, თუ ის შესრულებულია სტრიქონის შუა რიცხვებში. მე უნდა დამეწერა ფუნქცია ამისათვის ASP და ASP.NET– ში, რომელიც ძირითადად უკანასკნელი სიმბოლოდან ციკლით დაბრუნდა უკან, რომ იპოვოს ბოლო სივრცე და შემეკვეთა იქ. სახის საზიზღარი და ცოტათი გადამეტებული. თქვენ რეალურად შეგიძლიათ ნახოთ ეს მოქმედება ჩემს სახლში გვერდზე სადაც მე მხოლოდ პირველ 500 სიმბოლოს გთავაზობთ.

მე სრულად მომზადებული ვიყავი, რომ იგივე ფუნქცია შემემუშავებინა PHP დღეს, მაგრამ აღმოვაჩინე (როგორც ყოველთვის), რომ PHP– ს ჰქონდა ფუნქცია, რომელიც ამას უკვე აკეთებს სტრრპოსი.

ძველი კოდი მიიღებს ქვესტრიქონს ($ content) პირველი სიმბოლოდან თქვენთვის სასურველი სიმბოლოების მაქსიმალურ რაოდენობამდე ($ maxchars):

$ content = substr ($ content, 0, $ maxchars); ექოს $ შინაარსი;

ახალი კოდი:

$ content = substr ($ content, 0, $ maxchars); $ pos = strrpos ($ შინაარსი, ""); if ($ pos> 0) {$ content = substr ($ content, 0, $ pos); } echo $ შინაარსი;

ასე რომ, ახალი კოდი პირველად წყვეტს შინაარსს, რომელსაც ეძებთ სიმბოლოების ლიმიტს. ამასთან, შემდეგი ნაბიჯი არის შინაარსის ბოლო სივრცის (””) ძებნა. $ pos დასრულდება ამ პოზიციაზე. ახლა, მე უბრალოდ დარწმუნებული ვარ, რომ შინაარსში ნამდვილად არის სივრცე, თუ ვკითხულობ $ pos> 0. თუ ეს არ არის, ის უბრალოდ შეწყვეტს შინაარსს ჩემს მიერ მოთხოვნილი სიმბოლოების რაოდენობაზე. თუ ადგილი აქვს ადგილს, ის მოხერხებულად გაჭრის ჩემს შინაარსს სივრცეში.

ეს მშვენიერი გზაა სიმბოლოების მაქსიმალური რაოდენობის კომბინაციის გამოყენებისა და სიტყვის ჭრისთვის. იმედია მოგეწონებათ!

და დარწმუნებული ვარ, გავარკვევ, არის ASP.NET ფუნქცია, რომელიც ამას აკეთებს… ვერ ვიპოვნე.

7 კომენტარები

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

    თუ $content თავდაპირველად $maxchars-ზე მოკლეა, კოდი, როგორც დაწერილია, კვლავ გამოიყურება მარჯვნივ და მარცხნივ სივრცეში და ამოიჭრება ბოლო სიტყვა. თქვენ შეგიძლიათ შეაერთოთ სივრცე $content-ის ბოლოს, ან გააკეთოთ if (strlen()…)

  5. 5

    როგორც ჩანს, ეს ფუნქციონირებდა (წინა კომენტარის მისამართით):

    ფუნქცია showexcerpt ($content, $maxchars) {

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

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

    თუ ($pos>0) {
    $content = substr($content, 0, $pos);
    }

    დააბრუნეთ $შინაარსი. "...";

    } Else {

    $ კონტენტის დაბრუნება;

    }

    }

  6. 6

    რა მოხდება, თუ ჩვენი ბოლო სიმბოლო არის სასვენი სიმბოლო, როგორიცაა წერტილი, ძახილის ნიშანი ან კითხვის ნიშანი? სამწუხაროდ, ეს კოდი წაშლის მთელ სიტყვას, რომელიც წინ უძღვის პუნქტუაციის სიმბოლოს.  

    ვფიქრობ, ჯობია დაწერო რაღაც უფრო მტკიცე.

  7. 7

რას ფიქრობთ?

ეს საიტი იყენებს Akismet- ს, რათა შეამციროს სპამი. შეისწავლეთ თქვენი კომენტარის მონაცემები დამუშავებული.