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í
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
včera 16:38 | Komunita

Byly zveřejněny videozáznamy přednášek a workshopů z letošní konference OpenAlt konané 5. a 6. listopadu v Brně. K videozáznamům lze přistupovat ze stránky na SuperLectures nebo přes program konference, detaily o vybrané přednášce nebo workshopu a dále kliknutím na ikonku filmového pásu. Celkově bylo zpracováno 65 hodin z 89 přednášek a workshopů.

Ladislav Hagara | Komentářů: 0
včera 11:30 | Komunita

Bylo oznámeno, že bude proveden bezpečnostní audit zdrojových kódů open source softwaru pro implementaci virtuálních privátních sítí OpenVPN. Audit provede Matthew D. Green (blog), uznávaný kryptolog a profesor na Univerzitě Johnse Hopkinse. Auditována bude verze 2.4 (aktuálně RC 1, stabilní verze je 2.3.14). Audit bude financován společností Private Internet Access [reddit].

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

Na YouTube byl publikován Blender Institute Reel 2016, ani ne dvouminutový sestřih z filmů, které vznikly za posledních 10 let díky Blender Institutu. V institutu aktuálně pracují na novém filmu Agent 327. Dění kolem filmu lze sledovat na Blender Cloudu. Videoukázka Agenta 327 z června letošního roku na YouTube.

Ladislav Hagara | Komentářů: 0
včera 01:02 | Zajímavý článek

Minulý týden byly vydány verze 1.2.3 a 1.1.7 webového poštovního klienta Roundcube. V oznámení o vydání bylo zmíněno řešení bezpečnostního problému nalezeného společností RIPS a souvisejícího s voláním funkce mail() v PHP. Tento týden byly zveřejněny podrobnosti. Útočník mohl pomocí speciálně připraveného emailu spustit na serveru libovolný příkaz. Stejně, jak je popsáno v článku Exploit PHP’s mail() to get remote code execution z roku 2014.

Ladislav Hagara | Komentářů: 1
8.12. 16:00 | Nová verze

Byla vydána verze 0.98 svobodného nelineárního video editoru Pitivi. Z novinek lze zmínit například přizpůsobitelné klávesové zkratky. Videoukázka práce s nejnovější verzí Pitivi na YouTube.

Ladislav Hagara | Komentářů: 1
8.12. 15:00 | Zajímavý software

Stop motion je technika animace, při níž je reálný objekt mezi jednotlivými snímky ručně upravován a posouván o malé úseky, tak aby po spojení vyvolala animace dojem spojitosti. Jaký software lze pro stop motion použít na Linuxu? Článek na OMG! Ubuntu! představuje Heron Animation. Ten bohužel podporuje pouze webové kamery. Podpora digitálních zrcadlovek je začleněna například v programu qStopMotion.

Ladislav Hagara | Komentářů: 5
7.12. 21:21 | Nová verze Ladislav Hagara | Komentářů: 0
7.12. 11:44 | Zajímavý projekt

Na Indiegogo byla spuštěna kampaň na podporu herní mini konzole a multimediálního centra RetroEngine Sigma od Doyodo. Předobjednat ji lze již od 49 dolarů. Požadovaná částka 20 000 dolarů byla překonána již 6 krát. Majitelé mini konzole si budou moci zahrát hry pro Atari VCS 2600, Sega Genesis nebo NES. Předinstalováno bude multimediální centrum Kodi.

Ladislav Hagara | Komentářů: 2
7.12. 00:10 | Nová verze

Byla vydána verze 4.7 redakčního systému WordPress. Kódové označením Vaughan bylo vybráno na počest americké jazzové zpěvačky Sarah "Sassy" Vaughan. Z novinek lze zmínit například novou výchozí šablonu Twenty Seventeen, náhledy pdf souborů nebo WordPress REST API.

Ladislav Hagara | Komentářů: 10
6.12. 12:00 | Zajímavý projekt

Projekt Termbox umožňuje vyzkoušet si linuxové distribuce Ubuntu, Debian, Fedora, CentOS a Arch Linux ve webovém prohlížeči. Řešení je postaveno na projektu HyperContainer. Podrobnosti v často kladených dotazech (FAQ). Zdrojové kódy jsou k dispozici na GitHubu [reddit].

Ladislav Hagara | Komentářů: 28
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (24%)
 (29%)
 (7%)
 (5%)
 (3%)
Celkem 807 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: Jak vypsat html uvnitř metody

13.4.2012 12:30 Soleto
Jak vypsat html uvnitř metody
Přečteno: 218×
Ahoj,

mám něco takového
class foo {
  function show{
    $to = '<span>'.time().'</span>';
    return $to;
  }
}
ale potřeboval bych to mít napsané nějak takto
class foo {
  function show{
    <span><?php echo time(); ?></span>
    return ?????;
  }
}
Ale nevím jak to vrátit returnem nebo prostě jak to vrátit jinak. Poradí někdo? Děkuji

Řešení dotazu:


Odpovědi

Tarmaq avatar 13.4.2012 12:52 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Jak vypsat html uvnitř metody
co ma ta metoda show() delat? ma tisknout nebo neco vracet nebo co? Ten kod v tom druhem bloku je nejaky blaznivy, napis to znovu a lepe..
Don't panic!
13.4.2012 13:08 Soleto
Rozbalit Rozbalit vše Re: Jak vypsat html uvnitř metody
Ano, po metodě show() chci aby vracela, kdyby měla isknout tak tam dám echo. Takhle nevím jak to udělat.. Co se ti ma tom nezdá?
class foo {
  function show{
    <span><?php echo time(); ?></span>
    return ?????;
  }
}

$foo = new foo();
echo $foo->show();// vypsat to potrebuji až tady..
13.4.2012 15:19 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Jak vypsat html uvnitř metody
function show1(){
  return '<span>'. time(). '</span>';
}
OR //náročnějí
function show2(){
  $pomstr = '<span>'. time(). '</span>';
  return $pomstr;
}
OR //náročnějí
function show3(){
  $pomstr = '<span>';
  $pomstr .= time();
  $pomstr .= '</span>';
  return $pomstr;
}
PS: Nemyslím to zle (ba naopak), ale asi by to chtělo položit dotaz „jaká je nejlepší kniha o PHP a objektovém programování“.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
13.4.2012 15:43 Filip Jirsák | skóre: 66 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Jak vypsat html uvnitř metody
Předpokládám, že tazateli šlo o to, jak potřebný text neuvádět jako obsah řetězce, ale uvést jej jako část vstupního dokumentu (tj. mimo části <?php … ?>). Předpokládám, že tam nemá být obyčejný <span>, ale nějaký delší kód, kde mohou být uvozovky, apostrofy atd., a tazatel se chce vyhnout složitému uvozování a spojování.

