abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

dnes 00:55 | Nová verze

Po téměř 13 měsících vývoje od verze 0.11.0 byla vydána verze 0.12.0 hardwarově nenáročného desktopového prostředí LXQt (Lightweight Qt Desktop Environment, Wikipedie) vzniklého sloučením projektů Razor-qt a LXDE. Přehled novinek v příspěvku na blogu.

Ladislav Hagara | Komentářů: 0
včera 12:33 | Zajímavý software

Článek ne Medium představuje nejnovější stabilní verzi 2.0 svobodné decentralizované mikroblogovací platformy a sociální sítě podobné Twitteru Mastodon (Wikipedie). Detailní přehled novinek na GitHubu [Hacker News].

Ladislav Hagara | Komentářů: 0
včera 06:00 | Komunita

V Praze na půdě Elektrotechnické fakulty ČVUT dnes probíhá RT-Summit 2017 – setkání vývojářů linuxového jádra a uživatelů jeho real-time verze označované jako preempt-rt. Přednášky lze sledovat online na YouTube.

Ladislav Hagara | Komentářů: 0
20.10. 14:33 | Zajímavý projekt

Blender Animation Studio zveřejnilo první epizodu z připravovaného animovaného seriálu The Daily Dweebs o domácím mazlíčkovi jménem Dixey. Ke zhlédnutí také ve 3D s rozlišením 8K.

Ladislav Hagara | Komentářů: 0
20.10. 12:34 | Komunita

Aktualizovanou počítačovou hru Warhammer 40,000: Dawn of War III v ceně 39,99 eur běžící také na Linuxu lze o víkendu na Steamu hrát zdarma a případně ještě v pondělí koupit s 50% slevou. Do soboty 19:00 lze na Humble Bundle získat zdarma Steam klíč k počítačové hře Sid Meier's Civilization® III v ceně 4,99 eur běžící také ve Wine.

Ladislav Hagara | Komentářů: 0
20.10. 00:22 | Nasazení Linuxu

Společnost Samsung oznámila, že skrze dokovací stanici DeX a aplikaci Linux on Galaxy bude možno na Samsung Galaxy S8 a S8+ a Galaxy Note 8 provozovat Linux. Distribuce nebyly blíže upřesněny.

Phantom Alien | Komentářů: 19
19.10. 23:55 | Komunita

Společnost Purism na svém blogu oznámila, že její notebooky Librem jsou nově dodávány se zrušeným (neutralized and disabled) Intel Management Engine (ME). Aktualizací corebootu na již prodaných noteboocích lze Management Engine také zrušit. Více v podrobném článku.

Ladislav Hagara | Komentářů: 0
19.10. 21:44 | Nová verze

Organizace Apache Software Foundation (ASF) na svém blogu slaví páté výročí kancelářského balíku Apache OpenOffice jako jejího Top-Level projektu. Při této příležitosti byl vydán Apache OpenOffice 4.1.4 (AOO 4.1.4). Podrobnosti v poznámkách k vydání. Dlouhé čekání na novou verzi tak skončilo.

Ladislav Hagara | Komentářů: 6
19.10. 19:22 | Pozvánky

Již příští týden - 26. a 27. října se v Praze v hotelu Olšanka odehraje OpenWRT Summit. Na webu konference naleznete program a možnost zakoupení lístků - ty stojí 55 dolarů. Čtvrtek bude přednáškový a v pátek se budou odehrávat převážně workshopy a meetingy.

Miška | Komentářů: 1
19.10. 13:44 | Nová verze

Bylo vydáno Ubuntu 17.10 s kódovým názvem Artful Aardvark. Ke stažení jsou Ubuntu Desktop a Server, Ubuntu Cloud Images, Ubuntu Netboot, Kubuntu, Lubuntu a Lubuntu Alternate, Lubuntu Next, Ubuntu Budgie, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio a Xubuntu. Podrobnosti v poznámkách k vydání.

Ladislav Hagara | Komentářů: 23
Jak se vás potenciálně dotkne trend odstraňování analogového audio konektoru typu 3,5mm jack z „chytrých telefonů“?
 (10%)
 (1%)
 (1%)
 (1%)
 (74%)
 (13%)
