Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Wyrażenia regularne, Przedewszystkim funkcja 'ergi_replace'... :)
slightyboy
post
Post #1





Grupa: Zarejestrowani
Postów: 52
Pomógł: 12
Dołączył: 12.07.2007

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


Dużo czytałem o wyrażeniach regularnych, ale jakoś nadal nie mogę się z nimi uporać... Może ktoś pomóc? Na dobrą sprawę nie mam pojęcia co robię źle. Może poprostu źle rozumiem używane przeze mnie funkcje. Problem jest taki:

Konstruuje skrypt, który modyfikuje na własne potrzeby dodawane do bazy linki. Jeśli chodzi o instrukcje warunkowe to działają one jak należy. Problem tkwi w podmianie w funkcji ergi_replace. Gdy definicja target znajduje się na końcu skrypt podmienia dobrze, gdy owa definicja znajduje się gdzieś po środku, czy na początku (gdy nie kończy stringa) wszystko się sypie. Sypie znaczy się, że skrypt kasuje wszystko co znajduje się po podmienionym fragmencie:

  1. <?php
  2. // Link w takiej formie modifikuje się dobrze
  3. $link = "<a href="odno&#347;nik" title="tytuł" target="frame">";
  4. // Link w takiej formie NIE MODYFIKUJE się dobrze
  5. $link = "<a href="odno&#347;nik" target="frame" title="tytuł">";
  6.  
  7. // Funkcja modyfikujący linki
  8. if (ereg(".+target=".+".+", $link)) { // gdy link zawiera już definicję 'targetu'
  9. $link = eregi_replace("target=".+"", "target="_blank"", $link);}
  10. else{ // gdy link nie zawiera definicji 'targetu'
  11. $link = str_replace(">", " target="_blank">", $link);}
  12. ?>


PS. Jeśli chodzi o składnię i cały wklejony przeze mnie kod to jest on w 100% dobry, brak literówek, czy jakichkolwiek innych braków (choćby znaków), jedyny jego mankament to najprawdopodobniej zła kombinacja wyrażenia regularnego. Niestety nie umiem się uporać z tym sam. (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

Ten post edytował slightyboy 12.07.2007, 19:19:02
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 - 18:44