Portál AbcLinuxu, 17. listopadu 2025 08:02
Zdravím, mám problém se stažením kódu jiné stránky pomocí CURL. Při načtení jiné stránky v kódování win-1250 pomocí CURL a její začlenění do stránky kódované jako UTF-8 mi to tvrdé mezery ( ) načte jako nesmyslné znaky (?), viz ukázka kódu:
$dotaz = "http://www.neco.cz/?kod=3";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $dotaz);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // vystup do promenne
if (($buff = curl_exec($ch)) === false) {
echo "Chyba: ";
} else {
}
curl_close($ch);
$buff = wintoutf8($buff);
echo $buff;
Nevíte někdo jak to vyřešit?
Řešení dotazu:
$buff bez jakékoliv další úpravy, jako bez prohnání wintoutf8() apod.
curl_setopt($ch,CURLOPT_USERAGENT','Mozilla/5.0 (X11; U; Linux i686; cs-CZ; rv:1.9.0.2) Gecko/20121223 Ubuntu/9.25 (jaunty) Firefox/3.0');wintoutf8().
ale jako normální mezera (císlo 20 hexadec., 32 dec.).
$buff (pomocí fopen,fwrite) do souboru bez wintoutf8() a případně do druhého souboru po wintoutf8() a připojte je sem jako přílohu.
$buff = str_replace(chr(160), " ", $buff, $pocet);Ale stejně nevím proč to dělá, nemá to logiku. Dávám soubor do přílohy.
$buff bez jakékoliv úpravy (ten co je vrácen přímo z CURL), bo různé diakritické znaky jsou nahrazeny stejnou sekvencí 3bytů.
$buff stačí lehce převést pomocí fce iconv() na utf-8 a je to.$buff = str_replace(chr(160), " ", $buff);$buff = str_replace(chr(160), " ", $buff);
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.