Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Funkcja IF, ale gdzie? :)
Forum PHP.pl > Forum > Przedszkole
dong
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
olechafm
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
darko
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.
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.