Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][RegExpr] niedziałające wyrażenie ;)
Spirit86
post
Post #1





Grupa: Zarejestrowani
Postów: 607
Pomógł: 23
Dołączył: 8.09.2004
Skąd: Wrocław

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


Witam, napisałem wyrażenie

  1. <?php
  2. $ret = '<a href="uselink.php?url=jakislink.php">link</a>';
  3.  $ret = preg_replace_callback('#<a href=[|'|"](.*)[|'|"] .+?>(.*)</a>#si', 'mojafunkcja', $ret);
  4. echo $ret;
  5. ?>


Ma ono za zadanie wyciągnięcie linków ze stringu i wrzucenie je do moja funkcja.
Do mojafunkcja chcę przekazać talbicę, gdzie pierwszym argumentem, jak sie domyslacie zapewne będzie adres pobrany z pomiędzy "" a drugim coś co jest między <a ...>TO</a>
Sęk w tym, że to wyrażenie kiedyś mi działało, ale ostanimi czasy, nie wiem czemu, może wgrałem jakąś inną wersję tego pliku przestało. Nie mam zielonego pojęcia, czemu to nie działa. Na moje skromne oko powinno winksmiley.jpg.

Pozdrawiam

próbowałem jeszcze zmienić te wyrażenie, ale nic nie pomaga, czy ktoś się orientuje dlaczego to nie działa?

Ten post edytował Spirit86 1.02.2007, 20:47:18


--------------------
Audio: Metallica, Soil, RHCP, OffSpring, Green Day, "Retro", Gorillaz, Disturbed, Coma
DB: MySQL 4.1 | php: 4.4.3 Pomogłem Ci? Wciśnij przycisk POMÓGŁ.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
n2435Sa
post
Post #2





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 2.02.2007

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


wszystko powinno działać, dziwne...
Go to the top of the page
+Quote Post
bendi
post
Post #3





Grupa: Zarejestrowani
Postów: 401
Pomógł: 5
Dołączył: 14.09.2003
Skąd: Wrocław

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


http://bedkowski.pl/a/php_regex/3/#reg9

Po drobnej modyfikacji otrzymujemy cos takiego (chyba dorzuce to tez do listy smile.gif)
Kod
#<a.*?href=('|")?(?(1)$1| ).*?>(.*?)</a>#si


--------------------
Go to the top of the page
+Quote Post
Spirit86
post
Post #4





Grupa: Zarejestrowani
Postów: 607
Pomógł: 23
Dołączył: 8.09.2004
Skąd: Wrocław

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


  1. <?
  2. $ret = '<a href="uselink.php?url=jakislink.php">link</a>';
  3. $ret = preg_replace_callback("#<a.*?href=('|")?(?(1)$1| ).*?>(.*?)</a>#si", 'mojafunkcja', $ret);
  4. echo $ret;
  5. function mojafunkcja($ret){
  6. return $ret[0];
  7. }
  8.  
  9. ?>

ja już nie wiem co tu jest źle, zastosowałem to co napisałeś, to także nie działa, ech

Ten post edytował Spirit86 3.02.2007, 15:08:54


--------------------
Audio: Metallica, Soil, RHCP, OffSpring, Green Day, "Retro", Gorillaz, Disturbed, Coma
DB: MySQL 4.1 | php: 4.4.3 Pomogłem Ci? Wciśnij przycisk POMÓGŁ.
Go to the top of the page
+Quote Post
bendi
post
Post #5





Grupa: Zarejestrowani
Postów: 401
Pomógł: 5
Dołączył: 14.09.2003
Skąd: Wrocław

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


Co nagle to po diable, tu jest poprawka:
  1. <?
  2. $ret = '<a href="uselink.php?url=jakislink.php">link</a>';
  3. preg_match_all("#<a.*?href=('|")?(.*?)(?(1)1| ).*?>(.*?)</a>#si", $ret, $m);
  4.  
  5. echo $ret;
  6. print_r( $m );
  7. ?>


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





Grupa: Zarejestrowani
Postów: 607
Pomógł: 23
Dołączył: 8.09.2004
Skąd: Wrocław

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


no dobrze, stworzyłeś z tego tabelę, sęk w tym, że ja musze teraz troche te linki pozmieniać, a to będzie prawie niemożliwe Twoim sposobem,
chciałem zrobić funkcję, która by zamieniała

Kod
<a href="uselink.php?url=jakistam_adres">opis</a>

w
Kod
[url=http://jakistam_adres]opis[/url]

no i najlepiej, żeby użyć funkcji preg_replace_callback ze względu na to, że linki
Kod
<a href="uselink.php?url=jakistam_adres">jakistam_adres</a>
chciałem zmienić w:
Kod
jakistam_adres


A sposób jaki mi pokazałeś nie za bardzo mi tu pomoże :/

sry, że tak marudze, ale te wyrażenie jest mi niezbędne do dalszych prac winksmiley.jpg

pozdrawiam

Ten post edytował Spirit86 3.02.2007, 15:34:19


--------------------
Audio: Metallica, Soil, RHCP, OffSpring, Green Day, "Retro", Gorillaz, Disturbed, Coma
DB: MySQL 4.1 | php: 4.4.3 Pomogłem Ci? Wciśnij przycisk POMÓGŁ.
Go to the top of the page
+Quote Post
bendi
post
Post #7





Grupa: Zarejestrowani
Postów: 401
Pomógł: 5
Dołączył: 14.09.2003
Skąd: Wrocław

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


Nie rozumiem.


--------------------
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: 19.08.2025 - 19:53