[php] wie o wie verklaart deze inconsistentie?

Pagina: 1
Acties:

  • red_indian
  • Registratie: Maart 2000
  • Laatst online: 24-06 16:43

red_indian

 Smokin' Suckz B!

Topicstarter
men neme het onderstaande script:
PHP:
1
<?$body    = join ( "", file ( "output.txt" ) );echo $body."<BR><INPUT type=text value='$body'>";?>

men neme "output.txt" met inhoud:
code:
1
hélp?

men executere het script op dezelfde server, maar vanaf twee verschillende computers. computer 1 draait IE 5.0 (US), computer 2 draait IE 5.5 (NL).

en zie daar, twee verschillende outputs!

computer 1:
code:
1
hélp?<BR><INPUT type=text value='&#65279;hélp?'>

computer 2:
code:
1
hélp?<BR><INPUT type=text value='hélp?'>

screenshot computer 1:
Afbeeldingslocatie: http://www.regeert.nl/pics/wtf-1.png

screenshot computer 2:
Afbeeldingslocatie: http://www.regeert.nl/pics/wtf-2.png

beide browsers hebben encoding op utf-8 staan.

dit kan toch niet? :?

bij deze is de vorige topic vervallen :P
(totaal verspilde tijd ongeveer 4 uur)

Need a cuesheet/tracklisting? (meer dan 500.000 online)


  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 02-06 23:18
probeer eens met een "gewone" e

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 09-09 20:58

Janoz

Moderator Devschuur®

!litemod

en met html_encode aan? :)

Trouwens.. Weet je zeker dat er geen teken voor help zit? just checking

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Ik gok dat het aan je notepad ligt en niet aan IE...

De ene is vast op windows2000/XP en de andere op 95/98 ? In de laatste ondersteund notepad namelijk niet het weergeven van utf-8 karakters.

[edit]
Het 'karakter' VOOR help wordt er niet door verklaard...

  • red_indian
  • Registratie: Maart 2000
  • Laatst online: 24-06 16:43

red_indian

 Smokin' Suckz B!

Topicstarter
tis idd 98 op de ene, en 2k op de andere. dat karakter ervoor kan ik ook nog steeds niet verklaren... in het tekstbestand staat niets!

ok, code aangepast, niet een join uit een bestand, maar gewoon $body als variabele meegegeven.

blijkt niet aan notepad te liggen!
PHP:
1
<?$body    = "hélp?";echo $body."<BR><INPUT type=text value='$body'>";?>

nu geven beide de volgende output in notepad:
code:
1
hélp?<BR><INPUT type=text value='hélp?'>

alleen wederom verschillen...

screenshot computer 1:
Afbeeldingslocatie: http://www.regeert.nl/pics/wtf-2-1.png

screenshot computer 2:
Afbeeldingslocatie: http://www.regeert.nl/pics/wtf-2-2.png

Need a cuesheet/tracklisting? (meer dan 500.000 online)


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op donderdag 18 april 2002 20:29 schreef red_indian het volgende:
in het tekstbestand staat niets!
Zie je niets of staat niets? ;)

Open de file es met een hexeditor/binaire editor?

  • nhimf
  • Registratie: September 2000
  • Laatst online: 31-08 19:16

nhimf

Lekker belangrijk allemaal

Het teken ervoor lijkt wel op een halve enter.
Ofwel de 0x0A of de 0x0D karakter.
Zit er misschien niet een enter in? Open het bestand is in een hexeditor kan je zien of je niet wat onprintbare karakters erin hebt.

Ik stink niet, ik ruik gewoon anders


  • nhimf
  • Registratie: September 2000
  • Laatst online: 31-08 19:16

nhimf

Lekker belangrijk allemaal

Hmmz waarom is iedereen eerder vandaag? ;)

Ik stink niet, ik ruik gewoon anders


  • red_indian
  • Registratie: Maart 2000
  • Laatst online: 24-06 16:43

red_indian

 Smokin' Suckz B!

Topicstarter
ik heb nu de string weer ge-copy/paste naar het tekstbestand en nu gaat het wel goed. er stond dus een onzichtbaar karakter voor waarschijnlijk.

iemand enig idee hoe dit kan? en vooral wat ik er aan kan doen?

ik ben nl. al een paar uur zoet met dit geklooi. kan ik dit soort onzichtbare karakters niet weghalen met een functie? :?

btw. met htmlentities() gaat het nu in beide gevallen prima. eerst niet.

Need a cuesheet/tracklisting? (meer dan 500.000 online)


  • nhimf
  • Registratie: September 2000
  • Laatst online: 31-08 19:16

