Jump to content
Forum Roportal
flobeats

Citire fisier linie cu linie

Rate this topic

Recommended Posts

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

Share this post


Link to post
Share on other sites

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']++;
}

Edited by Argv

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites

<?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:

Share this post


Link to post
Share on other sites

<?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.

Share this post


Link to post
Share on other sites

Ar trebui sa modifici asa:

 

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

{

$val = 'Readed';

}

else

{

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

$_SESSION ['cnt']++;

echo $val;

}

 

echo $val;

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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');

Edited by Argv

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×