[ Príspevkov: 15 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
uprava suboru, xml

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149 | 149
Bydlisko: Houston, Texas
Vek: 24
NapísalOffline : 02.07.2009 16:52 | uprava suboru, xml

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


Offline

Správca fóra
Správca fóra
uprava suboru, xml

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 03.07.2009 0:30 | uprava suboru, xml

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);
?>


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Užívateľ
Užívateľ
uprava suboru, xml

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149 | 149
Bydlisko: Houston, Texas
Vek: 24
Napísal autor témyOffline : 03.07.2009 7:05 | uprava suboru, xml

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


Offline

Správca fóra
Správca fóra
uprava suboru, xml

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 03.07.2009 8:19 | uprava suboru, xml

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...


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Užívateľ
Užívateľ
uprava suboru, xml

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149 | 149
Bydlisko: Houston, Texas
Vek: 24
Napísal autor témyOffline : 03.07.2009 8:25 | uprava suboru, xml

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?


Offline

Správca fóra
Správca fóra
uprava suboru, xml

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 03.07.2009 8:29 | uprava suboru, xml

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?


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Užívateľ
Užívateľ
uprava suboru, xml

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149 | 149
Bydlisko: Houston, Texas
Vek: 24
Napísal autor témyOffline : 03.07.2009 8:44 | uprava suboru, xml

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?


Offline

Správca fóra
Správca fóra
uprava suboru, xml

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 03.07.2009 9:39 | uprava suboru, xml

nechapem, co ci pojde?


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Užívateľ
Užívateľ
uprava suboru, xml

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149 | 149
Bydlisko: Houston, Texas
Vek: 24
Napísal autor témyOffline : 03.07.2009 9:42 | uprava suboru, xml

ten tvoj skript


Offline

Správca fóra
Správca fóra
uprava suboru, xml

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 03.07.2009 9:45 | uprava suboru, xml

jasne, ved vyskusaj... ak by to nahodou neslo, co nepredpokladam (ak mas php5), tak daj vediet...


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Užívateľ
Užívateľ
uprava suboru, xml

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149 | 149
Bydlisko: Houston, Texas
Vek: 24
Napísal autor témyOffline : 03.07.2009 10:25 | uprava suboru, xml

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?


Offline

Správca fóra
Správca fóra
uprava suboru, xml

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 03.07.2009 10:40 | uprava suboru, xml

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...


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Užívateľ
Užívateľ
uprava suboru, xml

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149 | 149
Bydlisko: Houston, Texas
Vek: 24
Napísal autor témyOffline : 03.07.2009 10:57 | uprava suboru, xml

ok zatial to ide

a posledná otázka ako zmažem ten jeden záznam keď poznáme len username?
:)


Offline

Správca fóra
Správca fóra
uprava suboru, xml

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 03.07.2009 11:04 | uprava suboru, xml

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


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Užívateľ
Užívateľ
uprava suboru, xml

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149 | 149
Bydlisko: Houston, Texas
Vek: 24
Napísal autor témyOffline : 03.07.2009 11:07 | uprava suboru, xml

fakt Ďakujem


 [ Príspevkov: 15 ] 


uprava suboru, xml



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

uprava xml

v HTML, XHTML, XML, CSS

4

538

01.07.2009 11:59

Romanko

V tomto fóre nie sú ďalšie neprečítané témy.

kodovanie suboru - XML

v HTML, XHTML, XML, CSS

20

1412

19.06.2009 11:00

p360t

V tomto fóre nie sú ďalšie neprečítané témy.

spracovanie externeho XML suboru

v PHP, ASP

2

479

15.10.2009 21:42

neopagan

V tomto fóre nie sú ďalšie neprečítané témy.

Perl zapis XML do suboru

v Perl, Python, Ruby, CGI

4

174

09.03.2013 13:54

tangerine

V tomto fóre nie sú ďalšie neprečítané témy.

generátor suboru sitemap.xml pre obrazky

v Internetový marketing, SEO, reklama

3

208

09.11.2013 11:22

capricorn7

V tomto fóre nie sú ďalšie neprečítané témy.

Vypis zo suboru xml do html

v HTML, XHTML, XML, CSS

10

904

19.06.2007 18:48

javo

V tomto fóre nie sú ďalšie neprečítané témy.

Uprava SWF suboru

v PHP, ASP

5

245

08.10.2013 16:30

1daemon1

V tomto fóre nie sú ďalšie neprečítané témy.

Uprava binarneho suboru

v PHP, ASP

1

126

21.03.2016 17:39

BX

V tomto fóre nie sú ďalšie neprečítané témy.

Import hesiel z XML suboru do Opery

v Sieťové a internetové programy

0

69

10.10.2015 14:09

Marsko

V tomto fóre nie sú ďalšie neprečítané témy.

Uprava textovo-grafickeho suboru

v Grafické programy

4

112

12.08.2013 23:06

michalesku

V tomto fóre nie sú ďalšie neprečítané témy.

Prenos suboru z Excel xls formatu do xml

v Ostatné programy

1

132

14.08.2013 16:53

Mandy

V tomto fóre nie sú ďalšie neprečítané témy.

Úprava súboru s licenciou LGPL

v Obchody, reklamácie a právo

0

206

24.03.2012 13:30

1daemon1

V tomto fóre nie sú ďalšie neprečítané témy.

Automatizovaný preklad súboru s množinou CZ textov (XML, XLSX)

v HTML, XHTML, XML, CSS

1

91

04.05.2017 17:03

void

V tomto fóre nie sú ďalšie neprečítané témy.

Generovanie XML:Chybná analýza XML: žiadny prvok sa nenašiel

v HTML, XHTML, XML, CSS

1

370

16.12.2011 16:49

Ďuri

V tomto fóre nie sú ďalšie neprečítané témy.

XML Schema => XML instance document

v HTML, XHTML, XML, CSS

0

393

02.11.2009 17:46

sINN3r

V tomto fóre nie sú ďalšie neprečítané témy.

xml

v HTML, XHTML, XML, CSS

1

513

02.04.2009 13:38

Tominator



© 2005 - 2017 PCforum, edited by JanoF