file_input_contents: enter
ik ben bezig met een soort chat te maken om te leren werken met php
elke keer als je een berichtje stuurt slaat hij die op op een txt bestand
als er een volgend bericht wordt gestuurd dan zet hij het meteen in het txt bestand maar dan komt de tekst tegen de vorige test.
het is nu dus zo:
hoi
hoi
maar ik wil
hoi
hoi
hoe krijg ik een witregel tussen die 2 ingevoerde teksten?
Toevoeging op 04/03/2013 23:02:51:
?
{
$tijdelijk = file_get_contents("invoer/samen.txt");
file_put_contents("invoer/samen.txt",'<div id="vlak">' . $_POST["loginnaam"]= $_SESSION["loginnaam"] . ':' . "</div>" . $_POST["tweet"] . $tijdelijk);
if($_SESSION["loginnaam"] == "barry")
{
$tijdelijk = file_get_contents("invoer/barry.txt");
file_put_contents("invoer/kees.txt",'<div id="vlak">' . $_POST["bericht"] . "</div>" . $tijdelijk);
header("Location: index.php?pagina=home");
}
elseif($_SESSION["loginnaam"] == "kees")
{
$tijdelijk = file_get_contents("invoer/kees.txt");
file_put_contents("invoer/kees.txt",'<div id="vlak">' . $_POST["bericht"] . "</div>" . $tijdelijk);
header("Location: index.php?pagina=home");
}
}
dus even voor de uitleg als kees een bericht stuurt wordt het in een apart txt bestand opgeslagen, en als barry een bericht stuurt ook. zo kunnen ze hun eigen berichten teruglezen
maar ze worden ook samen bij elkaar weergegeven en dat is samen.txt
Gewijzigd op 04/03/2013 23:06:17 door Henk geurts
wat bedoel je precies?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
if( $pagina == "chatopslaan" )
{
$tijdelijk = file_get_contents("invoer/samen.txt");
file_put_contents("invoer/samen.txt",'<div id="vlak">' . $_POST["loginnaam"]= $_SESSION["loginnaam"] . ':' . "</div>" . $_POST["tweet"] . $tijdelijk);
if($_SESSION["loginnaam"] == "barry")
{
$tijdelijk = file_get_contents("invoer/barry.txt");
file_put_contents("invoer/kees.txt",'<div id="vlak">' . $_POST["bericht"] . "</div>" . $tijdelijk);
header("Location: index.php?pagina=home");
}
elseif($_SESSION["loginnaam"] == "kees")
{
$tijdelijk = file_get_contents("invoer/kees.txt");
file_put_contents("invoer/kees.txt",'<div id="vlak">' . $_POST["bericht"] . "</div>" . $tijdelijk);
header("Location: index.php?pagina=home");
}
}
?>
if( $pagina == "chatopslaan" )
{
$tijdelijk = file_get_contents("invoer/samen.txt");
file_put_contents("invoer/samen.txt",'<div id="vlak">' . $_POST["loginnaam"]= $_SESSION["loginnaam"] . ':' . "</div>" . $_POST["tweet"] . $tijdelijk);
if($_SESSION["loginnaam"] == "barry")
{
$tijdelijk = file_get_contents("invoer/barry.txt");
file_put_contents("invoer/kees.txt",'<div id="vlak">' . $_POST["bericht"] . "</div>" . $tijdelijk);
header("Location: index.php?pagina=home");
}
elseif($_SESSION["loginnaam"] == "kees")
{
$tijdelijk = file_get_contents("invoer/kees.txt");
file_put_contents("invoer/kees.txt",'<div id="vlak">' . $_POST["bericht"] . "</div>" . $tijdelijk);
header("Location: index.php?pagina=home");
}
}
?>
Toevoeging op 04/03/2013 23:09:51:
ziet er beter uit toch?
maar het probleem is dus
als barry nou een bericht stuurt en daarna kees dan krijg je dus
kees:
hoi
barry:
hallo
maar ik wil
kees:
hoi
barry:
hallo
klap je de complete inhoud van een tekstbestand in één keer in de variabele $tijdelijk.
Waarschijnlijk krijg je niet
hoi
hoi
maar
hoihoi
klopt dat?
met Waarschijnlijk krijg je niet
hoi
hoi
maar
hoihoi
klopt dat?
ik krijg:
barry:
hoi
en als ik dus de 2e keer iets invul dan krijg ik
barry:
hallo
barry:
hoi
en als ik 2 dingen onder elkaar typ dan doet hij dit
dus invoer is
hoi
hoi
dan krijg ik
barry:
hoi hoi
Als je de regels afzonderlijk wilt weergeven omdat je er nog iets tussen wilt hebben dan moet je ze niet in één keer met file_get_contents() in één variabele pompen. In plaats daarvan kun je beter file() gebruiken.
Je gaat dan wel met een array werken. Lees dit even door: http://www.phptuts.nl/view/39/6/
Code (php)
Gewijzigd op 04/03/2013 23:25:52 door Frank Nietbelangrijk
Toevoeging op 04/03/2013 23:29:50:
ik snap het systeem, dus hij doet bij elke extra tekst die ik dus toevoeg een extra enter toevoegen
maar ik snap $num nog niet
Gewijzigd op 04/03/2013 23:26:54 door Henk geurts
en zeker arrays is een must!
ik snap het gebruik van arrays maar nog niet helemaal hoe die arrays moeten functioneren als ik een tekst toevoeg, hoe wordt die array dan aangepast
Toevoeging op 04/03/2013 23:38:27:
is die $num dus eigenlijk het getypte berichtje, en die berichtjes zet die dan achter elkaar(array) met een enter?
Henk geurts op 04/03/2013 23:33:09:
ik snap het gebruik van arrays maar nog niet helemaal hoe die arrays moeten functioneren als ik een tekst toevoeg, hoe wordt die array dan aangepast
file_put_contents("invoer/kees.txt",'<div id="vlak">' . $_POST["bericht"] . "<br/><br/></div>" . $tijdelijk);
Henk geurts op 04/03/2013 23:40:32:
is die $num dus eigenlijk het getypte berichtje, en die berichtjes zet die dan achter elkaar(array) met een enter?
nee. okee nog een compleet voorbeeld. (zowat de tutorial overgeschreven)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$fruit = array('appel', 'peer', 'banaan', 'kiwi');
foreach($fruit as $num => $f) {
echo 'de sleutel is: '.$num.'. en de waarde is: '.$f.'<br />';
}
$fruit[] = 'ananas'; // voeg een nieuwe smaak toe aan het eind van de array
foreach($fruit as $num => $f) {
echo 'de sleutel is: '.$num.'. en de waarde is: '.$f.'<br />';
}
?>
$fruit = array('appel', 'peer', 'banaan', 'kiwi');
foreach($fruit as $num => $f) {
echo 'de sleutel is: '.$num.'. en de waarde is: '.$f.'<br />';
}
$fruit[] = 'ananas'; // voeg een nieuwe smaak toe aan het eind van de array
foreach($fruit as $num => $f) {
echo 'de sleutel is: '.$num.'. en de waarde is: '.$f.'<br />';
}
?>
Toevoeging op 04/03/2013 23:48:24:
deze moet je echt even uitproberen zodat je ziet wat het resultaat is
Toevoeging op 04/03/2013 23:52:10:
als je twee keer <br /> achter elkaar typt dan slaat ie een regel over
Gewijzigd op 04/03/2013 23:51:01 door Frank Nietbelangrijk
heel erg bedankt voor de goede en vooral snelle hulp!!
success verder :)