Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Funkcja
materkamil
post
Post #1





Grupa: Zarejestrowani
Postów: 188
Pomógł: 0
Dołączył: 24.04.2012

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


Mam taką funkcję kasującą polskie znaki:

  1. function clean($x) {
  2. $PL = array('ą' => 'a', 'ę' => 'e', 'ś' => 's', 'ć' => 'c', 'ó' => 'o', 'ń' => 'n', 'ż' => 'z', 'ź' => 'z', 'ł' => 'l', 'Ą' => 'A', 'Ę' => 'E', 'Ś' => 'S', 'Ć' => 'C', 'Ó' => 'O', 'Ń' => 'N', 'Ż' => 'Z', 'Ź' => 'Z', 'Ł' => 'L');
  3. return(str_replace(array_keys($PL), array_values($PL), $x));
  4. }


i teraz drugą funkcję wyświetlającą rekordy z bazy w postaci listy:

  1. function menu() {
  2. global $database;
  3. $db_menu = $database->query('SELECT * FROM menu');
  4. foreach($db_menu as $menu) {
  5.  
  6. echo('<li><a href=index.php?page='.clean('ŚÓŚ').'>text</a></li>');
  7. }
  8. }


Gdy wpisany jest do drugiej funkcji tekst np: "ŚÓŚ" link prowadzi do ...SOS (bez polskich znaków)

Jeśli jednak zamiast tekstu dam tu zmienną:

  1. echo('<li><a href=index.php?page='.clean($menu['cos']).'>text</a></li>');


To adres jest dalej z polskimi znakami (np: gdy wartosc zmiennej $menu['cos'] to "ŚÓŚ"). Jak to możliwe i jak temu zapobiec?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
materkamil
post
Post #2





Grupa: Zarejestrowani
Postów: 188
Pomógł: 0
Dołączył: 24.04.2012

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


W ostatnim projekcie wszystko było pomieszane w jedno, wrzucone do indexa. Tutaj to wszystko rozdzieliłem. Np tak wygląda jeden z szablonów (oczywiście dopiero 1/3 tego szablonu jest gotowe):

  1. <html>
  2. <head>
  3. <meta charset="utf-8">
  4. <title><?php scms_title(); ?></title>
  5. <link rel="stylesheet" type="text/css" href="themes/<?php echo(scms_theme()); ?>/style.css">
  6. </head>
  7. <body>
  8. <div id="header"><?php scms_header(); ?></div>
  9. <ul id="menu"><?php scms_menu(); ?></ul>
  10. <div id="under">
  11. <div id="left1"></div>
  12. <div id="right1"></div>
  13. </div>
  14. <div id="content">
  15. <div id="left2"><?php scms_content(); ?></div>
  16. </div>
  17. <div id="footer"></div>
  18. </body>
  19. </html>


Dzięki temu gdy chce zmienić wygląd - edytuje kod HTML i CSS, i nie mieszam się nic w kod PHP oraz gdy zmieniam PHP nie ingeruje w wygląd. Index.php wygląda mniej więcej tak (również nie gotowe):

  1. define('READ_INDEX',1);
  2.  
  3. include_once('packages/mysql.php');
  4. $db_packages = $database->query('SELECT * FROM packages');
  5.  
  6. include_once('function.php');
  7.  
  8. foreach($db_packages as $packages) {
  9. include_once('packages/'.mysql_real_escape_string($packages['name']).'.php');
  10. define($packages['name'],1);
  11. }
  12.  
  13. /** Theme */
  14.  
  15. include_once('/themes/'.scms_theme().'/index.php');


Po prostu gdy przykładowo na stronie głównej chcemy newsy - mamy newsy. Ale gdy chcemy na stronę główną dać księgę gości, zwykłą strone - nie ma problemu - od wszystkiego są pakiety
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.10.2025 - 11:48