nhimf

Lekker belangrijk allemaal

Er zijn functies in php die whitespaces strippen (oa spaties en enters) daarmee kan je een end komen, maar welke ut precies zijn weet ik niet ;)

Ik stink niet, ik ruik gewoon anders


  • red_indian
  • Registratie: Maart 2000
  • Laatst online: 24-06 16:43

red_indian

 Smokin' Suckz B!

Topicstarter
sorrie, ik gooi er nog 1 extra reply tegenaan om aan te geven dat ik weer iets geupdate heb.

hierbij gaat het fout, dit is de output na het door htmlentities() te hebben gehaald:
code:
1
hélp?

ik neem aan dat het '' stuk de boosdoener is. ziet iemand welk karakter dit is?

wow, als ik het karakter copieer gebeuren er nog vreemdere dingen: 

he cool, in de preview wordt hij geconverteerd naar bovenstaande.

[update]
maar dit werkt dan weer niet:
PHP:
1
<?$body    = str_replace ( chr ( 65279 ), "", $body );?>

[update]
ik heb hem karakter voor karakter geparsed en nu blijkt het om 3 karakters te gaan!

dit komt er dan uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
waarbij de eerste twee er zo uitzagen: '239: &#65282;R>187: »'

in een net rijtje wordt dat:

239: &#65282;R>
187: »
191: ¿
104: h
195: üBR>169: ©
108: l
112: p
63: ?

hoe ken dit? :?

mijn fix is dus al volgt:
PHP:
1
<?    $lead    = chr ( 239 ).chr ( 187 ).chr ( 191 );    $body    = str_replace ( $lead, "", $body );?>

maar kan iemand mij vertellen hoe dit kan?

voor de dataopslag gebruik ik tekstbestanden (don't ask):
PHP:
1
<?opslaan:    $data = serialize ( $data );    $fp = fopen ( $file, "w+" );    if ( !$fp ) return false;    fputs ( $fp, $data );    fclose ( $fp );terughalen:    $data = join ("", file($file));    $data = unserialize ($data);?>

gaat hier misschien iets niet goed?

Need a cuesheet/tracklisting? (meer dan 500.000 online)


  • nhimf
  • Registratie: September 2000
  • Laatst online: 31-08 19:16

nhimf

Lekker belangrijk allemaal

Waarom gebruik je join? Je gebruikt toch ook fopen erboven

Ik stink niet, ik ruik gewoon anders


  • red_indian
  • Registratie: Maart 2000
  • Laatst online: 24-06 16:43

red_indian

 Smokin' Suckz B!

Topicstarter
dat is wel zo netjes ja, ga ik direct veranderen...
dit was korter |:(

[strike]laat nog wel ff weten of het gelukt is.[/strike]
PHP:
1
<?    $fp = fopen ( $file, "rb" );    if ( !$fp ) return false;    $data = fread ( $fp, filesize ( $file ) );    fclose ( $fp );    $data = unserialize ($data);?>

tijd voor een nieuwe sig: the easy way is not always the best solution! :9

pfffff, dat kost je dan bijna een dag zeg. coden, begin er niet aan! :+

Need a cuesheet/tracklisting? (meer dan 500.000 online)


  • nhimf
  • Registratie: September 2000
  • Laatst online: 31-08 19:16

nhimf

Lekker belangrijk allemaal

Het is dus gelukt neem ik aan? ;)

Tja ik ken het, laatst voor school een prog moeten maken dat de kortste route zoekt mbv genetische algoritmes. Was 2 dagen aant zoeken en was dus (as usual) iets heel erg kleins waardoor het niet werkte.

Ik stink niet, ik ruik gewoon anders


  • red_indian
  • Registratie: Maart 2000
  • Laatst online: 24-06 16:43

red_indian

 Smokin' Suckz B!

Topicstarter
idd gelukt. op computer 1 kwam er een karakter voor, en op computer twee niet. terwijl het uitlezen serverside gebeurd. nog nooit last gehad met deze functies die ik al een tijdje gebruik voor het opslaan en uitlezen van data.

er kwam ook een karakter voor de output dat je niet eens kun selecteren in windows. als je de ogenschijnlijk eerste letter van 'hélp' selecteerde klapte deze ineens naar voren en had je een selectie midden tussen de de 'h' en de 'é' in! haha :)

ik begrijp nog steeds niet dat dit problemen kan veroorzaken, maar dat is wel het geval.

nu gaat alles perfect, ik hoef niet eens meer karakters te encoden met html_entities() oid.

Need a cuesheet/tracklisting? (meer dan 500.000 online)

Pagina: 1