Zeichenbegrenzung? Woher denn?

alexanderneipp

Mitglied
Hallo,

ich arbeite mit folgendem Script um Texte in Dateien zu speichern.

PHP:
<?PHP
function auslesen() 
{
$dateiname = "../data/band/bass.txt";
$fp = fopen ( $dateiname, "r") or die( "Konnte $dateiname nicht öffnen");
$text = fread( $fp, 1024 );
return $text;
fclose( $fp );
}

function update( $eintrag )
{
$dateiname = "../data/band/bass.txt";
$fp = fopen( $dateiname, "w") or die(" Konnte $dateiname nicht öffnen");
fwrite( $fp, $eintrag );
fclose( $fp );
}
$ausgabe = auslesen();
if( isset( $aktion ) && $aktion=="update" )
{
update( $form );
header("Location: alleserledigt.php");
exit;
}
else 
{
$form = $ausgabe;
}
?>
<html><body>
<form action="<?PHP print $PHP_SELF; ?>">
<input type="hidden" name="aktion" value="update">
<textarea name="form" rows=20 cols=80 wrap="virtual">
<?PHP print stripslashes( $form ); ?>
</textarea> <br>
<input type="submit" value="aktualisieren">
</form>
</body>
</html>


Nun hab ich bemerk, dass sobald ich mehr als 1012 Zeichen eingebe diese nicht gespeichert sondern einfach weggelassen werden.
Kann mir jemand helfen wie ich den Bug da raus bekomme?

Andererseits würde ich bei einigen Dateien ganz geziehlt eine Begrenzung einsetzen, wie mache ich das?

DANKE
 
Versuch mal dieses:
Die Zahl 1024 kann auch z.B. 4096 gross sein.

Alternative:
Befehl: set_file_buffer($fp,20000);
Dieser Befehl setzt den Dateipuffer auf einen neuen Wert, wobei 8 Kbyte Standart sind.

Begrenzungen:
Beispiel:
<?
$fp=fopen('test.txt','w+');
fputs(fp,'Dies ist ein viel zu langer Text, der gleich abgeschnitten wird',20);
fclose($fp);
$fp=fopen('test.txt','r');
fpassthru($fp);
?>
Ausgabe: Dies ist ein viel zu
 
Super!

Servus selectus!
Vielen Dank, hast mir echt geholfen.
Hat bei einem Großteil meiner Dateien einwandfrei funktioniert.
Nur bei einer hab ich immer noch ein Problem:
Dort soll sehr viel Text in eine TXT Datei geschrieben werden. Wenn ich den dann in der Textarea eingegeben hat funktioniert der aktuallisieren-Button nicht mehr.
Weisst du, wie ich auch das umgehen kann?

VIELEN DANK FÜR DEINE HILFE!
 
Re: Super!

Gern geschehen.

Aber Dein neues Problem ist so schwer zu erkennen. Tut der Button nicht oder das Update? Bei letzterem lannst du ja auch mal veruchen den set_file-buffer im Script einzubauen.

Tja sonst kann müsste ich mal das Teil bei mir testen.

Probiers mal aus und gib Bescheid.

Kann leider immer nur Nachts im Forum sein. (Die Arbeit)
 
Also, ich arbeite immer noch mit dem Script oben, nur dass ich die Zahl sehr groß und nicht mehr 1024 gewählt hab.
Wenn ich nun zum Beispiel folgenden Text eingebe, passiert gar nix mehr, wenn ich den Button klick. Keine Reaktion.

<!-- Bitte wie folgt eingeben: Immer dein Teil von <tr> bis </tr> kopieren und die Datein einfügen. Bei Fragen einfach an mich wenden (BEVOR IHR DIE TEXTE EINGEBT!)! -->


<table border="0" cellspacing="1" >
<tr>
<td width="15%">10.10.1998</td>
<td width="25%">Trossingen</td>
<td width="30%">Kesselhaus</td>
<td width="30%">Zip-Contest als total climax 2. Platz</td>
</tr>
<tr>
<td width="15%">17.12.1998</td>
<td width="25%">Trossingen</td>
<td width="30%">Gemeindehaus</td>
<td width="30%">als total climax im Muff In</td>
</tr>
<tr>
<td width="15%">01.05.1999</td>
<td width="25%">Trossingen</td>
<td width="30%">Fitz Kiehn Halle</td>
<td width="30%">Rock gegen Gewalt</td>
</tr>
<tr>
<td width="15%">1999</td>
<td width="25%">Gosheim</td>
<td width="30%">Bierzelt</td>
<td width="30%">Sommerfest</td>
</tr>
<tr>
<td width="15%">04.07.1999</td>
<td width="25%">Trossingen</td>
<td width="30%">Kesselhaus Open Air</td>
<td width="30%">u.A. Canuma, Six Feet Deep</td>
</tr>
<tr>
<td width="15%">28.10.1999</td>
<td width="25%">Donaueschingen</td>
<td width="30%">Delta/The Animal House</td>
<td width="30%">Regio Contest 3. Platz</td>
</tr>
<tr>
<td width="15%">30.10.1999</td>
<td width="25%">Trossingen</td>
<td width="30%">Feuerwehrmagazin</td>
<td width="30%">Veranstaltung</td>
</tr>
<tr>
<td width="15%">26.11.1999</td>
<td width="25%">Trossingen</td>
<td width="30%">Gemeindehaus</td>
<td width="30%">2 jähriges Muff-In</td>
</tr>
<tr>
<td width="15%">14.01.2000</td>
<td width="25%">Gosheim</td>
<td width="30%">Progymnasium</td>
<td width="30%">Schulparty</td>
</tr>
<tr>
<td width="15%">2000</td>
<td width="25%">Tuttlingen</td>
<td width="30%">Gymnasium</td>
<td width="30%">u.A. Last Chance to Dance</td>
</tr>
<tr>
<td width="15%">2000</td>
<td width="25%">Aldingen</td>
<td width="30%">Amigo</td>
<td width="30%">BANDS</td>
</tr>
<tr>
<td width="15%">14.04.2000</td>
<td width="25%">Villingen</td>
<td width="30%">VS-Music Contest 2000</td>
<td width="30%">1. Vorentscheid</td>
</tr>
<tr>
<td width="15%">13.05.2000</td>
<td width="25%">Villingen</td>
<td width="30%">VS-Music Contest 2000</td>
<td width="30%">Halbfinale</td>
</tr>
<tr>
<td width="15%">02.06.2000</td>
<td width="25%">Villingen</td>
<td width="30%">VS-Music Contest 2000</td>
<td width="30%">Finale 2. Platz</td>
</tr> <tr>
<td width="15%">13.10.2000</td>
<td width="25%">Villingen</td>
<td width="30%">Jugendhaus K3</td>
<td width="30%">mit Freytag</td>
</tr>
<tr>
<td width="15%">20.10.2000</td>
<td width="25%">Villingen</td>
<td width="30%">Familienpark</td>
<td width="30%">Rock&Pop Preis 2000</td>
</tr>
<tr>
<td width="15%">18.11.2000</td>
<td width="25%">Schwenningen</td>
<td width="30%">Bahnhof</td>
<td width="30%">Rock im Bahnhof mit u.A. Ricochet</td>
</tr>
<tr>
<td width="15%">03.03.2001</td>
<td width="25%">Villingen</td>
<td width="30%">Jugendhaus K3</td>
<td width="30%">mit Unsound Of Mind</td>
</tr>
<tr>
<td width="15%">31.03.2001</td>
<td width="25%">Tahlheim</td>
<td width="30%">Sporthalle</td>
<td width="30%">mit Dark Sky</td>
</tr>
<tr>
<td width="15%">19.05.2001</td>
<td width="25%">Villingen</td>
<td width="30%">Jugendhaus VS-Musik Contest 2001</td>
<td width="30%">Finale Gastauftritt</td>
</tr>
<tr>
<td width="15%">01.06.2001</td>
<td width="25%">Schwenningen</td>
<td width="30%">Jugendhaus</td>
<td width="30%">mit Madhouse</td>
</tr>
<tr>
<td width="15%">15.06.2001</td>
<td width="25%">Aldingen</td>
<td width="30%">Amigo</td>
<td width="30%">mit Cabal und Kill Copied Music</td>
</tr>
<tr>
<td width="15%">14.07.2001</td>
<td width="25%">Schwenningen</td>
<td width="30%">Gymnasium</td>
<td width="30%">Rock am Deutenberg mit Big Jim</td>
</tr>
<tr>
<td width="15%">08.09.2001</td>
<td width="25%">Schwenningen</td>
<td width="30%">Jugendhaus</td>
<td width="30%">Local Sounds mit Epitom of Frail</td>
</tr>
<tr>
<td width="15%">14.09.2001</td>
<td width="25%">Villingen</td>
<td width="30%">Theater am Turm</td>
<td width="30%">mit Cute und Unsound Of Mind</td>
</tr>
<tr>
<td width="15%">15.09.2001</td>
<td width="25%">Mahlstetten</td>
<td width="30%">Schafstall</td>
<td width="30%">u.A. mit Feuerrot</td>
</tr>
<tr>
<td width="15%">05.10.2001</td>
<td width="25%">Schramberg</td>
<td width="30%">Club (Schramberg-)Sulgen</td>
<td width="30%">mit Unsound Of Mind</td>
</tr>
<tr>
<td width="15%">19.10.2001</td>
<td width="25%">Tuttlingen</td>
<td width="30%">Jugendhaus</td>
<td width="30%">mit End Of April</td>
</tr>
<tr>
<td width="15%">01.12.2001</td>
<td width="25%">Tettnang</td>
<td width="30%">Bühne Argental</td>
<td width="30%">Rock im Vogelwald Contest 1. Platz</td>
</tr>
<tr>
<td width="15%">21.02.2002</td>
<td width="25%">Donaueschingen</td>
<td width="30%">Delta/The Animal House</td>
<td width="30%">mit Emil Bulls und Kung Fu</td>
</tr>

