Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Spacje/nowe linijki.
dk1342
post
Post #1





Grupa: Zarejestrowani
Postów: 275
Pomógł: 9
Dołączył: 24.07.2008
Skąd: Racibórz

Ostrzeżenie: (10%)
X----


Witam próbuje napisać konwenter, użyłem preg_match_all

kod:
  1. <?php
  2. $file = file_get_contents('drift.map');
  3. $znajdz = '/<spawnpoint name="spawnpoint"><position>(.*)</position><rotation>(.*)</rotation><vehicle>(.*)</vehicle></spawnpoint>/';
  4. preg_match_all($znajdz, $file, $pojazdy);
  5. print_r($pojazdy);
  6. ?>


jak widać szuka w pliku drift.map, wszystko ładnie działa gdy w pliku drift.map jest przykładowo takie coś:
Kod
<spawnpoint name="spawnpoint"><position>-317.776550 1516.267578 75.017334</position><rotation>360</rotation><vehicle>522</vehicle></spawnpoint>

(czyli wszystko w jednej linijce)

ale konwenter będzie "dla graczy" więc nie wiem jaki bedzie układ może być np. taki (czyli odstępy, spacje, nowe linijki itp):
Kod
     <spawnpoint name="spawnpoint">
        <position>-317.776550 1516.267578 75.017334</position>
        <rotation>360</rotation>
       <vehicle>522</vehicle>
       </spawnpoint>

to już nie działa więc jak zrobić żeby działało nie zależnie od układu/spacji/enteru

Ten post edytował dk1342 9.04.2009, 14:40:05
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Dodajesz modyfikator s
http://pl.php.net/manual/pl/reference.pcre...n.modifiers.php
Musisz jeszcze uwzględnić te spacje w wyrazeniu
Kod
\s*



Lecz nie jest to dobra metoda. Lepiej parsować coś takiego parserem xml http://pl.php.net/simple_xml_load_string

Poza tym twoje wyrażenie regularne nie sprawdzi się przy większej ilości takich <spawnpoint> a to dlatego, że brakuje ci ? po każdej *

Ten post edytował wookieb 9.04.2009, 14:50:20
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 8.10.2025 - 18:55