Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] string wyszukiwanie według wzorca i zamiana
lopez86
post 18.02.2007, 15:43:19
Post #1





Grupa: Zarejestrowani
Postów: 187
Pomógł: 0
Dołączył: 24.12.2006

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


próbuję znaleźć funkcję która umożliwiłaby mi wyszukanie w stringu np. wszystkiego co znajduje się pomiędzy znakiem "-" i stringiem "--" , następnie zamienić to na coś innego, w manualu znalazłem funkcję preg_match() ale nie za bardzo wiem jak to można zastosować na powyższym przykładzie. smile.gif

znalazłem też preg_replace()

http://pl2.php.net/preg_replace

są fajne przykłady ale nie za bardzo rozumiem co oznaczają konkretne znaki (pytajniki, małpa, i te znaczki ^ ] * i inne w poniższym przykładzie ,możecie mi objaśnć poszczególne znaki albo gdzie można znaleźć objaśnienie

W manualu niby jest to nabełkotane po angielsku ale nie wszystko i nie rozumiem co to dokładnie znaczy

  1. <?php
  2. $search = array ('@<script[^>]*?>.*?</script>@si', 
  3.  '@<[/!]*?[^<>]*?>@si',  
  4.  '@([rn])[s]+@',  
  5.  '@&(quot|#34);@i',  
  6.  '@&(amp|#38);@i',
  7.  '@&(lt|#60);@i',
  8.  '@&(gt|#62);@i',
  9.  '@&(nbsp|#160);@i',
  10.  '@&(iexcl|#161);@i',
  11.  '@&(cent|#162);@i',
  12.  '@&(pound|#163);@i',
  13.  '@&(copy|#169);@i',
  14.  '@&#(d+);@e');



Byłbym wdzięczny za przykład z powyższymi znakami czyli myślnikiem i dwoma myślnikami. Jarek

Ale jazda nikogo na forum nie ma z użytkowników jak słońce na polu świeci hehe , a ja tutaj w miejscu stoję tongue.gif

Ten post edytował lopez86 18.02.2007, 16:16:44


--------------------
c++ , javascript , PHP , SQL , MYSQL , CSS - wszystko czego potrzebuje prawdziwy mężczyzna LoL
Go to the top of the page
+Quote Post
Ociu
post 18.02.2007, 16:29:39
Post #2





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




To są wyrażenia regularne, więcej wie google.
  1. <?php
  2. preg_match_all('#-(*.)--#si', $string, $array);
  3. print_r($array);
  4. ?>

Dawno nie pisałem wyrażeń, ale jeśli dobrze pamiętam to tak powinno wyglądać.
Go to the top of the page
+Quote Post
lopez86
post 18.02.2007, 16:49:21
Post #3





Grupa: Zarejestrowani
Postów: 187
Pomógł: 0
Dołączył: 24.12.2006

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


Dzięki, za przykład i za wyjasnienie że są to wyrażenia regularne , w google znalazłem krótki artykuł, jakby ktoś potrzebował, http://www.gajdaw.pl/php/wyrreg.html


--------------------
c++ , javascript , PHP , SQL , MYSQL , CSS - wszystko czego potrzebuje prawdziwy mężczyzna LoL
Go to the top of the page
+Quote Post
Cet
post 18.02.2007, 17:03:04
Post #4





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 18.02.2007

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


Można też spróbować za pomocą funkcji php
  1. <?php
  2. /* polecam uzycie funkcji substr($string, $poczatek, $dlugosc);
  3. zwraca ona podciąg ciągu $string o dlugosci $dlugosc zaczynając 
  4. od znaku numer $poczatek*/
  5. $txt = "to jest tekst-to jego wycinek--a to tekst po wycinku";
  6. $start = strpos($txt, '-')+1; //pozycja znaku '-' + 1 (dlugosc znaku)
  7. $dlugosc = strpos($txt, '--')- $start; //obliczamy dlugosc szukanego podciagu
  8. echo substr($txt , $start, $dlugosc);
  9. ?>


jeśli to się nie nadaje to proszę mnie poprawić dopiero zaczynam zabawę z php
Go to the top of the page
+Quote Post
lopez86
post 18.02.2007, 18:26:06
Post #5





Grupa: Zarejestrowani
Postów: 187
Pomógł: 0
Dołączył: 24.12.2006

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


próbuje coś takiego i nie działa

  1. <?php
  2.  
  3. $ble=array{'@-.*?-@si');
  4.  
  5. $bleble=array('');
  6.  
  7. $result=preg_replace($ble,'$bleble,$result1);
  8. ?>


no dobra działa ale nie umiem znaleźć wyjaśnienia co znaczy w tym przypadku małpa albo @si, widziałem też @i , kiedy i po co się je stosuje

Ten post edytował lopez86 18.02.2007, 19:46:44


--------------------
c++ , javascript , PHP , SQL , MYSQL , CSS - wszystko czego potrzebuje prawdziwy mężczyzna LoL
Go to the top of the page
+Quote Post
Ociu
post 19.02.2007, 13:17:59
Post #6





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




@ @si - to granice ciągu od @ do @si.
http://bedkowski.pl/a/php_regex/
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 00:44