Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Замена выражения, Ошибка в ядре (учёт смещения) 
:(
    Опции темы
semnt
Дата 21.4.2006, 01:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 4.11.2005

Репутация: нет
Всего: 1



Вот такая трабла... Собираю чат... нужно осуществить замену выражения "/я" на Логин юзера...
Ну предположим? что этот логин: semnt
Нужно заменить:
"Привет! /я"
на
"Привет! semnt"

Но выражение: "При/явет" должно остаться без изменений. То есть замену нужно делать только если перед выражением "/я" стоит пробел, либо это начало строки и после выражения "/я" должен стоять пробел, либо это конец строки.

Всё вроде просто, но не работает(

<?
$str="/я /я /я";
echo $str;
echo "<br>";
$str=eregi_replace("(^| )(/я)($| )","\\1semnt\\3",$str);
echo $str;
echo "<br>";
?>

Выводит: "semnt /я semnt";
Первое и третье вхождение заменяет... а вот второе - ни в какую...(
Видимо в ядре при замене происходит смещение указателя в строке и второе вхождение он почему-то уже не видит...

Как быть?
Пасиба) 
PM MAIL   Вверх
Ciber SLasH
Дата 21.4.2006, 01:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: нет
Всего: 67



Код
$str= "/я /я /я";
echo preg_replace("#(^|\s+)/я\b#m", "$1semnt", $str);
 
PM   Вверх
semnt
Дата 21.4.2006, 03:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 4.11.2005

Репутация: нет
Всего: 1



на локальном нормально... на сервере (PHP Version 4.3.11) не работает...(  
PM MAIL   Вверх
Ciber SLasH
Дата 21.4.2006, 03:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: нет
Всего: 67



А если так:
Код
<?php
$html = <<< EOD
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content='text/html; charset=utf-8'>
</head>

<body>
<pre>
EOD;
$str= "/я /я /я";
$html .= iconv('utf-8', 'cp1251', preg_replace("#(^|\s+)/я\b#mu", "$1semnt", $str));
$html .= <<< EOD
</pre>
</body>
</html>
EOD;
echo $html;
?>
 
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.1053 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.