Funkcia php, ktora vracia obsah suboru, ale nevypisuje ho

Programovacie jazyky, rady, poradňa...
Skyer
Light Star
Light Star
Príspevky: 231
Registrovaný: 30 mar 2010, 15:41
Bydlisko: Bratislava

Funkcia php, ktora vracia obsah suboru, ale nevypisuje ho

Príspevok od používateľa Skyer »

Dobrý deň,
keďže nechcem riešiť obsah webu databázou, rozhodol som sa meta keywords a description uvadzat na zaciatku suboru s clankom. Preto potrebujem funkciu, ktora by precitala subor, sparsovala ho, ale nevratila ho vypisany. (V najhorsom pripade to budem riesit css - display:none, ale chcel by som elegentnejsie riesenie)

Dakujem.
Skyer
Light Star
Light Star
Príspevky: 231
Registrovaný: 30 mar 2010, 15:41
Bydlisko: Bratislava

Re: Funkcia php, ktora vracia obsah suboru, ale nevypisuje ho

Príspevok od používateľa Skyer »

Pokial viem tak ta vracia subor ako string, ja vsak potrebujem aby bol text stale povazovany sa PHP (premenne s meta desc. a keywords).
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Funkcia php, ktora vracia obsah suboru, ale nevypisuje ho

Príspevok od používateľa audiotrack »

tak použi include. Ak si prevezmeš return, tak sa ti nevypíše. Alebo si ten súbor vyparsuj ako ti treba a potom zavolaj eval
Skyer
Light Star
Light Star
Príspevky: 231
Registrovaný: 30 mar 2010, 15:41
Bydlisko: Bratislava

Re: Funkcia php, ktora vracia obsah suboru, ale nevypisuje ho

Príspevok od používateľa Skyer »

Ok ďakujem. Je možné navratovú hodnotu s include definovať aj nejako inak ako vo funkcii? (pravdepodobne nie, tak sa pustim do toho zatial)

//autoeditácia príspevku (30 Aug 2010, 17:39)
Kazdopadne mi to akosi nefunguje ani s tym return-om. Vysledok mi neustale zobrazuje.

Docasne som to vyriesil zakomentovanim vystupu include.
__construct
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 108
Registrovaný: 23 sep 2009, 9:32
Bydlisko: Dark Side of The Moon
Kontaktovať používateľa:

Re: Funkcia php, ktora vracia obsah suboru, ale nevypisuje ho

Príspevok od používateľa __construct »

K takémuto niečomu sa používa XML a následné parsovanie pomocou knižnice SimpleXML, DOMDocument alebo použi JSON a funkciu json_decode.
Skyer
Light Star
Light Star
Príspevky: 231
Registrovaný: 30 mar 2010, 15:41
Bydlisko: Bratislava

Re: Funkcia php, ktora vracia obsah suboru, ale nevypisuje ho

Príspevok od používateľa Skyer »

Ďakujem, použijem.
Mmartin
Guru
Guru
Používateľov profilový obrázok
Príspevky: 2786
Registrovaný: 07 feb 2009, 12:49
Bydlisko: Bratislava

Re: Funkcia php, ktora vracia obsah suboru, ale nevypisuje ho

Príspevok od používateľa Mmartin »

Preco mam ten dojem, ze by som to riesil fread()om?
__construct
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 108
Registrovaný: 23 sep 2009, 9:32
Bydlisko: Dark Side of The Moon
Kontaktovať používateľa:

Re: Funkcia php, ktora vracia obsah suboru, ale nevypisuje ho

Príspevok od používateľa __construct »

Spoteny programator napísal:Preco mam ten dojem, ze by som to riesil fread()om?
Prečo mám dojem že si samozvaný „programátor ?
Mmartin
Guru
Guru
Používateľov profilový obrázok
Príspevky: 2786
Registrovaný: 07 feb 2009, 12:49
Bydlisko: Bratislava

Re: Funkcia php, ktora vracia obsah suboru, ale nevypisuje ho

Príspevok od používateľa Mmartin »

Tak, s tymto som sa nikdy nestretol, s freadom som nemal ziadny problem.
__construct
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 108
Registrovaný: 23 sep 2009, 9:32
Bydlisko: Dark Side of The Moon
Kontaktovať používateľa:

Re: Funkcia php, ktora vracia obsah suboru, ale nevypisuje ho

Príspevok od používateľa __construct »

Na spracovávanie externých dát sa používa XML (na webe aj JSON). Netreba žiaden fread() a nejaké nezmyselné parsovanie..
Napr takto:

Kód: Vybrať všetko

<?xml version="1.0" encoding="UTF-8"?>
<zoznam>
        <clanok xml:id="clanok-1">
            <keywords>Kľúčové slovo, ďalšie, keywords</keywords>
            <description>Lorem ipsum dolor sit amet</description>
        </clanok>
        <clanok xml:id="clanok-2">
            <keywords>Jablko, pomaranč, hruška</keywords>
            <description>Ovocie</description>
        </clanok>
</zoznam>

Kód: Vybrať všetko

<?php
/**
 * Funkcia na načítanie metadát k článku
 * @param string $id ID článku; Pozor: ID nesmie podľa W3C začínať číslom !
 * @return array
 */
function vratMetaData($id){
    $dom = new DomDocument();
    $dom->load('metadata.xml');
    $item = $dom->getElementById($id);
    $metadata = array();
    if($item->childNodes->length) {
        foreach($item->childNodes as $i) {
            if($i->nodeName == 'keywords' || $i->nodeName == 'description')
            $metadata[$i->nodeName] = $i->nodeValue;
        }
    }
    return $metadata;
}
echo "<pre>";
var_export(vratMetaData("clanok-2"));
?>
//autoeditácia príspevku (08 Sep 2010, 15:13)
Spoteny programator napísal:Tak, s tymto som sa nikdy nestretol, s freadom som nemal ziadny problem.
:minus: mi za to dávať nemusíš :-) A neklam tak ako minule Mmartin ..
aughostino
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1269
Registrovaný: 26 apr 2007, 16:05

Re: Funkcia php, ktora vracia obsah suboru, ale nevypisuje ho

Príspevok od používateľa aughostino »

ja mam trochu iny problem, vlastne nazov temy sa mi hodi:
zapisujem do suboru data z input-u a potom ich naspat vypisujem na stranku pomocou
$text = fread($subor, 10);
no ako docielit to, aby sa vypisal cely text ktory bol zadany do inputu a nie iba tych 10 znakov? ci mam si to obmedzit napr na dostatocny pocez znakov napr 5000?

/edit: oops :oops:
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Funkcia php, ktora vracia obsah suboru, ale nevypisuje ho

Príspevok od používateľa audiotrack »

aughostino napísal:ja mam trochu iny problem, vlastne nazov temy sa mi hodi:
zapisujem do suboru data z input-u a potom ich naspat vypisujem na stranku pomocou
$text = fread($subor, 10);
no ako docielit to, aby sa vypisal cely text ktory bol zadany do inputu a nie iba tych 10 znakov? ci mam si to obmedzit napr na dostatocny pocez znakov napr 5000?
http://www.hojko.com/post1481664.html#p1481664
Grim
Darca
Darca
Používateľov profilový obrázok
Príspevky: 8702
Registrovaný: 25 jún 2008, 0:54
Bydlisko: pod železničným mostom
Kontaktovať používateľa:

Re: Funkcia php, ktora vracia obsah suboru, ale nevypisuje ho

Príspevok od používateľa Grim »

Kód: Vybrať všetko

$size = filesize("book.txt");

$book = fopen("book.txt", "r");
$text = fread($book, $size);
echo($text);
fclose($book);
Napísať odpoveď