Autor Zpráva
Nickname
Profil *
Dobré ráno

Mám taký problém. Ajaxom volám PHP skript v ktorom vypisujem premennú $return. Avšak špeciálne znaky mi neberie, pričom je všetko nastavené na UTF-8 a pred string mi vracia nejaké špeciálne znaky (), ktoré som zistil, že ide o nejaké BOM... Avšak keď nechám vypísať celý string (nie ako premennú) tieto znaky sa mi nezobrazia a všetko beží v správnom kodovaní... Netuším, čo s tým môže byť

Vďaka
PostCC
Profil
Nickname:
http://en.wikipedia.org/wiki/Byte_order_mark

Čili například BOM nepoužívat, pokud je soubor vytvářen nějakou aplikací, pak v její konfiguraci nastavit, aby BOM nevkládala.
Nickname
Profil *
PostCC:
ale ja ho nepoužívam... Nastavil som klasické UTF-8 a keď return posielam iba ako text bez premennej tak vsetko ide bez problémov
PostCC
Profil
"Klasické" znamená "dlouhodobě či opakovaně ověřené, staré, obvyklé". UTF-8 není klasické. Obávám se, že z toho slova se stává floskule.

Ukažte kód. Z té pohádky není zřejmé skoro nic, takže těžko nějak pomoci.
Nickname
Profil *
		if($where == "AG")
		{
			//Vyhladaj v poli ag
			$i = 0;
			if(empty($return))				
				$return = "parent.treeMenu.RadioTree.AddTreeItemForParent('".$_GET['Parent_Id']."',[";
			foreach($_SESSION['tree']['ag'] as $ag)	
			{
				list($name,$id,$parent_id,$style) = explode("'",$ag);
				if($parent_id == $p_id)
					$return .= "{id: '$id', ssi: '', name: '$name', type: '$style'},";
			$i++;
			}
			
			$i=0;
			foreach($_SESSION['tree']['a'] as $a)	
			{
				list($name,$id,$issi,$parent_id,$lon,$lat,$issi,$gssi) = explode("'",$a);
				if($parent_id == $p_id)
					$return .= "{id: '$id', ssi: '', name: '$name', type: '$style'}";
			$i++;
			}
			$return = substr($return,0,-1);
			$return .= "]);";
		}
	}
	//settype($return,"string");	
	echo $return;	//Takto to nejde v tom dalsom zakomentovanom echu to uz ide
	//echo "parent.treeMenu.RadioTree.AddTreeItemForParent('RG',[{id: 'RG3395', ssi: '2-65535-65535-65535-65535-65535', name: 'Anwendungen', type: '1'},{id: 'RG3522', ssi: '2-65535-65535-65535-65535-65535', name: 'Anwendungen', type: '1'},{id: 'RG3363', ssi: '1-65535-65535-65535-65535-65535', name: 'Cassovia Org', type: '1'},{id: 'RG3393', ssi: '0-65535-65535-65535-65535-65535', name: 'Funkgeräte', type: '1'},{id: 'RG3520', ssi: '0-65535-65535-65535-65535-65535', name: 'Funkgeräte', type: '1'},{id: 'RG3394', ssi: '1-65535-65535-65535-65535-65535', name: 'Gruppen', type: '1'},{id: 'RG3521', ssi: '1-65535-65535-65535-65535-65535', name: 'Gruppen', type: '1'}]);";
PostCC
Profil
Nickname:
Stálo by za to ověřit, zda je splněna podmínka:

if(empty($return))


např. pomocí:

if(empty($return)) $return = "parent.treeMenu.RadioTree.AddTreeItemForParent('".$_GET['Parent_Id']."',[";
else File_Put_Contents("TestOutput.txt", $return);

Myslím, že v tom souboru TextOutput.txt najdete důvod.
Nickname
Profil *
PostCC:
to je len časť kódu $return nebude nikdy prázdny... proste ide všetko az na tú diakritiku, vlastne "ide" aj to, keďže som špeciálne znaky premenil do ASCII...
PostCC
Profil
Nickname:
My si asi nerozumíme. Říkám, že do té části kódu, kterou jste tu ocitoval už dorazí v té proměnné $return něco, co tam nepatří... Takže hledejte tam, kde se ta proměnná plní. Z uvedené části to nelze zjistit. Pokud do té proměnné načítáte obsah nějakého souboru, pak je zřejmě problém v tom souboru.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: