[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Замена определенного символа на разные значения
PavelB
Имеется текст с неизвестным количеством символов "x". Нужно заменить "x" на "x1", x2, x3" и т. д., конечная цифра может быть очень большой.

Ниже приведенный пример работает, но медленно

<?php
$html = "Текст с большим количеством xxxxxxxxxxxxxxxxx";
$c = substr_count($html, 'x');
for ($i=1; $i<=$c; $i++) {
$a[($i-1)] = '/x/';
$b[($i-1)] = "x$i";
}
$html = preg_replace($a, $b, $html, 1);
echo $html;
?>


Какие еще есть варианты?
Буду благодарен любой ссылке по теме.



Спустя 8 минут, 58 секунд (19.01.2011 - 15:17) Evilsoul написал(а):
Тебе в диапазоне цифр или как, задай вопрос толково.

Спустя 10 минут, 26 секунд (19.01.2011 - 15:28) PavelB написал(а):
Вообщем, нужно в тексте эти символы пронумеровать.
Допустим текст такой:
блаблXаблаблаблаXXблатлыврXолытлфывмлоаывоXXXолтпитпттдл
нужно получить:
блаблX1аблаблаблаX2X3блатлыврX4олытлфывмлоаывоX5X6X7олтпитпттдл
Количество символов известно

Спустя 3 минуты, 40 секунд (19.01.2011 - 15:31) DedMorozzz написал(а):
держи такой вариант. Его явно можно упростить, но нету времени:
$a = ' $html = "Текст с большим количеством xxxxxxxxxxxxxxxxx"; ';

$a = preg_replace_callback('#(x*)#is',create_function('$matches','
$zzz = "";
$kol = str_split($matches[0]);
for ($i=0;$i<count($kol);$i++){
$zzz .= str_replace(
\'x\',\'x\'.$i,$matches[0][$i]);
}
return $zzz;
'

),$a);
echo $a;//$html = "Текст с большим количеством x0x1x2x3x4x5x6x7x8x9x10x11x12x13x14x15x16";

Спустя 5 минут, 50 секунд (19.01.2011 - 15:37) PavelB написал(а):
Cпасибо, DedMorozzz

Спустя 40 минут, 41 секунда (19.01.2011 - 16:18) PavelB написал(а):
Как не странно, мой скрипт и проще и работает быстрее.
На файле 2,6 мб ваш скрипт сдался.

У кого-нибудь еще есть предложения?

Спустя 15 минут, 32 секунды (19.01.2011 - 16:33) DedMorozzz написал(а):
действительно странно...я использую строковую замену, а в твоём варианте - регуляркой...

Спустя 1 год, 4 месяца, 2 дня, 3 часа, 22 минуты, 44 секунды (21.05.2012 - 18:56) Guest написал(а):
Скрытый текст
laugh.gif tongue.gif wink.gif ohmy.gif huh.gif

Спустя 6 часов, 21 минута, 22 секунды (22.05.2012 - 01:17) walerus написал(а):
$html = "Текст с большим количеством xxxxxxxxxxxxxxxxx";

$array = str_split( $html );
$new_html = '';

$i = 1;
while( !empty( $array ) )
{
$word = array_shift( $array );
if ( $word == 'x' )
{
$new_html .= $word . $i;
$i++;
}
else
$new_html .= $word;
}

echo "|$new_html|";
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.