Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Usuniecie linku preg_replace
quality
post
Post #1





Grupa: Zarejestrowani
Postów: 172
Pomógł: 9
Dołączył: 13.02.2006
Skąd: Warszawa

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


Probuje usunac link ze zdjecia ale cos sie nie udaje.
Sposobem podanym ponizej co prawda usuwa link ale razem z linkiem usuwa sie caly <img />.

jak to dobrze zrobić ?

  1. <?php
  2. $html2 = '
  3. <a href="#"><img src="cos.jpg" border="0" align="left" />test</a>Dalszy tekst.
  4. ';
  5.  
  6. $pattern = '/<a(.*)>(.*)</a>/';
  7. $replacement = '${2}';
  8.  
  9. $html = preg_replace($pattern, $replacement, $html);
  10. ?>


--------------------
Go to the top of the page
+Quote Post
Shili
post
Post #2





Grupa: Zarejestrowani
Postów: 1 085
Pomógł: 231
Dołączył: 12.05.2008

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


Zwróć uwagę, co każesz zamieniać. Jeśli to pomyłka przy kopiowaniu, to ok.

Samo wyrażenie powinno wyglądać tak
Kod
$pattern = '/<a(.*?)>(.*)<\/a>/';


I poczytaj o wyrażeniach zachłannych winksmiley.jpg

Ten post edytował Shili 9.07.2008, 11:19:36
Go to the top of the page
+Quote Post
quality
post
Post #3





Grupa: Zarejestrowani
Postów: 172
Pomógł: 9
Dołączył: 13.02.2006
Skąd: Warszawa

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


To poprzednie to byla pomylka przy kopiowaniu smile.gif

No rzeczywiscie ten przykad co podales działa na tym linku, ale ponizszy kod już nie.
Troche sa zamieszane te wyrażenia regularne :/

  1. <?php
  2. $html3 = '
  3. <a onclick="window.open('/mambots/editors/tinymce/jscripts/tiny_mce/plugins/ibrowser/scripts/popup.php?url=/images/stories/artykuly/3256d.jpg&clTxt=Kliknij w obraz aby zamknąćć okno','Image''width=500, height=300, scrollbars=no, toolbar=no, location=no, status=no, resiza
    ble=yes, screenX=100, screenY=100'); return false;" title="1" href="javascript:void(0)">
  4. <img width="200" height="132" border="0" align="left" title="" alt="" src="/images/stories/artykuly/3256.jpg"/>
  5. </a>
  6. ';
  7. $pattern = '/<a(.*?)>(.*)</a>/';
  8. $replacement = '${2}';
  9.  
  10. $html = preg_replace($pattern, $replacement, $html3);
  11. ?>


Juz wiem trzeba uwzglednic jeszcze znaki nowej lini, ale jak ?
Podmienilem te spacje i znaki nowej lini ale nadal cos jest nie tak:

  1. <?php
  2. $pattern = '/<a(.*?)>(s*)(.*)(s*)</a>/';
  3. $replacement = '${3}';
  4. ?>


Teraz działa ładnie ale podmienia mi tylko pierwszy link z kodu. Co zrobic ? smile.gif

Ten post edytował quality 9.07.2008, 12:26:17


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





Grupa: Zarejestrowani
Postów: 1 085
Pomógł: 231
Dołączył: 12.05.2008

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


Pierwszy? Możesz podać przykład tego kodu? U mnie podmienia wszystkie.
Go to the top of the page
+Quote Post
pyro
post
Post #5





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


ustaw czwarty, opcjonalny parametr na -1 (nieskonczonosc)


--------------------
ET LINGUA EIUS LOQUETUR IUDICIUM
Go to the top of the page
+Quote Post
quality
post
Post #6





Grupa: Zarejestrowani
Postów: 172
Pomógł: 9
Dołączył: 13.02.2006
Skąd: Warszawa

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


Kod jest długi, ale wkleje go. Nie mam pojecia jak sobie z tym poradzic.


  1. <?php
  2. $html3 = '
  3. <a href="javascript:void(0)" title="1" onclick="window.open('/mambots/editors/tinymce/jscripts/tiny_mce/plugins/ibrowser/scripts/popup.php?url=/images/stories/artykuly/3257d.jpg&amp;clTxt=Kliknij w obraz aby zamkn&#261;ćć okno','Image', 'width=500, height=300, scrollbars=no, toolbar=no, location=no, status=no, resiza
    ble=yes, screenX=100, screenY=100'); return false;"><img src="/images/stories/artykuly/3257.jpg" border="0" alt="Salon" title="Salon" width="249" height="175" align="left" /></a><a href="javascript:void(0)" title="1" onclick="window.open('/mambots/editors/tinymce/jscripts/tiny_mce/plugins/ibrowser/scripts/popup.php?url=/images/stories/artykuly/3258d.jpg&amp;clTxt=Kliknij w obraz aby zamknąćć okno','Image', 'width=500, height=300, scrollbars=no, toolbar=no, location=no, status=no, resiza
    ble=yes, screenX=100, screenY=100'); return false;"><img src="/images/stories/artykuly/3258.jpg" border="0" alt="Salon" title="Salon" width="249" height="175" align="left" /></a> 
  4. ';
  5. $pattern = '/<a(.*?)>(s*)(.*)(s*)</a>/;
  6. $replacement = ${3};
  7.  
  8. $html = preg_replace($pattern, $replacement, $html3);
  9. //echo htmlentities($html);
  10. echo $html;
  11. ?>


Pyro - nie działa ten czwarty parametr, chyba ze zle go wstawiam:
  1. <?php
  2. $html = preg_replace($pattern, $replacement, $html3,-1);
  3. ?>


Jak wezme dam znak nowej lini po pierwszym linku to dziala dobrze.
Jak to zapisać ? Czy (\s*) to nie jest 0 lub wiecej powtorzen ?

Zauwazylem jeszcze ze skrypt usuwa tylko pierwsze <a href=""> z poerwszego linku i </a> z ostatniego linku w kodzie; co jest grane ?

Ten post edytował quality 9.07.2008, 14:16:40


--------------------
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: 21.08.2025 - 16:26