abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

    dnes 13:33 | Upozornění

    Z aktualizovaného seznamu chyb (pdf) procesoru AMD EPYC 7002: #1474 - procesor se po 1044 dnech od posledního resetu zasekne [reddit].

    Ladislav Hagara | Komentářů: 6
    dnes 13:00 | Nová verze

    Fossil (Wikipedie) byl vydán ve verzi 2.22. Jedná se o distribuovaný systém správy verzí propojený se správou chyb, wiki stránek a blogů s integrovaným webovým rozhraním. Vše běží z jednoho jediného spustitelného souboru a uloženo je v SQLite databázi.

    Ladislav Hagara | Komentářů: 0
    dnes 12:22 | Zajímavý článek

    David Malcolm se ve svém příspěvku na blogu vývojářů Red Hatu rozepsal o vylepšeních statické analýzy (volba -fanalyzer) v GCC 13.

    Ladislav Hagara | Komentářů: 1
    dnes 12:00 | Nová verze

    Byla vydána nová stabilní verze 23.05 linuxové distribuce NixOS (Wikipedie). Její kódové označení je Stoat. Podrobný přehled novinek v poznámkách k vydání. O balíčky se v NixOS stará správce balíčků Nix.

    Ladislav Hagara | Komentářů: 0
    dnes 11:44 | Bezpečnostní upozornění

    Příspěvek na blogu CZ.NIC upozorňuje na nový útok na weby v Česku. Na honeypotech na Turrisech byla zaznamenána nová aktivita útočníků - probíhající útok na FTP servery, které se vyskytují na stejné IP adrese, jako aktivní WEB server.

    Ladislav Hagara | Komentářů: 0
    včera 23:44 | Nová verze

    Rakudo (Wikipedie), tj. překladač programovacího jazyka Raku (Wikipedie), byl vydán ve verzi 2023.05. Programovací jazyk Raku byl dříve znám pod názvem Perl 6.

    Ladislav Hagara | Komentářů: 0
    včera 20:22 | IT novinky

    Linux Foundation Europe představila projekt RISE (RISC-V Software Ecosystem), jehož cílem je urychlit vývoj open source softwaru pro architekturu RISC-V.

    Ladislav Hagara | Komentářů: 0
    včera 14:55 | Nová verze

    Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu pro jednodeskové počítače na platformě ARM, byl vydán ve verzi 23.05. Přehled novinek v Changelogu.

    Ladislav Hagara | Komentářů: 0
    včera 12:33 | Komunita

    Minulý týden proběhla openSUSE Conference 2023. Mimo jiné bylo oznámeno přejmenování systému MicroOS Desktop. MicroOS Desktop GNOME byl přejmenován na openSUSE Aeon a MicroOS Desktop Plasma na openSUSE Kalpa.

    Ladislav Hagara | Komentářů: 0
    včera 09:00 | Komunita

    Thom Holwerda z OSnews si všímá, že vývoj operačního systému MINIX je prakticky mrtvý. Jeho hlavní autor, Andrew Tanenbaum, formálně odešel do důchodu v roce 2014 a příspěvky do kódu v následujících letech vůbec ustaly. Stav projektu shrnuje diskuze z roku 2020. Sice vyšlo najevo, že Intel používal MINIX v Management Engine, ale změny nezveřejňoval.

    Fluttershy, yay! | Komentářů: 6
    Twitter (nejen pro příležitostné čtení)
     (70%)
     (20%)
     (10%)
    Celkem 10 hlasů
     Komentářů: 0
    Rozcestník

    Dotaz: PHP a CURL mění tvrdé mezery

    5.8.2010 16:23 Urso
    PHP a CURL mění tvrdé mezery
    Přečteno: 1412×
    Příloha:

    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:


    Odpovědi

    5.8.2010 17:20 zulu
    Rozbalit Rozbalit vše Re: PHP a CURL mění tvrdé mezery
    Z toho kódu, ale nepoznáme co a jak převádíš a přiložený obrázek sám o sobě je v pořádku.
    5.8.2010 23:48 Messa | skóre: 39 | blog: Messa
    Rozbalit Rozbalit vše Re: PHP a CURL mění tvrdé mezery
    Opravdu sis ověřil, že to CURL stáhne dobře - že v tom co stáhne, ty tvrdé mezery ještě jsou? Já si totiž myslím, že tam budou, že CURL funguje správně a že problém bude ve funkci wintoutf8.
    6.8.2010 08:38 Urso
    Rozbalit Rozbalit vše Re: PHP a CURL mění tvrdé mezery
    Když funkci WINTOUTF8() vypnu, tak je výsledek stejný, pouze čeština ukazuje paznaky.
    6.8.2010 09:29 chrono
    Rozbalit Rozbalit vše Re: PHP a CURL mění tvrdé mezery
    Skús sem vložiť (ako prílohu) textový súbor, v ktorom bude to číslo aj s tým znakom v pôvodnom kódovaní.
    6.8.2010 10:27 Urso
    Rozbalit Rozbalit vše Re: PHP a CURL mění tvrdé mezery
    To zpracovává cizí cgi script přes VPN, k tomu nemám přístup.
    6.8.2010 10:45 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: PHP a CURL mění tvrdé mezery
    Bylo myšleno spíše, vložit sem obsah $buff bez jakékoliv další úpravy, jako bez prohnání wintoutf8() apod.
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    6.8.2010 09:34 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: PHP a CURL mění tvrdé mezery
    Nemyslím si že chyba je v CURL, ale není možné, že server, ze kterého taháte se rozhoduje co pošle např. podle useragenta a pošle ty čísla jinak formátované?, bo na obrázku nesmyslný znak nevidím :)
    To by pak mohlo pomoci např:
    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');
    Pokud teda to neprasí wintoutf8().
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    6.8.2010 10:25 Urso
    Rozbalit Rozbalit vše Re: PHP a CURL mění tvrdé mezery
    Tak tohle nepomáhá. Zajímavé je, že pokud ve FireFoxi dám zobrazení->znaková sada->windows 1250 tak oddělovač tisíců v čísle je správně, ale ne jako tvrdá mezera   ale jako normální mezera (císlo 20 hexadec., 32 dec.).
    6.8.2010 10:52 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: PHP a CURL mění tvrdé mezery
    Uložte obsah $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.
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    6.8.2010 11:56 Urso
    Rozbalit Rozbalit vše Re: PHP a CURL mění tvrdé mezery
    Příloha:
    Dobrý nápad, jsem to udělal a cpe tam hex. A0 znak. Takže jsem to vyřešil takto:
    $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.
    6.8.2010 12:19 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: PHP a CURL mění tvrdé mezery
    Jste si jistý, že přiložený soubor je $buff bez jakékoliv úpravy (ten co je vrácen přímo z CURL), bo různé diakritické znaky jsou nahrazeny stejnou sekvencí 3bytů.
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    6.8.2010 13:58 urso
    Rozbalit Rozbalit vše Re: PHP a CURL mění tvrdé mezery
    Příloha:
    Ten přiložený soubor jsem zkrátil. A opravdu všechny znaky A0 se přepsaly na EF BF BD. Tak ho posílám znovu bez úpravy. Tu tvrdou mezeru (nbsp;) tam chci, proto to str_replace (výměna A0 za mezeru).
    6.8.2010 14:35 urso
    Rozbalit Rozbalit vše Re: PHP a CURL mění tvrdé mezery
    A ještě jsem prozkoumal win-1250 kódování a tím se mi rozsvítilo. A0 je v kódování win-1250 tvrdá mezera (ovšem v prostém textu). V (X)HTML se dává 6 znaků (&)nbsp; v libovolném kódování. Podle mi zadaných informací by v tom HTML výstupu měla být tvrdá mezera, což jsem předpokládal (&)nbsp; . A to byl chybný předpoklad, bylo tam to A0, což se mi vždy po uložení v prohlížeči změnilo na EF BF BD. Tím tuto problematiku považuji za vyřešenou a děkuji všem zůčastněným za pomoc.
    6.8.2010 15:30 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: PHP a CURL mění tvrdé mezery
    Ano toto již vypadá normálně to je čisté Windows-1250 kódování.
    Takže soubor $buff stačí lehce převést pomocí fce iconv() na utf-8 a je to.
    No a pokud tam potřebujete i no-break-space, tak bych to asi upravil na
    $buff = str_replace(chr(160), " ", $buff);
    před konverzí do utfk-ka.
    Ale fce iconv() naprosto normálně i tuto mezeru převádí z windows-1250 do utf-8, takže jak bylo psáno na začátku, kazí to fce wintoutf8, kdoví co vůbec dělá.
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    6.8.2010 17:43 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: PHP a CURL mění tvrdé mezery
    Sorry, špatně jsem zapsal html entitu, oprava:
    $buff = str_replace(chr(160), " ", $buff);
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    6.8.2010 13:03 Messa | skóre: 39 | blog: Messa
    Rozbalit Rozbalit vše Re: PHP a CURL mění tvrdé mezery
    K čemu ten str_replace? Chcete tam teda ty nedělitelné mezery, nebo ne?

    V příloze je to nějaké zmršené - jsou tam znaky ef bf bd, což bude asi nějaký zástupný symbol.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.