The Server Pages
:: TSP Menu
- Home
- Authors
- Glossary
- RSS Feed

:: Servers
- CPanel
- Hosting
- Linux
- Windows

:: Webmaster
- Databases
- Design
- Search Engines

:: Scripts
- Scripts

:: Documentation
- PHP Manual

:: Other
- Errors & Solutions
- TechPunt
- Wojjie

search for in the

fgetcsv> <fflush
[edit] Last updated: Sat, 12 May 2012

view this page in


(PHP 4, PHP 5)

fgetcGets character from file pointer


string fgetc ( resource $handle )

Gets a character from the given file pointer.



The file pointer must be valid, and must point to a file successfully opened by fopen() or fsockopen() (and not yet closed by fclose()).

Return Values

Returns a string containing a single character read from the file pointed to by handle. Returns FALSE on EOF.


This function may return Boolean FALSE, but may also return a non-Boolean value which evaluates to FALSE. Please read the section on Booleans for more information. Use the === operator for testing the return value of this function.


Example #1 A fgetc() example

if (!
$fp) {
'Could not open file somefile.txt';
while (
false !== ($char fgetc($fp))) {


Note: This function is binary-safe.

See Also

  • fread() - Binary-safe file read
  • fopen() - Opens file or URL
  • popen() - Opens process file pointer
  • fsockopen() - Open Internet or Unix domain socket connection
  • fgets() - Gets line from file pointer

fgetcsv> <fflush
[edit] Last updated: Sat, 12 May 2012
add a note add a note User Contributed Notes fgetc
sfinktah at php dot spamtrak dot org 22-Mar-2011 06:33
To read a single key-press in CLI mode, you can either use ncurses (which will probably require additional modules for PHP) or get nasty with the *nix "/bin/stty" command)

function stty($options) {
exec($cmd = "/bin/stty $options", $output, $el);
$el AND die("exec($cmd) failed");
implode(" ", $output);

getchar($echo = false) {
$echo = $echo ? "" : "-echo";

# Get original settings
$stty_settings = preg_replace("#.*; ?#s", "", stty("--all"));

# Set new ones
stty("cbreak $echo");

# Get characters until a PERIOD is typed, 
      # showing their hexidecimal ordinal values.
printf("> ");
      do {
printf("%02x ", ord($c = fgetc(STDIN)));
      } while (
$c != '.');

# Return settings

alex at alexdemers dot me 11-May-2009 10:30
The best and simplest way to get input from a user in the CLI with only PHP is to use fgetc() function with the STDIN constant:


echo 'Are you sure you want to quit? (y/n) ';
$input = fgetc(STDIN);

if (
$input == 'y')

ktraas at gmail dot com (Kevin Traas) 23-Mar-2009 07:08
I was using command-line PHP to create an interactive script and wanted the user to enter just one character of input - in response a Yes/No question.  Had some trouble finding a way to do so using fgets(), fgetc(), various suggestions using readline(), popen(), etc.  Came up with the following that works quite nicely:

$ans = strtolower( trim( `bash -c "read -n 1 -t 10 ANS ; echo \\\$ANS"` ) );

show source | credits | sitemap | contact | advertising | mirror sites