ओबी_स्टार्ट - आउटपुट बफ़रिंग सक्षम करें। PHP परियोजनाओं का समर्थन करते समय ob_start का उपयोग करना, ख़राब खोज php प्रारंभ

तलाश शुरू करोएक ब्राउज़र अपहरणकर्ता है, जिसे अन्य मुफ्त डाउनलोड के माध्यम से प्रचारित किया जाता है, और एक बार इंस्टॉल होने के बाद यह आपके ब्राउज़र होमपेज को बदल देगा प्रारंभ-search.com search.yahoo.com.

स्टार्ट-सर्च.कॉम होमपेज आपके खोज परिणामों में विज्ञापन और प्रायोजित लिंक प्रदर्शित करेगा, और आपके खोज प्रश्नों से खोज शब्द एकत्र कर सकता है। स्टार्ट-सर्च.कॉम हाईजैक का उपयोग विज्ञापन राजस्व को बढ़ावा देने के लिए किया जाता है, जैसे ब्लैकहैट एसईओ के उपयोग में, खोज परिणामों में किसी साइट की पेज रैंकिंग को बढ़ाने के लिए किया जाता है।

खोज शुरू करें यह तकनीकी रूप से एक वायरस नहीं है, लेकिन यह बहुत सारे दुर्भावनापूर्ण लक्षण प्रदर्शित करता है, जैसे कि ऑपरेटिंग सिस्टम में गहराई से शामिल होने के लिए रूटकिट क्षमताएं, ब्राउज़र अपहरण, और सामान्य तौर पर उपयोगकर्ता अनुभव में हस्तक्षेप करना। उद्योग आमतौर पर इसे "पीयूपी" या संभावित रूप से अवांछित कार्यक्रम के रूप में संदर्भित करता है।
स्टार्ट सर्च एक विज्ञापन-समर्थित है (उपयोगकर्ता अतिरिक्त बैनर, खोज, पॉप-अप, पॉप-अंडर, इंटरस्टीशियल और इन-टेक्स्ट लिंक विज्ञापन देख सकते हैं) इंटरनेट एक्सप्लोरर (बीएचओ) और फ़ायरफ़ॉक्स/क्रोम (प्लगइन) के लिए क्रॉस वेब ब्राउज़र प्लगइन और स्थापना के दौरान विभिन्न मुद्रीकरण प्लेटफार्मों के माध्यम से वितरित किया गया। ब्राउज़र एक्सटेंशन में विभिन्न विशेषताएं शामिल हैं जो होम पेज, खोज सेटिंग्स सहित ब्राउज़र की डिफ़ॉल्ट या कस्टम सेटिंग्स को संशोधित करेंगी और कुछ मामलों में इंटरनेट एक्सप्लोरर की लोड समय सीमा को संशोधित करेंगी, प्रतिस्पर्धी सॉफ़्टवेयर को अपनी सेटिंग्स बदलने से रोकने के लिए फ़ायरफ़ॉक्स के भीतर एक लॉक फ़ाइल रखें। साथ ही प्लगइन की क्रॉस साइट स्क्रिप्टिंग की अनुमति देने के लिए ब्राउज़र की सामग्री सुरक्षा नीति को अक्षम करें।

आपके द्वारा एक फ्रीवेयर सॉफ़्टवेयर (वीडियो रिकॉर्डिंग/स्ट्रीमिंग, डाउनलोड-मैनेजर या पीडीएफ क्रिएटर्स) इंस्टॉल करने के बाद आपके कंप्यूटर पर स्टार्ट सर्च होमपेज मिला, जिसे इस ब्राउज़र अपहरणकर्ता ने अपने इंस्टॉलेशन में बंडल किया था।
उदाहरण के लिए, जब आप VPlay इंस्टॉल करते हैं, तो आप अपने ब्राउज़र होमपेज को इसमें बदलने के लिए भी सहमत होंगे प्रारंभ-search.comऔर डिफ़ॉल्ट खोज इंजन search.yahoo.com


हालाँकि जब आप अपने कंप्यूटर से VPlay को अनइंस्टॉल करते हैं, तो आपके वेब ब्राउज़र की डिफ़ॉल्ट सेटिंग्स बहाल नहीं की जाएंगी। इसका मतलब है कि आपको अपने पसंदीदा वेब ब्राउज़र से मैन्युअल रूप से स्टार्ट-सर्च.कॉम होमपेज को हटाना होगा।

तुम्हे करना चाहिए सॉफ़्टवेयर इंस्टॉल करते समय हमेशा ध्यान देंक्योंकि अक्सर, सॉफ़्टवेयर इंस्टॉलर में वैकल्पिक इंस्टॉल शामिल होते हैं, जैसे कि यह स्टार्ट-सर्च.कॉम ब्राउज़र अपहरणकर्ता। बहुत सावधान रहें कि आप क्या स्थापित करने के लिए सहमत हैं।
हमेशा कस्टम इंस्टॉलेशन का विकल्प चुनेंऔर ऐसी किसी भी चीज़ का चयन रद्द करें जो परिचित नहीं है, विशेष रूप से वैकल्पिक सॉफ़्टवेयर जिसे आप पहले कभी डाउनलोड और इंस्टॉल नहीं करना चाहते थे। कहने की जरूरत नहीं है कि आपको ऐसे सॉफ़्टवेयर इंस्टॉल नहीं करने चाहिए जिन पर आपको भरोसा नहीं है।

स्टार्ट-सर्च.कॉम को कैसे हटाएं (वायरस रिमूवल गाइड)

यह पेज एक व्यापक मार्गदर्शिका है, जो आपके इंटरनेट एक्सप्लोरर, फायरफॉक्स और गूगल क्रोम सेstart-search.com को हटा देगा।
कृपया सभी चरणों को सही क्रम में निष्पादित करें। यदि किसी भी बिंदु पर आपका कोई प्रश्न या संदेह हो, रुकनाऔर हमारी सहायता मांगें.




चरण 1: अपने कंप्यूटर से प्रारंभ-search.com दुर्भावनापूर्ण प्रोग्राम को अनइंस्टॉल करें

इस पहले चरण में, हम आपके कंप्यूटर पर इंस्टॉल किए गए किसी भी दुर्भावनापूर्ण प्रोग्राम को पहचानने और हटाने का प्रयास करेंगे।

यदि आपको प्रारंभ-search.com प्रोग्राम को अनइंस्टॉल करने का प्रयास करते समय समस्याएं आ रही हैं, तो आप अपनी मशीन से इस अवांछित प्रोग्राम को पूरी तरह से हटाने के लिए इसका उपयोग कर सकते हैं।

चरण 2: Internet Explorer, Firefox और Google Chrome सेstart-search.com वायरस हटाएँ

Internet Explorer से प्रारंभ-search.com वायरस हटाएँ

आप इंटरनेट एक्सप्लोरर सेटिंग्स को उसी स्थिति में वापस लाने के लिए रीसेट कर सकते हैं, जिसमें वे तब थे जब इंटरनेट एक्सप्लोरर पहली बार आपके पीसी पर स्थापित किया गया था।

मोज़िला फ़ायरफ़ॉक्स सेstart-search.com वायरस हटाएँ

यदि आपको फ़ायरफ़ॉक्स में समस्या आ रही है, तो इसे रीसेट करने से मदद मिल सकती है। रीसेट फिक्स में आपकी आवश्यक जानकारी जैसे बुकमार्क, पासवर्ड, वेब फॉर्म ऑटो-फिल जानकारी, ब्राउज़िंग इतिहास और खुले टैब को सहेजते हुए फ़ायरफ़ॉक्स को उसकी फ़ैक्टरी डिफ़ॉल्ट स्थिति में पुनर्स्थापित करके कई समस्याएं शामिल हैं।

टिप्पणी: आपकी पुरानी फ़ायरफ़ॉक्स प्रोफ़ाइल आपके डेस्कटॉप पर " नामक फ़ोल्डर में रखी जाएगी पुराना फ़ायरफ़ॉक्स डेटा“. यदि रीसेट से आपकी समस्या ठीक नहीं होती है तो आप बनाई गई नई प्रोफ़ाइल में फ़ाइलों की प्रतिलिपि बनाकर सहेजी नहीं गई कुछ जानकारी को पुनर्स्थापित कर सकते हैं। यदि आपको अब इस फ़ोल्डर की आवश्यकता नहीं है, तो आपको इसे हटा देना चाहिए क्योंकि इसमें संवेदनशील जानकारी है।

Google Chrome सेstart-search.com वायरस हटाएं

चरण 3: AdwCleaner के साथstart-search.com ब्राउज़र अपहरणकर्ता को हटाएं

AdwCleaner उपयोगिता आपके कंप्यूटर और वेब ब्राउज़र को "start-search.com" दुर्भावनापूर्ण फ़ाइलों, ब्राउज़र एक्सटेंशन और रजिस्ट्री कुंजियों के लिए स्कैन करेगी, जो आपकी जानकारी के बिना आपके कंप्यूटर पर इंस्टॉल की गई होंगी।

चरण 4: मैलवेयरबाइट्स एंटी-मैलवेयर फ्री के साथ अपने कंप्यूटर से स्टार्ट-सर्च.कॉम वायरस को हटा दें

मैलवेयरबाइट्स एंटी-मैलवेयर फ्री वॉर्म, ट्रोजन, रूटकिट, दुष्ट, डायलर, स्पाइवेयर और अन्य सहित मैलवेयर के सभी निशानों का पता लगाने और हटाने के लिए उद्योग की अग्रणी तकनीक का उपयोग करता है।
यह ध्यान रखना महत्वपूर्ण है कि मैलवेयरबाइट्स एंटी-मैलवेयर अच्छी तरह से काम करता है और इसे बिना किसी विरोध के एंटीवायरस सॉफ़्टवेयर के साथ चलना चाहिए।

  1. आप डाउनलोड कर सकते हैं मैलवेयरबाइट्स एंटी-मैलवेयर डाउनलोड करेंनीचे दिए गए लिंक से.
    (यह लिंक एक नया वेब पेज खोलेगा जहां से आप मैलवेयरबाइट्स एंटी-मैलवेयर फ्री डाउनलोड कर सकते हैं)
  2. एक बार डाउनलोड होने के बाद, सभी प्रोग्राम बंद करें, फिर अपने डेस्कटॉप पर "नाम" आइकन पर डबल-क्लिक करें। एमबीएम-सेटअप-उपभोक्ता-2.00.xx”मैलवेयरबाइट्स एंटी-मैलवेयर की स्थापना शुरू करने के लिए।

    आपको एक उपयोगकर्ता खाता नियंत्रण संवाद प्रस्तुत किया जा सकता है जो आपसे पूछेगा कि क्या आप इस फ़ाइल को चलाना चाहते हैं। यदि ऐसा होता है, तो आपको "पर क्लिक करना चाहिए" हाँस्थापना जारी रखने के लिए।
  3. जब इंस्टॉलेशन शुरू होगा, तो आप देखेंगे जो इंस्टॉलेशन प्रक्रिया में आपका मार्गदर्शन करेगा.


    अपनी मशीन पर मैलवेयरबाइट्स एंटी-मैलवेयर इंस्टॉल करने के लिए, संकेतों का पालन करते रहें"पर क्लिक करके अगला" बटन।

  4. एक बार इंस्टॉल हो जाने पर, मैलवेयरबाइट्स एंटी-मैलवेयर स्वचालित रूप से प्रारंभ हो जाएगा और आपको एक संदेश दिखाई देगा जिसमें कहा जाएगा कि आपको प्रोग्राम को अपडेट करना चाहिए, और यह कि आपके सिस्टम पर कभी भी स्कैन नहीं चलाया गया है। सिस्टम स्कैन शुरू करने के लिए आप “पर क्लिक कर सकते हैं” अब ठीक करें" बटन।


    वैकल्पिक रूप से, आप “पर क्लिक कर सकते हैं स्कैन"टैब करें और चुनें" ख़तरा स्कैन", फिर पर क्लिक करें "अब स्कैन करें"बटन।

  5. मैलवेयरबाइट्स एंटी-मैलवेयर अब अपडेट की जांच करेगा, और यदि कोई है, तो आपको "पर क्लिक करना होगा" अभी अद्यतन करें" बटन।

  6. मैलवेयरबाइट्स एंटी-मैलवेयर अब आपके कंप्यूटर को स्टार्ट-सर्च.कॉम वायरस के लिए स्कैन करना शुरू कर देगा। जब मैलवेयरबाइट्स एंटी-मैलवेयर स्कैन कर रहा होगा तो यह नीचे दी गई छवि जैसा दिखेगा।

  7. जब स्कैन पूरा हो जाएगा, तो अब आपको एक स्क्रीन दिखाई जाएगी जिसमें मैलवेयर संक्रमण दिखाई देंगे जिनका मालवेयरबाइट्स के एंटी-मैलवेयर ने पता लगाया है। मैलवेयरबाइट्स एंटी-मैलवेयर द्वारा पाए गए दुर्भावनापूर्ण प्रोग्रामों को हटाने के लिए, “पर क्लिक करें” सभी को क्वारंटाइन करें" बटन, और फिर " पर क्लिक करें अभी अप्लाई करें" बटन।


    कृपया ध्यान दें कि पाए गए संक्रमण छवि में दिखाए गए संक्रमण से भिन्न हो सकते हैं।
  8. मैलवेयरबाइट्स एंटी-मैलवेयर अब मिली सभी दुर्भावनापूर्ण फ़ाइलों और रजिस्ट्री कुंजियों को अलग कर देगा। फ़ाइलें हटाते समय, उनमें से कुछ को हटाने के लिए मैलवेयरबाइट्स एंटी-मैलवेयर को रीबूट की आवश्यकता हो सकती है। यदि यह एक संदेश प्रदर्शित करता है जिसमें कहा गया है कि इसे आपके कंप्यूटर को रीबूट करने की आवश्यकता है, तो कृपया इसे ऐसा करने की अनुमति दें।


    आपका कंप्यूटर पुनरारंभ होने के बाद, आपको मैलवेयरबाइट्स एंटी-मैलवेयर खोलना चाहिए और यह सत्यापित करने के लिए एक और "खतरा स्कैन" स्कैन करना चाहिए कि कोई खतरा शेष नहीं है

चरण 5: हिटमैनप्रो के साथ स्टार्ट-सर्च.कॉम संक्रमण की दोबारा जांच करें

हिटमैनप्रो एक सेकेंड ओपिनियन स्कैनर है, जो आपके कंप्यूटर को मैलवेयर (वायरस, ट्रोजन, रूटकिट इत्यादि) से बचाने के लिए डिज़ाइन किया गया है, जिन्होंने आपके द्वारा उठाए गए सभी सुरक्षा उपायों (जैसे एंटी वायरस सॉफ़्टवेयर, फ़ायरवॉल इत्यादि) के बावजूद आपके कंप्यूटर को संक्रमित कर दिया है। हिटमैनप्रो को बिना किसी विरोध के मौजूदा सुरक्षा कार्यक्रमों के साथ काम करने के लिए डिज़ाइन किया गया है। यह कंप्यूटर को तेज़ी से स्कैन करता है (5 मिनट से कम) और कंप्यूटर को धीमा नहीं करता है।

परिचय

