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

html კოდი

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

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

ძველი კოდი მიიღებს ქვესტრიქონს ($ 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 თავდაპირველად SHORTTER ვიდრე $ maxchars, კოდი, როგორც დაწერილია, ისევ გამოიყურება მარჯვნივ მარცხნივ სივრცისთვის და ამოჭრა ბოლო სიტყვა. თქვენ ან შეგიძლიათ დააკავშიროთ სივრცე $ content- ის ბოლოს, ან გააკეთოთ if (strlen ())

  5. 5

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

    ფუნქციის showexcerpt ($ შინაარსი, $ maxchars) {

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

    $ content = substr ($ content, 0, $ maxchars);
    $ pos = strrpos ($ შინაარსი, "");

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

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

    } Else {

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

    }

    }

  6. 6

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

    მე ვფიქრობ, რომ უკეთესი იქნებოდა, რომ რაღაც უფრო ძლიერი დაწეროთ.

  7. 7

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