Заменить указанное слово в строке, содержащей элементы HTML, если оно не найдено в значении атрибута title тега .Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Заменить указанное слово в строке, содержащей элементы HTML, если оно не найдено в значении атрибута title тега .

Сообщение Anonymous »

Рассмотрите эту строку
hello awesome stuff stuff

Какое регулярное выражение можно использовать для сопоставления любого появления Awesome, которое не отображается в атрибуте заголовка привязки?
Пока что у меня получилось вот что (к сожалению, не работает)
/[^."]*(awesome)[^."]*/i

Изменить
Я воспользовался советом Алана М. и использовал регулярное выражение, чтобы захватить каждое слово и отправить его в обратный вызов. Спасибо Алан М за ваш совет. Вот мой окончательный код.
$plantDetails = end($this->_model->getPlantById($plantId));

$botany = new Botany_Model();
$this->_botanyWords = $botany->getArray();
foreach($plantDetails as $key=>$detail) {
$detail = preg_replace_callback('/\b[a-z]+\b/iU', array($this, '_processBotanyWords'), $detail);
$plantDetails[$key] = $detail;
}

И _processBotanyWords()...
private function _processBotanyWords($match) {
$botanyWords = $this->_botanyWords;
$word = $match[0];
if (array_key_exists($word, $botanyWords)) {
return '' . $word . '';
} else {
return $word;
}
}


Подробнее здесь: https://stackoverflow.com/questions/805 ... found-in-t
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»