Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Usuwanie linkow z tekstow
Forum PHP.pl > Forum > Przedszkole
Octobus
Witam. Mam tekst i w nim ileś linków w tagach html. Potrzebuje zostawić max 2 linki, jesli bedzie wiecej zostawiac sam anchor z linkow. Nie wiem tylko jak to rozplanowac zeby zostawilo 2 pierwsze a reszte usunelo ;/
CuteOne
preg_match_all, preg_replace/strtr i zwykła inkrementacja lub preg_replace z opcją limit
Octobus
Ok poradziłem już sobie. Preg_replace z opcją limit, dzięki bardzo nie wiedizałem o tej opcji. Pomóżcie mi jeszze tylko z wyrażeniem regularnym. Nie wiem jak je zanegować ;/ Potrzebuje zeeby usuwało wszystkie linki które na początku nie mają strona.pl i mają jakąś podstronę. Umiem wydobyć linki które mają strona.pl ale nie mogę dojść jak to zanegować. Wyrażenie łapie mi też strony główne a te mają być nie ruszane ...


Kod
preg_replace('/<a[^>]*href=\"(http:\/\/|)(www.|)strona.pl[^>]*\"[^>]*>(.*)<\/a>/iU', "$3", $subject)


$subject =
Cytat
<a href="http://strona.pl/" title="dsasda">jeden</a>
<a title="dsda" href="http://strona.pl/costam">dwa</a>
<a href="http://dfsfds.pl/" title="dsasda">trzy</a>
<a title="dsda" href="http://fdsfd.pl/costam">cztery</a>
<a href="http://strona.pl/">piec</a>
<a href="http://dffdsfd.pl/">szesc</a>


Powinien zostawić tylko link 2, bo tylko on ma podstronę szukanej strony w adresie.

Obecnie daje mi to:
Kod
'jeden
dwa
<a href="http://dfsfds.pl/" title="dsasda">trzy</a>
<a title="dsda" href="http://fdsfd.pl/costam">cztery</a>
piec
<a href="http://dffdsfd.pl/">szesc</a>'
-Gościu-
Chyba źle do tego podchodzisz. Spróbuj innym sposobem, preg_replace raczej nie wystarczy.
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.