(PHP 4, PHP 5, PHP 7)
abrir - Abre un archivo o URL
Descripción
Recurso abrir (cadena $ nombre de archivo , cadena $modo [, bool $use_include_path = falso [, recurso $ contexto ]])
abrir() asigna el recurso nombrado especificado en el argumento del nombre de archivo a la secuencia.
Lista de parámetros
Si el nombre del archivo se pasa en el formato "esquema://...", se considera una URL y PHP buscará un controlador de protocolo (también conocido como "contenedor") para ese esquema si no se asigna ningún contenedor al esquema. protocolo, PHP emitirá una advertencia para ayudarle a localizar un problema potencial en su secuencia de comandos y luego continuar la ejecución como si el nombre del archivo apuntara a un archivo normal.
Si PHP configura el nombre del archivo para que apunte a un archivo local, intenta abrir una secuencia para ese archivo.
El archivo debe ser accesible mediante PHP, por lo que debe asegurarse de que los permisos del archivo lo permitan.
Si ha habilitado el modo seguro o open_basedir, se aplican más restricciones.:
Si PHP determina que el nombre de archivo apunta a un protocolo registrado y ese protocolo está registrado como una URL de red, PHP verifica el estado de la directiva enable_url_fopen. Si está deshabilitado, PHP emitirá una advertencia y la llamada fopen fallará. Comentario Una lista de protocolos admitidos está disponible en la sección Protocolos y contenedores admitidos. Algunos protocolos ( envoltorios utilizado por envoltorio http).
En la plataforma Windows, debe evitar todas las barras invertidas en la ruta del archivo o utilizar barras diagonales.
$handle = fopen("c:\\carpeta\\resource.txt", "r");
?>
El parámetro de modo especifica el tipo de acceso que solicita al hilo. Puede ser una de las siguientes opciones:
modo | Descripción |
---|---|
"r" | Abre el archivo de solo lectura; coloca el puntero al principio del archivo. |
"r+" | Abre un archivo para lectura y escritura; coloca el puntero al principio del archivo. |
"w" | Abre el archivo sólo para escritura; coloca un puntero al principio del archivo y trunca el archivo a longitud cero. |
Si el archivo no existe, intenta crearlo. | "w+" |
Abre un archivo para lectura y escritura; coloca un puntero al principio del archivo y trunca el archivo a longitud cero. | Si el archivo no existe, intenta crearlo. |
"a" | Abre el archivo sólo para escritura; coloca el puntero al final del archivo. Si el archivo no existe, intenta crearlo. |
"un+" | Abre un archivo para lectura y escritura; coloca el puntero al final del archivo. Si el archivo no existe, intenta crearlo. abrir()"incógnita" Crea y abre solo para escritura; coloca el puntero al principio del archivo. Si el archivo ya existe, llame termina en fracaso, regresará FALSO y dará un error de nivel E_ADVERTENCIA. Si el archivo no existe, intentará crearlo. Esto es equivalente a especificar banderas. |
O_EXCL|O_CREAT | para llamada al sistema interno "un+". |
abierto(2) | "x+" "w" Crea y abre para lectura y escritura; por lo demás tiene el mismo comportamiento que "un+""do" Abre el archivo solo para escritura. Si el archivo no existe, se crea. Si el archivo existe, entonces no se trunca (a diferencia de "w"), y llamar a esta función no causa un error (como es el caso con ). El puntero del archivo se establecerá al principio del archivo. Esto puede resultar útil si desea bloquear un archivo (consulte rebaño() |
) antes de cambiar, desde su uso | puede truncar el archivo antes de que se haya adquirido el bloqueo (si desea truncar el archivo, puede usar la función abierto(2). |
Si ha habilitado el modo seguro o open_basedir, se aplican más restricciones.:
ftruncar() después de una solicitud de bloqueo)."c+" Abre un archivo para lectura y escritura; por lo demás tiene el mismo comportamiento que Las diferentes familias de sistemas operativos tienen diferentes convenciones con respecto a los finales de línea. Cuando escribe texto y desea insertar un salto de línea, debe utilizar los caracteres (o símbolos) correctos para su Sistema operativo. Uso de sistemas de la familia Unix \norte como caracteres de final de línea y sistemas Macintosh utilizan \r como carácter de final de línea.
Si utiliza el carácter de final de línea incorrecto al editar archivos, es posible que esos archivos se vean "raros" al abrirlos.
Windows ofrece un indicador de modo de transmisión de texto ( "t"), que se traducirá automáticamente Abre un archivo para lectura y escritura; por lo demás tiene el mismo comportamiento que V \norte mientras trabaja con un archivo. Y viceversa: también puedes usar"b" Y viceversa: también puedes usar para forzar el modo binario, que no convertirá sus datos. Para utilizar estos modos, especifique "t" o
la última letra del parámetro de modo. "t" Dado que la configuración del indicador de traducción predeterminado depende de SAPI y de la versión de PHP que esté utilizando, le recomendamos que establezca explícitamente el indicador especificado por motivos de portabilidad. Debes usar el modo si estas trabajando con archivo de texto Abre un archivo para lectura y escritura; por lo demás tiene el mismo comportamiento que y usar Y viceversa: también puedes usar.
para marcar el final de una línea en su script sin preocuparse por la legibilidad de sus archivos en otras aplicaciones como el Bloc de notas. En todos los demás casos, utilice la bandera. \norte.
Si ha habilitado el modo seguro o open_basedir, se aplican más restricciones.:
Si no especifica explícitamente el indicador "b" cuando trabaja con archivos binarios, puede experimentar una corrupción extraña de sus datos, incluidos archivos de imágenes corruptos y problemas de símbolos extraños. abrir() .
para que en su lugar utilice finales de línea y modos adecuadosSi ha habilitado el modo seguro o open_basedir, se aplican más restricciones.:
Por razones de portabilidad, se recomienda encarecidamente utilizar siempre el indicador "b" al abrir archivos con "t" Además, por motivos de portabilidad, también se recomienda reescribir el código heredado que se basa en la Y viceversa: también puedes usar.
use_include_path El tercer parámetro opcional use_include_path se puede establecer en "1" o VERDADERO
si también desea buscar un archivo en include_path.
Si ha habilitado el modo seguro o open_basedir, se aplican más restricciones.: Contexto Se agregó soporte de contexto en PHP 5.0.0. Para descripción contextos
consulte la sección Transmisiones.
Valores de retorno Crea y abre solo para escritura; coloca el puntero al principio del archivo. Si el archivo ya existe, llame Devuelve un puntero al archivo si tiene éxito, o
en caso de error.
Errores FALSO Si el archivo no se pudo abrir, se generará un error de nivel.
. Puede utilizar el operador para suprimir este error.
Lista de cambios
Ejemplos abrir()
Ejemplo #1 Ejemplos de uso
$handle = fopen("/home/rasmus/file.txt", "r");
$handle = fopen ("/home/rasmus/file.gif", "wb");
$handle = fopen("http://www.example.com/", "r"); $manejar = abrir ( "ftp://usuario:[correo electrónico protegido]/algún archivo.txt"
?>
, "w" );
Notas
Atención Al usar SSL, Microsoft IIS viola el protocolo al cerrar la conexión sin enviar un indicador. PHP informará esto como "SSL: Error fatal de protocolo" en el momento en que llegue al final de los datos. Para solucionar esto, debe configurar error_reporting en un nivel que excluya E_WARNING. Las versiones de PHP 4.3.7 y anteriores pueden detectar que hay un IIS problemático en el lado del servidor al abrir una secuencia usando un contenedor https:// y no muestra ninguna advertencia. Si estas usando fsockabierto() crear ssl: // socket, es su responsabilidad detectar y suprimir esta advertencia.
Si ha habilitado el modo seguro o open_basedir, se aplican más restricciones.: Cuando la opción de modo seguro está habilitada, PHP verifica si el directorio con el que está a punto de trabajar tiene el mismo UID (propietario) que el script que se está ejecutando.
Si ha habilitado el modo seguro o open_basedir, se aplican más restricciones.:
Si tiene problemas al leer o escribir archivos y está utilizando PHP como módulo de servidor, asegúrese de que el proceso del servidor tenga acceso a los archivos y directorios que está utilizando.
Si ha habilitado el modo seguro o open_basedir, se aplican más restricciones.:
Esta función también puede tener éxito si el nombre del archivo es un directorio. Si no está seguro de si el nombre del archivo es un archivo o un directorio, entonces necesita usar la función es_dir() abrir() .
, antes de la llamada
- La ubicación del archivo php.ini depende del sistema operativo en el que se ejecuta el servidor del proveedor de alojamiento. Para saber dónde está sigue 4 sencillos pasos:
- Cree un archivo php (el nombre puede ser cualquier cosa, pero tomamos myphpinfo.php como ejemplo) y agréguele las siguientes líneas:
- Cargue este archivo en el servidor donde se encuentra su sitio (en la carpeta raíz).
- Lo iniciamos a través del navegador (ingrese la URL https://yoursitename.com/myphpinfo.php).
En la ventana que aparece, busque la ruta a php.ini (primero mire "Archivo de configuración cargado", si dice "Ninguno", luego mire "Ruta del archivo de configuración (php.ini)").
¿Cómo configurar php.ini? El archivo php.ini tiene las siguientes reglas de sintaxis "directiva = valor". Si quieres añadir comentarios (por ejemplo, en los que indiques qué afecta esta configuración
), luego hazlo después del punto y coma (todo lo que viene después de este signo no cuenta como comando). He aquí un ejemplo:
max_execution_time = 40; Número máximo de segundos para la ejecución del script
Configuraciones generalesPHPengine = activado; Los scripts PHP están habilitados.. Если будет значение Off, то PHP-код обрамлять в традиционные
Short_open_tag = Activado; Permite encuadrar de forma simplificada el código PHP con etiquetas.<% %>
Asp_tags = activado; Permite la posibilidad de resaltar código PHP, como se hace en ASP.
Precisión = 12 ; Especifica cuántos dígitos habrá después del punto decimal para los números de punto flotante.
Almacenamiento en búfer de salida = 4096; El almacenamiento en búfer de salida se habilitará automáticamente, con el tamaño del búfer especificado después de "igual".
Safe_mode_allowed_env_vars = PHP_; Permite al usuario trabajar solo con variables de entorno que comienzan con PHP_. Si esta directiva está vacía (no tendrá valor), los usuarios podrán cambiar cualquier variable de entorno. Esto puede resultar muy perjudicial para la seguridad de los scripts.
Safe_mode_protected_env_vars = LD_LIBRARY_PATH; Prohíbe cambiar las variables que se enumeran separadas por comas.
Desactivar_funciones = ; Después del signo igual, debe escribir las funciones que desea deshabilitar, separadas por comas (generalmente esto se hace por seguridad)
Desactivar_clases = ; Después del signo "igual", debe escribir, separadas por comas, las clases cuyas llamadas desea prohibir (generalmente esto se hace por seguridad)
Limitación de recursos
max_execution_time = 40; Tiempo máximo de ejecución del script (en segundos)Tiempo_entrada_máx = 40; El tiempo máximo en segundos que se le da al script para procesar los datos que se están cargando.
Límite_memoria = 16M; Memoria máxima asignada para un script
Manejo de errores y registros
informe_error = E_ALL | E_ERROR | E_ADVERTENCIA | E_PARSE | E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR | E_COMPILE_WARNING | E_USER_ERROR | E_USER_WARNING | E_USER_NOTICE; Especifica una lista de errores que se pueden mostrar.Display_errors = Activado; Permite que los errores se muestren directamente en el navegador (a menudo se usa para facilitar la depuración).
Display_startup_errors = Activado; Se permite mostrar los errores que aparecen durante el inicio de PHP.
Log_errors = activado; Se permite que los errores se escriban en un archivo de registro.
Log_errors_max_len = 1024; El número máximo de caracteres que puede tener la longitud del registro.
Track_errors = Activado; Los últimos mensajes de error se almacenarán en la variable $php_errormsg
Html_errors = Activado; Permitir que los mensajes de error se muestren en HTML.
Error_log = nombre de archivo; Establece el nombre del registro de errores.
Proceso de datos
variables_order = "EGPCS"; Establece el orden en el que PHP registrará las variables (E - variables integradas, G - variables GET, P - variables POST, C - Cookies, S - sesiones). Si elimina alguna de las letras, se bloqueará el funcionamiento de las variables correspondientes.Register_globals = Activado; Habilita la capacidad de tratar variables que vienen a través de GET/POST/Cookie/sesión como variables normales (por ejemplo, "$nombredevariable").
Register_argc_argv = Activado; Se permite crear variables $argv y $argc basadas en información del método GET.
Post_max_size = 8M; Establece la cantidad máxima de datos que se pueden recibir.
Magic_quotes_gpc = Activado; Permite el procesamiento automático de cotizaciones recibidas mediante POST/GET/Cookie.
Auto_prepend_file = ; El contenido de los archivos especificados en estas directivas debe ser procesado en consecuencia por PHP ANTES de ejecutar el script.
auto_append_file = ; PHP debe procesar en consecuencia el contenido de los archivos especificados en estas directivas DESPUÉS de que se haya ejecutado el script.Default_mimetype = "texto/html"; Establece la codificación para el tipo de contenido. Por defecto, se utilizará texto/html sin especificar la codificación.
raíz_doc = ; Establece la carpeta raíz para los scripts PHP.
Extension_dir = "./"; Especifica la carpeta en la que se almacenarán las extensiones cargadas dinámicamente.
Subiendo archivos
file_uploads = Activado; Se permite cargar archivos al servidor.Subir_tmp_dir = ; Directorio temporal para archivos a descargar.
Upload_max_filesize = 2M; Establece el tamaño máximo de archivo que se puede cargar.
Trabajar con enchufes
agente_usuario="PHP"; La variable USER_AGENT se establece cuando se produce una conexión de socket.Default_socket_timeout = 30; Tiempo máximo de escucha en un socket (segundos).
Sesiones
session.save_handler = archivos; Especifica que la información de la sesión debe almacenarse en archivos.sesión.save_path = /tmp; Después del signo igual, debe especificar la ruta a la carpeta en la que se almacenará la información sobre las sesiones (es importante que la carpeta ya exista)
sesión.use_cookies = 1; Permite el uso de cookies en las sesiones
sesión.nombre = PHPSESSID; Indica el uso del ID de sesión como nombre de sesión y cookie de sesión.
session.cookie_lifetime = 0; Duración de la sesión ("0" significa que la sesión dura hasta que se cierra la ventana del navegador)
sesión.use_trans_sid = 1; Si el usuario ha desactivado las cookies, el ID de la sesión se agregará a todos los enlaces.
Extensiones dinámicas
extensión=nombredelmódulo.extensión; Se puede utilizar para cargar módulos externos. Para sistemas Windows, normalmente escriben extensión=msql.dll, y para
UNIX - extensión=msql.so
Trabajar con módulos MySQL
mysql.allow_persistent = Activado; Permite conexiones MySQL estables.Mysql.max_persistent = -1; Establece el número máximo de conexiones MySQL estables. Si especifica -1, esto significará que no hay restricciones.
Mysql.max_links = -1; Establece el número máximo de conexiones MySQL estables y conexiones ODBC inestables. Si especifica -1, esto significará que no hay restricciones.
Mysql.default_port =; Puerto para la función mysql_connect.
Mysql.default_socket =; El nombre del socket para las conexiones MySQL locales.
Mysql.default_host =; Nombre de host para la función mysql_connect.
Mysql.default_user = ; Nombre de usuario.
Mysql.default_password =; Contraseña.
Si creó su propio archivo php.ini y lo colocó en la carpeta del sitio
En este caso, por razones de seguridad, debe bloquear el acceso a él para todos excepto para usted. Para hacer esto, necesita escribir el siguiente código en el archivo .htaccess:
orden permitir, negar
negar de todos
Pero ten cuidado, porque... Con esta configuración, todas las directivas (php_value, php_flag, etc.) relacionadas con la configuración de php a través del archivo .htaccess dejarán de funcionar (se mostrará un error interno del servidor 500).
¡Importante! Si crea su propio archivo php.ini, solo afectará al directorio en el que se encuentra.
recurso abrir(nombre de archivo de cadena, modo de cadena [, bool use_include_path [, recurso zcontext]])abrir() asigna el recurso nombrado especificado en el argumento del nombre de archivo a la secuencia. Si el nombre del archivo se pasa en el formato "esquema://...", se considera una URL y PHP buscará un controlador de protocolo (también conocido como "contenedor") para ese esquema si no se asigna ningún contenedor al esquema. protocolo, PHP emitirá una nota para ayudarle a localizar un problema potencial en su secuencia de comandos y continuará la ejecución como si el nombre del archivo apuntara a un archivo normal.
Si PHP decide que el nombre de archivo apunta a un archivo local, intentará abrir una secuencia para ese archivo. PHP debe poder acceder al archivo, por lo que debe asegurarse de que los permisos del archivo lo permitan. Si tiene habilitado el Modo seguro o open_basedir, se aplican más restricciones.
Si PHP ha decidido que el nombre del archivo apunta a un protocolo registrado y ese protocolo está registrado como una URL de red, PHP comprobará el estado de la directiva enable_url_fopen. Si está deshabilitado, PHP emitirá una advertencia y la llamada fopen fallará.
Comentario: Algunos protocolos admiten opciones de contexto y/o php.ini. Consulte la página del protocolo correspondiente para obtener una lista de opciones que se pueden configurar. (por ejemplo, el valor php.ini user_agent es utilizado por el contenedor http). Para obtener una descripción de los contextos y los parámetros de zcontext, consulte la sección Funciones de transmisión.
Comentario: Se agregó soporte de contexto en PHP 5.0.0.
Comentario: A partir de PHP 4.3.2, el modo binario es el modo predeterminado para todas las plataformas que distinguen entre modos binario y de texto. Si tiene problemas después de la actualización, intente usar el indicador "t" como solución alternativa hasta que cambie sus scripts para lograr una mayor portabilidad, como se indicó anteriormente.
El parámetro de modo especifica el tipo de acceso que solicita al hilo. Puede ser uno de los siguientes:
Si el archivo no se pudo abrir, la función volverá FALSO y generará un error de nivel E_ADVERTENCIA. Puede utilizar esto para suprimir esta advertencia.
Ejemplo 1. Ejemplos de uso de la función. abrir()
|
Si tiene problemas al leer o escribir archivos y está utilizando PHP como módulo de servidor, asegúrese de que el proceso del servidor tenga acceso a los archivos y directorios que está utilizando.
16,5KDe hecho, cómo abrir un archivo php no es un gran problema. Puede resultar más difícil abrir una botella de cerveza cuando estás en medio de un bosque. Pero sólo los programadores ávidos piensan de esta manera. Y para los principiantes, le informaremos sobre todas las capacidades de PHP para trabajar con archivos:
archivos php
Los archivos con extensión php contienen código escrito en el lenguaje de programación del mismo nombre. A diferencia de otros lenguajes, php es un lenguaje de programación del lado del servidor. Es decir, se ejecuta del lado del servidor. Por lo tanto, para depurar su código, se debe instalar un servidor local en la máquina cliente.
Para trabajar con archivos php, se utilizan aplicaciones especiales: editores de software. Los más comunes son:
- Tejedor de sueños.
- PHPEditar.
- Desarrollo PHP Eclipse.
incluir nombre de archivo
Ejemplo de conexión:
Archivo incluido:
También es posible incluir un archivo utilizando la construcción require. A diferencia de incluir, incluye el archivo antes de que se ejecute el código del programa. Al usar require en el código, solo es posible una llamada a este archivo. Cuando se acceda nuevamente, el sistema mostrará un mensaje de error global y detendrá la ejecución del programa.
La construcción de inclusión solo incluye la fuente durante la ejecución del programa. Admite lectura múltiple de archivos php. Si se produce un error, solo se mostrará un mensaje de advertencia y la ejecución del código continuará desde la siguiente línea.
Abrir y cerrar archivos
En PHP, todas las operaciones con archivos se realizan en varias etapas:
- Abrir un archivo;
- Edición de contenidos;
- Cerrando el expediente.
La función fopen() se utiliza para abrir un archivo. Su sintaxis es:
int fopen(nombre de archivo de cadena, modo de cadena [, int use_include_path])
Argumentos aceptados:
- nombre de archivo de cadena: nombre del archivo o ruta absoluta al mismo. Si no se especifica la ruta al archivo, se buscará en el directorio actual. Si falta el archivo que busca, el sistema mostrará un mensaje de error. Ejemplo:
- modo de cadena: indica el modo de apertura del archivo. Valores aceptados por el argumento:
- r: el archivo se abre solo para lectura, el puntero del archivo se establece al principio;
- r+ – el archivo está abierto para lectura y escritura;
- w: crea un nuevo archivo solo para escritura. Si ya existe un archivo con el mismo nombre, todos los datos que contiene se eliminan automáticamente;
- w+: crea un nuevo archivo para escribir y leer. Cuando existe un archivo de este tipo, sus datos se sobrescriben completamente con otros nuevos;
- a: el archivo está abierto para escritura. El puntero se coloca al final. Es decir, escribir en un archivo php no comenzará desde el principio, sino desde el final;
- a+: abre un archivo en modo lectura-escritura. La grabación comenzará desde el final;
- b – modo de trabajar con un archivo que contiene datos binarios (en el sistema numérico binario). Este modo sólo está disponible en el sistema operativo Windows.
Para cerrar el acceso a un archivo, utilice la función fclose(). Sintaxis:
int fclose (archivo int), donde el archivo int es un identificador del sitio que se va a cerrar.
Después de cada lectura o escritura, se debe cerrar el archivo con esta función. De lo contrario, la secuencia creada para el archivo permanece abierta. Y esto conduce a un consumo innecesario de capacidad del servidor.
Ejemplo:
Leer y escribir archivos
Para mostrar simplemente todo el contenido de un archivo, la función readfile() es ideal. Su sintaxis es:
readfile (nombre de archivo de cadena), donde nombre de archivo de cadena es el nombre del archivo de cadena (no un identificador).
El mismo archivo se puede leer usando la función fpassthru(). Lee datos desde la posición final del puntero hasta el final del archivo. Su sintaxis es:
int fpassthru (archivo int)
La función requiere abrir y cerrar un archivo. Ejemplo:
El resultado es similar al anterior.
Las funciones para trabajar con archivos en PHP le permiten leer el contenido línea por línea y carácter por carácter:
- fgets de cadena (archivo int, longitud int)– la función lee una cadena de longitud longitud. Ejemplo:
- fread de cadena (archivo int, longitud int)– la acción es idéntica a la anterior.
Para escribir datos de texto en un archivo, existen dos funciones idénticas:
- int fputs (archivo int, cadena cadena [, longitud int])
- int fwrite(archivo int, cadena cadena [, longitud int])
Las funciones escriben en un archivo int una cadena de cadena de la longitud especificada int length ( argumento opcional). Ejemplo:
Crear y eliminar archivos
Para crear un archivo php, puede utilizar la función fopen() en el modo de acceso "w" o "w+". O la función touch(). Establece la hora de modificación del archivo. Si no hay ningún elemento con el nombre buscado, se creará. Su sintaxis.