Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Funkcja IF, ale gdzie? :)
dong
post 13.05.2011, 12:38:29
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 21.02.2011

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


Witam,
piszę sobie prosty skrypt do vBulletin. Ma on zastępować daną frazę linkami. Jednak mam problem, wygląda to tak:

  1. $find = 'Alfa Romeo 156';
  2. $replace = '<a href="http://www.forum.alfaholicy.org/156/">Alfa Romeo 156</a>';
  3. $post['message'] = str_ireplace ($find, $replace, $post['message']);
  4.  
  5. $find = 'Alfa 156';
  6. $replace = '<a href="http://www.forum.alfaholicy.org/156/">Alfa 156</a>';
  7. $post['message'] = str_ireplace ($find, $replace, $post['message']);
  8.  
  9. $find = '156';
  10. $replace = '<a href="http://www.forum.alfaholicy.org/156/">156</a>';
  11. $post['message'] = str_ireplace ($find, $replace, $post['message']);


I działa to tak, że skrypt szuka 'Alfa Romeo 156', a potem '156' w efekcie wygląda to tak:
<a href="http://www.forum.alfaholicy.org/156/">Alfa Romeo <a href="http://www.forum.alfaholicy.org/156/">156</a></a>

Czyli linki nie działają poprawnie.

Domyślam się, że można to rozwiązać funkcja IF

Czyli:
1. zmiennajakaś = 0
2. szukaj alfa romeo 156
3. jeśli znajdziesz to zamień linkiem
4. innazmienna = zmiennajakaś + 1
5. jeśli zmiennajakaś=0 to szukaj 156.
6. goto 2

Tylko kompletnie nie wiem jak to wstawić w ten kod, może ktoś mnie nakierować? smile.gif

Ten post edytował dong 13.05.2011, 12:38:52
Go to the top of the page
+Quote Post
olechafm
post 13.05.2011, 12:50:16
Post #2





Grupa: Zarejestrowani
Postów: 125
Pomógł: 2
Dołączył: 8.10.2010
Skąd: Poniemieckie miasto przesiedleńców

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


może dodaj zmienną do tablicy, gdy dla danego $_POST['message'] dokonana zostanie konwersja, to zmieniasz tą zmienną na true i w kolejnych próbach sprawdzasz czy jest to true, jak tak to anulujesz podmianę, jak nie to podmieniasz

np tak:


swoje $_POST['message'] zrób tablicą która będzie posiadać dwie wartości

$_POST['message']['message']=tu przechowuj dotychczasową zmienna message
$_POST['message']['check']=tu przechowuj info czy juz zostala zamieniona (true albo false)

no i proste if teraz robisz tak jak pisałeś wyżej

Ten post edytował olechafm 13.05.2011, 12:58:09
Go to the top of the page
+Quote Post
darko
post 13.05.2011, 12:56:52
Post #3





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Wystarczy tylko sprawdzić czy to, co zwróci str_ireplace jest dokładnie takie samo jak $post['message'] i jeśli te wartości są różne, to znaczy, że już raz podmieniono tekst. Przypadek zachowania tej funkcji jest też opisany w dokumentacji.


--------------------
Nie pomagam na pw, tylko forum.
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: 19.06.2025 - 14:16