Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Implode nie działa
Forum PHP.pl > Forum > PHP
szmerak
Funkcja implode nie działa nie wiem czemu ;/

  1. $nazwa = implode("-", $row[1]);


błąd: Warning: implode() [function.implode]: Invalid arguments passed

Ta funkcja implode jest w pętli while($row = mysql_fet....), a całość jest funkcją.
mmica
Hey ;]
  1. Warning: implode() [function.implode]: Invalid arguments passed
Błąd mówi wyraźnie co jest nie tak - podałeś zły argument do funkcji. Jako drugi argument do funkcji podałeś tablicę z indeksem, tylko co ma Ci wtedy implodować? Drugi argument musi być tablicą, a nie jednym z jej elementów. Cytat z mauala:
Cytat
implode — Join array elements with a string

Pozdrawiam,
mmica
szmerak
Dzięki już działa.

Następny problem jest ;/
tym razem chyba z kodowaniem znaków ;(
  1. function remove($name)
  2. {
  3.  
  4. $plchars=array(
  5. 'ą' => 'a',
  6. 'ć' => 'c',
  7. 'ę' => 'e',
  8. 'ł' => 'l',
  9. 'ó' => 'o',
  10. 'ś' => 's',
  11. 'ż' => 'z',
  12. 'ź' => 'z',
  13. 'Ą' => 'A',
  14. 'Ć' => 'C',
  15. 'Ę' => 'E',
  16. 'Ł' => 'L',
  17. 'Ó' => 'O',
  18. 'Ś' => 'S',
  19. 'Ż' => 'Z',
  20. 'Ź' => 'Z');
  21.  
  22. return strtr($name, $plchars);
  23.  
  24. }
  25.  
  26.  
  27. $nazwa1 = $row[1];
  28. $nazwa1 = remove($nazwa1);
  29. $nazwa2 = explode(" ", $nazwa1);
  30.  
  31. $nazwa = array($nazwa2[0], $nazwa2[1], $nazwa2[2], $nazwa2[3], $nazwa2[4], $nazwa2[5], $nazwa2[6], $nazwa2[7], $nazwa2[8], $nazwa2[9], $nazwa2[10]);
  32.  
  33. $dzielnik = implode("_", $nazwa);

Mam tutaj funkcję do zamiany polskich znaków. Mam zamiar na podstawie tego stworzyć przyjazne linki zmienną $dzielnik przesłać przez get. I potrzebuje do tego usunąć Polskie znaki lecz ta funkcja nie usuwa. Kodowanie na stronie mam utf8
a do bazy
  1. mysql_query("SET NAMES utf8");
  2. mysql_query("SET CHARACTER SET utf8");
  3. mysql_query("SET collation_connection = utf8_polish_ci");


A tak przy okazji da się zrobić dynamiczną tablicę zależną od ilości słów?
mmica
Hey ;]
To Cię powinno zadowolić ;] (trochę sformatowałem):
  1. <?php
  2. header('Content-Type: text/html; charset=utf-8'); // wysylam w naglowku, ze to html w utf-8
  3.  
  4. function remove($name)
  5. {
  6. $plchars=array(
  7. 'ą' => 'a',
  8. 'ć' => 'c',
  9. 'ę' => 'e',
  10. 'ł' => 'l',
  11. 'ó' => 'o',
  12. 'ś' => 's',
  13. 'ź' => 'z',
  14. 'ż' => 'z',
  15. 'Ą' => 'A',
  16. 'Ć' => 'C',
  17. 'Ę' => 'E',
  18. 'Ł' => 'L',
  19. 'Ó' => 'O',
  20. 'Ś' => 'S',
  21. 'Ź' => 'Z',
  22. 'Ż' => 'Z'
  23. );
  24.  
  25. return strtr($name, $plchars);
  26. }
  27.  
  28. $nazwa1 = $_GET['string']; // zamienilem na GETa, aby moc testowac
  29. $nazwa1 = remove($nazwa1);
  30. $nazwa2 = explode(" ", $nazwa1);
  31.  
  32.  
  33. for($i=0; $i<sizeof($nazwa2); $i++) // .. "dynamiczna" tablica
  34. {
  35. $nazwa[$i] = $nazwa2[$i];
  36. }
  37.  
  38. $dzielnik = implode("_", $nazwa);
  39. echo $dzielnik;
  40. ?>
Jeżeli wszędzie będziesz się trzymał UTF8, to nie będzie problemu - u mnie skrypt działa ;].

Pozdrawiam,
mmica
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.