Linux के Xubuntu 10.04 (ल्यूसिड) संस्करण पर आधारित Balsa प्रणाली, बीटा सॉफ़्टवेयर के रूप में उपयोग के लिए उपलब्ध है। यह पृष्ठ आपको बताता है कि आपको बाल्सा को डाउनलोड करने और चलाने के लिए क्या चाहिए और फिर यह कैसे करना है इसके निर्देश बताता है।

Balsa कंप्यूटर पर चलने के लिए SD कार्ड का उपयोग करता है। Balsa को चलाने के लिए उपयोग करने से पहले SD कार्ड में Balsa सिस्टम लगाना आवश्यक है।

आप एक कंप्यूटर पर Balsa SD कार्ड बना सकते हैं और उसे दूसरे कंप्यूटर पर चला सकते हैं। जिस कंप्यूटर पर आप इसे बनाते हैं, उसे Balsa चलाने की आवश्यकता नहीं है।

बाल्सा चलाने के लिए आपको क्या चाहिए

बाल्सा चलाने के लिए, आपको निम्नलिखित की आवश्यकता होगी:

बाल्सा एसडी कार्ड बनाने के लिए, जिस कंप्यूटर पर आप इसे बनाते हैं, उसे कार्ड बनाते समय 5 या 9 गीगाबाइट जगह की आवश्यकता होगी।

एसडी कार्ड रीडर के बारे में एक नोट

कुछ पुराने लैपटॉप पर, एसडी रीडर 4 या 8 गीगाबाइट एसडी कार्ड को संभाल नहीं सकता है। कुछ डेल कंप्यूटर द्वारा उपयोग किए जाने वाले अन्य एसडी कार्ड रीडर बाल्सा सिस्टम के साथ काम नहीं करते हैं। इनमें से किसी भी मामले में, Balsa को एक अलग USB SD कार्ड रीडर पर चलाया जा सकता है।

बाल्सा एसडी कार्ड 4 या 8 गीगाबाइट संस्करणों में आते हैं। कोई भी संस्करण विंडोज़ या लिनक्स मशीन पर बनाया जा सकता है। विंडोज़ और लिनक्स दोनों कार्ड के लिए एक ही डाउनलोड की गई फ़ाइल का उपयोग करते हैं, और जो कार्ड बनाया जाएगा वह दूसरे सिस्टम के समान होगा। इनमें से एक चुनें.

PHP कई फ़ंक्शन प्रदान करता है जो एक स्ट्रिंग को दूसरे के भीतर खोजते हैं। कुछ पाए गए स्ट्रिंग (strpos, strrpos और संबंधित) का स्थान लौटाते हैं, और मूल स्ट्रिंग (strstr और strrchr) का हिस्सा लौटाते हैं। यदि आप जिस स्ट्रिंग को खोज रहे हैं वह मूल में नहीं मिलती है तो खोज फ़ंक्शन गलत रिटर्न देता है।

यदि आपका लक्ष्य केवल यह निर्धारित करना है कि एक स्ट्रिंग दूसरे के भीतर मौजूद है या नहीं, तो सबसे प्रभावी विकल्प strpos है।

strpos

स्ट्रॉप्स फ़ंक्शन अपने पहले स्ट्रिंग तर्क को दूसरे के लिए खोजता है और स्ट्रिंग के भीतर पहले मिलान का शून्य-आधारित सूचकांक स्थान लौटाता है, या यदि यह नहीं मिलता है तो गलत लौटाता है। निम्नलिखित उदाहरण दर्शाता है:

$str = ; // $str के भीतर "आवश्यकता" की पहली घटना खोजें$pos = strpos($str, "आवश्यकता"); // $pos का प्रदर्शन प्रकार और मूल्य var_dump ($pos); // पूर्णांक(3)

हालाँकि हमने ऊपर var_dump का उपयोग करके परिणाम प्रदर्शित किया है, स्ट्रॉप्स के लिए रिटर्न मान की एक विशिष्ट परीक्षा निम्नानुसार की जाती है:

// स्ट्रॉप्स रिटर्न वैल्यू ($pos) का निरीक्षण कैसे करेंयदि ($pos !== false ) ( // यदि खोज स्ट्रिंग में echo "इसे $pos स्थान पर पाया गया" ; ) अन्यथा ( echo "नहीं मिला" ; )

स्ट्रॉप्स फ़ंक्शन के रिटर्न मान की तुलना गलत से करने के लिए === या !== ऑपरेटरों का उपयोग करना सुनिश्चित करें। यदि स्ट्रिंग की शुरुआत में सबस्ट्रिंग पाया जाता है, तो स्ट्रॉप्स 0 लौटाएगा, जो == या != ऑपरेटर्स असत्य में परिवर्तित हो जाएगा।

आप स्ट्रिंग की शुरुआत से वर्णों की निर्दिष्ट संख्या में खोज शुरू करने के लिए एक ऑफसेट निर्दिष्ट कर सकते हैं, जैसा कि यह उदाहरण दर्शाता है:

/* स्ट्रॉप्स तर्क: * विषय स्ट्रिंग (उर्फ हेस्टैक), खोज स्ट्रिंग (सुई), ऑफसेट (वैकल्पिक) */ // $str में वर्ण 10 से "ज़रूरत" की खोज शुरू करें$pos = strpos ($str , "आवश्यकता" , 10 ) ; //20

वर्ण 10 से खोज शुरू करने पर, परिणाम 20 होता है, जो शब्द सुई की शुरुआत का सूचकांक स्थान है।

strrpos

स्ट्रेप्स फ़ंक्शन एक स्ट्रिंग में सबस्ट्रिंग की अंतिम घटना की स्थिति का पता लगाता है:

// खोजों के लिए उपयोग करने के लिए उदाहरण स्ट्रिंग$str = "हमें भूसे के ढेर में सुई ढूंढनी होगी।"; // $str में "आवश्यकता" की अंतिम घटना का स्थान ढूंढें$pos = strrpos ($str , "आवश्यकता" ); //20

स्ट्रेप्स फ़ंक्शन एक वैकल्पिक ऑफसेट पैरामीटर भी प्रदान करता है जो सकारात्मक या नकारात्मक हो सकता है। यदि ऑफसेट सकारात्मक है, तो स्ट्रिंग की शुरुआत में वर्णों की संख्या को खोज से बाहर रखा जाएगा। निम्नलिखित उदाहरण पर विचार करें:

// पहले तीन अक्षरों को छोड़कर दाईं ओर से "हम" खोजें$pos = strrpos ($str , "हम" , 3 ) ; var_dump ($pos); //बूल(झूठा)

परिणाम ग़लत है क्योंकि जब खोज से पहले तीन अक्षर हटा दिए जाते हैं तो "हम" नहीं मिलता है।

यदि ऑफसेट नकारात्मक है, तो स्ट्रिंग के अंत में मौजूद कई अक्षर खोज से बाहर कर दिए जाते हैं। हम नकारात्मक ऑफसेट निर्दिष्ट करने वाली दो खोजों के साथ प्रदर्शित करते हैं:

// अंतिम 5 अक्षरों को छोड़कर दाईं ओर से "hay" खोजें$pos = strrpos ($str , "hay" , - 5 ) ; // पूर्णांक(34) // अंतिम 10 वर्णों को छोड़कर दाईं ओर से खोजें$pos = strrpos ($str , "hay" , - 10 ); //बूल(झूठा)

उपरोक्त अंतिम परिणाम ग़लत है क्योंकि जब खोज से अंतिम 10 अक्षर हटा दिए जाते हैं तो "हे" नहीं मिलता है।

ध्यान दें कि strrpos फ़ंक्शन का रिटर्न मान स्ट्रिंग की शुरुआत से स्थान देता है, भले ही खोज दाईं ओर से शुरू होती है।

स्ट्राइपोज़ और स्ट्राइपोज़

स्ट्रॉप्स और स्ट्रॉप्स फ़ंक्शन केस-संवेदी खोज करते हैं। PHP केस-असंवेदनशील खोज करने के लिए स्ट्रिपोस और स्ट्रिपोस फ़ंक्शन प्रदान करता है। वे अपने केस-संवेदी समकक्षों की तरह ही काम करते हैं:

// खोजों के लिए उपयोग करने के लिए उदाहरण स्ट्रिंग$str = "हमें भूसे के ढेर में सुई ढूंढनी होगी।"; // "हम" के लिए केस-असंवेदनशील खोज करें$pos = स्ट्रिपोस($str, "हम"); // पूर्णांक(0) // "आवश्यकता" के लिए दाईं ओर से केस-असंवेदनशील खोज करें$pos = strripos($str, "आवश्यकता"); // पूर्णांक(20)

"हम" के लिए केस-असंवेदनशील खोज का परिणाम 0 है, जो दर्शाता है कि यह उस स्ट्रिंग की शुरुआत में पाया गया था जिसे हम खोज रहे हैं। दाईं ओर से "आवश्यकता" के लिए केस-असंवेदनशील खोज (स्ट्रिपोस का उपयोग करके), इसे स्थान 20 पर पाती है।

strstr

स्ट्रस्ट्र फ़ंक्शन पहले स्ट्रिंग तर्क को दूसरे के लिए खोजता है। यदि दूसरा पहले के भीतर पाया जाता है, तो strstr मूल स्ट्रिंग का वह भाग लौटाता है जो पहली पाई गई घटना से शुरू होकर स्ट्रिंग के अंत तक होता है।

// उदाहरण स्ट्रिंग $str = "हमें भूसे के ढेर में सुई ढूंढनी होगी।"; // $str $newstr = strstr ($str , "the" ) में "the" खोजें; var_dump ($newstr); // स्ट्रिंग(27) "भूसे के ढेर में सुई।"

स्ट्रस्ट्र फ़ंक्शन शेष मूल स्ट्रिंग के साथ, पाया गया पहला "द" लौटाता है।

यदि आप strstr के तीसरे तर्क के रूप में true पास करते हैं, तो मूल स्ट्रिंग का भाग पहलेपाया गया स्ट्रिंग वापस कर दिया गया है:

// "द" से पहले $str का हिस्सा वापस करने के लिए सही पास करें$newstr = strstr ($str , "the" , true ); var_dump ($newstr); // स्ट्रिंग(16) "हमें ढूंढना होगा"

इस बार strstr फ़ंक्शन स्ट्रिंग में पहले "द" से पहले सब कुछ लौटाता है।

