| | |
| Stránka: 1 z 1
| [ Príspevkov: 15 ] | |
Autor | Správa |
---|
Registrovaný: 20.03.08 Prihlásený: 08.03.17 Príspevky: 596 Témy: 149 Bydlisko: Houston, Texas | Napísal Unlink: 02.07.2009 16:52 | |
|
Ahojte, moje akože xml má štruktúru
Kód: <user><name>meno1</name><coordinates>19.6694147222,48.32968</coordinates></user> <user><name>meno2</name><coordinates>17.1030725,48.1488916667</coordinates></user> je so vlastne pre google maps a teto môj súbor potom spracúvam ale ide o to že na zapisovanie, poprípade upravovanie používam niečo takéto Kód: // Generovanie na zápis $texttowrite = "<user><name>".diakritika($username)."</name><coordinates>$dlzka,$sirka</coordinates></user>\n";
// Otvorenie suboru na zistenie typu operacie $handle = fopen("data.xml", 'r'); // Precitanie suboru $datafile = fread($handle, filesize("data.xml")); fclose($handle); //overenie nicku if (strpos($datafile, "<name>".diakritika($username)."</name>")){ $prepiss = fopen("data.xml", 'w'); //nahradenie $textnew = preg_replace("(\<user><name>".diakritika($userdata["username"])."</name><coordinates>(.*?)\</coordinates></user>\n)is", $texttowrite, $datafile); // Zapis echo (fwrite($prepiss, $textnew) ? "<b>Údaje úspešne upravené</b><br><a href='index.php'>Pokračuj</a>" : "<b>Nastala chyba pri zápise dát<br><a href='/index.php'>Pokračuj</a></b>"); fclose($prepiss); } else{ $doplnenie = fopen("data.xml", 'a'); // Zapis echo (fwrite($doplnenie, $texttowrite) ? "<b>Údaje úspešne zapísané</b><br><a href='/index.php'>Pokračuj</a>" : "<b>Nastala chyba pri zápise dát<br><a href='/index.php'>Pokračuj</a></b>"); fclose($doplnenie); } unset($datafile);
a problém tu je v tom že občas, ale podla ma sa to stáva pri pridávanie nie upravovaní mi zmizne dosť veľká časť súboru
neviete prečo?
tuto som sa pýtal že ako to uzamknem ale myslím že to môj problém asi nevyrieši
http://www.pcforum.sk/len-1-moze-vykona ... 68592.html
lebo ono nezmizne tak že by chýbala čast tagu
štruktúra sa zachováva, preto si myslím že to bude spôsobené niečim ale neviem čím
Prosím za vaše názory a rady vopred ďakujem
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
ked pouzivas xml-ko, nechapem, preco s nim pracujes len ako s obycajnym retazcom... skus vyskusat tento skript (ak mas php5):
Kód: <?php $username = 'stenley'; $dlzka = 10; $sirka = 20; $coords = $dlzka.','.$sirka;
$file = 'data.xml';
$dom = new DOMDocument; $dom->formatOutput = TRUE; $dom->preserveWhiteSpace = FALSE; $dom->load($file);
$xpath = new DOMXPath($dom);
$entries = $xpath->query('//user[name = "'.$username.'"]/coordinates'); $node = $entries->item(0); if(is_object($node)) { $node->nodeValue = $coords; } else { $node = $dom->getElementsByTagName('user')->item(0)->cloneNode(TRUE); if(is_object($node)) { $node->childNodes->item(0)->nodeValue = $username; $node->childNodes->item(1)->nodeValue = $coords; $dom->documentElement->appendChild($node); } }
$dom->save($file); ?>
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 20.03.08 Prihlásený: 08.03.17 Príspevky: 596 Témy: 149 Bydlisko: Houston, Texas | Napísal autor témy Unlink: 03.07.2009 7:05 | |
|
a mohol by si mi prosím vysvetliť ako to funguje?
lebo nezdá sa mi že to bude vyhovovať mojim potrebam
lebo v xml mam
<user><name>meno2</name><coordinates>17.1030725,48.1488916667</coordinates></user> ako jeden riadok
a ďalej ide o to že ak zadáš $username také ktoré už v xml je tak prepíše coordinates za nové a ak nieje tak pridá nový riadok
prepáš ale ja s xml moc robit neviem, ja ho viem len čítať nie vytvarať
Ďakujem
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
zdanie niekedy klame vobec nevadi, ze mas jednotlivych userov na jednom riadku - na formatovani nezalezi, ak pouzijes triedy na pracu s xml... problem by mohol nastat prave v tvojom povodnom kode, ked by sa formatovanie tvojho xml zmenilo - musel by si to zmenit aj v tvojom skripte...
tento skript funguje presne ako tvoj, teda ak zadas existujuci username, tak sa prepisu len jeho coords... ak dany username v xmlku neexistuje, tak sa prida novy... jediny problem, ktory neriesi je, ak je xmlko prazdne, tak nevie pridat noveho usera, ale to by sa dalo jednoducho dorobit...
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 20.03.08 Prihlásený: 08.03.17 Príspevky: 596 Témy: 149 Bydlisko: Houston, Texas | Napísal autor témy Unlink: 03.07.2009 8:25 | |
|
Citácia: problem by mohol nastat prave v tvojom povodnom kode, ked by sa formatovanie tvojho xml zmenilo - musel by si to zmenit aj v tvojom skripte...
a co si myslel týmto?
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
ak by si mal formatovane xmlko, napr:
Kód: <user> <name>meno1</name> <coordinates>19.6694147222,48.32968</coordinates> </user> <user> <name>meno2</name> <coordinates>17.1030725,48.1488916667</coordinates> </user>
tak by si to nemohol vyhladavat (preg_replace) ako jeden riadok... alebo sa mylim?
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 20.03.08 Prihlásený: 08.03.17 Príspevky: 596 Témy: 149 Bydlisko: Houston, Texas | Napísal autor témy Unlink: 03.07.2009 8:44 | |
|
no to xml je uložené nejak takto
Kód: <?xml version="1.0" encoding="UTF-8" ?> <data> <user><name>user_1</name><coordinates>19.6694147222,48.32968</coordinates></user> <user><name>user_2</name><coordinates>17.1030725,48.1488916667</coordinates></user> </data>
s tým že to </data> nakonci som pridával pri čítaní, aby to pralo ako xml
ale keď to bude takto, tak to pôjde?
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
nechapem, co ci pojde?
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 20.03.08 Prihlásený: 08.03.17 Príspevky: 596 Témy: 149 Bydlisko: Houston, Texas | Napísal autor témy Unlink: 03.07.2009 9:42 | |
|
ten tvoj skript
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
jasne, ved vyskusaj... ak by to nahodou neslo, co nepredpokladam (ak mas php5), tak daj vediet...
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 20.03.08 Prihlásený: 08.03.17 Príspevky: 596 Témy: 149 Bydlisko: Houston, Texas | Napísal autor témy Unlink: 03.07.2009 10:25 | |
|
vyzerá to že to funguje ako má, len mám ešte otázočku, ked to budem čítať používam niečo takéto
Kód: $xml = simplexml_load_file('data.xml'); foreach($xml as $value) { $datas[] = array( "name" => (string)$value->name, "coordinates" => (string)$value->coordinates, ); } malo by to fungovať ale teraz ma zaujíma že ako získam coordinates z riadka kde viem len meno vtedy som mal niečo takéto Kód: $handle = fopen("data.xml", 'r'); $datafile = fread($handle, filesize("data.xml")); fclose($handle);
preg_match("(\<user><name>".diakritika($userdata["username"])."</name><coordinates>(.*?)\</coordinates></user>)", $datafile, $matches);
ako to spravím pomocou xml?
a posledná otázka, pri tom tvojom skripte sa nemôže stať že sa stratí časť súboru?
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
jednoducho, mas to tam aj naznacene:
Kód: $coords = $xpath->query('//user[name = "'.$username.'"]/coordinates')->item(0); if(is_object($coords)) { echo $coords->nodeValue; }
prvy radok z tohto kodu sluzi na vratenie vsetkych <coordinates>, kde <name> obsahuje prave zadany $username... item(0) vracia prvy vysledok... nodeValue vracia text medzi <coodinates></coordinates>
ci sa bude niekedy stracat obsah suboru, tak to ti neviem povedat, treba vyskusat...
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 20.03.08 Prihlásený: 08.03.17 Príspevky: 596 Témy: 149 Bydlisko: Houston, Texas | Napísal autor témy Unlink: 03.07.2009 10:57 | |
|
ok zatial to ide
a posledná otázka ako zmažem ten jeden záznam keď poznáme len username?
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
Kód: $entries = $xpath->query('//user[name = "'.$username.'"]'); $node = $entries->item(0); if(is_object($node)) { $dom->documentElement->removeChild($node); }
Viac info na http://sk.php.net/manual/en/class.domdocument.php
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 20.03.08 Prihlásený: 08.03.17 Príspevky: 596 Témy: 149 Bydlisko: Houston, Texas | Napísal autor témy Unlink: 03.07.2009 11:07 | |
|
fakt Ďakujem
|
|
| Stránka: 1 z 1
| [ Príspevkov: 15 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| uprava xml v HTML, XHTML, XML, CSS | 4 | 764 | 01.07.2009 11:59 Romanko | | Uprava XML pomocou XSD v HTML, XHTML, XML, CSS | 0 | 673 | 10.01.2022 19:35 natel | | kodovanie suboru - XML v HTML, XHTML, XML, CSS | 20 | 1825 | 19.06.2009 11:00 p360t | | spracovanie externeho XML suboru v PHP, ASP | 2 | 747 | 15.10.2009 21:42 neopagan | | Perl zapis XML do suboru v Perl, Python, Ruby, CGI | 4 | 675 | 09.03.2013 13:54 tangerine | | autocomplete ajax z externého xml súboru v JavaScript, VBScript, Ajax | 2 | 394 | 14.08.2018 10:24 Pablo Montero | | Vypis zo suboru xml do html v HTML, XHTML, XML, CSS | 10 | 1284 | 19.06.2007 18:48 javo | | generátor suboru sitemap.xml pre obrazky v Internetový marketing, SEO, reklama | 3 | 510 | 09.11.2013 11:22 capricorn7 | | Alfa Kros, prevod súboru do xml v Ostatné programy | 0 | 675 | 24.07.2019 11:17 liveman | | Uprava SWF suboru v PHP, ASP | 5 | 496 | 08.10.2013 16:30 1daemon1 | | Úprava STL súboru v Ostatné | 4 | 173 | 19.04.2024 11:01 Restorator | | Uprava binarneho suboru v PHP, ASP | 1 | 339 | 21.03.2016 17:39 BX | | Import hesiel z XML suboru do Opery v Sieťové a internetové programy | 0 | 349 | 10.10.2015 14:09 Marsko | | Uprava textovo-grafickeho suboru v Grafické programy | 4 | 353 | 12.08.2013 23:06 michalesku | | Prenos suboru z Excel xls formatu do xml v Ostatné programy | 1 | 397 | 14.08.2013 16:53 Mandy | | Úprava súboru s licenciou LGPL v Obchody, reklamácie a právo | 0 | 381 | 24.03.2012 13:30 1daemon1 |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|