Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyrażenia Regularne - problemy, kilka pytań
MP1
post
Post #1





Grupa: Zarejestrowani
Postów: 194
Pomógł: 0
Dołączył: 22.09.2003
Skąd: Polska

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


1. Ereg_replace
  1. <?php
  2. $f3s_tx=eregi_replace(&#092;"<odp>([[:alnum:]])</odp>\",'1',$f3s_t);
  3. ?>


Skrypt miał za zadanie zamienić podany ciąg znaków: "<odp>...</odp>" na to, co znajduje się pomiędzy znacznikami. Niestety, tak się nie dzieje, a w zmiennej $f3s_tx jest wszystko, co znajduje się w $f3s_t - czyli zawartość pliku template'u.


Jak ten problem zostanie rozwiązany, przejdę do następnych (jeśli nie ustąpią).
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
sf
post
Post #2





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

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


Chodzi o to, że masz w kodzie kilka znaczników <odp> </odp> ?

  1. <?php
  2. $f3s_t='ble<odp>pierwszy tekst</odp><odp>drugi tekst</odp>tekst jakis<odp>trzy</odp>';
  3.  
  4. $f3s_tx = preg_split(&#092;"#<odp>(.+?)</odp>#is\", $f3s_t, -1, PREG_SPLIT_DELIM_CAPTURE);
  5.  
  6. foreach($f3s_tx as $nr => $sth) {
  7. if($nr % 2) {
  8. echo $sth;
  9. }
  10. }
  11.  
  12. ?>


w sumie jestem ciekaw czy można to prościej zrobić (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

EDIT:

  1. <?php
  2. $f3s_tx=preg_replace(&#092;"#(.*?)<odp>(.*?)</odp>(.*?)#\",\"2\",$f3s_t);
  3.  
  4. echo $f3s_tx;
  5. ?>


dostaniesz tylko tekst, który był między znacznikami <odp> i </odp>, nic więcej ... ;]

Ten post edytował sf 25.09.2004, 18:06:14
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: 5.10.2025 - 09:04