PHP: अपने शब्द को स्ट्रैप के उपयोग से काटें

HTML कोड

यदि आप PHP के साथ काम कर रहे हैं और आप केवल अपने स्रोत टेक्स्ट से एक अंश दिखाना चाहते हैं और इसे कई वर्णों में काट देना चाहते हैं, तो आपका अंश मध्य-स्ट्रिंग होने पर बदसूरत लग सकता है। मुझे ASP और ASP.NET में ऐसा करने के लिए एक फ़ंक्शन लिखना था जो मूल रूप से अंतिम वर्ण से अंतिम स्थान खोजने के लिए साइकिल चलाकर वहां से काट दिया। एक तरह का बुरा और थोड़ा सा ओवरकिल। आप वास्तव में इसे मेरे घर पर कार्रवाई में देख सकते हैं पृष्ठ जहां मैं केवल पहले 500 अक्षर प्रदान करता हूं।

मैं आज PHP के साथ एक ही फ़ंक्शन को विकसित करने के लिए पूरी तरह से तैयार था, लेकिन पाया (हमेशा की तरह) कि PHP का एक फ़ंक्शन था जो पहले से ही करता है, आघात करना.

पुराना कोड पहले कैरेक्टर ($ सामग्री) को आपके द्वारा इच्छित वर्णों की अधिकतम संख्या ($ maxchars) में ले जाएगा:

$ सामग्री = पदार्थ ($ सामग्री, 0, $ मैक्सचर); गूंज $ सामग्री;

नया कोड:

$ सामग्री = पदार्थ ($ सामग्री, 0, $ मैक्सचर); $ पॉस = स्ट्रैप्स ($ सामग्री, ""); if ($ स्थिति> 0) {$ सामग्री = पदार्थ ($ सामग्री, 0, $ स्थिति); } गूंज $ सामग्री;

तो नया कोड सबसे पहले आपके द्वारा खोजी जा रही वर्ण सीमा पर सामग्री को काट देता है। हालांकि, अगला कदम सामग्री में अंतिम स्थान ("") की तलाश करना है। $pos उस स्थिति में समाप्त हो जाएगा। अब, मैं केवल यह पूछकर कि क्या $pos>0 पूछकर सामग्री में वास्तव में एक स्थान है, मैं सुनिश्चित करता हूं। यदि ऐसा नहीं है, तो यह मेरे द्वारा अनुरोधित वर्णों की संख्या पर सामग्री को काट देगा। यदि कोई स्थान है, तो यह अंतरिक्ष में मेरी सामग्री को इनायत से काट देगा।

यह वर्णों की अधिकतम संख्या के संयोजन का उपयोग करने और शब्द पर इसे काटने का एक अच्छा तरीका है। उम्मीद है आपको पसंद आएगा!

और मुझे यकीन है कि मुझे पता चल जाएगा कि क्या कोई ASP.NET फ़ंक्शन है जो ऐसा करता है ... मुझे कोई नहीं मिला।

7 टिप्पणियाँ

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

    यदि $ सामग्री शुरू में $ maxchars की तुलना में SHORTER है तो लिखा हुआ कोड अभी भी एक स्थान के लिए बाएं से दाएं दिखेगा और अंतिम शब्द को काट देगा। आप या तो $ सामग्री के अंत में एक स्थान समतल कर सकते हैं, या एक (अगर () ...) कर सकते हैं

  5. 5

    यह एक फ़ंक्शन के रूप में काम करता था (पिछली टिप्पणी को संबोधित करते हुए):

    कार्य प्रदर्शन ($ सामग्री, $ अधिकतम) {

    यदि (strlen ($ सामग्री)> $ maxchars) {

    $ सामग्री = पदार्थ ($ सामग्री, 0, $ मैक्सचर);
    $ पॉस = स्ट्रैप्स ($ सामग्री, "");

    अगर ($ स्थिति> 0) {
    $ सामग्री = पदार्थ ($ सामग्री, 0, $ स्थिति);
    }

    $ सामग्री लौटाएँ। "...";

    और} {

    $ सामग्री वापस करें;

    }

    }

  6. 6

    क्या होगा यदि हमारा अंतिम चरित्र पूर्ण विराम, विस्मयादिबोधक चिह्न या प्रश्न चिह्न जैसा विराम चिह्न है? दुर्भाग्य से, यह कोड विराम चिह्न वर्ण पूर्ववर्ती पूरे शब्द को मिटा देगा।  

    मुझे लगता है कि आप कुछ और मजबूत लिखना बेहतर होगा।

  7. 7

तुम्हें क्या लगता है?

यह साइट स्पैम को कम करने के लिए अकिस्मेट का उपयोग करती है। जानें कि आपका डेटा कैसे संसाधित किया जाता है.