2011-10-26 17 views
6

1 के पास उदाहरण के लिए एक पाठ है:समारोह है कि एक शब्द पर प्रकाश डाला और पाठ निकाल यह

भी नरम प्रदर्शन के साथ malesuada गेट सलाद। पहले निष्फल प्रोटीन रखा गया था घर के बाहर केले बिछाने के लिए पूरे। यहां तक ​​कि मुलायम प्रदर्शन के साथ malesuada गेट सलाद। फुटबॉल की तुलना में जैस्मीन शेर। पोषण फुटबॉल टेलीविजन स्कर्ट और जहरीली गैस। Fusce dapibus, Tellus एसी cursus commodo, tortor ट्रैकिंग condimentum nibh, केन्द्र शासित प्रदेशों किण्व मस्सा जूस्तो अमेट RISUS बैठते हैं।

एक तरकश प्रचार का कोई मुफ्त डेवलपर। हमेशा फेलिस euismod रसोई आईडी पंखुडी के फाटक के। रसोई आईडी पंखुडी पोर्ट फेलिस euismod सेम्पर। विभिन्न सिट-लेकिन Sed एक बहुत मुस्कान, महान नहीं। PakSoft सुरक्षित गेट ट्रिगर प्रदर्शन बार। जहरीला प्रोटीन आउटडोर केले द्वारा सेट बिछाने के लिए पूरे।

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

कि पाठ एक खोज मेरी वेबसाइट में प्रदर्शन पर विवरण के रूप में प्रकट होता है और मैं एक शब्द/स्ट्रिंग पर प्रकाश डाला और उसके आगे स्थित पाठ निकालने में सक्षम होना चाहता हूँ।

मुझे यकीन है कि नहीं कर रहा हूँ सबसे अच्छा तरीका है PHP (शायद) हो या सिर्फ एक फ़ोटोशॉप समारोह का उपयोग करेगा। 1 जानते हैं कि कैसे में फ़ोटोशॉप एक शब्द लेकिन यकीन है कि कैसे पाठ निकालने के लिए नहीं पर प्रकाश डाला।

इस उदाहरण मैं वर्णन के रूप में दिखाने के लिए क्योंकि मेरे स्ट्रिंग की खोज कर रहा है "टमाटर मिर्च" निम्न पाठ चाहते हैं

.... आउटडोर aliquet.Cras टमाटर मिर्च गाजर किण्वन का एक बहुत डाल दिया। यहां तक ​​कि दरवाजा ....

आप im न केवल हाइलाइट किए गए शब्द दिखा लेकिन यह भी कुछ ग्रंथों से पहले और इसके बाद देख। क्या सबसे अच्छा तरीका यह पूरा करने के हो सकता है?

मैं अपनी वेबसाइट में खोज इंजन के रूप संतुलन की बेंत की मार से बाहर का उपयोग कर रहा है और cgi के अपने knoledge रिक्त है तो मैं php तरह से कोशिश करने के लिए पसंद करते हैं।

अपने सभी मदद

+0

str_replace ($ शब्द, "$ शब्द", $ परिणाम)? – elibyy

+0

लेकिन वह अभी भी पूरे पाठ को वापस कर देगा, मैं बस इसका सारांश निकालना चाहता हूं। मिलान किए गए शब्द से पहले और बाद में शायद 10 शब्द/100 वर्ण। – chifliiiii

उत्तर

5
PHP में एक नियमित अभिव्यक्ति (आप जावास्क्रिप्ट में एक ही है, हालांकि कर सकता है) का उपयोग कर

$regex = '/([A-Za-z0-9.,-]+\s*){0,5}\sconsectetur purus(\s|[,.!?])(\s*[A-Za-z0-9.,-]+){0,5}/'; 
preg_match($regex, $content, $matches); 
echo $matches[0]; 

यह 0-5 शब्द, 0-5 शब्द के बाद अक्षरांकीय वर्ण या .,- में से एक (इस finetune) शब्द आप देख रहे हैं (के साथ या अंत में विराम चिह्न के बिना) के बाद का उपयोग करके बनाया से मेल खाता है । यह मध्य में एक शब्द कभी नहीं तोड़ देगा क्योंकि एक निश्चित राशि तक पहुंच जाती है।

आउटपुट:

पूछताछ का velit aliquet।

क्रॉस मैटिस consectetur purus sit amet fermentum बैठो। एटियम पोर्ट

अब आप इसे फिर से शुरू कर सकते हैं, उदा। \n हटाएं, ... जोड़ें, consectetur purus पर प्रकाश डालें ...

+0

धन्यवाद बहुत कुछ यह चाल है। मैं आपको पूछता हूं कि अगर मैं पाठ में एक से अधिक बार प्रकट होता हूं तो मैं कैसे करता हूं। क्या मैं उन्हें सभी टुकड़ों को निकालने के लिए निकालने के लिए निकाल सकता हूं? – chifliiiii

+0

@chifliiiii आप preg_match_all – middus

+0

को फिर से देखना चाहते हैं धन्यवाद, मैं – chifliiiii

1

यह कैसे आप अनुरोध और जिस तरह खोज इंजन काम करता है खोजने के बाद आपके जवाब पाने पर निर्भर करता है के लिए धन्यवाद।

आप कर रहे हैं लक्ष्य खोज "टाइपिंग पर" है, "गूगल" की तरह हैं है - तो यह स्थानांतरित डेटा में कटौती करने और कम यातायात बर्बाद करने के लिए PHP द्वारा इसे बनाने के लिए बेहतर होगा।

अन्यथा, यदि आप एक प्रतिक्रिया के रूप में पूरे पाठ मिलता है और लोड के बारे में कोई आपत्ति नहीं है - जे एस रेगुलर एक्सप्रेशन का उपयोग कर या string.charAt(int) गिनती के साथ करते हैं।

+0

हां पाठ को पहले से लोड किया गया जैसा आपने सोचा था। क्या आप जावास्क्रिप्ट के साथ इसे कैसे करें पर कुछ प्रकाश दे सकते हैं? – chifliiiii

+0

var x = x.replace ("([\ S] {, INT_CHARS_TO_LEFT})" + शब्द + "([\ S] {, INT_CHARS_TO_RIGHT})", "... $ 1 " + शब्द + " $ 2। .. "); –

+0

@chifliiiii वैकल्पिक रूप से, मेरे उत्तर में पोस्ट किए गए रेगेक्स में देखें। – middus

0

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

$lorumIpsum = "three paragraps of lrum ipsum"; 
TextSnippet::createSnippet('Lorem', $lorumIpsum); 

यह निम्न पाठ में परिणाम होगा:

में प्रकाशित किया Ipsum मातम AMET बैठते, consectetur adipiscing elit। ... एटियम बिबेंडम लोरेम एनईसी टेम्पस sollicitudin। ... डेपिबस लोरेम में सेड। ... Nunc turpis ipsum, bibendum quis sodales sed, ullamcorper et lorem। Donec et metus hendrerit, interdum elit ut, dignissim dui।

कक्षा अलस हाइलाइट करने के लिए एचटीएमएल टैग सेट करने का समर्थन करता है, और मिनी- और अधिकतम शब्द स्निपेट को फॉपर करता है।

गीथब पर swisnl/textsnippet देखें।

संबंधित मुद्दे