|
|
|
| Я хочу использовать функцию ereg_replace чтобы найти переменную и затем прибавить к ней единицу. Только у меня никак не получается это сделать. Не судите строго, может это и просто сделать, но я только начинаю изучать PHP.
<?
$var="dog";\\если есть слово dog - прибавляем единицу.
$one=1;\\ единица :)
$var2= "($var=)([0-9]+)";\\это, чтобы разбить длинную строку
$replace="\\1\\2+$one)";\\тут надо прибавить 1
$str = "cat=32|dog=31|fly=65";\\длинная строка
$str = ereg_replace("$var2", "$replace", $str);\\сама функция
print $str;
?> | |
|
|
|
|
|
|
|
для: tvoydead
(12.11.2005 в 19:12)
| | Я что-то не понял.
Что вы хотите? Заменить "слово" на порядковый номер?
Или записать, сколько раз встречаеться "слово"? | |
|
|
|
|
|
|
|
для: tvoydead
(12.11.2005 в 19:12)
| | А нет так не получится... для таких замен следует пребегать к замене с использованием функции обратного вызова
<?php
$var = "dog"; // если есть слово dog - прибавляем единицу.
$str = "cat=32|dog=31|fly=65"; // длинная строка
$pattern = "|($var=)([0-9]+)|i"; // это, чтобы разбить длинную строку
$str = preg_replace_callback(
$pattern,
"plus_match",
$str);
print $str;
// функция обратного вызова
function plus_match($matches)
{
$one=1; // единица :)
// как обычно: $matches[0] - полное вхождение шаблона
// $matches[1] - вхождение первой подмаски,
// заключенной в круглые скобки, и так далее...
return $matches[1].($matches[2]+1);
}
?>
|
PS Вопросы посвящённые регулярным выражениям лучше сразу размещать в форуме Регулярные выражения | |
|
|
|