Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] zamiana tekstu na link, jak wykluczyć już istniejące linki z reguły
Maxim74
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 12.09.2007

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


Piszę sobie taki skrypcik - służący do podmiany fraz w tekście na linki do encyklopedii, która poajwi się na stronie - coś takiego jak na hotscropts.com w opisach skryptów.
Sam w sobie kod jest prosty:
Kod
<?
$text = 'jakiś tam tekst, zawierający linki <a href="http://tekst.pl">tekst</a> ';
$search = array ('tekst', 'teksty');
$replace = array ('<a href="http://adres.url.pl">tekst</a>','<a href="http://adresy.url.pl">teksty</a>');
$display = preg_replace($search, $replace, $text);
return $display;
?>


W związku z tym , że tych definicji większa ilość zrezygnowałem z użycia bazy danych - zastosowałem tablice.
Problem polega na tym, że ten skrypt podmienia również frazy w anchorach oraz w url-ach.
Szukałem długo w necie i właściwie nie znalazłem rozwiązania. Koncepcja sprawdzania czy dana fraza znajduje się w obrębie linku dla każdej znalezionej frazy w tekście dla kolejnych fraz z ciągu jest błędna - skrypt będzie bardzo ciężki.
Przemyslałem sobie sprawę i myślę, że najprostszym rozwiązaniem i najmniej obciążającym parser będzie takie przekształcenie ciągów zawartych pomiędzy <a  i /a>, żeby ich fragmenty poprostu nie znalazły się w obrębie ciągu $search. Wymysliłem, że wystarczy w obrębie <a i /a> wstawić co drugi znak £, nastepnie wykonać w/w kod podmiany, a nastepnie z pomiędzy tagów <a /a> usunąć wszystkie znaki £.
Tylko jak to zrobić ? Bardzo prosze o pomoc w skodowaniu tego fragmentu modyfikacji ciągu pomiędzy <a i /a>.
Go to the top of the page
+Quote Post

Posty w temacie
- Maxim74   [php] zamiana tekstu na link   12.09.2007, 20:50:04
- - sobieh   Pisane na szybko więc nie wiem czy działa 100% pop...   13.09.2007, 00:25:21
- - Maxim74   Dzięki działa   15.09.2007, 11:51:43


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: 19.08.2025 - 19:48