Контент под ключ - посты, рубрики, даты. Готовый архив под WordPress за 10 баксов. *
[F17]
Важная деталь для изготовления Блогоскопища (с) (tm) 2008 F17 :) - клонатор баз данных блогов.
Клонировать заготовку блога на движке вордпресс можно с минимальными телодвижениями, если взять дамп блога-заготовки, например, с помощью PHPmyAdmin, и заменить в нем необходимые элементы: домен/субдомен, тайтл, деск, киворды, мыло админа, хэш пароля и т.п. А затем залить этот дамп тем же PHPmyAdmin в качестве нового. Не нужно ничего админить - можно сразу срать нет генерировать нет спамить нет сплогить, а-а-а вот: постить в блог :)
Так я и делал, при этом не придал особого значения, что сбиваются некоторые настройки некоторых плагинов. Подумал, ничего страшного, поправил вручную и нормально.
Но сегодня меня это достало и я решил разобраться, что там ломается.
Всё оказалось печально.
Если заменямая строка является элементом массива и изменяется её длина, то необходимо скорректировать число, указывающее сериализатору ПХП длину строки в массиве.
Было так (фрагмент):
;s:31:"http://feeds.feedburner.com/aaa";
Так неверно:
;s:31:"http://feeds.feedburner.com/bbbbbb";
Правильно так:
;s:34:"http://feeds.feedburner.com/bbbbbb";
Вот регулярка для выделения таких элементов
if(!preg_match_all("|;s:[0-9]+:\"[^\"]*".$sample_for_search."[^\"]*\";|uUi", $dump, $matches)){
return false;
if(!isset($matches[0][0])){ // не сработало
return false;
}
}
Теперь в массиве $matches[0] находятся строки в которых есть $sample_for_search и, при этом, являются элементами массива. Теперь всё просто - выделить строку в кавычках
if(preg_match("|\"(.*)\"|uUi", $match, $matches2)){ // $matches2[1] - содержимое кавычек
Заменить в ней то, что нужно, и собрать элемент массива с новой длиной строки
PS
Уже неделю читаю ридер пять минут в день, так что удалять-добавлять никого не придется - просто некогда.
* Эффективная реклама в бомжеленте.
Помогите Марине!
[http://homelessinlugansk.blogspot.com/2008/07/tm-2008-f17_09.html]