Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]str_replace - jak usunąć losowe adresy URL?
Forum PHP.pl > Forum > Przedszkole
Tomek58
Witam!
Jak za pomocą fukncji: str_replace usunąć adresy URL, które mogą się zmieniać? Np. chcę usunąć z tekstu następujące wyrażenie:

Cytat
<div align="right"><a href="java script:okno('opis.html?pr_tele_id=3464008521',775,500,1);">więcej</a>


W którym ID będzie się zmieniać. Jak tego dokonać za pomocą str_replace ?
nospor
nie da sie. str_replace zamienia stale znane fragmenty. Do tego co chcesz zrobic musisz uzyc wyrazen regularnych i preg_replace
Tomek58
Niestety nie wiem jak zastosować w moim przypadku preg_replace. Znalazłem tabelkę do wyrażeń regularnych:

Cytat
(.*) Dowolny ciąg znaków (.*?) Dowolny najkrótszy ciąg znaków ([0-9]*) Dowolny ciąg cyfr ([0-9]*?) Dowolny najkrótszy ciąg cyfr ([a-zA-Z]*?) Dowolny najkrótszy ciąg znaków malych i wielkich ([0-9]{2,4}) Dwie lub 4 cyfry


I według tego robię:
Cytat
<?PHP

$strText = file_get_contents('strona.html');
$strText = preg_replace('#opis.html?pr_tele_id=([0-9]*)#', 'test', $strText);



echo $strText

?>


I nie zmienia się nic. Nie wiem dlaczego jeśli usunę ## to wyskakuje błąd.
nospor
? to znak specjalny
czyli nie: #opis.html?pr_tele_id=([0-9]*)#
a: #opis.html\?pr_tele_id=([0-9]*)#

Cytat
Nie wiem dlaczego jeśli usunę ## to wyskakuje błąd.
To znaki rozpoczecia i zakonczenia wyrazenia czy jakos tak. A konkretnie nie ## a dowolne dwa takie same znaki. rownie dobrze moze byc // smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.