Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: substr, mb_substr
Форумы портала PHP.SU » PHP » Регулярные выражения » substr, mb_substr

Страниц (1): [1]
 

1. Иван14 - 05 Октября, 2011 - 07:17:30 - перейти к сообщению
здравствуйте коллеги! не знаю по адресу я или нет но столкнулся со следующей ошибкой, которая уже надоела совсем:

организую поиск на стр. вытаскиваю из БД все совпадения из description. помещаю в массив. затем при каждой итерации присваиваю элемент массива переменной $description и делаю следующее:

использую функции substr, mb_substr для понятных целей... вот код:

$pos_s = stripos($description, $replacement); // - узнаю позицию нашего слова в тексте

$start = $pos_s - $good_position_word;
$end = $pos_s + $kolvo_element_cut - $good_position_word +5;
$rest = substr($description, $start, $end);
echo $rest;
вот так получается с вопросиками.... если же использовать мультибайтную функцию, а именно:
$pos_s = stripos($description, $replacement); // - узнаю позицию нашего слова в тексте

$start = $pos_s - $good_position_word;
$end = $pos_s + $kolvo_element_cut - $good_position_word +5;
$rest = mb_substr($description, $start, $end);
echo $rest;

вопросики пропадают, но иногда вообще ничего не вырезает..

как здесь поступить, чтобы не было вопросиков, и description был не пустым?
2. DeepVarvar - 05 Октября, 2011 - 07:18:37 - перейти к сообщению
Иван14 пишет:
как избавиться от такого � при вырезки символов ?
Никак
(Добавление)
Регулярки в помощь.
3. Иван14 - 05 Октября, 2011 - 07:29:08 - перейти к сообщению
DeepVarvar пишет:
Иван14 пишет:
как избавиться от такого � при вырезки символов ?
Никак
(Добавление)
Регулярки в помощь.


подскажите пожалуйста на моём точном объяснении как поступить? желательно подробнее или хотя бы пару ссылок где можно про это почитать.
спасибо!
4. DeepVarvar - 05 Октября, 2011 - 10:41:10 - перейти к сообщению
Лучше приведите в пример реальную строку с которой надо работать.
Под нее составим регулярку.
5. Иван14 - 05 Октября, 2011 - 11:04:22 - перейти к сообщению
DeepVarvar
да я с удовольствием, регулярные выражения знаю чуть-чуть... вы объясните на примере как она мне поможет именно здесь? или на словах хотя бы. понять хочу.
6. DeepVarvar - 05 Октября, 2011 - 13:13:14 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $text = "Каша бывает разной. Есть каша гречневая, есть манная. Но самая редкая это - \"каша\" в голове..";
  2. echo preg_replace("/(каша)/iu","<font color=\"red\">$1</font>",$text,-1);
7. Иван14 - 06 Октября, 2011 - 04:31:18 - перейти к сообщению
спасибо огромное! ;)

 

Powered by ExBB FM 1.0 RC1