Parsování php souboru – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Parsování php souboru – PHP – Fórum – Programujte.comParsování php souboru – PHP – Fórum – Programujte.com

 

Konycz0
Newbie
19. 8. 2020   #1
-
0
-

Ahoj, potřeboval bych v PHP vytáhnout z druhého php souboru jeden řádek a uložit do proměné... Na tom řádku je pouze jedno číslo

když otevřu php soubor na serveru, tak mi zobrazi : 

Aktuální rychlost :
KUBA PC DW
KUBA PC UP
NAS DW
NAS UP

0
0
133
875
0
0
0
0
0
0

A já bych potřeboval řádek 9 uložit do proměné a použít na stránkách

Nahlásit jako SPAM
IP: 89.31.43.–
peter
~ Anonymní uživatel
3619 příspěvků
19. 8. 2020   #2
-
+1
-
Zajímavé
Kit +

   

$file = '123.txt';
$str = file_get_contents($file);
$row_list = explode("\n", $str);
echo $row_list[6];
echo $row_list[7];
echo $row_list[8];

Co jsi nasel v online manualu nebo google?
google = php read show text file

Nahlásit jako SPAM
IP: 2001:718:2601:258:4dbc:3838:5a25:f2e0...–
peter
~ Anonymní uživatel
3619 příspěvků
19. 8. 2020   #3
-
0
-

A jeste priklad hledani v manualu... Take nic sloziteho, jako u googlu :)
php.net/file
php.net/file_get_contents
php.net/explode
php.net/echo
 

Nahlásit jako SPAM
IP: 2001:718:2601:258:4dbc:3838:5a25:f2e0...–
Konycz0
Newbie
20. 8. 2020   #4
-
0
-

Ale to je parsovani ze souboru, jde to stejne i z http adresy na php ?

Nahlásit jako SPAM
IP: 213.211.34.–
Konycz0
Newbie
20. 8. 2020   #5
-
0
-

kdyz jsem dal misto adresy souboru php soubor, která vykonává funkci, tak mi to samozrejme vytahlo obsah php souboru, ale ne vysledek php stránky....

Možná jsem přemýšlel že udělat výstup php stránky do txt a potom to parsovat

Nahlásit jako SPAM
IP: 213.211.34.–
gna
~ Anonymní uživatel
1208 příspěvků
20. 8. 2020   #6
-
0
-

#5 Konycz
Když tam dáš HTTP URL, tak se to načte přes web server a tedy dostaneš výstup toho skriptu. (Pokud je to v nastavení povolené - allow_url_fopen)

Když je to tvůj skript na tvém serveru, tak nemusíš nic parsovat a snad víš, jak se ten výstup produkuje. Takže tak maximálně ten kód hodíš do funkce, abys nepsal stejnou věc dvakrát.

Nahlásit jako SPAM
IP: 213.211.51.–
Konycz0
Newbie
20. 8. 2020   #7
-
0
-

Ano je to muj server, ale nejak to nechapu... co mam tedy presne vyzkouset ? Pokud dam http url toho php souboru ktery vykonava tu funkci tak se mi vypise pouze obsah toho php souboru, ale ne vysledek vykonani toho php

Nahlásit jako SPAM
IP: 213.211.34.–
gna
~ Anonymní uživatel
1208 příspěvků
20. 8. 2020   #8
-
0
-

Tak to máš nějak zvláštně nakonfigurovaný server, že ti PHP skripty někdy spouští a jindy ne.

Ale jak už jsem napsal, když je to tvůj kód, tak víš, jak se ty hodnoty produkují. Tak je vyprodukuj znova.

Nahlásit jako SPAM
IP: 213.211.51.–
Kit+14
Guru
20. 8. 2020   #9
-
0
-

#7 Konycz
Na prvním řádku skriptu v PHP musí být 

<?php

Máš to tam?

Nahlásit jako SPAM
IP: 213.175.43.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Konycz0
Newbie
21. 8. 2020   #10
-
0
-

Samozrejme ze mam

Nahlásit jako SPAM
IP: 213.211.34.–
Konycz0
Newbie
22. 8. 2020   #11
-
0
-

Tak jsem schválně pouzil :

<?php
$file = 'http://xxxxxx/yyyyyyy/test/statusyphp.php';
$str = file_get_contents($file);
$row_list = explode("\n", $str);
echo $row_list[1];
echo $row_list[2];
echo $row_list[3];
echo $row_list[4];
echo $row_list[5];
echo $row_list[6];
echo $row_list[7];
echo $row_list[8];
echo $row_list[9];
echo $row_list[10];
echo $row_list[11];
echo $row_list[12];
echo $row_list[13];
echo $row_list[14];
echo $row_list[15];
echo $row_list[16];
echo $row_list[17];
echo $row_list[18];
echo $row_list[19];
echo $row_list[20];
echo $row_list[21];
echo "Potřebny vypis" . $row_list[5];
?>

a vypsalo mi to

Aktuální rychlost :
KUBA PC DW
KUBA PC UP
NAS DW
NAS UP

0
0
3
95
0
0
0
0
0
0
Potřebny vypis

Nahlásit jako SPAM
IP: 213.211.34.–
Kit+14
Guru
22. 8. 2020   #12
-
0
-

#11 Konycz
Šestý řádek máš přece prázdný. Co z něho chceš vypisovat?

Místo `file_get_contents()` zkus funkci `file()`. Nemusíš pak explodovat.

Nahlásit jako SPAM
IP: 46.135.7.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Konycz0
Newbie
22. 8. 2020   #13
-
0
-

Zkousel jsem i ruzny cisla a taky prazdny

Nahlásit jako SPAM
IP: 213.211.34.–
Konycz0
Newbie
22. 8. 2020   #14
-
0
-

Při použití jen file(), to vypíše pouze

Potřebny vypis
Nahlásit jako SPAM
IP: 213.211.34.–
Kit+14
Guru
22. 8. 2020   #15
-
0
-

#14 Konycz
Však ten řádek je prázdný. Co jiného by měl vypisovat?

Nahlásit jako SPAM
IP: 46.135.7.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Konycz0
Newbie
22. 8. 2020   #16
-
0
-

ne, změnil jsem i číslo řádku a stejně to nic nevypíše,.,

Když jsem se díval na


file_get_contents ( string $filename [, bool $use_include_path = FALSE [, resource $context [, int $offset = 0 [, int $maxlen ]]]] ) : string 

$str = file_get_contents($file, FALSE, NULL, 173, 5);


Kde 173 určuje prvotní pozici a 5 potom kolik znaků načte....

Ale to je taky nepoužitelné.. protože já můžu mít výsledek 1 ale i klidně 33333399777

Proto bych potřeboval, aby vždy načetl celý řádek a ten vložil do proměné

tak lze použít :

Nahlásit jako SPAM
IP: 213.211.34.–
Kit+14
Guru
22. 8. 2020   #17
-
0
-

#16 Konycz
Máš sem posílat ukázku, když to nefunguje. Skripty, které jsi uvedl, vypisují přesně to, co mají. Co se má objevit za "Potřebný výpis"? Podle dat tam nemá být nic.

Nahlásit jako SPAM
IP: 46.135.7.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Konycz0
Newbie
22. 8. 2020   #18
-
0
-

Vysledek vykonaneho php je v prvnim prispevku... 

Nahlásit jako SPAM
IP: 213.211.34.–
Kit+14
Guru
22. 8. 2020   #19
-
0
-

#18 Konycz
V prvním příspěvku je vše v pořádku. V čem je problém?

Nahlásit jako SPAM
IP: 46.174.37.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Konycz0
Newbie
22. 8. 2020   #20
-
0
-

Ze pokud to tak parsuju, tak mi to nacte obsah souboru php, ale ne vysledek to co ma ten soubor vykonat. Ten php soubor ma za ukol vycist hodnoty z mikrotiku a ja potrebuji z toho vysledku vytahnout jen urcite veci

Nahlásit jako SPAM
IP: 212.4.155.–
gna
~ Anonymní uživatel
1208 příspěvků
22. 8. 2020   #21
-
+1
-
Zajímavé
Kit +

Jakto, že je v tom výpisu několik řádků, když ty žádné odřádkování neděláš?

Ten skript nevrací holý text, jak nám ho tady ukazuješ, ale HTML, viď? Tak podle toho to taky parsuj.

Nahlásit jako SPAM
IP: 213.211.51.–
gna
~ Anonymní uživatel
1208 příspěvků
22. 8. 2020   #22
-
0
-

#20 Konycz
Obsah souboru PHP ti to nikdy nevrátí, protože ho server spustí a vrátí ti jeho výstup. Což je pravděpodobně HTML.

Nahlásit jako SPAM
IP: 213.211.51.–
peter
~ Anonymní uživatel
3619 příspěvků
25. 8. 2020   #23
-
0
-

Ja moc nechapu, co ti na tech prikladech, co jsi uvedl, nefunguje. Dej sem odkaz na soubor a tvuj php prejmenuj na txt a dej na nej odkaz taky.

 

<?php echo 123; ?>
Browser dostane hlavicku, ze server posila html/text, kodovani znaku treba 
cestina a obsahem souboru je 123. To se vypise uzivateli ve webovem 
prohlizeci

<?php echo '123<br>'; ?>
<?php echo '<p>123</p>'; ?>
To udela totez, uzivatel si ani nevsimne, ze se text formatoval odstavcem.

<?php echo htmlspecialchars('<p>123</p>'); ?>
Nez echo vyteneruj obsah html souboru, ta fukce hlml kod prevede, znacky
 tagu na entity &lt; &gt;

<?php 
header('Content-Type:text/html');
echo htmlspecialchars('<p>123</p>'); ?>
totez

<?php
header('Content-Type:text/plain');
echo '<p>123</p>'; ?>
Ted jsem zmenil hlavicku, kterou odesilam prohlizeci, soubor bude text, takze mi zobrazi tagy i bez te funkce

Otazkou ovsem je, co tam mas ty a co s tim delas dal? 

<?php
$url = 'slozka/soubor.txt';
$str = file_get_contents($url);
$list = explode ("\n", $str);

var_dump($list); // vypis1

foreach ($list as $row) // vypis 2
var_dump($row);

foreach ($list as $row) // vypis 3
echo '<br>'.htmlspecialchars($row));

foreach ($list as $row) // vypis 4
printr($row);

Na kazde slovo ve tvem kodu najdes v php dokumentaci, online, spoustu prikladu. I googlem. Takze, obvykle mas behem 10s spoustu materialu a neni treba  cekat, az nekdo zareaguje, treba na forku :)

Nahlásit jako SPAM
IP: 2001:718:2601:372:215c:b241:59aa:fbae...–
peter
~ Anonymní uživatel
3619 příspěvků
25. 8. 2020   #24
-
0
-

Jo, hlavicku muzes  menit jen, pokud jsi neodeslal zadny html, text znak, nepouzil echo nebo var_dump, printr a pod. Obvykle byvaji servery nastaveny tak, ze odesilaji pri kazdem echo. Nebo treba tam mas utf-8 BOM znak nebo tam mas jine nezobrazitelne znaky, casto treba z wordu...
Zkratka, bud si to pohlidat, nebo si nastavis ob_start(). Pokud ne, tak server pinda hlasku Header is already send. Ta se da mimochodem vygooglovat, takze bys nasel treba na stackoverflow nejake tipy.
Ja jen chci rici, ze pouzit header() funkci nemusi byt jen tak. Obcas je treba experimentovat nez prijdes na to, co je tam spatne, proc demo priklad z googlu funguje a jaky je rozdil mezi tvym a jejich kodem.

Nahlásit jako SPAM
IP: 2001:718:2601:372:4131:ef58:92f0:95c6...–
Zjistit počet nových příspěvků

Přidej příspěvek

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 24 hostů

Podobná vlákna

Parsování souboru — založil cniry

Parsování souboru — založil oxidián

PHP Vyhledavaní v souboru — založil Petr

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032020 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý