PO::read_linepublicWP 1.0

Method of the class: PO{}

No Hooks.

Returns

true|false.

Usage

$PO = new PO();
$PO->read_line( $f, $action );
$f(resource) (required)
.
$action(string)
.
Default: 'read'

PO::read_line() code WP 7.0

public function read_line( $f, $action = 'read' ) {
	static $last_line     = '';
	static $use_last_line = false;
	if ( 'clear' === $action ) {
		$last_line = '';
		return true;
	}
	if ( 'put-back' === $action ) {
		$use_last_line = true;
		return true;
	}

	if ( $use_last_line ) {
		$line = $last_line;
	} else {
		$line = fgets( $f );
		if ( false === $line ) {
			return $line;
		}

		// Handle \r-only terminated lines after the deprecation of auto_detect_line_endings in PHP 8.1.
		$r = strpos( $line, "\r" );
		if ( false !== $r ) {
			if ( strlen( $line ) === $r + 1
				&& "\r\n" === substr( $line, $r )
			) {
				$line = rtrim( $line, "\r\n" ) . "\n";
			} else {
				// The lines are terminated by just \r, so we end the line there and rewind.
				$rewind = strlen( $line ) - $r - 1;
				$line   = substr( $line, 0, $r ) . "\n";
				fseek( $f, - $rewind, SEEK_CUR );
			}
		}
	}

	$last_line     = $line;
	$use_last_line = false;
	return $line;
}