Po téměř třech letech od vydání verze 9 byla vydána nová verze 10 linuxové distribuce Mageia (Wikipedie). Přehled novinek v poznámkách k vydání.
Nourish (GitHub) je nový správce oken pro Linux. Tradiční plochy nahrazuje nekonečným plátnem a posouváním a přibližováním. Využívá vlastní kompozitor pro Wayland s názvem y5. Videoukázka.
Po 20 letech a 17 otevřených (open source) krátkých filmech Blender Studio oznámilo plán na svůj první celovečerní film. Cílem samozřejmě není jenom nový otevřený film, ale především vývoj a vylepšení otevřených nástrojů pro spolupráci napříč celým procesem a vytvoření otevřené příručky (playbook) pro filmovou produkci ve velkém měřítku s informacemi, které jsou obvykle dostupné pouze uvnitř komerčních studií, a pomoci tak nezávislým tvůrcům překonat technické a organizační bariéry.
Byla vydána nová verze 26.6.25 svobodného multiplatformního video editoru Shotcut (Wikipedie) postaveného nad multimediálním frameworkem MLT. Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.
Apple bez varování odstranil ze svého obchodu sociální síť VKontaktě i další aplikace skupiny VK, jako je VK Music nebo VK Video [Novinky.cz].
V dubnu loňského roku představený poštovní klient Notion Mail bude 22. září ukončen.
Konference OpenAlt 2026 hledá přednášející. Proběhne o víkendu 7. a 8. listopadu na půdě Fakulty informačních technologií VUT v Brně. Témata konference jsou: Otevřený a svobodný software, IoT a Hnutí tvůrců, Vzdělávání, Bezpečnost a soukromí, Otevřená společnost, komunity a data, OpenMobility a další.
Společnosti OpenAI a Broadcom oznámily čip optimalizovaný pro AI pojmenovaný Jalapeño.
Deno (Wikipedie), běhové prostředí (runtime) pro JavaScript, TypeScript a WebAssembly, bylo vydáno v nové verzi 2.9. Hlavní novinkou je deno desktop pro převod Deno projektu na desktopovou aplikaci. Jedná se o alternativu k frameworkům Electron nebo Tauri.
Od zítra jsou Datové schránky oficiálně na nové adrese datovka.gov.cz. Adresa mojedatovaschranka.cz zůstává funkční do 27. srpna 2026, následně budou uživatelé automaticky přesměrováni na datovka.gov.cz.
Již delší dobu jsem nic nenapsal o mých zkušenostech s PHP. Jak je z nadpisu partné zkoušel jsem parsování XML v PHP, ale nějak mi to nevychází.
Na parsování jsem si vytvořil jednoduchý soubor XML:
<?xml version="1.0" encoding="UTF-8"?> <apcpinstall> <type>component</type> <name>test</name> <author>Filip Bartmann</author> <e-mail>xxx@yyy.info</e-mail> <license>GNU-GPL</license> <sql type="install">CREATE TABLE #__test (test_id int(5) NOT NULL auto_increment, test_name mediumtext NOT NULL, PRIMARY KEY(test_id))</sql> <sql type="uninstall">DROP TABLE #_test</sql> <files> <file id="main">test.php</file> <file id="menu">menu.php</file> <file id="lang">cs_CZ.utf8</file> <file id="lang">en_GB.utf8</file> </files> </apcpinstall>
Kód pársuji pomocí této třídy:
class xmlparse {
public $langs=Array();
function begin($parser, $name, $attr) {
$this->xml = $name;
$this->attr = $attr;
$this->pd = 0;
}
function stop($parser, $name) {
if ($name == "apcpinstall") {
switch ($this->type) {
case "component":
$sql = "INSERT INTO #__components SET comp_name=\"".$this->name."\", comp_url=\"com=".$this->name."\", comp_include=\"".$this->name."/".$this->main."\", comp_menu=\"".$this->name."/".$this->menu."\",core=0";
//dbcon($sql);
break;
default:
break;
}
}
}
function data($parser, $data) {
if ($this->pd == 0) {
echo $this->xml." ".$data."<br>";
switch ($this->xml) {
case "type" :
if ($data == "component") {
$this->type = "component";
}
break;
case "name" :
$this->name = $data;
case "sql" :
if (isset ($this->attr["type"])) {
if ($this->attr["type"] == "install") {
//dbcon($data);
}
}
break;
case "file" :
switch ($this->attr["id"]) {
case "main" :
$this->main = $data;
break;
case "menu" :
$this->menu = $data;
case "lang" :
array_push($this->langs,$data);
default :
break;
}
break;
default :
break;
}
$this->pd++;
}
}
function parse($cname) {
global $basePath;
$this->parser = xml_parser_create();
xml_parser_set_option($this->parser, XML_OPTION_CASE_FOLDING, 0);
xml_set_object($this->parser, $this);
xml_set_element_handler($this->parser, "begin", "stop");
xml_set_character_data_handler($this->parser, "data");
if (file_exists($basePath.'/tmp/install/'.basename($_FILES["comp"]["tmp_name"]).'/'.$cname.'/install.xml')) {
$xmlfile = fopen($basePath.'/tmp/install/'.basename($_FILES["comp"]["tmp_name"]).'/'.$cname.'/install.xml', "r");
if (!$xmlfile) {
echo "Soubor install.xml se nepodařilo otevřít<br/>";
return 0;
} else {
while ($xmldata = fread($xmlfile, filesize($basePath.'/tmp/install/'.basename($_FILES["comp"]["tmp_name"]).'/'.$cname.'/install.xml'))) {
xml_parse($this->parser, $xmldata);
}
xml_parser_free($this->parser);
$files=Array($this->main, $this->menu, $this->langs);
return $files;
}
} else {
echo "Soubor install.xml neexistuje<br>";
return 0;
}
}
}
Když si dám hodnoty vytisknout pomocí řádku zvýrazněného kurzívou zobrazí se mi toto:
apcpinstall type component type name test name author Filip Bartmann author e-mail xxx@yyy.info e-mail license GNU-GPL license sql CREATE TABLE #__test (test_id int(5) NOT NULL auto_increment, test_name mediumtext NOT NULL, PRIMARY KEY(test_id)) sql sql DROP TABLE #_test sql files file test.php file file menu.php file file cs_CZ.utf8 file file en_GB.utf8 file file
A tady je ten problém. Nemůžu zjistit proč se mi zdvojují ty otevírací tagy, tedy proč tam mám jednou type component a podruhé samotné type? Provizorně jsem to vyřešil pomocí řádků zvýrazněných tučně, ale vím, že je to špatné řešení a také bych se to docela rád naučil správně.
Druhý problém je, proč se mi v poli files v podpoli langs objevuju menu.php, když ho tam vůbec nedávám:
Array ( [0] => test.php [1] => menu.php [2] => Array ( [0] => menu.php [1] => cs_CZ.utf8 [2] => en_GB.utf8 ) )
Nemůžu přijít na to, kde mám chybu. Mohl byste mi někdo poradit co dělám špatně? Předem děkuji.
Tiskni
Sdílej:
A také, aby se někdo mohl z mých chyb poučit.
Teď jsem to už přepsal s pomocí SimpleXML pro PHP5 a ještě potřebuji něco pro PHP4.A proc? To je dneska takovy problem sehnat hosting pro PHP5? Kdyz se budeme neustale ohlizet na PHP4, jen to bude oddalovat jeho definitivni smrt, ke ktere je urceno.
V tom díle píšou o parsování XML.