Myslím, že PHP něco takového neumožňuje, a je to obecně problém jazyků, které míchají šablonu s programovým kódem. Podle mne by nejčistší řešení v případě, kdy chcete šablonu a kód míchat, bylo nevracet ten text jako výstup z metody, ale rovnou jej vypsat na výstup. Pak snad můžete použít konstrukci
<?php
class foo {
  function show{
?>
    <span><?php echo time(); ?></span>
<?php
    return ?????;
  }
}
?>
Vracet ten text jako návratovou hodnotu funkce je divné, stejně to předpokládám budete chtít vypsat do výstupu. Ale jak už jsem psal, když máte jako základ špinavost typu míchání šablony a kódu, těžko pak hledat nějaké čisté řešení.
13.4.2012 15:47 Filip Jirsák | skóre: 66 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Jak vypsat html uvnitř metody
Jinak dostat ten text do proměnné místo na výstup by šlo pomocí ob_start() a ob_get_contents(). Ale nevím, zda je to spolehlivé řešení a zda se předpokládá takové využití těch funkcí, nebo zda by to byl jen hack.
13.4.2012 16:06 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Jak vypsat html uvnitř metody
ob_xxxx jsou standardní funkce běžně používané na zachycení výstupu.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
13.4.2012 17:47 Kit
Rozbalit Rozbalit vše Re: Jak vypsat html uvnitř metody
Je to spolehlivé řešení a dokonce je i rychlejší, než generování výstupu přímo.
13.4.2012 16:15 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Jak vypsat html uvnitř metody
Přiznám se, že jsem to úplně nepochopil, ale asi něco takovéhoto:
$str = <<<MY_UNIQUE_DELIMITER
<span>
Dlouhy kod obsahující "'$ a další blbosti,
ale samozřejmně znaky " do html takto jsou špatně,
pokud tedy nejsou tam kde mají být.
</span>
MY_UNIQUE_DELIMITER;
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
13.4.2012 16:19 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Jak vypsat html uvnitř metody
No samozřejmě blbě, protože to nepoužívám $ musí být \$;
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
Tarmaq avatar 13.4.2012 17:13 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Jak vypsat html uvnitř metody
Nezdalo se mi na tom to, ze to obsahuje spoustu syntax erroru a nedavalo to moc smysl.. jinak ted uz asi chapu o co ti jde, chces aby v tom spanu byl cas v dobe deklarace tridy a ne v dobe kdy se vola na jeji instanci metoda show(). Je to tak?

Pak bych to udelal takhle:
$myTime = time();
class foo
{
  public function show($time)
  {
    return '<span>'.$time.'</span>';
  }
}

$foo = new foo();
echo $foo->show($myTime);
Don't panic!
13.4.2012 17:44 Kit
Rozbalit Rozbalit vše Re: Jak vypsat html uvnitř metody
Asi bych ten čas dal rovnou do třídy. Můžu si tak udělat víc měřičů nezávislých na sobě.
class Foo {
  private $myTime;

  public function __construct() {
    $this->myTime=time();
  }

  public function __toString($time) {
    return '<span>'.$this->myTime.'</span>';
  }
}

$foo = new Foo();
echo $foo;
Tarmaq avatar 13.4.2012 17:55 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Jak vypsat html uvnitř metody
No to zalezi na tom, k cemu ma slouzit trida Foo. Pokud to ma byt nejake univerzalni "malovatko", tak predavat parametrem do metody. Pokud to ma byt trida ktera nejak vic s tim casem pracuje, predat do konstruktoru a ulozit do privatni promenne je lepsi.

Jinak on tam ale asi nechce cas, instanciace tridy ale cas kdy byla deklarovana. Nevim jaky k tomu ma duvod, asi mezi tim kodem probiha neco casove narocnejsiho co chce zmerit. Ale to jen hadam..
$myTime = time();
class Foo {
  private $myTime;

  public function __construct() {
    $this->myTime = time();
  }

  public function __toString($time) {
    return '<span>'.$this->myTime.'</span>';
  }
}

$foo = new Foo($myTime);
echo $foo;
Don't panic!
13.4.2012 13:20 chrono
Rozbalit Rozbalit vše Re: Jak vypsat html uvnitř metody
Dá sa urobiť napr. niečo takéto:
<?php
function eval_code($s)
{
        ob_start();
        eval("?>" . $s . "<?php ");
        $t = ob_get_contents();
        ob_end_clean();
        return $t;
}

function show()
{
    return eval_code("<span><?php echo time(); ?></span>");
}

echo show();
Je ale otázne, ako veľmi to je (ne)bezpečné a určite je rozumnejšie riešenie použiť nejaký šablónovací systém.
rADOn avatar 13.4.2012 14:38 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: Jak vypsat html uvnitř metody
class foo {
  function show() {
    return "" . time() . "";
  }
}
"2^24 comments ought to be enough for anyone" -- CmdrTaco
13.4.2012 16:52 Ivo
Rozbalit Rozbalit vše Re: Jak vypsat html uvnitř metody
<?php
class foo {
  function show{
     ob_start();
?>
    <span><?php echo time(); ?></span>
<?php
    $ret = ob_get_contents();
    ob_end_clean();
    return $ret;
  }
}
?>

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.