ugrás a tartalomhoz

Karakterek eltűnnek...

SimexG · 2005. Ápr. 28. (Cs), 18.22
Üdv mindenkinek!

A következő a probélmám:
(PHP5 van fenn,
php.ini-ben: default_charset = "iso-8859-2")

Elküldöm magamnak pl.: ŐrŰlt ($text) szót és a következőt tapasztalom.

print $text; --------tökéletesen megjelenik!

$i=0;
while ($text[$i]){
$darabok=$darabok.$text[$i];
$i++;
}
print $darabok;
-------még mindíg tökéletes.

$i=0;
while ($text[$i]){
if ($text[$i]=='Ő' || $text[$i]=='Ű') $darab=$darab.$text[$i];
else $darab=$darab.$text[$i];
$i++;
}
ptint $darab;

Erre viszont a következőt kapom: rlt
A segítségeket előre is köszönöm!
 
1

Hello!Nézd meg

halee · 2005. Ápr. 28. (Cs), 18.32
Hello!

Nézd meg ezt:

echo ord($text[$i]);
echo ord('Ő');
echo ord("Ő");

hátha...

jah meg most nem tudom kipróbálni (meg nem is emlékszem) amikor az if után
csak egy utasítás van, akkor az else előtti sor végére kell a pontosvessző...
Bár lehet, hogy ez Delphi-ből rémlik... :)

Halee
3

kipróbáltam

SimexG · 2005. Ápr. 28. (Cs), 19.16
eredmény az Ő-re:
213
213
213

Ű-re:
219
219
219
4

Delphiben nem is szabad

tiny · 2005. Ápr. 28. (Cs), 21.23
Delphiben nem is szabad tenni elé ha csak nincs begin, end. Turbo Pascalos örökség :). Legalábbis az 1.0-s Deplhiben így van, az tuti.
Mr.Tiny
2

nálam

Anonymous · 2005. Ápr. 28. (Cs), 18.42
nálam ez a kód:
$text="ŐrŰlt";
print $text;

$i=0;
while ($text[$i]){
$darabok=$darabok.$text[$i];
$i++;
}
print $darabok;

$i=0;
while ($text[$i]){
if ($text[$i]=='Ő' || $text[$i]=='Ű') $darab=$darab.$text[$i];
else $darab=$darab.$text[$i];
$i++;
}
print $darab;


utf-8-ban elmentve, ezt adja (IE6): ŐrŰltŐrŰltŐrŰlt vagyis jó
WAMP5 Version 1.4.4 (php5)
default charsetek be sincsenek állítva, legalábbis én nem láttam se php.ini-ben se httpd.conf-ban

Tóth-Máté Ákos
diak.prem.hu/tothmate
5

Megvan!

SimexG · 2005. Ápr. 28. (Cs), 21.25
A hiba a mentésnél volt. (Azt hiszem latin-1 ként mentette)
A szerkesztő mindig 'ő''ű' ként jelenítette meg, de a php 'o''u' ként olvasta be.

Beküldéskor volt egy kis logikai bukfenc!
if ($text[$i]=='Ő' || $text[$i]=='Ű') $darab=$darab.$text[$i];
else $darab=$darab.$text[$i];



Köszönöm a segítségeket!
SimexG