TwojePC.pl © 2001 - 2024
|
|
A R C H I W A L N A W I A D O M O Ś Ć |
|
|
|
[php] Funkcja do tworzenia bezpiecznych stringów , kubazzz 9/11/09 17:26 czyłi
"Bóce wżęcłe!!!" zamieni na boce_wzecle
Napisałem sobie sam takie coś, ale wychodziła kaszana.
Znalazłem masę różnych funkcji i dalej jest kaszana.
Przypuszczam że problemem jest kodowanie UTF-8, ale wszędzie używam utf-8, mam wymuszone mb_internal_encoding("UTF-8")
nie mam pojęcia, cały czas mi się wywala na znakach specjalnych, czy to będzie strtr() czy preg_replace(), ewidentnie się coś sypie.
Ma ktoś jakis sprawdzony taki skrypt na UTF-8?SM-S908 - Czy takie stringi są bezpieczne? , Remek 9/11/09 17:36
http://www.ministerstwogadzetow.com/...meskie.html- nie są bezpieczne , kubazzz 9/11/09 17:41
niestety;)SM-S908
- ale w COBOLU czy asm? , gorky 9/11/09 18:11
bo nie wiem?- oj, nie zauwazylem [php] , gorky 9/11/09 18:25
:-)
- hmm , Adamusss 9/11/09 18:30
sprobuj wykorzystac te dwie funkcje, powinno smigac elegancko :)
public function stripWrongTags($string) {
//walidacja nazwy pliku - usuwanie polskich znakow, oraz znakow specjalnych (dozwolone to ".", "-", "_")
$wrongChars = array('~', '`', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '+', '=', '\\',
'|', '[', ']', '{', '}', ':', ';', '"', '\'', '<', '>', ',', '?', '/', ' '
);
$string = str_replace($wrongChars, '_', $string);
$string = strtolower($string);
return $string;
}
public function clearUTF($string) {
//zamiana ł w l (funkcja iconv nie dziala w tym przypadku)
$string = str_replace('ł', 'l', $string);
$string = str_replace('Ł', 'l', $string);
//zamiana ó w o (funkcja iconv nie dziala w tym przypadku)
$string = str_replace('ó', 'o', $string);
$string = str_replace('Ó', 'o', $string);
setlocale(LC_ALL, 'en_US.UTF8');
$r = '';
$s1 = iconv('UTF-8', 'ASCII//TRANSLIT', $string);
for ($i = 0; $i < strlen($s1); $i++) {
$ch1 = $s1[$i];
$ch2 = mb_substr($string, $i, 1);
$r .= $ch1 =='?' ? $ch2 : $ch1;
}
return $r;
}- spróbuję tego , kubazzz 10/11/09 00:06
zobaczymy czy zadziała prawidłowo.
dzięki.SM-S908 - hmm , Adamusss 10/11/09 00:14
dziala tak jak chcesz na 100% z tym, ze odnosnie ponizszych "wywalić wszystkie niepotrzebne znaki" i "zamienić spacje na podkreślenia" to wymagana jest delikatna modyfikacja,ale pewnie juz sobie poradziles :)- wiesz, podobnych skryptów miałem pełno, ale one wszystkie wywalają się na etapie zamiany , kubazzz 10/11/09 00:21
znaków.
ż w UTF-8 to jest multibyte i coś z tym jest związane, że się sypie, bo powstają krzaki zupełne. nie weim czy to same funkcje php, czy to problem z wklejaniem znaków do kodu źródłowego, czy z serwerem php.. nie wiem.SM-S908
- ke koza? meeeee! , bwana 9/11/09 23:42
http://phpbuilder.com/...en/function.urlencode.php
jak znalazł. Od biedy i hardkorowo można http://phpbuilder.com/...unction.base64-encode.php"you don't need your smile when I cut
your throat" - przecież to nie o to chodzi , kubazzz 10/11/09 00:05
chodzi o to, żeby zrobić:
1 lowercase
2 wywalić wszystkie niepotrzebne znaki
3 zamienić spacje na podkreśleniaSM-S908
- te będą bezpieczne ;) , piszczyk 10/11/09 00:19
http://halbot.haluze.sk/image/19725
Ochronią prze świńską grypą :o)takie tam klamoty . . . - a moze... , Mikar 10/11/09 09:14
function _no_pl($tekst)
{
$tabela = Array(
//WIN
"\xb9" => "a", "\xa5" => "A", "\xe6" => "c", "\xc6" => "C",
"\xea" => "e", "\xca" => "E", "\xb3" => "l", "\xa3" => "L",
"\xf3" => "o", "\xd3" => "O", "\x9c" => "s", "\x8c" => "S",
"\x9f" => "z", "\xaf" => "Z", "\xbf" => "z", "\xac" => "Z",
"\xf1" => "n", "\xd1" => "N",
//UTF
"\xc4\x85" => "a", "\xc4\x84" => "A", "\xc4\x87" => "c", "\xc4\x86" => "C",
"\xc4\x99" => "e", "\xc4\x98" => "E", "\xc5\x82" => "l", "\xc5\x81" => "L",
"\xc3\xb3" => "o", "\xc3\x93" => "O", "\xc5\x9b" => "s", "\xc5\x9a" => "S",
"\xc5\xbc" => "z", "\xc5\xbb" => "Z", "\xc5\xba" => "z", "\xc5\xb9" => "Z",
"\xc5\x84" => "n", "\xc5\x83" => "N",
//ISO
"\xb1" => "a", "\xa1" => "A", "\xe6" => "c", "\xc6" => "C",
"\xea" => "e", "\xca" => "E", "\xb3" => "l", "\xa3" => "L",
"\xf3" => "o", "\xd3" => "O", "\xb6" => "s", "\xa6" => "S",
"\xbc" => "z", "\xac" => "Z", "\xbf" => "z", "\xaf" => "Z",
"\xf1" => "n", "\xd1" => "N"
);
return strtr($tekst,$tabela);
}
oraz dodac do tego wywalanie !@#$%^&* i spacji z tej Twojej funkcjiE8400, 4GB, 320+1500 GB, R6870,
Chieftec CX05B-B, Nec 20wgx2pro, Xonar DX |
|
|
|
|
All rights reserved ® Copyright and Design 2001-2024, TwojePC.PL |
|
|
|
|