А где быки? Установка, настройка, натягивание шаблонов, макетов, дизайнов на Текстпатерн

HomeОбратная связьАдминка для автора

Я работаю с Textpattern

Темы моих статей: Кодинг, Textpattern, Мысли вслух, Ни о чем.
Не забудьте посмотреть мои работы на Textpattern в портфолио.

Как в php сделать замену чего-то на случайное число в каждой строке текста?

Код замены одной строки другой строкой со случайным числом

Вот, собственно, листинг (пришлось удалить радующие глаз пустые строки – читать файл из броузера стало сложнее):
P.S. Кто не любить читать в броузере большие листинги, можете скачать файл отсюда – tmp.php.txt

<?
/**************
function replaces "h3. " with "h3(#_number_). " where _number_ 
iterates from 0 to n every found "h3. " string. 
***************/
// opening file with strings
$filename = "tmp1.txt";
$handle = fopen($filename, "rb");
$text = fread($handle, filesize($filename));
fclose($handle);
// make array from file - be careful with new-line chars in your file editor
$new_line="\n";
$text = explode($new_line,$text);
// main cycle
for($i=0,$j=0; $i<count($text); $i++) {
	// assign search and replace patterns
	$search  = 'h3. ';
	$replace = 'h3(#head'.$j.'). ';
	// this part looks if there was replacement - also can be rewritten to ..
	// ..search $search string instead of useles replacements ;) 
	$text_after=str_replace($search, $replace, $text[$i]);
	$comp=strcmp($text_after,$text[$i]);
	echo $comp."\n"; 
	if ($comp != 0) {// if string after replacement was changed replace string in array and iterate $j
		$text[$i]=$text_after;
		$j++;
	}
//	$text[$i]=str_replace('h3. ', 'h1. ', $text[$i]);
}
// just echo array in string
echo implode($text, $new_line);
?>

А вот с чего все начиналось (выдержка этой статьи) :

Выпала мне задачка – заменить все вхождения h3. (в конце пробел) на h3(#_xxx_). . Самое веселое то, что xxx должно быть разным каждый раз, а с regexp я не дружу совсем. Выбора было два три:

  1. делать все ручками
  2. писать скриптик
  3. забить на это

Сначала думал о п.1, но объем работы заставил подумать о п.2, ну а п.3 приходил в голову в процессе реализации п.2 о п.3 я и не думал – поставленные задачи для себя в почти всегда выполняю. Читаем код!


Сообщить о баге [1]

regexp – это красиво. код:
—-
function _h3($mm){ static $j=0; $j++; return “h3(#$j). “; }
$s=file_get_contents(‘tmp1.txt’);
echo preg_replace_callback(’/h3\. /i’, “_h3”, $s);
—-

makss · 513 days ago · #

Ссылки

Кнопки

the_ghost на Free-lance.ru

Проверить аттестат

Популярные статьи