Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Wyrażenie regularne ucina potrzebne znaki
bartek124
post 14.10.2008, 17:39:53
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 15.06.2008
Skąd: Kołaczyce

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


Witam.

Potrzebuje wyrażenie regularne, które zamieni linki względne na coś innego. W tym celu napisałem coś takiego:

Kod
$zmienna = preg_replace('#pliki.php#si', 'pliki.html', $zmienna);


Jednak to zmienia także linki bezwzględne, np.: stronę:
www.niemojastrona.pl/pliki.php

zamieni na www.niemojastrona.pl/pliki.html co doprowadzi do błędu 404.

Dlatego pomyślałem o dopisaniu negacji w ten sposób:
Kod
$zmienna = preg_replace('#[^http://(.*?)]pliki.php#si', 'pliki.html', $zmienna);


I działa, tylko ucina mi niepotrzebnie pojedyńczy apostrof na początku, tzn link wygląda tak:
Kod
<a href='pliki.php'>pliki</a>


a zamienia go na:
Kod
<a href=pliki.html'>pliki</a>


Wiecie może co jest nie tak jak ma być?

Ten post edytował bartek124 14.10.2008, 17:45:11


--------------------
:)
Go to the top of the page
+Quote Post
nevt
post 14.10.2008, 18:31:27
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


  1. <?php
  2. $zmienna1 = "<a href='pliki.php'>pliki</a>";
  3. $zmienna2 = preg_replace('#([^http://(.*?)])(pliki.php)(.*?)#si', "$1pliki.html$3", $zmienna1);
  4. echo htmlspecialchars("$zmienna1 => $zmienna2");
  5. ?>

powodzenia.


--------------------

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
Go to the top of the page
+Quote Post
bartek124
post 14.10.2008, 18:40:22
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 15.06.2008
Skąd: Kołaczyce

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


Dzięki, ale czy nie da się tego zrobić od razu w wyrażeniu? winksmiley.jpg

Po prostu ta negacja coś mąci, tylko nie wiem co...


--------------------
:)
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: 13.06.2025 - 16:33