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

HTML कोड

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

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

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

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

नया कोड:

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

इसलिए नया कोड पहले उस वर्ण सीमा पर सामग्री को काट देता है जिसे आप खोज रहे हैं। हालांकि, अगला कदम सामग्री में अंतिम स्थान ("") की तलाश करना है। $ स्थिति उस स्थिति में हवा होगी। अब, मैं केवल यह सुनिश्चित करता हूं कि वास्तव में सामग्री में एक स्थान है, यह पूछकर कि $ पॉज़> 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

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

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