</table>

Vielen Dank schon mal!
 
sag jetzt net du hast ne zahl wie 9999999 genommen.. ?

wenn das drüber deine textdatei ist, dann erfüllt das ganze eh seinen sinn nicht, dann include doch die datei einfach.


wenn du einfach die komplette datei einlesen willst (wovon ich bei dir mal ausgehe)

dann mache das ganze einfach mit fread($file, filesize($file));

das ist dann exakt die grösse der datei


gruss, dave
 
Es geht darum, dass diese Text in eine Textarea eingelsen wird, er dort verändert (hauptsächlich verlängert) werden kann und dann durch einen klick auf den Aktuallisieren-Button die TXT-Datei überschreibt.

Was jetzt das Problem ist steht oben!

Kannst du mir sagen, wie ich den Code dann ändern muss? Bin eine ziemlich 0 was PHP angeht.....
 
PHP:
<?PHP

function auslesen()

{

$dateiname = "../data/band/bass.txt";

$fp = fopen ( $dateiname, "r") or die( "Konnte $dateiname nicht öffnen");

$text = fread( $fp, filesize($fp) ); // ############### Die bytes die ausgelesen werden sind jetzt auf keine bestimmte grösse wie 1024 sondern auf die exakte grösse der datei, die auszulesen ist gesetzt

return $text;

fclose( $fp );

}



function update( $eintrag )

{

$dateiname = "../data/band/bass.txt";

$fp = fopen( $dateiname, "w") or die(" Konnte $dateiname nicht öffnen");

fwrite( $fp, $eintrag );

fclose( $fp );

}

$ausgabe = auslesen();

if( isset( $aktion ) && $aktion=="update" )

{

update( $form );

header("Location: alleserledigt.php");

exit;

}

else

{

$form = $ausgabe;

}

?>

<html><body>

<form action="<?PHP print $PHP_SELF; ?>">

<input type="hidden" name="aktion" value="update">

<textarea name="form" rows=20 cols=80 wrap="virtual">

<?PHP print stripslashes( $form ); ?>

</textarea> <br>

<input type="submit" value="aktualisieren">

</form>

</body>

</html>

Allerdings habe ich das noch nie getestet oder verwendet ;)
 
Danke, aber...

Danke, aber es läuft nicht so richtig... leider!
Bekomme nämlich folgende Fehlermeldung:

Warning: stat failed for Resource id #1 (errno=2 - No such file or directory) in /homepages/39/d24220126/htdocs/SnapShot/admin/admin_gigs_past.php4 on line 11

Kannst du mir helfen?

DANKE!
 
ah sorry ich hatte einen fehler.

das ganze darf nicht $text = fread($fp, filesize($fp)) heissen, es muss $text = fread ($fp, filesize($dateiname)) heissen
 
Zurück