Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Preg_replace
Forum PHP.pl > Forum > Przedszkole
maki1234
  1. <?php
  2.  
  3. include('database.php');
  4.  
  5. $zapytanie = "SELECT Kod, Adres FROM emots";
  6. $zapytanie = mysqli_query($uchwyt, $zapytanie);
  7. $num = mysqli_num_rows($zapytanie);
  8.  
  9. $input = array ();
  10. $output = array ();
  11.  
  12.  
  13. while ($emots = mysqli_fetch_array($zapytanie)) {
  14.  
  15. $input[] = $emots['Kod'];
  16. $output[] = $emots['Adres'];
  17. }
  18.  
  19.  
  20. $text = preg_replace($input, $output, $text);
  21.  
  22. ?>


w bazie danych Kody emotek mam zapisane w formacie :emotka: np :haha: , Kodem jest adres do obrazka (wiem że tam nie ma img src ale nie dziala pewna rzecz) Kiedy wpiszę kod emotki to owszem funkcja zadziała i zamienia tekst ALE zmiast zamienić z np :haha: do obrazek.png to zamiania na :obrazek.png: (nie wiem skąd te dwukropki się tu biorą, zapewne z tego kodu ale jak to zrobić żeby się czysty adres wyświetlał)... pozdro
bubx2k
Musisz stworzyć odpowiednią regułę.
Przykład: http://www.phpliveregex.com/p/9Uz
Pyton_000
użyj str_replace zamiast preg_replace
maki1234
Próbowałem także ze str_replace - efekt taki sam, ale skąd te dwukropki się biorą przecież jasno jest napisane że kod -> adres ... Mógłbym wyrażeń regularnych użyć ale dlaczego tak ma nie działać?
Pyton_000
Skoro tak Ci zamienia to znaczy że tak masz w wartościach do podmiany.

var_dump($input, $output);die();
maki1234
Ale jak sobie wyświetlę w pętli wszystkie elementy tablicy output to normalnie się kod prezentuje.. co daje ta funkcja var_dump?
Pyton_000
Powiedz że Twoje pytanie było żartem ...
maki1234
Fakkkk juz tracę mózg. .. Odpuszczam sobie to dzis dalej będę jufro kombinowal choc nie mam pojecia o co tu kaman... Oczywiscie ze info o zmiennej var dump...
bubx2k
Cytat(maki1234 @ 5.02.2015, 20:56:15 ) *
Próbowałem także ze str_replace - efekt taki sam, ale skąd te dwukropki się biorą przecież jasno jest napisane że kod -> adres ... Mógłbym wyrażeń regularnych użyć ale dlaczego tak ma nie działać?


A przez "preg_replace" nie używasz?

Kolejny jaśniejszy przykład dla preg_replace:
  1. $images = array(
  2. '<img src="img/haha.png">',
  3. '<img src="img/cat.gif">',
  4. );
  5. $codes = array(
  6. '#\:(haha)\:#',
  7. '#\:(kot)\:#',
  8. );
  9.  
  10. echo '<pre>Images:<br>';
  11. var_dump ($images);
  12. echo '</pre>';
  13.  
  14. echo '<pre>Codes:<br>';
  15. var_dump ($codes);
  16. echo '</pre>';
  17.  
  18. $string = 'I to by było na tyle :haha:, tutaj jest kot :kot:';
  19.  
  20. $result = preg_replace($codes, $images, $string);
  21.  
  22. echo '<pre>Result:<br>';
  23. echo $result;
  24. echo '</pre>';
  25.  
maki1234
No przeciez tez mam dwie tablice i dane sa w nich poprawnie wyswietlane ale dlaczego przy zamianie mi dodaje dwukropki do adresu? Moze zmienic to dukropki na cos innego no ale to by byla tylko ucieczka od problemu ale nie o to mi chodzi
bubx2k
Dlatego, że masz dwie tablice dałem Ci przykład dla dwóch tablic - podałem Ci rozwiązanie na tacy.
maki1234
Ej.... Widzisz i nie grzmisz. Otwieram dzisiaj stronę ze skryptem i wszystko działa jak należy, nie zmieniałem kompletnie nic... Nieznane są nam wyroki Boskie.

Dzięki za pomoc!
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.