România
Roportal.ro

Citire fisier linie cu linie

Început de flobeats, Mie 30 mai 2007 · 11 răspunsuri · 9.083 vizualizări

flobeats32 mesaje#1

Vreau sa fac o pagina demo in care sa simulez citirea temperaturii din o camera. Eu vreau sa fac aceasta citire din un fisier. In fisierul respectiv scriu datele manual:

18 grade celsius sau doar 18

19

20

18

20 ..etc

As vrea sa afisez aceste date pe rand in pagina la un anumit interval de timp.Prima data 18, dupa 30 sec 19, dupa 30 sec, 20, s.a.m.d.

Am un script care imi da o eroare de sintaxa, si care sper sa am ajute in problema asta:Parse error: syntax error, unexpected T_VARIABLE in C:\xampp\htdocs\licenta\mysql1.php on line 3

<?php

session_start();

if( (!isset($_SESSION['cnt']) $_SESSION['cnt'] = 0) );

$file = file_get_contents('fisier.txt');

$file = explode("\n",$file);

if( $_SESSION['cnt'] >= count($file) ){

$val = 'S-a citit ultima valoare';

} else {

$val = trim($file[$_SESSION['cnt']);

$_SESSION['cnt']++;

}

Multumesc

Argv2.495 mesaje#2

Incearca

if (!isset($_SESSION['cnt'])) $_SESSION['cnt'] = 0;

Mai sunt si alte greseli de sintaxa, verifica parantezele. Pentru o citire mai usoara aliniaza codul frumos si foloseste-te de spatii; sunt mai usor de identificat erorile daca respecti anumite reguli de codare..

<?php
session_start();
if (!isset($_SESSION['cnt'])) $_SESSION['cnt'] = 0;
$file = file_get_contents('fisier.txt');
$file = explode("\n", $file);
if ($_SESSION['cnt'] >= count($file))
{
 $val = 'S-a citit ultima valoare';
} 
else 
{
 $val = trim($file[$_SESSION['cnt']]);
 $_SESSION['cnt']++;
}

Editat Mie 30 mai 2007 14:47

flobeats32 mesaje#3
Argv a scris:
Mai sunt si alte greseli de sintaxa, verifica parantezele. Pentru o citire mai usoara aliniaza codul frumos si foloseste-te de spatii; sunt mai usor de identificat erorile daca respecti anumite reguli de codare..

[

Multumesc, ai dreptate..dar avand in vedere ca am vazut cod php pt prima data in viata mea acum 2 saptamani, trebuie sa ma intelegi :P

flobeats32 mesaje#4

<?php

session_start();

if (!isset ( $_SESSION ['cnt'])) $_SESSION ['cnt'] = 0;

$file = file_get_contents ('fisier.txt');

$file = explode ("\n",$file);

if( $_SESSION ['cnt'] >= count ($file) )

{

$val = 'Readed';

}

else

{

$val = trim ($file ($_SESSION['cnt']));

$_SESSION ['cnt']++;

}

Codul meu arata asa acum, dar tot primesc o eroare la linia bolduita: Fatal error: Function name must be a string in C:\xampp\htdocs\licenta\mysql1.php on line 12.

Multumesc. :jester:

flobeats32 mesaje#6

<?php

session_start();

if (!isset ( $_SESSION ['cnt'])) $_SESSION ['cnt'] = 0;

$file = file_get_contents ('fisier.txt');

$file = explode ("\n",$file);

if( $_SESSION ['cnt'] >= count ($file) )

{

$val = 'Readed';

}

else

{

$val = $file[$_SESSION['cnt']];

$_SESSION ['cnt']++;

echo $val;

}

Am scos trim din linie, mi a aratat ultimele 3 valori din fisier, apoi nu mi a mai aratat nimic

nu imi da nici o eroare, dar nici nu face nimic.

Nu stiu ce sa i fac.

Pls help.

Mersi.

Argv2.495 mesaje#7

Ar trebui sa modifici asa:

if( $_SESSION ['cnt'] >= count ($file) )

{

$val = 'Readed';

}

else

{

$val = $file[$_SESSION['cnt']];

$_SESSION ['cnt']++;

echo $val;

}

echo $val;

flobeats32 mesaje#8

Asta este codul:

<html>

<head>

<meta http-equiv="refresh" content="10" />

</head>

<body>

<?php

session_start();

if (!isset ( $_SESSION ['cnt'])) $_SESSION ['cnt'] = 0;

$file = file_get_contents ('fisier.txt');

$file = explode ("\n",$file);

if( $_SESSION ['cnt'] >= count ($file) )

{

$val = 'Readed';

}

else

{

$val = (trim ($file[$_SESSION['cnt']]));

$_SESSION ['cnt']++;

}

?>

Temperatura: <?php echo $val; ?>

</body>

</html>

Daca il rulez pe server imi afiseaza prima valoare din fisier.txt "Temperatura =20" si eroarea de mai jos:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\licenta\zzz.php:10) in C:\xampp\htdocs\licenta\zzz.php on line 11

Temperatura: 20

Daca iau doar codul php si il pun in o pag php vad ca functioneaza.

Ai idee care ar fi problema?

Multumesc.

Argv2.495 mesaje#9

N-am lucrat de mult cu php si web, dar incearca sa modifici sa faci SessionStart inainte de <head> sau chiar inainte de <html>... Incearca ambele variante

<html>

<?php

session_start();

?>

<head>

<meta http-equiv="refresh" content="10" />

</head>

<body>

<?php

if (!isset ( $_SESSION ['cnt'])) $_SESSION ['cnt'] = 0;

$file = file_get_contents ('fisier.txt');

$file = explode ("\n",$file);

if( $_SESSION ['cnt'] >= count ($file) )

{

$val = 'Readed';

}

else

{

$val = (trim ($file[$_SESSION['cnt']]));

$_SESSION ['cnt']++;

}

?>

Temperatura: <?php echo $val; ?>

</body>

</html>

Pentru refresh poti folosi si functia header. De ex:

header('Refresh: 3; url=index.html');

Editat Mie 30 mai 2007 19:14

flobeats32 mesaje#10

Identic..aceeasi eroare.

Mai intreb, multumesc pt. timpul acordat.

Editat Mie 30 mai 2007 19:36

← Înapoi la Programare