| Цитата | | Машина - дура. Она делает то, что ты просишь, а не то что ты хочешь. Не умеешь просить правильно - получаешь хрень. Адназначна. Нужно тебе СЛОВО - значит укажи что нужно слово. Впереди - пробел, сзади - пробел изи знак препинания. Не указал - сам виноват. |
Akina, я указал, нужно просто повнимательнее посмотреть мой код, а только потом обрушивать на меня критику...
| Цитата | | Блин, а какая проблема? |
Сказав, что это проблема, я хотел указать на то, что этот случай не рассматривается в предложенном решении.
Предлагаю на
| Код | function preview($word, $string) { /** * Тема звучит как "сделать вырезку из _длинной_ строки", *поэтому лучше будет заменить preg_replace на str_replace */ $signs = array(",", ".", ":", ";", "\"", "'", "?", "!"); $test = $string; foreach ($signs as $sign) $test = str_replace($sign, " ", $test);
print("<BR>" . $test . "<BR>");
$pos = strpos((" " . $test . " "), (" " . $word . " ")); if ($pos === false) return false;
$start = ($pos - 51 >= 0)? ($pos - 11): 0; $length = ($pos - $start) + strlen($word) + 50;
/** * Необходимо делать вырезку из начальной строки */ return substr($string, $start, $length); }
print preview($wrd, $rest);
| |