(PHP) 10 слева "текст" 10 справа

Geen
Дата: 11.10.2006 16:15:34
Рискуя вызвать бурю эмоций - прошу растолковать.

$a - кусок текста
$b - некое слово

задача - вывести 10 символов слева от $b, $b и 10 символов справа

я, как честный человек начал играться с
strrpos()
substr()

но, готов признать, - я тупой программист.
поясните алгоритм на пальцах? (я совсем запутался в этих параметрах всех)
Alexey Lapusta
Дата: 11.10.2006 16:33:42
<?
$text = "qwertyuiopasdfg hello hjklzxcvbnm";
$search = "hello";
echo substr($text, strpos($text, $search) - 10, strlen($search) + 20); // uiopasdfg hello hjklzxcvb
?>

Это?
DBug
Дата: 11.10.2006 16:40:40
preg_match("/(.*{10}$b.*{10})/", $a, $match);

Попробуй как-нибудь так. Но не уверен, что для системы такой вариант будет менее ресурсоемким, чем strpos().
Geen
Дата: 11.10.2006 16:42:41
ага, спасибо - почти

только теперь из одной строки 2 нужно сделать, т.к.

$b она же $search
должна выводится например другим цветом (цвет вывести не вопрос)

я так понимаю три строки будет...

Geen
DBug
Дата: 11.10.2006 16:48:04
извиняюсь ошибочка Вот так должно работать
preg_match("/.{10}$search.{10}/", $text, $match);
DBug
Дата: 11.10.2006 16:52:10
только теперь из одной строки 2 нужно сделать, т.к.

зачем две строки?
echo "<span style="color: #c5c5c5">$match</span>";
DBug
Дата: 11.10.2006 16:55:49
опять поторопился ))) не $match, а $match[0]
поскольку результат поиска - массив
Geen
Дата: 11.10.2006 17:06:16
окончательный вариант:

echo substr($text, strpos($text, $search) - 10, 10);
echo " <font color=#cc0000>$highlight </font>";
echo substr($text, strpos($text, $highlight) + strlen($search) , 10);

2 DBug
обязательно попробую на досуге:)

Geen
DBug
Дата: 11.10.2006 17:14:39
ААА теперь понял что имелось ввиду...
$match = preg_replace("/(.{10}$search.{10})/","<span style=\"color: red;\">\\1</span> ",$text);
echo $match;
Alexey Lapusta
Дата: 11.10.2006 17:29:30
Ну или

[SRC php]<?php
$text = "qwertyuiopasdfg hello hjklzxcvbnm";
$search = "hello";
echo str_replace($search, "<b>".$search."</b>", substr($text, strpos($text, $search) - 10, strlen($search) + 20));
?>[/SRC]