Simpa Medlem sedan aug. 2000 2 992 inlägg Frågan 9 aug. 2002 13:50 #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?
S SPiN Medlem sedan mars 2000 7 896 inlägg 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 );
?>
Simpa Medlem sedan aug. 2000 2 992 inlägg 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 ? :/
S SPiN Medlem sedan mars 2000 7 896 inlägg Första raden? Absolut inte. När du öppnar med 'a'- eller 'a+'-mode så skrivs allt längst bak i filen.
Simpa Medlem sedan aug. 2000 2 992 inlägg 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? :)
Simpa Medlem sedan aug. 2000 2 992 inlägg SPiN , Borde jag annat ;)
S SPiN Medlem sedan mars 2000 7 896 inlägg 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.
Simpa Medlem sedan aug. 2000 2 992 inlägg SPiN tack :)
vad gör htmlentities() ?
S SPiN Medlem sedan mars 2000 7 896 inlägg Fixar till "fula" tecken till deras entitet-motsvarigheter. T.ex. < blir < och > blir >, 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.
Simpa Medlem sedan aug. 2000 2 992 inlägg http://simpa.aleborg.com/php/prata/prata.php
Verkar funka fin fint :)
Hur räknar jag antalet tecken i en varibel?
Simpa Medlem sedan aug. 2000 2 992 inlägg aha det var så man gjorde det, satt precis och funderade på det ;)
S SPiN Medlem sedan mars 2000 7 896 inlägg strlen() returnerar antalet tecken på din sträng ( Som du skickar som parameter ).
$txt = "SPiN";
echo $txt . " innhåller " . strlen( $txt ) . " bokstäver." );
Simpa Medlem sedan aug. 2000 2 992 inlägg Tack igen :)
Får se om jag klarar av att göra en if sats med det där i, återkommer kanske ;)
Simpa Medlem sedan aug. 2000 2 992 inlägg 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
Simpa Medlem sedan aug. 2000 2 992 inlägg felmeddelandet var:
Parse error: parse error, unexpected T_ELSE in e:\www\www.simpa.se\www\php\prata\arbeta.php on line 16
Matte Medlem sedan aug. 2000 2 975 inlägg 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.
Matte Medlem sedan aug. 2000 2 975 inlägg 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.
Simpa Medlem sedan aug. 2000 2 992 inlägg Var ett problem med en ; men det har löst sej :)
Simpa Medlem sedan aug. 2000 2 992 inlägg oj Matte :) :)
det var jag som hade missförståt ditt inlägg, tack :)