|
|
|
| Здравствуйте.
<?php
// Допустим есть такой массив:
$keywords = array("Вася", "Петя", "Рома");
// Есть строка:
$str = "Вася дружит с Петей, а не с Ромой";
// Ищем соответствие в массиве
$strin = in_array($keywords, $str);
?>
|
А теперь вопрос.
Как мне выделить в строке(к примеру андерлайном) значения совпадающие со значениями в массиве???
Заранее спасибо. :) | |
|
|
|
|
|
|
|
для: hell_riser
(14.06.2006 в 18:04)
| | можно вот так:
<?php
$keywords = array("Вася", "Петя", "Рома");
$str = "Вася дружит с Петей, а не с Ромой";
for($i=0;$i<count($keywords);$i++)
{
$str = str_replace("$keywords[$i]","<u>$keywords[$i]</u>",$str);
}
echo $str;
?>
|
PS Заменяет только точные совпадения. Напрмер: в данном примере "Вася" в массиве равен "Вася" в строчке, но "Петя" в массиве не равен "Петей" в строчке.
PSS Можно попробовать исправить это с помощью рег.выражений. | |
|
|
|
|
|
|
|
для: NFR
(14.06.2006 в 21:30)
| | Спасибо мне и надо точное схождение, только вот желательно без учёта регистра. | |
|
|
|
|
|
|
|
для: hell_riser
(14.06.2006 в 22:58)
| | Без учёта регистра:
<?php
$keywords = array("/Вася/i", "/Петя/i", "/Рома/i");
$str = "Вася дружит с Петей, а не с Ромой";
for($i=0;$i<count($keywords);$i++)
{
$str = ereg_replace("$keywords[$i]","<u>$keywords[$i]</u>",$str);
}
echo $str;
?>
|
| |
|
|
|
|
|
|
|
для: NFR
(15.06.2006 в 10:01)
| | Спасибо я нашёл другую функцию (str_ireplace) .
<?php
$keywords = array("Вася", "Петя", "Рома");
$str = "Вася дружит с Петей, а не с Ромой";
for($i=0;$i<count($keywords);$i++)
{
// проверка проходит без учёта регистра
$mess = str_ireplace("$keywords_php[$i]","<font color='#184800'><b>$keywords[$i]</b></font>",$str);
}
?>
|
| |
|
|
|