O víkendu (15:00 až 23:00) probíhá EmacsConf 2023, tj. online konference vývojářů a uživatelů editoru GNU Emacs. Sledovat ji lze na stránkách konference. Záznamy jsou k dispozici přímo z programu.
Na čem aktuálně pracují vývojáři GNOME a KDE? Pravidelný přehled novinek i s náhledy aplikací v Týden v GNOME a Týden v KDE.
Organizace Apache Software Foundation (ASF) vydala verzi 20 integrovaného vývojového prostředí a vývojové platformy napsané v Javě NetBeans (Wikipedie). Přehled novinek na GitHubu. Instalovat lze také ze Snapcraftu a Flathubu.
Desktopové prostředí Cinnamon, vyvíjené primárně pro distribuci Linux Mint, dospělo do verze 6.0. Seznam změn obsahuje především menší opravy a v říjnovém přehledu novinek v Mintu avizovanou experimentální podporu Waylandu.
OpenZFS (Wikipedie), tj. implementace souborového systému ZFS pro Linux a FreeBSD, byl vydán ve verzích 2.2.2 a 2.1.14. Přináší důležitou opravu chyby vedoucí k možnému poškození dat.
V ownCloudu byly nalezeny tři kritické zranitelnosti: CVE-2023-49103, CVE-2023-49104 a CVE-2023-49105 s CVSS 10.0, 8.7 a 9.8. Zranitelnost CVE-2023-49103 je právě využívána útočníky. Nextcloudu se zranitelnosti netýkají.
I letos vychází řada ajťáckých adventních kalendářů. Programátoři se mohou potrápit při řešení úloh z kalendáře Advent of Code 2023. Pro programátory v Perlu je určen Perl Advent Calendar 2023. Zájemci o UX mohou sledovat Lean UXmas 2023. Pro zájemce o kybernetickou bezpečnost je určen Advent of Cyber 2023…
Byla vydána verze 2.12 svobodného video editoru Flowblade (GitHub, Wikipedie). Přehled novinek v poznámkách k vydání. Videoukázky funkcí Flowblade na Vimeu. Instalovat lze také z Flathubu.
Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu optimalizovaná pro jednodeskové počítače na platformě ARM a RISC-V, ke stažení ale také pro Intel a AMD, byl vydán ve verzi 23.11 Topi. Přehled novinek v Changelogu.
Po 4 měsících vývoje byla vydána nová verze 4.2 multiplatformního open source herního enginu Godot (Wikipedie, GitHub). Přehled novinek i s náhledy v příspěvku na blogu a na YouTube.
$prom1 = "neco"; $prom2_pozice = "1"; $znak1 = "S"; $znak2 = "E";a potrebuji najit v souboru cast textu, ktery podle promenych rika: budu hledat 1 text "neco" za timto textem najdu první znak S a prvni znak E a mezi temito znaky vyberu text. Vůbec nevim jak na to mam jit. Poradil by mi prosím někdo? Googloval jsem cele odpoledne ale nenasel jsem vubec nic. Dekuji za pomoc. Pepa
Řešení dotazu:
/neco.*?S(.*?)E/
function vybrat_z_textu($prom2_pozice, $prom1, $znak1, $znak2, $string)
{
// vstupni kontrola
if (strlen($prom1) < 1)
$nalez = true;
else
$nalez = false;
if (strlen($string) < 1)
return;
// zjisti delku textu
$prom_lenght = strlen($prom1);
$string_lenght = strlen($string);
// prom2_pozice by mela obsahovat cislo v poradi znaku - tedy zacni na
// patem znaku => $prom2_pozice = 5;
$i = $prom2_pozice - 1;
// probiha hledani klicove fraze $prom1 v textu
while (($nalez != true) || ($string_lenght >= ($i + 1)))
{
// pokud prvni znak klic. fraze je shodny se znakem, ktery je na rade
if ($string[$i] == $prom1[0])
{
// zjisti zdali dalsi znaky jsou shodne
$n = $i + 1;
for ($j = 1; $j <= ($prom_lenght - 1); ++$j)
{
if ($string[$n] != $prom1[$j])
break;
else
$uspech = true;
++$n;
}
// pokud jsou dalsi znaky shodne, "vrati" pozici po klic. frazi
if ($uspech)
{
$i = $n;
break;
}
}
++$i;
}
// vyhleda obe pismena
$pozice_prvniho = 0;
$pozice_druheho = 0;
while (($nalez_druheho != true) || ($string_lenght >= ($i + 1)))
{
if ($string[$i] == $znak1)
$pozice_prvniho = $i;
if ($string[$i] == $znak2)
{
$pozice_druheho = $i;
$nalez_druheho = true;
}
++$i;
}
// vybere a vrati text mezi znaky
return substr($string, $pozice_prvniho + 1,
($pozice_druheho - $pozice_prvniho) - 1);
}
// vstupni data
$prom1 = "neco";
// predpokladam ze je zde pozice, na ktere ma zacit vyhledavat
$prom2_pozice = 1;
$znak1 = "S";
$znak2 = "E";
// vstupni text
$string = "Toto je cvicny text. Jde pouze o to, aby zde program nasel
slovo Neco NECO NeCo neco (zkouska) a potom pismeno S a mezi tim ma byt text - tedy je zde.
Nyni jiz musi najit pismeno E. A je to.";
var_dump(vybrat_z_textu($prom2_pozice, $prom1, $znak1, $znak2, $string));
/* * Najde v ramci textu prvni vyskyt slova "neco" a vrati prvni podretezec, * ktery nasleduje za timto nalezem mezi pismeny "S" a "E" (bez ohledu na * spravne parovani znaku). Pokud nedojde ke shode, funkce vraci false. */ function foo($text) { $matches = array(); if (preg_match('/neco[^S]*S([^E]*)E/', $text, $matches) > 0) return $matches[1]; return false; }
Tiskni
Sdílej: