Samba (Wikipedie), svobodná implementace SMB a Active Directory, byla vydána ve verzi 4.23.0. Počínaje verzí Samba 4.23 jsou unixová rozšíření SMB3 ve výchozím nastavení povolena. Přidána byla podpora SMB3 přes QUIC. Nová utilita smb_prometheus_endpoint exportuje metriky ve formátu Prometheus.
Správcovský tým repozitáře F-Droid pro Android sdílí doporučení, jak řešit žádosti o odstranění nelegálního obsahu. Základem je mít nastavené formální procesy, vyhrazenou e-mailovou adresu a být transparentní. Zdůrazňují také důležitost volby jurisdikce (F-Droid je v Nizozemsku).
Byly publikovány informace o další zranitelnosti v procesorech. Nejnovější zranitelnost byla pojmenována VMScape (CVE-2025-40300, GitHub) a v upstream Linuxech je již opravena. Jedná se o variantu Spectre. KVM host může číst data z uživatelského prostoru hypervizoru, např. QEMU.
V červenci loňského roku organizace Apache Software Foundation (ASF) oznámila, že se částečně přestane dopouštět kulturní apropriace a změní své logo. Dnes bylo nové logo představeno. "Indiánské pírko" bylo nahrazeno dubovým listem a text Apache Software Foundation zkratkou ASF. Slovo Apache se bude "zatím" dál používat. Oficiální název organizace zůstává Apache Software Foundation, stejně jako názvy projektů, například Apache HTTP Server.
Byla vydána (𝕏) srpnová aktualizace aneb nová verze 1.104 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.104 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Spotify spustilo přehrávání v bezztrátové kvalitě. V předplatném Spotify Premium.
Spoluzakladatel a předseda správní rady americké softwarové společnosti Oracle Larry Ellison vystřídal spoluzakladatele automobilky Tesla a dalších firem Elona Muska na postu nejbohatšího člověka světa. Hodnota Ellisonova majetku díky dnešnímu prudkému posílení ceny akcií Oraclu odpoledne vykazovala nárůst o více než 100 miliard dolarů a dosáhla 393 miliard USD (zhruba 8,2 bilionu Kč). Hodnota Muskova majetku činila zhruba 385 miliard dolarů.
Bylo vydáno Eclipse IDE 2025-09 aneb Eclipse 4.37. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.
T-Mobile od 15. září zpřístupňuje RCS (Rich Communication Services) zprávy i pro iPhone.
Společnost ARM představila platformu Arm Lumex s Arm C1 CPU Cluster a Arm Mali G1-Ultra GPU pro vlajkové chytré telefony a počítače nové generace.
popisky.txt
- tam je vše v pořádku, ovšem název a popis galerie, autor a pár dalších informací se bere ze souboru config.xml
, a tam nastává problém. Pokud je v některém popisu znak s diakritikou, parser před ním zastaví a tento ani další znaky již nezpracuje. A skočí na další položku. Psal jsem Tomášovi, ale odepsal mi, že se již dlouho PHP nevěnuje, ale že by ten problém měl být někde v parseru.
config.xml
vypadá takto:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE conf SYSTEM "../config.dtd"> <conf> <const name="ROW_THUMB_NUM" desc="pocet nahledu na radce">3</const> <const name="PREFIX" desc="prefix souboru s nahledem">tn_</const> <const name="DESC_FILE" desc="nazev souboru s popiskami">popisky.txt</const> <const name="SHOW_DESC" desc="zobrazovat popisky u fotek [0|1]">1</const> <const name="SHOW_THUMB_DESC" desc="zobrazovat popisky i u nahledu [0|1]">1</const> <const name="IMPLICIT_DESC" desc="implicitni title a alt, tak kde neni popisek">obrázek</const> <const name="GALLERY_NAME" desc="popis galerie">Jarní květinky</const> <const name="DATE" desc="datum vytvoreni fotek"></const> <const name="AUTHOR" desc="autor fotografii">Oťula</const> <const name="NOTE" desc="poznamka k fotogalerii">Jsou opravdu překrásné</const> </conf>A parser vypadá takto (je v něm už doplněno i vše možné, co jsem poznacházel po webu ohledně UTF-8, že by mělo pomoci, ale nepomohlo):
function start_element($parser,$tag,$attr) { global $at, $desc, $current; $current=$tag; if (strcmp($tag,"const")==0) { $at=$attr["name"]; } } function end_element($parser,$tag) { global $current; $current=""; } function element_data($parser,$data) { global $at,$current; if (strcmp($current,"const")==0) { define($at,$data); } } function config($loc) { if (!file_exists($loc)) { return 0; } else { if(!($f=fopen($loc,"r"))) { return 0; } else { $at=""; $current=""; $parser=xml_parser_create("UTF-8"); xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING,"UTF-8"); xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1); xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0); xml_set_element_handler($parser,"start_element","end_element"); xml_set_character_data_handler($parser,"element_data"); if(!xml_parse($parser,fread($f,filesize($loc)))) { xml_parser_free($parser); return 0; } } xml_parser_free($parser); return 1; } }Při uvedených příkladech to tedy vypadá tak, že se název galerie zobrazí "Jarn", autor "O", implicitní title a alt "obr", a poznámka "Jsou opravdu p". Byl bych vděčný za radu, jak to dát dohromady.
Řešení dotazu:
config("config.xml"); $dc = get_defined_constants(true); echo "<pre>", print_r($dc["user"], true), "</pre>";tak sa mi zobrazí niečo takéto:
Array ( [ROW_THUMB_NUM] => 3 [PREFIX] => tn_ [DESC_FILE] => popisky.txt [SHOW_DESC] => 1 [SHOW_THUMB_DESC] => 1 [IMPLICIT_DESC] => obrázek [GALLERY_NAME] => Jarní květinky [AUTHOR] => Oťula [NOTE] => Jsou opravdu překrásné )(a teda, mne to funguje normálne)
... //nacteni konstant z xml souboru include("./xml.php"); //nacteni xml parseru @$chyba = config($folder.$setting); //pokud nebyl config.xml nalezen, tak nastav hodnoty explicitne //implicitni nastaveni promenych z config.xml (!defined("THUMB_NUM"))?define("THUMB_NUM","15"):""; //9 nahledu na stranku (!defined("ROW_THUMB_NUM"))?define("ROW_THUMB_NUM","3"):""; // 3 nahledy na radku (!defined("PREFIX"))?define("PREFIX","tn_"):""; //prefix souboru s nahledy (!defined("DESC_FILE"))?define("DESC_FILE","popisky.txt"):""; //nazev souboru s popiskami (!defined("SHOW_DESC"))?define("SHOW_DESC","1"):""; // zobrazovat popisky u fotek (!defined("SHOW_THUMB_DESC"))?define("SHOW_THUMB_DESC","1"):""; // zobrazovat popisky u nahledu (!defined("IMPLICIT_DESC"))?define("IMPLICIT_DESC","obrázek"):""; // implicitni popiska (!defined("GALERY_NAME"))?define("GALLERY_NAME",""):""; // nazev galerie (!defined("DATE"))?define("DATE",""):""; // datum vytvoreni fotek (!defined("AUTHOR"))?define("AUTHOR",""):""; // autor fotek (!defined("NOTE"))?define("NOTE",""):""; //poznamka k fotogalerii ... ... ... ... //vypis nadpisu, autora a data porizeni fotek echo "<div id=\"hlavicka\">\n"; echo (GALLERY_NAME != "" && defined("GALLERY_NAME"))?"<h2>".GALLERY_NAME."</h2>\n":"\n"; echo (NOTE != "" && defined("NOTE"))?"<p>".NOTE."</p>\n":"\n"; echo (AUTHOR != "" && defined("AUTHOR"))?"<p><strong>Autor: </strong>".AUTHOR."</p>\n":"\n"; echo (DATE != "" && defined("DATE"))?"<p><strong>Datum: </strong>".DATE."</p>\n":"\n"; echo "</div>\n"; ... ... ...a je to načítáno do souboru s takovouto hlavičkou:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" > <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> ...
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> </head> <body> <?php include("./xml.php"); @$chyba = config("config.xml"); $dc = get_defined_constants(true); echo "<pre>", print_r($dc["user"], true), "</pre>"; ?> </body> </html>
config.xml
a ponechám ho v tom souboru, odkud se načte, pokud v config.xml
nic není, tak je to v pořádku.
<?php function start_element($parser,$tag,$attr) { global $at, $desc, $current; echo "start_element: (", $tag, ", ", print_r($attr, true), ")<br>"; $current=$tag; if (strcmp($tag,"const")==0) { $at=$attr["name"]; } } function end_element($parser,$tag) { global $current; echo "end_element: (", $tag, ")<br>"; $current=""; } function element_data($parser,$data) { global $at,$current; echo "element_data: (", $data, ")<br>"; if (strcmp($current,"const")==0) { define($at,$data); } } function config($loc) { if (!file_exists($loc)) { return 0; } else { if(!($f=fopen($loc,"r"))) { return 0; } else { $at=""; $current=""; $parser=xml_parser_create("UTF-8"); xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING,"UTF-8"); xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1); xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0); xml_set_element_handler($parser,"start_element","end_element"); xml_set_character_data_handler($parser,"element_data"); if(!xml_parse($parser,fread($f,filesize($loc)))) { xml_parser_free($parser); return 0; } } xml_parser_free($parser); return 1; } } ?>Zo zobrazovaných informácií je jasné, že sa bude musieť presunúť definovanie tej konštanty až do funkcie end_element (a v element_data sa bude ten text spájať).
start_element: (const, Array ( [name] => GALLERY_NAME [desc] => nazev akce, odkud fotky pochazi ) ) element_data: (Jarn) element_data: (í květinky) end_element: (const) element_data: ( ) start_element: (const, Array ( [name] => DATE [desc] => datum vytvoreni fotek ) ) end_element: (const) element_data: ( ) start_element: (const, Array ( [name] => AUTHOR [desc] => autor fotografii ) ) element_data: (O) element_data: (ťula) end_element: (const) element_data: ( ) start_element: (const, Array ( [name] => NOTE [desc] => poznamka k fotogalerii ) ) element_data: (Jsou opravdu p) element_data: (řekrásné) end_element: (const) element_data: ( ) end_element: (conf)
<?php function start_element($parser,$tag,$attr) { global $at, $element_data, $desc, $current; $current=$tag; if (strcmp($tag,"const")==0) { $at=$attr["name"]; $element_data = ""; } } function end_element($parser,$tag) { global $at,$element_data,$current; if (strcmp($current,"const")==0) { define($at,$element_data); } $current=""; } function element_data($parser,$data) { global $at,$element_data,$current; if (strcmp($current,"const")==0) { $element_data .= $data; } } function config($loc) { if (!file_exists($loc)) { return 0; } else { if(!($f=fopen($loc,"r"))) { return 0; } else { $at=""; $current=""; $parser=xml_parser_create("UTF-8"); xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING,"UTF-8"); xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1); xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0); xml_set_element_handler($parser,"start_element","end_element"); xml_set_character_data_handler($parser,"element_data"); if(!xml_parse($parser,fread($f,filesize($loc)))) { xml_parser_free($parser); return 0; } } xml_parser_free($parser); return 1; } } ?>
Tiskni
Sdílej: