webForumDet fria alternativet

Skriva till txt fil..

PHP

19 svar · 437 visningar · startad av Simpa

Medlem sedan aug. 20002 992 inlägg
Frågan#1

fwrite..
får det inte riktigt att funka, den vägrar börjar på en ny rad..

testat:
fwrite ($fp, "$namn \r $meddelande");
fwrite ($fp, "$namn \n $meddelande");

fwrite ($fp, "$namn ");
fwrite ($fp, "$meddelande");

men får inget att funka

ska hämta filerna så här:

<?php echo " $msg "; ?>
<?php echo " $nick "; ?>

Hur kan jag göra .. hmm?

Medlem sedan mars 20007 896 inlägg
#2

Nu vet jag inte hur du öppnar din fil, men följande borde fungera som du vill:

<?php
$namn = "SPiN";
$meddelande = "Mitt egna meddelande";

$filPekare = fopen( "dinFil.txt", "a+" );
if( !$filPekare )
     die( "Något blev fel vid öppnadet av filen" );

fwrite( $filPekare, $namn . "\r\n" );
fwrite( $filPekare, $meddelande . "\r\n" );

fseek( $filPekare, 0 );

while( !feof( $filPekare ) ) {
     echo "Namn: " . fgets( $filPekare ) . "<br />";
     echo "Meddelande: " . fgets( $filPekare ) . "<br /><br />";
}

fclose( $filPekare );
?>
Medlem sedan aug. 20002 992 inlägg
#3

Hmm, detta krånglar till allt lite..

Finns det nget annat sätt att bara skriva två rader till en fil?
Måste man skriva allt på första raden lixom ? :/

Medlem sedan mars 20007 896 inlägg
#4

Första raden? Absolut inte. När du öppnar med 'a'- eller 'a+'-mode så skrivs allt längst bak i filen.

Medlem sedan aug. 20002 992 inlägg
#5

Hmm.. vi säger så här.. jag har två variabler som jag skickar med en form från en sida, till arbeta.php fälten är döpta till $namn och $meddelande , jag vill få in dessa värdet av dessa variabler in i en txt fil på arbeta.php, jag har försökt göra det så här:
<?php
$fp = fopen ("e:/www/www.simpa.se/data/prata.txt", "w+" );
fwrite($fp, $namn);
fwrite($fp, $meddelande);
fclose($fp);
?>

jag vill alltså rensa filen helt innan jag börjar skriva till den, sen så hämtar jag värdet så här:
<?php
$file = file("e:/www/www.simpa.se/data/prata.txt");
$nick = trim($file[0]);
$msg = trim($file[1]);
?>
<?php echo " $nick ">
<?php echo " $msg ">
på olika ställen i txt filen..

vad är fel, hur kan jag göra.. (det är inget fel på hur jag hämtar raderna, det funkar.. )

SPiN? :)
Nån? :)

Medlem sedan aug. 20002 992 inlägg
#6

SPiN , Borde jag annat ;)

Medlem sedan mars 20007 896 inlägg
#7

Ok, du vill alltså bara ha ett namn och ett meddelande hela tiden i textfilen?

<?php
$filPekare = fopen( "dinFil.txt", 'w+' );
if( !$filPekare )
     die( "Det blev nåt fel när filen skulle öppnas" );

fwrite( $filPekare, htmlentities( $_POST[ 'namn' ] ) . "\r\n" );
fwrite( $filPekare, htmlentities( $_POST[ 'meddelande' ] ) . "\r\n" );

fclose( $filPekare );
?>
//////////
<?php
$filArray = file( "dinFil.txt" );
$nick = $filArray[ 0 ];
$meddelande = $filArray[ 1 ];

echo $nick . "<br />";
echo $meddelande;
?>

Borde fungera kalas.

Medlem sedan aug. 20002 992 inlägg
#8

SPiN tack :)
vad gör htmlentities() ?

Medlem sedan mars 20007 896 inlägg
#9

Fixar till "fula" tecken till deras entitet-motsvarigheter. T.ex. < blir &lt; och > blir &gt;, osv.

Du bör också formatera dina strängar med nl2br() för att användarna inte ska kunna infoga egna \n ( Vagnreturer ) så att det blir fel i din textfil.

Medlem sedan aug. 20002 992 inlägg
#10

http://simpa.aleborg.com/php/prata/prata.php

Verkar funka fin fint :)
Hur räknar jag antalet tecken i en varibel?

Medlem sedan aug. 20002 992 inlägg
#11

aha det var så man gjorde det, satt precis och funderade på det ;)

Medlem sedan mars 20007 896 inlägg
#12

strlen() returnerar antalet tecken på din sträng ( Som du skickar som parameter ).

$txt = "SPiN";
echo $txt . " innhåller " . strlen( $txt ) . " bokstäver." );
Medlem sedan aug. 20002 992 inlägg
#13

Tack igen :)

Får se om jag klarar av att göra en if sats med det där i, återkommer kanske ;)

Medlem sedan aug. 20002 992 inlägg
#14

Nu har jag kört ihop det igen,, ojoj vad jag ska krångla :D

<?php
$jnamn = strlen( $namn );
$jmeddelande = strlen( $meddelande );
$gnamn = 15;
$gmeddelande = 70;
if ( $jnamn < $gnamn && $jmeddelande < $gmeddelande );{   
$filPekare = fopen( "e:/www/www.simpa.se/data/prata.txt", 'w+' );
if( !$filPekare )
     die( "Det blev nåt fel när filen skulle öppnas" );

fwrite( $filPekare, htmlentities( $_POST[ 'namn' ] ) . "\r\n" );
fwrite( $filPekare, htmlentities( $_POST[ 'meddelande' ] ) . "\r\n" );

fclose( $filPekare );
}

else{
echo " Något vart fel, namn: får inte innehålla mer än 15 tecken, och Meddelande får inte innehålla mer än 70 tecken" ;
}

?>

Gissar på att ifsatsen innehåller 4000 fel :e

Medlem sedan aug. 20002 992 inlägg
#15

felmeddelandet var:
Parse error: parse error, unexpected T_ELSE in e:\www\www.simpa.se\www\php\prata\arbeta.php on line 16

Medlem sedan aug. 20002 975 inlägg
#16

Vet inte hur du tänkt dig, men är det inte ett semikolon för mycket på den här raden:

if ( $jnamn < $gnamn && $jmeddelande < $gmeddelande );{

Skulle rekommendera att du tar bort det.

Medlem sedan aug. 20002 992 inlägg
#17

Det hjälper inte.. :(

Medlem sedan aug. 20002 975 inlägg
#18

Jag testade din kod några inlägg ovan och fick samma felmeddelande.

Sedan ändrade jag

if ( $jnamn < $gnamn && $jmeddelande < $gmeddelande );{

till

if ( $jnamn < $gnamn && $jmeddelande < $gmeddelande ){

och då fungerade det !

Vet inte varför det inte fungerade för dig.

Medlem sedan aug. 20002 992 inlägg
#19

Var ett problem med en ; men det har löst sej :)

Medlem sedan aug. 20002 992 inlägg
#20

oj Matte :) :)

det var jag som hade missförståt ditt inlägg, tack :)

254 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)