[php] enters ipv spaties bij fwrite functie

Pagina: 1
Acties:

  • Dennis
  • Registratie: Februari 2001
  • Nu online
Als ik een bestand ga schrijven met een string waarin spaties voorkomen, dan schrijft php ze weg als enters.

Dat vind ik eigenlijk niet zo leuk want dan werkt mn javascriptje niet meer :'(

Hier is de code, weet iemand hoe het komt :?
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?
    if($message != "")
    {
        require("data/flatfile/messages/messages.txt");
        for($k = 1; $k < 9; $k++)
        {
            $plusteller = $k + 1;
            $msg[$k][message] = $msg[$plusteller][message];
            $msg[$k][userid] = $msg[$plusteller][userid];
            $msg[$k][tijd] = $msg[$plusteller][tijd];
        }
        echo $message;
        $msg[9][message] = $message;
        $nsg[9][userid] = "4053";
        $msg[9][tijd] = strftime("%H:%M");
        $file = fopen("data/flatfile/messages/messages.txt","w"); 
        $write = fwrite($file, "<?php\n");
        for($l = 1; $l < 10; $l++)
        {
            $write = fwrite($file, "$"."msg[$l][message] = \"".$msg[$l][message]."\";\n");
            $write = fwrite($file, "$"."msg[$l][userid] = \"".$msg[$l][userid]."\";\n");
            $write = fwrite($file, "$"."msg[$l][tijd] = \"".$msg[$l][tijd]."\";\n");
        }
        $write = fwrite($file, "?>");
        fclose($file);
    }
?>

  • chris
  • Registratie: September 2001
  • Laatst online: 11-03-2022
Hmmz,
weird of niet?

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

euhhh, kan je het scriptje een beetje toelichten :?

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Dennis
  • Registratie: Februari 2001
  • Nu online
Op maandag 14 januari 2002 15:25 schreef drm het volgende:
euhhh, kan je het scriptje een beetje toelichten :?
Sure :)

Hij laadt een tekstbestand in die bestaat uit 3dimensionale arrays. Vervolgens alles 1 omlaag halen, en dan de 9e opnieuw vullen met de string $message. En daar zitten dus spaties in die enter worden :'(

  • Dennis
  • Registratie: Februari 2001
  • Nu online
Btw, dit script zou iets efficienter kunnen, dat weet ik. Maar daar gaat het niet om :)

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

dennisdotcom:
Sure :)

Hij laadt een tekstbestand in die bestaat uit 3dimensionale arrays. Vervolgens alles 1 omlaag halen, en dan de 9e opnieuw vullen met de string $message. En daar zitten dus spaties in die enter worden :'(
Kan je erachter komen welke spaties precies enter worden? Heb je bijv. perongeluk een textarea met harde textwrapping gebruikt? En waarom schrijf je php weg :? Lijkt mee een behoorlijk security-itch ;)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Dennis
  • Registratie: Februari 2001
  • Nu online
Hoe bedoel je harde textwrapping?

Ik heb gewoon een standaard textbox :)
Verder geen bijzondere dingen.

Verder wel gemerkt dat zelfs bijgevoegde spaties in php wel gewoon goed gaan :)

Maar ik snap niet waarom het fout gaat...

  • tomato
  • Registratie: November 1999
  • Niet online
Waar 'zie' je voor het laatst goede spaties?

  • Fatamorgana
  • Registratie: Augustus 2001
  • Laatst online: 07-08 04:17

Fatamorgana

Fietsen is gezond.

Op maandag 14 januari 2002 15:49 schreef dennisdotcom het volgende:
Hoe bedoel je harde textwrapping?
Ik dacht iets bij de TEXTAREA als WRAP=virtual ofzo?

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 13:04

Pelle

🚴‍♂️

Op maandag 14 januari 2002 15:49 schreef dennisdotcom het volgende:
Hoe bedoel je harde textwrapping?
Vergelijk:
code:
1
2
<textarea wrap="virtual"></textarea>
<textarea wrap="physical"></textarea>

/edit
Haal anders ff alle enters eruit eerst:
PHP:
1
2
3
<?
$tekst = str_replace("\n", " ", $tekst);
?>

  • tomato
  • Registratie: November 1999
  • Niet online
Pelle: Haal anders ff alle enters eruit eerst:
PHP:
1
2
3
<?
$tekst = str_replace("\n", " ", $tekst);
?>
Mooie hack *D

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

tomato:
Mooie hack *D
woei :)

dennisdotcom >
Probeer eens op verschillende plekken de string te echoen (begin script, halverwege, einde script, tijdens loopjes, etc)
dan kom je er vanzelf achter waar precies die enter "erin" komen, hoewel ik me er nog steeds niet zoveel bij voor kan stellen :?

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Dennis
  • Registratie: Februari 2001
  • Nu online
Op maandag 14 januari 2002 16:03 schreef drm het volgende:

dennisdotcom >
Probeer eens op verschillende plekken de string te echoen (begin script, halverwege, einde script, tijdens loopjes, etc)
dan kom je er vanzelf achter waar precies die enter "erin" komen, hoewel ik me er nog steeds niet zoveel bij voor kan stellen :?
1 regel voor het schrijven naar file is het nog gewoon met spaties, dus dat kan het niet zijn.

En die str_replace die Pelle voorstelde zit er ook allang in. Wrap in de textbox gebruik ik al helemaal niet.

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 13:04

Pelle

🚴‍♂️

Op maandag 14 januari 2002 15:59 schreef tomato het volgende:
Mooie hack *D
Vond ik ook wel eigenlijk :)

  • Dennis
  • Registratie: Februari 2001
  • Nu online
Voor de fans post ik nog ff hoe het bericht wordt bewerkt na invoer in tekstarea *D :
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?
    $woordafbreking = 15;
    $message = trim($message);
    $message = str_replace("\n", "", $message);
    $message = strip_tags($message);
    $message = substr($message, 0, 110);
    $woorden = explode(" ", $message);
    for($i = 0; $i < count($woorden); $i++)
    {
        if(strlen($woorden[$i]) > $woordafbreking)
        {
            $woordlengte = strlen($woorden[$i]);
            $woordgedeelten = ceil($woordlengte / $woordafbreking);
            for($j = 1; $j <= $woordgedeelten; $j++)
            {
                $begin = ($j - 1) * $woordafbreking;
                $eind = $woordafbreking;
                $replacement.= substr($woorden[$i], $begin, $eind)." ";
            }
            $woorden[$i] = $replacement;
            $totaal = str_replace($woorden[$i], $replacement, $message);
        }
    }
    $message = implode("\n", $woorden);
    $message = trim($message);
    $message = strip_tags($message);
?>

Verwijderd

kijk eens goed naar de 4 na laatste regel:
$message = im...

meer zeg ik niet ;)

Verwijderd

nog even een aanvulling:
als je enters om wilt zetten kun je de funcite nl2br() gebruiken...

  • Dennis
  • Registratie: Februari 2001
  • Nu online
|:( |:( |:(
STOM STOM STOM

heel erg bedankt btw
Pagina: 1