PHP स्ट्रिस्टर फ़ंक्शन भी प्रदान करता है जो बिल्कुल स्ट्रस्ट्र के समान ही काम करता है, सिवाय इसके कि यह केस-असंवेदनशील खोज करता है।

strhrchr

Strchr फ़ंक्शन उस वर्ण के लिए दाईं ओर से पहला स्ट्रिंग तर्क खोजता है जिसे हम दूसरे तर्क में निर्दिष्ट करते हैं। फ़ंक्शन उस वर्ण के पाए गए उदाहरण के स्थान से स्ट्रिंग के अंत तक स्ट्रिंग का भाग लौटाता है:

// उदाहरण स्ट्रिंग $str = "हमें भूसे के ढेर में सुई ढूंढनी होगी।"; // $str में दाईं ओर से "s" खोजें$newstr = strstr ($str , "s" ); var_dump ($newstr); // स्ट्रिंग(6) "स्टैक।"

ध्यान दें कि strstr के विपरीत, यदि दूसरे तर्क में एकाधिक वर्ण होते हैं, तो केवल पहले का उपयोग किया जाता है:

// बहु-चरित्र वाले दूसरे तर्क के साथ परीक्षण करें$newstr = strrchr ($str , "the" ); var_dump ($newstr); // स्ट्रिंग(5) "कील।"

"घास का ढेर" लौटाने के बजाय, स्ट्रचर फ़ंक्शन "टैक" लौटाता है, खोज के लिए दूसरे तर्क का केवल पहला अक्षर लागू करता है।

नमस्ते, हबर!

आज मैं नौसिखिया वेबमास्टरों को PHP में आउटपुट बफ़रिंग का उपयोग करने के विभिन्न साफ-सुथरे तरीकों से परिचित कराना चाहता हूँ। अनुभवी वेबमास्टरों को यहां कुछ भी उपयोगी मिलने की संभावना नहीं है। हालाँकि - कौन जानता है?

जैसा कि आप सभी जानते हैं, php में आउटपुट बफ़रिंग को "ob_" से शुरू होने वाले फ़ंक्शंस के एक सेट द्वारा नियंत्रित किया जाता है। उनमें से सबसे महत्वपूर्ण है ob_start. लॉन्च होने पर, यह बाद के आउटपुट, यानी सभी प्रकार के प्रिंट(), इको इत्यादि एकत्र करता है, जिसे बाद में विज़िटर को HTML पेज के रूप में दिया जाता है। और यदि हमने आउटपुट देने से पहले बफरिंग शुरू कर दी, तो हम अंततः इस लगभग तैयार पेज के साथ कुछ कर सकते हैं।


उदाहरण के लिए, हम बाहरी साइटों के सभी लिंक फ़िल्टर करना चाहते हैं।

हमारा मंच, आस्ट्रेलोपिथेकस की कुल्हाड़ी जितना पुराना है, जिसमें बड़ी संख्या में स्पैमर्स की भरमार है, जो आगंतुकों को व्यभिचार, एक-सशस्त्र डाकुओं और राजनीतिक आंदोलन से भरे स्थानों पर लुभाते हैं। हम ट्रैकिंग के साथ js का उपयोग कर सकते हैं, लेकिन हम इसके बजाय इन सभी लिंक को इस तरह बदलना चाहते हैं:

"http://blackjack-hookers.com" => "http://myoldforum.ru/redirect.php?url=blackjack-hookers.com"

विधि सबसे प्रभावी नहीं हो सकती है, लेकिन यह प्रभावी है। हमने एक फ़िल्टर और एक ब्लैकलिस्ट के साथ रीडायरेक्ट.php लिखा, और अब हमें हजारों फ़ोरम पृष्ठों पर सभी लिंक को परिवर्तित करने की आवश्यकता है। ob_start और कुछ रेगुलर एक्सप्रेशन का उपयोग करके, हम इसे केवल कुछ पंक्तियों में कर सकते हैं:

