Portál AbcLinuxu, 10. května 2025 09:42
Ahoj,
mam nasledujici seznam (397 radku):
Africa/Asmara EAT-3 Africa/Bangui WAT-1 Africa/Bissau GMT0 America/Guadeloupe AST4 America/Guatemala CST6 America/Guayaquil ECT5 Europe/Podgorica CET-1CEST,M3.5.0,M10.5.0/3 Europe/Riga EET-2EEST,M3.5.0/3,M10.5.0/4 Europe/Rome CET-1CEST,M3.5.0,M10.5.0/3 Europe/Samara SAMT-3SAMST,M3.5.0,M10.5.0/3 Europe/San Marino CET-1CEST,M3.5.0,M10.5.0/3 Europe/Prague CET-1CEST,M3.5.0,M10.5.0/3
a potreboval bych je nacpat do html tagu option (pomoci php). Radek by tedy mel vypadat nasledovne:
echo '<option value="CET-1CEST,M3.5.0,M10.5.0/3"' . $atribut . '>' . "Europe/Prague" . "</option>\n";
vysledek po zpracovani ma nasledujici tvar:
<option value="CET-1CEST,M3.5.0,M10.5.0/3">Europe/Prague</option>
Mezi nazvem casove zony a hodnotu je 1 tabulator a 1 mezera "\t ".
Potreboval bych tedy pro tech 397 casovych zon vygenerovat 397 radku php kodu.
Zkousel jsem to ruzne, ale porad mi to nejde
Řešení dotazu:
$string = "Europe/Podgorica CET-1CEST,M3.5.0,M10.5.0/3"; $pattern = "/(.+)\t (.+)/"; $replacement = "<option value=\"$2\">$1</option>"; echo preg_replace($pattern, $replacement, $string);
sed -r 's/(.+)\t (.+)/<option value="\2">\1<\/option>/' soubor_se_seznamem
Aha, tím líp ale psal jsi "pomocí PHP" :), v sedu by to bylo takto:sed -r 's/(.+)\t (.+)/<option value="\2">\1<\/option>/' soubor_se_seznamem
Diky, to funguje.
Mohl bys mi jeste poradit, jak to narvat do tohoto tvaru:
Europe/Prague CET-1CEST,M3.5.0,M10.5.0/3
echo '<option value="CET-1CEST,M3.5.0,M10.5.0/3"' . $atribut . '>' . "Europe/Prague" . "</option>\n";
sed -r "s/(.+)\t (.+)/echo \'<option value=\"\2\"' . \$atribut . '>' . \"\1\" . \"<\/option>\\\n\"/" soubor_se_seznamem
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.