में टैग लिंक के साथ शब्दों को प्रतिस्थापित करना मेरे पास एक टेक्स्ट ($text
) और शब्दों की एक सरणी ($tags
) है। पाठ में ये शब्द अन्य पृष्ठों के लिंक के साथ प्रतिस्थापित किए जाने चाहिए ताकि वे टेक्स्ट में मौजूदा लिंक को तोड़ न सकें। केकेपीएचपी में टेक्स्टहेल्पर में ऐसा करने के लिए एक विधि है लेकिन यह दूषित है और यह पाठ में मौजूदा HTML लिंक को तोड़ देता है। विधि इस तरह काम करने के लिए लगता है:PHP
function highlight($text, $phrase, $highlighter = '<span class="highlight">\1</span>', $considerHtml = false) {
if (empty($phrase)) {
return $text;
}
if (is_array($phrase)) {
$replace = array();
$with = array();
foreach ($phrase as $key => $value) {
$key = $value;
$value = $highlighter;
$key = '(' . $key . ')';
if ($considerHtml) {
$key = '(?![^<]+>)' . $key . '(?![^<]+>)';
}
$replace[] = '|' . $key . '|ix';
$with[] = empty($value) ? $highlighter : $value;
}
return preg_replace($replace, $with, $text);
} else {
$phrase = '(' . $phrase . ')';
if ($considerHtml) {
$phrase = '(?![^<]+>)' . $phrase . '(?![^<]+>)';
}
return preg_replace('|'.$phrase.'|i', $highlighter, $text);
}
}
मैं हाइलाइटिंग के बारे में नहीं पूछ रहा हूं। कृपया प्रश्न पढ़ें। – Amorphous
क्या आप देखने के लिए नमूना '$ टेक्स्ट' प्रदान करेंगे? जब मैं इसका परीक्षण करता हूं तो कोड ठीक काम करता है। मैं कहूंगा कि यह हो सकता है कि आप जिस 'टैग टैग' को प्रतिस्थापित करना चाहते हैं, पहले से परिभाषित '