फ़ंक्शन f_callback($buffer)( $buffer = preg_replace('#http://(www.)?myoldforum\.ru/#','/',$buffer); $buffer = preg_replace('#href='http ://([^"]*)"#","#href="/redirect\.php\?url=$1",$buffer); return $buffer; ) ob_start(f_callback);

अब, इस कोड को Index.php, या किसी अन्य फ़ाइल की शुरुआत में शामिल करके, जिसे सर्वर पेज देखते समय एक्सेस करता है, हमें वह मिलेगा जो हमें चाहिए।

इस तरह से सामग्री को बदलने से, हम इंजन के तरीकों तक सीमित नहीं हैं। यह बहुत मूल्यवान हो सकता है. उदाहरण के लिए, आप एक प्लगइन जोड़ सकते हैं:

फ़ंक्शन जेनरेट_प्लगइन() ( /*कुछ जेनरेट करें*/ ) फ़ंक्शन f_callback($buffer)( /*...*/ $buffer = str_replace ("",generate_plugin(),$buffer); /*...*/ return $buffer; ) ob_start("f_callback");

अब, जहां हमने सामग्री जोड़ी है, वहां वही दिखाई देगा जो हम चाहते थे। एप्लिकेशन में से एक वेबसाइट पेज पर जेएस विजेट सम्मिलित कर रहा है। उदाहरण के लिए, यांडेक्स मानचित्र। आमतौर पर यह मुश्किल नहीं है, लेकिन कभी-कभी एक खराब तरीके से लिखा गया वेबसाइट पेज संपादक विजेट को तोड़ते हुए उद्धरणों और घुंघराले ब्रेसिज़ से बच जाता है। जैसा कि आप देख सकते हैं, यह समस्या आसानी से हल हो गई है।

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

(बड़ी पागलपन भरी चीज़ उत्पन्न करें)

आपने पहले से ही इन सभी वाक्यांशों पर ध्यान दिया होगा: "मैं इसमें शामिल नहीं होना चाहता," "एक टायरानोसॉरस कुर्सी जितनी प्राचीन," "एक टेढ़ा लिखा हुआ संपादक"... एक आदर्श दुनिया में, आउटपुट बफर के चारों ओर गोले होते हैं जरूरत नहीं। सब कुछ जो ob_start के साथ किया जा सकता है, सैद्धांतिक रूप से इसके बिना भी किया जा सकता है। यह तकनीक कभी-कभी प्रोजेक्ट कोड में भ्रम पैदा करती है; कई लोग इसका अर्थ केवल संपीड़न के लिए आउटपुट को ob_gzhandler पर भेजने में देखते हैं, और अन्य मामलों में इसके उपयोग को खतरनाक मानते हैं। लेकिन अक्सर आप आउटपुट नियंत्रण के बिना काम नहीं कर सकते।

विशेषकर यदि आप अधिक गहराई तक नहीं जाना चाहते।

(पीएचपी 4, पीएचपी 5, पीएचपी 7)

ओबी_स्टार्ट - आउटपुट बफ़रिंग सक्षम करें

विवरण

बूल ob_start ([ प्रतिदेय$आउटपुट_कॉलबैक = व्यर्थ [, पूर्णांक $chunk_size = 0 [, int $flags = PHP_OUTPUT_HANDLER_STDFLAGS ]]])

यह फ़ंक्शन आउटपुट बफ़रिंग को सक्षम बनाता है। यदि आउटपुट बफ़रिंग सक्रिय है, तो स्क्रिप्ट आउटपुट नहीं भेजा जाता है (हेडर को छोड़कर), लेकिन आंतरिक बफ़र में संग्रहीत किया जाता है।

इस आंतरिक बफ़र की सामग्री को स्ट्रिंग वेरिएबल का उपयोग करके कॉपी किया जा सकता है ob_get_contents(). आंतरिक बफ़र की सामग्री को आउटपुट करने के लिए आपको इसका उपयोग करना चाहिए ob_end_flush(). वैकल्पिक रूप से आप उपयोग कर सकते हैं ob_end_clean()बफ़र की सामग्री को नष्ट करने के लिए.

ध्यान

कुछ वेब सर्वर (उदाहरण के लिए अपाचे) कॉलबैक फ़ंक्शन कॉल करने पर स्क्रिप्ट की कार्यशील निर्देशिका को बदल देते हैं। आप इसका उपयोग करके इसे वापस पा सकते हैं chdir(dirname($_SERVER["SCRIPT_FILENAME"]))कॉलबैक फ़ंक्शन में।

आउटपुट बफ़र्स को स्टैक पर धकेल दिया जाता है, जिसका अर्थ है कि कॉल की अनुमति है ob_start()दूसरे को सक्रिय कॉल करने के बाद ob_start(). ऐसे में कॉल करना जरूरी है ob_end_flush()उचित संख्या में बार. यदि एकाधिक कॉलबैक फ़ंक्शन सक्रिय हैं, तो आउटपुट उनमें से प्रत्येक के लिए नेस्टिंग क्रम में क्रमिक रूप से फ़िल्टर किया जाता है।

मापदंडों की सूची

एक वैकल्पिक आउटपुट_कॉलबैक पैरामीटर निर्दिष्ट किया जा सकता है। यह फ़ंक्शन एक स्ट्रिंग को एक तर्क के रूप में लेता है और उसे एक स्ट्रिंग भी वापस करनी होगी। इसे रीसेट (भेजें) या क्लीनअप (उपयोग) करते समय कहा जाता है ob_flush(), ob_clean()या समान फ़ंक्शन) या यदि आउटपुट बफ़र अनुरोध के अंत में ब्राउज़र में फ्लश किया जाता है। जब आउटपुट_कॉलबैक फ़ंक्शन को कॉल किया जाता है, तो यह बफ़र की सामग्री प्राप्त करता है और आउटपुट बफ़र को ब्राउज़र में भेजने के लिए उसे अद्यतन सामग्री वापस करनी होगी। यदि आउटपुट_कॉलबैक एक वैध फ़ंक्शन नहीं है, तो दस्तावेज़ीकृत फ़ंक्शन वापस आ जाएगा असत्य. इस पैरामीटर के लिए फ़ंक्शन विवरण:

डोरी हैंडलर (स्ट्रिंग $बफर [, int $phase ])

बफर आउटपुट बफ़र की सामग्री.चरण स्थिरांक का बिट मास्क PHP_OUTPUT_HANDLER_*.

यदि आउटपुट_कॉलबैक वापस आता है असत्य, तो मूल जानकारी बिना किसी बदलाव के ब्राउज़र पर भेज दी जाएगी।

आउटपुट_कॉलबैक पैरामीटर को मान पास करके अनदेखा किया जा सकता है व्यर्थ.

ob_end_clean(), ob_end_flush(), ob_clean(), ob_flush()और ob_start()कॉलबैक फ़ंक्शंस से नहीं बुलाया जा सकता, क्योंकि उनका व्यवहार अप्रत्याशित है। यदि आप बफ़र की सामग्री को हटाना चाहते हैं, तो कॉलबैक फ़ंक्शन से "" (एक खाली स्ट्रिंग) लौटाएँ। आप फ़ंक्शंस को भी कॉल नहीं कर सकते print_r($अभिव्यक्ति, सत्य)या हाइलाइट_फ़ाइल($फ़ाइलनाम, सत्य)आउटपुट बफ़रिंग कॉलबैक फ़ंक्शंस से।

टिप्पणी:

PHP 4.0.4 में फ़ंक्शन ob_gzhandler()संपीड़ित वेब पेजों का समर्थन करने वाले वेब ब्राउज़र पर gz-एन्कोडेड डेटा भेजना आसान बनाने के लिए पेश किया गया था। ob_gzhandler()ब्राउज़र द्वारा स्वीकृत सामग्री एन्कोडिंग प्रकार को निर्धारित करता है और तदनुसार आउटपुट देता है।

खंड आकार

यदि वैकल्पिक चंक_साइज़ पैरामीटर पारित किया गया है, तो चंक_साइज़ आकार से अधिक या उसके बराबर किसी भी आउटपुट के बाद बफर को फ्लश कर दिया जाएगा। डिफ़ॉल्ट मान 0 इसका मतलब है कि बफ़र बंद होने पर आउटपुट फ़ंक्शन कॉल किया जाएगा।

PHP 5.4.0 से पहले, मान 1 एक विशेष मान था जो पैरामीटर सेट करता था खंड आकार 4096 पर.

फ़्लैग्स पैरामीटर एक बिटमास्क है जो आउटपुट बफ़र पर किए जा सकने वाले संचालन को नियंत्रित करता है। डिफ़ॉल्ट रूप से, यह आउटपुट बफ़र को फ्लश, फ्लश और डिलीट करने की अनुमति देता है, जो | के समान है | , या PHP_OUTPUT_HANDLER_STDFLAGSइस संयोजन के संक्षिप्त रूप के रूप में।

प्रत्येक ध्वज कार्यों के एक सेट तक पहुंच को नियंत्रित करता है, जैसा कि नीचे वर्णित है:

स्थिर कार्य
PHP_OUTPUT_HANDLER_CLEANABLE ob_clean(), ob_end_clean(), और ob_get_clean().
PHP_OUTPUT_HANDLER_FLUSHABLE ob_end_flush(), ob_flush(), और ob_get_flush().
PHP_OUTPUT_HANDLER_REMOVABLE ob_end_clean(), ob_end_flush(), और ob_get_flush().

मान लौटाएँ

रिटर्न सत्यसफल समापन पर या असत्यत्रुटि होने पर.

परिवर्तनों की सूची

संस्करण विवरण
7.0.0 अगर ob_start()आउटपुट बफ़र कॉलबैक फ़ंक्शन के अंदर उपयोग किया गया, यह फ़ंक्शन अब कोई त्रुटि उत्पन्न नहीं करेगा E_ERROR, लेकिन इसके बजाय कॉल करेंगे E_RECOVERABLE_ERROR, तीसरे पक्ष के त्रुटि संचालकों को इसे पकड़ने की अनुमति देता है।
5.4.0 तीसरा पैरामीटर ob_start()बूलियन से बदला गया ( बूलियन) मिटाए गए पैरामीटर का (जो, जब सेट किया जाता है असत्यस्क्रिप्ट पूर्ण होने तक बफ़र को हटाए जाने से रोका गया) एक पूर्णांक तक ( पूर्णांक) झंडे पैरामीटर। दुर्भाग्य से, इसका मतलब उस कोड के लिए एपीआई असंगति है जो PHP 5.4.0 से पहले तीसरे पैरामीटर का उपयोग करता था। कोड के साथ कैसे काम करें यह समझने के लिए फ़्लैग उदाहरण देखें ताकि यह दोनों संस्करणों के साथ संगत हो।
5.4.0 पैरामीटर खंड आकार, में स्थापित 1 , अब आउटपुट बफ़र में 1 बाइट आउटपुट होता है।
4.3.2 फ़ंक्शन वापस आ जाएगा असत्ययदि आउटपुट_कॉलबैक निष्पादित नहीं किया जा सकता है।

उदाहरण

उदाहरण #1 उपयोगकर्ता-परिभाषित कॉलबैक फ़ंक्शन का उदाहरण

फ़ंक्शन कॉलबैक ($बफ़र)
{
// सभी सेबों को संतरे से बदलें
वापसी (str_replace("सेब", "संतरे", $buffer));
}

ओबी_स्टार्ट ("कॉलबैक");

?>


यह सेब और संतरे की तुलना करने जैसा है।






ob_end_flush();