Portál AbcLinuxu, 12. května 2025 10:40
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.