Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Для профи > запись в html файл, между маркеров.


Автор: Emm 23.2.2008, 17:57
Привет.

Пишу очень банальный скрипт, что-то вроде пародии на админку smile 
проблема в том, что эта хрень для статического сайта, в котором необходимо редактировать простые html-ки (на каждой странице по несколько блоков текста), с парсингом всего уже разобрался...
сделал так... на странице, каждый блок который подлежит редактированию, отметил маркером типа <!--begin[1]--> содержимое <!--end[1]-->
потом с помощью preg_match_all  регуляркой изымаю содержимое между маркеров... далее кладу в текстарию где можно редактировать, но после, нужно все это записать туда же, между тех самых маркеров, заменив то что там есть, на новое, и тут я затрудняюсь в продолжении.... каким способом можно записать? 

Автор: GeneralElectric 23.2.2008, 17:59
preg_replace()?

кстати, а зачем вначале preg_match_all? просто preg_match недостаточно?

Автор: CyClon 24.2.2008, 10:30
Цитата(GeneralElectric @  23.2.2008,  17:59 Найти цитируемый пост)
preg_replace()?

кстати, а зачем вначале preg_match_all? просто preg_match недостаточно? 

preg_match заканчивает свою работу после нахождения первого совпадения. Блоков много, поэтому он не катит, как правило.

Вообще не вижу смысла редактировать поблочно, грузанул страницу и вауля smile

ЗЫ: Чтоб чем-то помочь, нужен исходный код. Ибо решать проблему можно множеством разных способов, которые зависят от реализации чтения/редактирования твоих блоков.

Автор: Emm 25.2.2008, 11:44
Цитата

preg_replace()?

спасибо, все работает...
заменяю все той же регуляркой, и записываю с помощью file_put_contents, и вот интересно.. я слышал что если юзать fopen>fwrite>fclose
то бывают случайные сбои и нифига не записывается, вобще файл обнуляется, а как в случае с file_put_contents, такое тоже возможно? 

Цитата

preg_match заканчивает свою работу после нахождения первого совпадения. Блоков много, поэтому он не катит, как правило.

угу.

Цитата

Вообще не вижу смысла редактировать поблочно, грузанул страницу и вауля 

 smile  для тебя может и нет смысла, а для некоторых блондинок в красных платьях, которые возможно будут все это юзать... один невзрачный тег - влечет глубокое недоумение... smile 

ага еще вспомнил, я использую аякс  в админке, чтобы небыло лишних перезагрузок, а также хочу добавить какой-нить редактор вроде RTE, пробую его интегрировать, а вот при подгрузке блока с формой - RTE не воспроизводится, дело в том что часть его JS кода передается аяксом, как это можно исправить, или может есть что-то получше?  

Автор: GeneralElectric 25.2.2008, 11:49
Цитата(Emm @  25.2.2008,  11:44 Найти цитируемый пост)
а как в случае с file_put_contents, такое тоже возможно? 

физически работа file_put_contents ничем не отличается от fopen>fwrite>fclose
другое дело, что никаких "случайных сбоев" в природе не существует. Если бы существовали, то мы бы с тобой сейчас не общались на этом форуме - его база бы "случайно билась".
Ты, наверное, слышал о проблемах при конкурентной перезаписи в отсуствие блокировки. Ну так я тебя успокою: поскольку праквить новость может только один человек, то никаких "случайных сбоев" не будет. Сразу предупреждая немедленный теоретический вопрос №а если будут править двое???" - отвечаю: тоже ничего страшного не произойдет.

Автор: Emm 25.2.2008, 12:23
Цитата

тоже ничего страшного не произойдет. 
 
 smile 
сомневаюсь что править будут одновременно много народа, т.к эта хрень для сайта визитки с 5-10 страницами, на которого лень нагружать громадную ЦМСку  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)