Zoals de meeste hier wel zullen weten ondersteunt PHP 'officieel' de commandline sinds versie 4.2.0 (hier nog experimenteel, maar vrijwel geheel te vinden). Een van de uitbreidingen die hierbij te vinden zijn is het gebruik van STD.
Nu ging ik hier een beetje mee testen en werkt allemaal mooi, alleen bij STDOUT word alles waar hiernaar word geschreven pas aan het einde van het script doorgestuurt... Dit in tegenstelling als dat je echo of print met implicit_flush zou gebruiken
Dit is het scriptje waarmee ik heb lopen testen (ik heb ook zonder functies en etc lopen testen, maar kom er gewoon niet uit, of is het zo dat dit gewoon niet mogelijk is???)
Nu ging ik hier een beetje mee testen en werkt allemaal mooi, alleen bij STDOUT word alles waar hiernaar word geschreven pas aan het einde van het script doorgestuurt... Dit in tegenstelling als dat je echo of print met implicit_flush zou gebruiken
Dit is het scriptje waarmee ik heb lopen testen (ik heb ook zonder functies en etc lopen testen, maar kom er gewoon niet uit, of is het zo dat dit gewoon niet mogelijk is???)
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
28
29
30
31
32
33
34
35
36
| <? /* Check PHP Version */ if (version_compare(phpversion(),'4.2.0','<')) { echo "PHP te oud"; } /* Check if STDIN is implented by checking PHP version */ if (version_compare(phpversion(),'4.3.0','<')) { define('STDIN',fopen("php://stdin","r")); define('STDOUT',fopen("php://stdout","w")); define('STDERR',fopen("php://stderr","w")); register_shutdown_function( create_function( '' , 'fclose(STDIN); fclose(STDOUT); fclose(STDERR); return true;' ) ); } /* Function to get a new line from the command */ function get_line () { $line = fgets ( STDIN, 4094 ); return (PHP_OS == "WINNT") ? (str_replace("\r\n","",$line)) : (str_replace("\n","",$line)); } /* Write to the commandline */ function write ( $string ) { fputs ( STDOUT, $string, strlen($string) ); return TRUE; } echo "test"; write("Dit is een test.\r\n\r\n"); write("Dit is nog een test."); $ct = get_line(); write( $ct ); ?> |
edit:
ffies iets leesbaarder gemaakt
ffies iets leesbaarder gemaakt