Celkem 168 hlasů
 Komentářů: 7, poslední 19.10. 23:06
    Rozcestník

    Dotaz: PHP: include konfigurace v prilinkovanem adresari

    15.10.2009 11:22 ph0enix | skóre: 18 | Praha
    PHP: include konfigurace v prilinkovanem adresari
    Přečteno: 377×

    Ahoj, v jednom projektu jsem dospel do stavu, ze mam sadu skriptu pro zobrazovani statistickych dat jenz jsou stejne pro vice instanci a vystup je ovlivnovan pouze nastavenim konfiguracnich promennych. Dal jsem vsechny tyto soubory do samostatneho adresare a vytvoril na nej symbolicky odkaz. V tuto chvili ale resim jak spravne a elegantne vyresit nacitani konfigurace z nadrazeneho adresare.

    proj1/
      config_vars.php
      stats => ../common/stats/
    proj2/
      config_vars.php
      stats => ../common/stats/
    common/stats/
      index.php
    

    Bohuzel pokud v takto umistenem skriptu /proj1/stats/index.php chci nacist projektove specifickou konfiguraci pomoci include('../config_vars.php'), je tento soubor hledan v adresari common namisto proj1. Pokud vytvorim adresar stats a nalinkuji jednotlive skripty, vse funguje jak ocekavam. Touto cestou se vsak nechci ubirat nebot projektovych adresaru je k desitce a pocet skriptu jde take do desitek.

    Mate nejaky napad jak to elegantne vyresit?


    Řešení dotazu:


    Odpovědi

    Víťa Šmíd avatar 15.10.2009 21:20 Víťa Šmíd | skóre: 41 | blog: vituv_blog | Praha
    Rozbalit Rozbalit vše Re: PHP: include konfigurace v prilinkovanem adresari
    include dirname($_SERVER['SCRIPT_FILENAME']) . '/../config_vars.php';

    ?
    When Chuck Norris plays Monopoly, it affects the actual world economy. | Matematika pro normální lidi
    16.10.2009 10:22 ph0enix | skóre: 18 | Praha
    Rozbalit Rozbalit vše Re: PHP: include konfigurace v prilinkovanem adresari

    To bohuzel nefunguje. Je to ekvivalentni k include('../config_vars.php');. Pri pouziti teto konstrukce je nacten soubor /common/config_vars.php namisto ocekavaneho /proj1/config_vars.php (pokud se se ke skriptu pristupuje pres link v adresari proj1. Vypada to, ze nejprve se nahradi link a pak v takto ziskanem adresari udela krok do nadrazeneho adresare ve kterem hleda pozadovany soubor.

    16.10.2009 10:44 ph0enix | skóre: 18 | Praha
    Rozbalit Rozbalit vše Re: PHP: include konfigurace v prilinkovanem adresari

    Zrejme jsem neco nepochopil... Shell se chova naprosto stejne. Pokud se nastavim do proj1 tak pozadavek na editaci souboru

    vi ./stats/../config_vars.php

    otevre soubor config_vars.php z adresare common namisto z proj1. Tedy jako by nahradil link fyzickym umistenim tj.

    vi ./../common/stats/../config_vars.php

    Muze mi to nekdo znalejsi vysvetlit? Toto chovani je pro mne docela neprijemnym prekvapenim.

    16.10.2009 14:06 chochi | skóre: 29 | Praha
    Rozbalit Rozbalit vše Re: PHP: include konfigurace v prilinkovanem adresari
    Sice se toto chovani muze zda divnem, ale ve skutecnosti je jedine spravne. Problem totiz je ze konstrukce ".." neznamena nadrazeny adresar jak je uveden v ceste, ale znamena adresar, kteri je v aktualni adresari ulozen v souborovem system jako parent. Pr:
    chocholj@cz995891 r $ ls -laRi
    .:
    total 16
    4723576 drwxr-xr-x 4 chocholj users 4096 2009-10-16 14:56 .
    4723905 drwxr-xr-x 30 chocholj users 4096 2009-10-16 14:56 ..
    4732494 drwxr-xr-x 3 chocholj users 4096 2009-10-16 14:56 aa
    4732737 drwxr-xr-x 2 chocholj users 4096 2009-10-16 15:00 bb

    ./aa:
    total 16
    4732494 drwxr-xr-x 3 chocholj users 4096 2009-10-16 14:56 .
    4723576 drwxr-xr-x 4 chocholj users 4096 2009-10-16 14:56 ..
    4732968 drwxr-xr-x 2 chocholj users 4096 2009-10-16 14:56 stats
    4732965 -rw-r--r-- 1 chocholj users 4 2009-10-16 14:56 txt

    ./aa/stats:
    total 8
    4732968 drwxr-xr-x 2 chocholj users 4096 2009-10-16 14:56 .
    4732494 drwxr-xr-x 3 chocholj users 4096 2009-10-16 14:56 ..

    ./bb:
    total 12
    4732737 drwxr-xr-x 2 chocholj users 4096 2009-10-16 15:00 .
    4723576 drwxr-xr-x 4 chocholj users 4096 2009-10-16 14:56 ..
    4139335 lrwxrwxrwx 1 chocholj users 11 2009-10-16 15:00 stats -> ../aa/stats
    4732967 -rw-r--r-- 1 chocholj users 4 2009-10-16 14:56 txt
    chocholj@cz995891 r $ ls -laRi bb/stats/
    bb/stats/:
    total 8
    4732968 drwxr-xr-x 2 chocholj users 4096 2009-10-16 14:56 .
    4732494 drwxr-xr-x 3 chocholj users 4096 2009-10-16 14:56 ..

    Oznacene adresare jsou vsechny stejne (pozna se to podle cisla inode):
    ./aa = ./aa/. = ./aa/stats/.. = ./bb/stats/..
    16.10.2009 11:18 ph0enix | skóre: 18 | Praha
    Rozbalit Rozbalit vše Re: PHP: include konfigurace v prilinkovanem adresari

    Tak jsem to vyresil pomoci generovani kodu a volani eval(). Vytvoril jsem si funkce na normalizaci cesty a generovani PHP kodu jenz ulozi do zasobniku prave vkladany soubor, provede include a uklidi zasobnik. Pomocne funkce a inicializace zasobniku vypadaji nasledovne

    // oprava cesty
    function file_path_unify($param_filename) {
      $param_filename = str_replace('\\', '/', $param_filename);
      $param_filename = preg_replace('/\/+/', '/', $param_filename);
      $param_filename = str_replace('/./', '/', $param_filename);
      $param_filename = preg_replace('/\/[^\.\/]+\/\.\.\//', '/', $param_filename);
    
      return $param_filename;
    }
    // vygenerovani kodu pro include
    function get_relative_include($param_filename, $param_once = 0) {
      $result  = 'array_push($INC_STACK, file_path_unify(dirname($INC_STACK[count($INC_STACK) - 1]) . "/" . "' .
        $param_filename . '"));';
      if ($param_once) {
        $result .= 'include_once($INC_STACK[count($INC_STACK) - 1]);';
      } else {
        $result .= 'include($INC_STACK[count($INC_STACK) - 1]);';
      }
      $result .= 'array_pop($INC_STACK);';
    
      return $result;
    }
    
    // inicializace zasobniku volani
    $INC_STACK = Array($_SERVER['SCRIPT_FILENAME']);
    

    Ve vlastnim skriptu /proj1/stats/index.php pak konfiguracni soubor nactu pomoci

    eval(get_relative_include("../config_vars.php"));
    

    Takto mohu soubory vkladat ve vice urovnich zanoreni a ve vsech pouzivat relativni cesty k aktualne provadenemu souboru se zachovanim cesty pres kterou jsem se k souboru dostal a nikoliv k jeho fyzickemu umisteni na disku.

    16.10.2009 12:46 Sinuhet | skóre: 31
    Rozbalit Rozbalit vše Re: PHP: include konfigurace v prilinkovanem adresari
    Nestacilo by dat nekam na zacatek ini_set('include_path', ini_get('include_path') . ':' . dirname($_SERVER['SCRIPT_FILENAME']));? Prijdeme mi trochu prasacke kvuli takovehle blbosti pouzivat eval.
    16.10.2009 14:45 ph0enix | skóre: 18 | Praha
    Rozbalit Rozbalit vše Re: PHP: include konfigurace v prilinkovanem adresari

    To bohuzel nevyresi pozadavek na vlozeni souboru z nadrazeneho adresare. Taktez zrejme bude problem v pripade, ze soubor stejneho jmena je i v aktualnim adresari.

    Řešení 1× (ph0enix (tazatel))
    Víťa Šmíd avatar 16.10.2009 16:42 Víťa Šmíd | skóre: 41 | blog: vituv_blog | Praha
    Rozbalit Rozbalit vše Re: PHP: include konfigurace v prilinkovanem adresari
    Dostat se v cestě o jeden adresář výše přece jde i bez použití "..". Stačí třeba použít dirname dvakrát:

    include dirname(dirname($_SERVER['SCRIPT_FILENAME'])) . '/config_vars.php';

    IMHO je na tak jednoduchý problém zbytečné vymýšlet kejkle s nějakou globální proměnnou, *_replace a (chraň Tučňák!) eval :-)
    When Chuck Norris plays Monopoly, it affects the actual world economy. | Matematika pro normální lidi
    AraxoN avatar 16.10.2009 18:05 AraxoN | skóre: 45 | blog: slon_v_porcelane | Košice
    Rozbalit Rozbalit vše Re: PHP: include konfigurace v prilinkovanem adresari

    jj, eval() je zlo.

    K pôvodnej otázke: ja to riešim tak, že spoločné skripty sú len na jednom mieste, a odkaz na toto miesto sa napíše do configu.

    A fine is a tax for doing wrong. A tax is a fine for doing well.
    19.10.2009 09:34 ph0enix | skóre: 18 | Praha
    Rozbalit Rozbalit vše Re: PHP: include konfigurace v prilinkovanem adresari

    Tohle reseni mne nenapadlo. Diky.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.