La función popen() utilizada para abrir una tubería al programa especificado por el usuario usando el parámetro de comando. Devuelve un puntero de archivo que es idéntico al devuelto por fopen() , pero es de naturaleza unidireccional, es decir, solo se puede usar para leer o escribir. El puntero popen() se puede usar con fgets() , fgetss() y fwrite() . El puntero de archivo iniciado por la función popen() debe cerrarse con pclose() .
El comando y el modo se envían como parámetros a la función popen() y devuelve un puntero de archivo unidireccional en caso de éxito o FALSO en caso de falla.
Sintaxis:
popen(command, mode)
Parámetros usados:
La función popen() en PHP acepta dos parámetros.
- command : Es un parámetro obligatorio que especifica el comando a ejecutar.
- modo: es un parámetro obligatorio que especifica el modo de conexión, como solo lectura (r) o solo escritura (w).
Valor devuelto:
Devuelve un puntero de archivo que es idéntico al devuelto por fopen(), pero es de naturaleza unidireccional.
Errores y excepciones:
- El puntero de archivo iniciado por la función popen() debe cerrarse con pclose().
- Si no se pudo encontrar el comando a ejecutar, la función popen() devuelve un recurso válido.
Ejemplos:
Input : $my_file= popen("/bin/ls", "r"); Output : 1 Input : $my_file= popen('/executable/gfg.exe', 'r'); echo "'my_file'; " . get_class($my_handle) . "\n"; $file_read = fread($my_file, 4192); echo $file_read; pclose($my_file); Output : 1
Los siguientes programas ilustran la función popen().
Programa 1
<?php // opening a pipe $my_file= popen("/bin/ls", "r"); ?>
Producción:
1
Programa 2
<?php // opening a pipe $my_file= popen('/executable/gfg.exe', 'r'); // returning name of class of an object using get_class() echo "'$my_file'; " . get_class($my_file) . "\n"; // reading file using fread() $filereader = fread($my_file, 4192); echo $filereader; // closing the pipe pclose($my_file); ?>
Producción:
1
Artículo relacionado: PHP | función cerrar()
Referencia:
http://php.net/manual/en/function.popen.php
Publicación traducida automáticamente
Artículo escrito por Shubrodeep Banerjee y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA