Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Pytanie o funckje preg_match
mirkus
post
Post #1





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 3.12.2009

Ostrzeżenie: (0%)
-----


Witam mam malutki problem z którym nie mogę sobie poradzić może banalny bo chodzi zapewne o jakis / lub \ a nie moge go jakos zlokalizowac sad.gif

Wiec tak chce wyciagnąc z pliku tekstowego fragment tekstu (tekst pogrubiony chce pobrac do zmiennej $znalezione).

$ert[$k] przechowuje plik tekstowy gdzie kazdy wiersz jest zapisany w tabeli
$tablica[$i] przechwuje nazwe GS300 a takze inne nazwy ktore pozniej beda wyszukiwane.

Nazwe GS300 jest zapisana w tablicy:

<owl:Class rdf:about="#GS300">
<rdfs:subClassOf>
<owl:Class>
<owl:intersectionOf rdf:parseType="Collection">
</owl:Class>
</rdfs:subClassOf>

</owl:Class>

a oto moje formulka wycigajaca tekst:
for($i=0; $i<5; $i++)
{
for ($k=0; $k=100; $k++)
{
preg_match ("/<owl:Class rdf:about=\"#($tablica[$i])\<\/owl:Class/>\/is", $ert[$k], $znalezione);
}
}

zapewne chodzi o jakisz / lub \ ale probuje na rozne sposoby i jakos nie wychodzi wiec prosze Was o pomoc
Go to the top of the page
+Quote Post
ptq
post
Post #2





Grupa: Zarejestrowani
Postów: 44
Pomógł: 2
Dołączył: 25.08.2009

Ostrzeżenie: (0%)
-----


Tak sobie pisałem i na własnych danych napisałem coś takiego, może coś z tego WYMYŚLISZ SAM winksmiley.jpg ale to akurat wyciąga te dane co chcesz, wystarczy dopasować do tego co ty tam masz, ale to już twoja twórczość, powodzenia smile.gif

  1. $tablica[0]='GS300';
  2.  
  3. $ert=array(
  4. 0 => '<owl:Class rdf:about="#GS300">',
  5. 1 => '<rdfs:subClassOf>',
  6. 2 => '<owl:Class>',
  7. 3 => '<owl:intersectionOf rdf:parseType="Collection">',
  8. 4 => '</owl:Class>',
  9. 5 => '</rdfs:subClassOf>',
  10. 6 => '</owl:Class>',
  11. 7 => 'aza'
  12. );
  13. $save=false;
  14. $records=array();
  15. $k=0;
  16. $j=0;
  17.  
  18.  
  19. for ($i=0;$i<count($ert);$i++) {
  20.  
  21. if (preg_match('/<owl:Class\srdf:about="#+'.$tablica[0].'+">+$/',$ert[$i])) {
  22. $save=true;
  23. }
  24.  
  25. if ($k==5) {
  26. $save=false;
  27. $k=0;
  28. $j++;
  29. }
  30.  
  31. if ($save==true) {
  32. $records[$j][$k]=$ert[($i+1)];
  33. $k++;
  34. }
  35.  
  36. }
  37.  
  38.  
  39.  
  40. for ($a=0;$a<count($records);$a++) {
  41.  
  42. for ($b=0;$b<count($records[$a]);$b++) {
  43. echo $records[$a][$b].'<br />';
  44. }
  45.  
  46. }


--------------------
Jeżeli czegoś się nie da zrobić,
daj to do zrobienia komuś kto o tym nie wie,
na pewno to zrobi...
Go to the top of the page
+Quote Post
mirkus
post
Post #3





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 3.12.2009

Ostrzeżenie: (0%)
-----


Dzieki wielkie ale poradzilem sobie w inny sposóba a mianowicie tak ze wczytalem plik tekstowy jako ciag znakow za pomoca file_get_contents i pozniej stworzylem
preg_match ("/<owl:Class rdf:about=\"#" . $tablica[$i]. "\">(.*?)<\/owl:Class>/is", $sposob, $poszukaj);

i poszlo smile.gif ale dzieki Twoj sposob tez fajnie rozwiazany smile.gif


Mam jeszcze jedno pytanko:
Zmienna wynik ma wartosci 1 spacja 2 spacja 3 spacja

$wynik = 1 spacja 2 spacja 3 spacja;

jak rozdzielic ta zmienna na 3 rozne zmienne i zapisac do tablicy sad.gif
tab[0] = 1;
tab[1] = 2;
tab[2] = 3;


Juz wiem ale ja glupi jestem funkcja explode i po sprawie smile.gif

Ten post edytował mirkus 11.12.2009, 21:59:00
Go to the top of the page
+Quote Post
blooregard
post
Post #4


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




  1. explode(' spacja' , $wynik);


--------------------
Life's simple... You make choices and don't look back...
Go to the top of the page
+Quote Post
mirkus
post
Post #5





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 3.12.2009

Ostrzeżenie: (0%)
-----


Witam mam do was kolejne pytanie:

Jak przeszukać fragment tekstu i zapisać go do tablicy jako osobne linie:

Przykładowo mamy plik tekst.txt
ala ma psa
ten pies ma na imie azor
azor ma czarna sierc
ale brzydki ten pies


wczytujemy plik

$nazwa_pliku = "d:\\tekst.txt";

$ert = file($nazwa_pliku);

Robimy przeszukanie:

preg_match ("ala ma psa(.*?)\ale brzydki ten pies/is", $ert[$i], $znalezione);

w zmiennej $znalezione powinno sie zapisac
$znalezione = ten pies ma na imie azor azor ma czarna sierc

jak zapisac go tak aby byl zgodny z tekstem orginalnym w tablicy:
tab[0] = ten pies ma na imie azor
tab[1]= azor ma czarna sierc

proszę Was o pomoc


Go to the top of the page
+Quote Post
ptq
post
Post #6





Grupa: Zarejestrowani
Postów: 44
Pomógł: 2
Dołączył: 25.08.2009

Ostrzeżenie: (0%)
-----


Sorry że nic nie wniosę tym razem do tematu, ale czy mi się wydaję, czy piszesz samo aktualizującą się stronę www? smile.gif


--------------------
Jeżeli czegoś się nie da zrobić,
daj to do zrobienia komuś kto o tym nie wie,
na pewno to zrobi...
Go to the top of the page
+Quote Post
mirkus
post
Post #7





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 3.12.2009

Ostrzeżenie: (0%)
-----


Witam

Jak wyodbębić taki fragment kodu za pomocą za pomocą funckji preg_match aby również były wyświtelane metaznaki (podobno można połączyć to za pomocą preg_quete) ale jakos probuje i nie daje rady:
zastosowanie samej funkcji preg_match nie powoduje prawidłowego wyświetlenia sad.gif

Kod
<owl:Class rdf:about="Dana1">
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="#zmienna1"/>
                        <owl:hasValue>wynik1</owl:hasValue>
                    </owl:Restriction>
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="#zmienna2"/>
                        <owl:hasValue>wynik2</owl:hasValue>
                    </owl:Restriction>
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="#zmienna3"/>
                        <owl:hasValue>wynik3</owl:hasValue>
                    </owl:Restriction>
</owl:Class>



ps: Niestety nie pisze taki programik który wyciągnie z rdf dane a następnie zapisze je w xml czystym

z góry dzięki za pomoc

Ten post edytował mirkus 14.12.2009, 09:12:13
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 05:10