Files and Streams
Read File
file_get_contents reads a whole small file into a string.
read
Read examples should keep file content small so replay remains easy to inspect.
Read File
read_file.php
Replay: real traced execution (multi-file project)
<?php
$name = "Ada";
$file = "php_read_file.txt";
file_put_contents($file, "name=" . $name);
$content = file_get_contents($file);
unlink($file);
echo "name=" . $name . "\n";
echo "content=" . $content . "\n";
<?php
$name = "Grace";
$file = "php_read_file.txt";
file_put_contents($file, "name=" . $name);
$content = file_get_contents($file);
unlink($file);
echo "name=" . $name . "\n";
echo "content=" . $content . "\n";
<?php
$name = "Rasmus";
$file = "php_read_file.txt";
file_put_contents($file, "name=" . $name);
$content = file_get_contents($file);
unlink($file);
echo "name=" . $name . "\n";
echo "content=" . $content . "\n";
$name ← Ada, $file ← php_read_file.txt, $content ← name=Ada
1<?php2$name→ Ada = "Ada"; //@name="Grace", "Rasmus"3$file→ php_read_file.txt = "php_read_file.txt";45file_put_contents($filephp_read_file.txt, "name=" . $nameAda);6$content→ name=Ada = file_get_contents($filephp_read_file.txt);7unlink($filephp_read_file.txt);89echo "name=" . $nameAda . "\n";10echo "content=" . $contentname=Ada . "\n";outputname=Ada content=name=Ada
$name ← Grace, $file ← php_read_file.txt, $content ← name=Grace
1<?php2$name→ Grace = "Grace";3$file→ php_read_file.txt = "php_read_file.txt";45file_put_contents($filephp_read_file.txt, "name=" . $nameGrace);6$content→ name=Grace = file_get_contents($filephp_read_file.txt);7unlink($filephp_read_file.txt);89echo "name=" . $nameGrace . "\n";10echo "content=" . $contentname=Grace . "\n";outputname=Grace content=name=Grace
$name ← Rasmus, $file ← php_read_file.txt, $content ← name=Rasmus
1<?php2$name→ Rasmus = "Rasmus";3$file→ php_read_file.txt = "php_read_file.txt";45file_put_contents($filephp_read_file.txt, "name=" . $nameRasmus);6$content→ name=Rasmus = file_get_contents($filephp_read_file.txt);7unlink($filephp_read_file.txt);89echo "name=" . $nameRasmus . "\n";10echo "content=" . $contentname=Rasmus . "\n";outputname=Rasmus content=name=Rasmus