V jádře Linux byla nalezena a v upstreamu již byla opravena kritická zranitelnost GhostLock aneb CVE-2026-43499. Lokálnímu uživateli umožňuje získat práva roota a také obejít kontejnerovou izolaci. Zranitelnost existovala v Linuxu 15 let, tj. od roku 2011, od Linuxu verze 2.6.39.
Evropská komise předběžně shledala, že návykový design aplikací Instagram a Facebook od americké společnosti Meta porušuje unijní nařízení o digitálních službách (DSA). Návykový design zahrnuje například takzvané nekonečné posouvání, automatické přehrávání videí, tzv. push notifikace, kdy aplikace uživatele vybízí k návratu do jejího prostředí, či vysoce personalizovaný algoritmus, který rychle pozná, co uživatele baví a snaží
… více »Byla vydána verze 1.97.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.
Švýcarská společnost Punkt. má nově v nabídce telefon Punkt. MC03. Telefon byl navržen ve Švýcarsku s důrazem na soukromí a digitální suverenitu a vyroben v Německu. V telefonu běží operační systém AphyOS (Apostrophy OS) založený na AOSP (Android Open Source Project) 15. Cena telefonu je 745 eur.
TypeScript (Wikipedie), tj. JavaScript rozšířený o statické typování a další atributy, byl vydán v nové verzi 7.0. Kompilátor byl kvůli výkonu přepsán z TypeScriptu do Go.
Europarlament podpořil pozměněnou verzi výjimky známé jako „chat control 1.0“ umožňující firmám skenovat soukromou komunikaci na internetu kvůli ochraně dětí před zneužitím. Pozměňovací návrhy přijaté europoslanci však počítají s tím, že z výjimky bude vyřazena šifrovaná komunikace. Výjimka přestala platit začátkem dubna poté, co se Evropský parlament a Rada EU nedokázaly shodnout na jejím prodloužení. Rada následně přijala
… více »Nejnovější X.Org X server 21.1.24 a Xwayland 24.1.13 řeší 2 bezpečnostní chyby.
Clement "Clem" Lefebvre publikoval souhrn dění v Linux Mintu za červen 2026. Vypíchnuta je vylepšená podpora Waylandu. Už není považována za experimentální. V příští verzi Linux Mintu, plánována je na Vánoce, bude běh Cinnamonu plně podporován na X11 i Waylandu. V květnu na vývoj Linux Mintu přispělo 611 dárců celkovou částkou 19 612 dolarů. Dalších 2 326 patronů přispělo na Patreonu celkovou částkou 5 334 dolarů.
V Linuxu v KVM byla nalezena a v upstreamu již byla opravena kritická zranitelnost Januscape aneb CVE-2026-53359. Root na hostovaném počítači (virtuální stroj) může obejít izolaci a získat plnou kontrolu nad hostitelským systémem (DoS útok nebo vzdálené spuštění kódu s právy roota). Na obou hlavních architekturách – Intel i AMD. Zranitelnost v Linuxu existovala téměř 16 let (od srpna 2010 do června 2026).
Tribunál Soudního dvora Evropské unie dnes zamítl několik žalob, v nichž se americká společnost Apple ohrazovala proti pravidlům fungování velkých technologických společností na unijním trhu. Applu se nelíbilo, že jeho obchod s aplikacemi a operační systém iOS mají podléhat přísnějším povinnostem jen proto, že Brusel firmu považuje za takzvaného gatekeepera, tedy strážce přístupu.
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;
}
}
?>
Až budeš v Brně, máš u mne panáka
Tiskni
Sdílej: