Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] zamiana tekstu pisanego na link
twardes
post
Post #1





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 13.01.2008

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


Witam

tym razem mam wątpliwości co do tworzenia linków ze stringów zawierających np polskie znaki bądź inne symbole nie mogące pojawić sie w linku.

czy jest jakaś funkcja albo już gotowy skrypt "robiący" coś takiego?

na przykład chcę zamienić tekst
Agencja Reklamowa - Łódź, Studio reklamy. Chcesz się dowiedzieć więcej?
na
agencja_reklamowa_lodz_studio_reklamy_chcesz_sie_dowiedziec_wiecej

napisałem już cześć skryptu, ale po pierwsze tu tylko usuwa "złe" znaki, a po drugie wymyślenie i dopisanie wszystkich możliwości wydaje się być bardzo czasochłonne.
Kod
   <?php
  
   echo '<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">';
  
   $tekst_old = 'Agencja Reklamowa - Łódź, Studio reklamy. Chcesz się dowiedzieć więcej?';
  
   $bez = array("ą", "ć", "ę", "ł", "ń", "ó", "ś", "ź", "ż", "-", ",");
  
   $tekst_new = str_replace(' ','_',$tekst_old);
   $tekst_new = str_replace($bez,'',$tekst_new);
  
   echo $tekst_old;
   echo "
   ";
   echo $tekst_new;
  
   ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
gutek84
post
Post #2





Grupa: Zarejestrowani
Postów: 116
Pomógł: 4
Dołączył: 9.10.2007
Skąd: Morąg

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


A gdybys tak stworzyl taką tablice dwuwymiarowa:
$bez =Array
(
[0] => Array
(
[0] => ń
[1] => n
)

[1] => Array
(
[0] => ą
[1] => a
)
itd..


)

i dalej


$tekst_new = str_replace(' ','_',$tekst_old);
for($i=0;$i<count($bez);$i++){
$tekst_new = str_replace($bez[i][0],$bez[i][1],$tekst_new);

}

wtedy kazdy nieprawidlowy znak zamienisz na prawidlowy!
Nie wiem czy zadziala ale warto sprobowac.
pozdr

Ten post edytował gutek84 2.02.2008, 16:55:51
Go to the top of the page
+Quote Post
nowotny
post
Post #3





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

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


Cytat(gutek84 @ 2.02.2008, 16:53:07 ) *
A gdybys tak stworzyl taką tablice dwuwymiarowa:

Tak jest chyba prościej:
  1. <?php
  2. echo '<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">';
  3.  
  4. $tekst_old = 'Agencja Reklamowa - Łódź, Studio reklamy. Chcesz się dowiedzieć więcej?';
  5.  
  6. $replace=array(' '=>'_','-'=>'',','=>'','ś'=>'s', 'ą'=>'a', 'ę'=>'e', 'ó'=>'o', 'ł'=>'l', 'ż'=>'z', 'Ľ'=>'z', 'ć'=>'c', 'ń'=>'n', 'Ś'=>'S', 'Ą'=>'A', 'Ę'=>'E', 'Ó'=>'O', 'Ł'=>'L', 'Ż'=>'Z', 'Ź'=>'Z', 'Ć'=>'C', 'Ń'=>'N');
  7.  
  8. $tekst_new = strtr($text_old, $replace);
  9.  
  10. echo $tekst_old;
  11. echo "
  12. ";
  13. echo $tekst_new;
  14. ?>

Tą tablicę zrobiłem kiedyś do zamiany polskich ogonków (w obydwu kodowaniach)... Nie wiem właśnie jak będzie z kodowaniem ale generalnie powinno działać...

EDIT: no tak... :/ tak jak myślałem... forum rozwaliło kodowanie...

Ten post edytował nowotny 2.02.2008, 17:49:03
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 - 22:36