У меня есть файл "link.xml" с такой вот структурой:
HTML |
<?xml version="1.0" encoding="windows-1251"?> <ARTICLES> <FILE filename="dostavka.php">1</FILE> <FILE filename="electronic.php">2</FILE> </ARTICLES> |
PHP |
$basename='link.xml'; |
Цитата (kich @ 21.02.2009 - 13:23) | ||||
У меня есть файл "link.xml" с такой вот структурой:
Где цифры должны будут изменяться скриптом:
Но в нем видать логика не верная, так как увеличенный на 1 $count не изменяет первоначального показателя, всю ночь с хмельной головой сидел разбирался, так и ни как не смог найти ответа. |
PHP |
$file=file($basename); // сохранил содержимое файла в массив $file |
Цитата (sergeiss @ 21.02.2009 - 15:02) | ||
Даже если не вникать в регулярки (а я в них не вникал в твоем скрипте), то нарушение логики "налицо".
И второй вопрос - зачем использовать str_replace, если ты работаешь с регулярками? Чем тебе preg_replace "не угодил"? |
PHP |
if (preg_match("/<ARTICLES>(.*)<\/ARTICLES>/isU", $all_count, $artic_count)){ |
PHP |
<?php |
Цитата (Viking @ 21.02.2009 - 15:36) | ||
если уж работать с хмл, то лучше использовать домовские функции, хоть и оно запарно
|
Цитата |
При использовании домовских функций, скрипт вообще не пашет |
Цитата (Viking @ 21.02.2009 - 16:03) | ||
видимо php без xml-ля собран, зря, оно надежнее и красивее можно SimpleXML попробовать, если с ним пашет в твоем случае как я понимаю должно быть что-то наподобие $artic_count[1] = preg_replace("/<FILE filename=\"$filename\">$account[1]<\/FILE>/","<FILE filename=\"$filename\">$count</FILE>",$artic_count[1]); |
Цитата |
А как в таком случае будет выглядить код целиком? |
Цитата (Viking @ 21.02.2009 - 17:14) | ||
можешь на меня рассердиться, но мои религиозные взгляды не позволяют мне бесплатно писать для других целиком код для работы с xml через регулярки в субботу во второй половине дня с preg_replace тут все просто, она делает нужную тебе замену и помещает результат обратно в $artic_count[1], с остальным вроде еще проще |
Цитата (Viking @ 21.02.2009 - 17:24) |
в данном случае лучше вообще файл не открывать: file_put_contents($basename,$artic_count[1]); |
PHP |
$basename='link.xml'; |
PHP |
$basename='link.xml'; |
Цитата (Viking @ 21.02.2009 - 19:12) |
$artic_count[0] это весь файл, а $artic_count[1] это только строки, соответствующие паттерну но вообще записывать то он должен был в любом случае, хоть и не правильно, возможно у тебя где-то еще косяк, если это не заработает |
HTML |
<?xml version="1.0" encoding="windows-1251"?> <ARTICLES> <FILE filename="dostavka.php">1</FILE> <FILE filename="electronic.php">2</FILE> </ARTICLES> |
PHP |
<?php |
HTML |
<?xml version="1.0" encoding="windows-1251"?> <ARTICLES> <FILE filename="dostavka.php">2</FILE> <FILE filename="electronic.php">2</FILE> </ARTICLES> |
Цитата (Viking @ 21.02.2009 - 19:12) |
$artic_count[0] это весь файл, а $artic_count[1] это только строки, соответствующие паттерну но вообще записывать то он должен был в любом случае, хоть и не правильно, возможно у тебя где-то еще косяк, если это не заработает |
PHP |
file_put_contents($basename,$artic_count[0]); |
Цитата (Viking @ 21.02.2009 - 19:52) |
какая именно ошибка? доступа на запись чтоли нет? или у тебя php4? блин че за манера "ошибка возникает..." тема про телепатов уже подзадолбала |
PHP |
<?php |
Цитата (Viking @ 21.02.2009 - 19:52) |
какая именно ошибка? доступа на запись чтоли нет? или у тебя php4? блин че за манера "ошибка возникает..." тема про телепатов уже подзадолбала |
Цитата (Viking @ 21.02.2009 - 20:17) |
чем позднее версия, тем лучше SimpleXML проще, дом универсальнее, если хочешь серьезно с этим делом работать, то я бы посоветовал дом |
PHP |
$count=0; |
Цитата |
$count=0; $count=($account[1]+1); |
Цитата (Viking @ 21.02.2009 - 20:27) |
http://ru.php.net/manual/ru/refs.xml.php вот самая главная, правда там далеко не все на велико-могучем, может еще где-то книжки есть |
Цитата (Viking @ 21.02.2009 - 20:17) |
чем позднее версия, тем лучше SimpleXML проще, дом универсальнее, если хочешь серьезно с этим делом работать, то я бы посоветовал дом |
Цитата |
Слушай, а в какой программе ты работаешь с DOM технологией? |
Цитата (Viking @ 22.02.2009 - 22:15) | ||
в смысле в какой программе работаю? в какой программе код набираю чтоли? как все отставшие от цивилизации - в текстовом редакторе с подсветкой синтаксиса, ни о каких специальных программах не слышал, да и не за чем |
Цитата (Viking @ 22.02.2009 - 22:34) |
это у тебя чего-то другое, видимо simpleXML или что-то еще это совершенно разные вещи, моя вот оно http://ru.php.net/manual/ru/domdocument.ge...tsbytagname.php это чистый дом, прелесть в том, что он сам по себе к пхп не привязан, и в javascript для него практически аналогичный синтаксис, но чтобы это изучить надо имхо с теории начинать, нужно именно структуру самой модели понимать а simpleXML это именно пхпшная надстройка для упрощенной работы с xml |