PHP Manual

PHP Manual

Stig Sæther Bakken
Alexander Aulbach
Egon Schmid
Jim Winstead
Lars Torben Wilson
Rasmus Lerdorf
Andrei Zmievski
Jouni Ahto

Edited by

Stig Sæther Bakken

Egon Schmid

This file was generated: Sat Dec 13 02:10:13 2003
Go to http://www.php.net/docs.php to get the actual version.

Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 the PHP Documentation Group


Manual de PHP

Stig Sæther Bakken
Alexander Aulbach
Egon Schmid
Jim Winstead
Lars Torben Wilson
Rasmus Lerdorf
Andrei Zmievski
Jouni Ahto

Editado por

Rafael Martínez
Angela Pardo
Federico Finos
Pablo Daniel Rigazzi
Robert Sánchez
Leonardo Boshell
Javier Eguiluz Perez

13-12-2003

Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 por el Grupo de documentación de PHP

Prefacio
I. Conceptos Básicos
1. Introducción
2. Una explicación sencilla
3. Instalación
4. Configuración del comportamiento de PHP
II. Referencia del Lenguaje
5. Síntaxis básica
6. Tipos
7. Variables
8. Constantes
9. Expresiones
10. Operadores
11. Estructuras de Control
12. Funciones
13. Clases y Objetos
14. Explicando las Referencias
III. Seguridad
15. Seguridad
IV. Características
16. Autentificación HTTP con PHP
17. Cookies
18. Manejo de envío de archivos
19. Usando archivos remotos
20. Manejando conexiones
21. Conexiones persistentes a bases de datos
22. Modo Seguro (Safe Mode)
23. Usando PHP desde la línea de comando
V. Referencia de las Funciones
I. Funciones específicas de Apache
II. Funciones de matrices
III. Funciones Aspell [deprecated]
IV. Funciones matemáticas de precisión arbitraria BCMath
V. Funciones de compresión Bzip2
VI. Funciones de calendario
VII. Funciones del API de CCVS
VIII. soporte de las funciones COM para Windows
IX. Funciones de Clases/Objectos
X. Funciones de ClibPDF
XI. Crack functions
XII. Funciones CURL (Client URL Library)
XIII. Funciones de pago electrónico
XIV. Cyrus IMAP administration functions
XV. Funciones de tipo de caracter
XVI. Funciones de la capa de abstraccion de bases de datos (dbm-style)
XVII. Funciones de Fecha y Hora
XVIII. Funciones para dBase
XIX. Funciones dbm
XX. dbx functions
XXI. DB++ Functions
XXII. Funciones de acceso directo a E/S
XXIII. Funciones de directorio
XXIV. Funciones de DOM XML
XXV. .NET functions
XXVI. Funciones de Gestión de Errores y Registros
XXVII. File alteration monitor functions
XXVIII. FrontBase Functions
XXIX. Funciones filePro
XXX. Funciones del Sistema de Archivos
XXXI. Funciones Forms Data Format (Formato de Datos de Formularios)
XXXII. FriBiDi functions
XXXIII. Funciones FTP
XXXIV. Function Handling functions
XXXV. Gettext
XXXVI. GMP functions
XXXVII. Funciones HTTP
XXXVIII. Funciones para Hyperwave
XXXIX. Hyperwave API functions
XL. iconv functions
XLI. Funciones para imágenes
XLII. Funciones IMAP
XLIII. Funciones para Informix
XLIV. Funciones InterBase
XLV. Ingres II functions
XLVI. IRC Gateway Functions
XLVII. Integración de Java y PHP
XLVIII. Funciones LDAP
XLIX. Funciones de Correo
L. Funciones mailparse
LI. Funciones matemáticas
LII. Multi-Byte String Functions
LIII. MCAL functions
LIV. Funciones Criptográficas
LV. MCVE Payment Functions
LVI. Funciones Hash
LVII. Funciones Mimetype
LVIII. Funciones de Microsoft SQL Server
LIX. Ming functions for Flash
LX. Miscelánea de funciones
LXI. mnoGoSearch Functions
LXII. funciones mSQL
LXIII. Funciones MySQL
LXIV. Improved MySQL Extension
LXV. Mohawk Software session handler functions
LXVI. muscat functions
LXVII. Funciones de Red
LXVIII. Ncurses terminal screen control functions
LXIX. Lotus Notes functions
LXX. NSAPI-specific Functions
LXXI. ODBC functions
LXXII. Object Aggregation/Composition Functions
LXXIII. Funciones de Oracle 8
LXXIV. OpenSSL functions
LXXV. Funciones Oracle
LXXVI. Ovrimos SQL functions
LXXVII. Output Control Functions
LXXVIII. Object property and method call overloading
LXXIX. PDF functions
LXXX. Verisign Payflow Pro functions
LXXXI. Opciones e Información de PHP
LXXXII. Funciones POSIX
LXXXIII. Funciones de PostgreSQL
LXXXIV. Process Control Functions
LXXXV. Funciones de Ejecución de Programas
LXXXVI. Printer functions
LXXXVII. Pspell Functions
LXXXVIII. GNU Readline
LXXXIX. Funciones GNU Recode
XC. Funciones de expresiones regulares compatibles con Perl
XCI. qtdom functions
XCII. Funciones para expresiones regulares
XCIII. Funciones Semáforo y de memoria compartida
XCIV. SESAM database functions
XCV. Funciones para el manejo de sesiones
XCVI. Funciones de Memoria Compartida
XCVII. SQLite
XCVIII. Shockwave Flash functions
XCIX. Funciones SNMP
C. Socket functions
CI. Stream functions
CII. Funciones de cadenas
CIII. Funciones de Sybase
CIV. tidy Functions
CV. Tokenizer functions
CVI. Funciones URL
CVII. Funciones sobre variables
CVIII. vpopmail functions
CIX. W32api functions
CX. Funciones WDDX
CXI. Funciones de intérprete XML
CXII. XML-RPC functions
CXIII. XSLT functions
CXIV. YAZ
CXV. NIS funciona
CXVI. Funciones de manejo de archivos Zip (Solo lectura)
CXVII. Funciones de Compresión
VI. Zend API
24. Overview
25. Extension Possibilities
26. Source Layout
27. PHP's Automatic Build System
28. Creating Extensions
29. Using Extensions
30. Troubleshooting
31. Source Discussion
32. Accepting Arguments
33. Creating Variables
34. Duplicating Variable Contents: The Copy Constructor
35. Returning Values
36. Printing Information
37. Startup and Shutdown Functions
38. Calling User Functions
39. Initialization File Support
40. Where to Go from Here
41. Reference: Some Configuration Macros
42. API Macros
VII. PHP API: Interfaces para autores de extensiones
43. Streams API for PHP Extension Authors
VIII. FAQ: Preguntas frecuentes
44. General Information
45. Mailing lists
46. Obtaining PHP
47. Database issues
48. Installation
49. Build Problems
50. Using PHP
51. PHP and HTML
52. PHP and COM
53. PHP and other languages
54. Migrating from PHP 2 to PHP 3
55. Migrating from PHP 3 to PHP 4
56. Miscellaneous Questions
IX. Apéndices
A. Historia de PHP y proyectos relacionados
B. Migración de PHP 3 a PHP 4
C. Migrando de PHP/FI 2.0 a PHP 3.0
D. El debugger de PHP
E. Desarrollo en PHP
F. Lista de alias de funciones
G. Lista de Palabras Reservadas
H. Lista de Tipos de Recurso
I. Lista de Protocolos/Envolturas Soportadas
J. Lista de Transportes de Sockets Soportados
K. Tablas de comparación de tipos PHP
L. Lista de Identificadores (tokens) del Analizador
M. Sobre el manual
N. Índice de funciones
O. Material que falta
X. Edición HTML Help
57. About This Edition
58. Using PHP Manual CHM Edition
59. The Full Text Search
60. Specialities of this Edition
61. Integrating the PHP Manual
62. Skin development
63. CHM Edition Credits

Siguiente
Prefacio


Prefacio

PHP, acrónimo de "PHP: Hypertext Preprocessor", es un lenguaje "Open Source" interpretado de alto nivel, especialmente pensado para desarrollos web y el cual puede ser embebido en páginas HTML. La mayoría de su sintaxis es similar a C, Java y Perl y es fácil de aprender. La meta de este lenguaje es permitir escribir a los creadores de páginas web, páginas dinámicas de una manera rápida y fácil, aunque se pueda hacer mucho más con PHP.

Este manual contiene principalmente una referencia de funciones PHP, tambien contiene una referencia del lenguaje, explicaciones de caracteristicas importantes de PHP y alguna información suplementaria.

Este manual se puede conseguir en diferentes formatos en http://www.php.net/docs.php. Más información sobre como este manual es desarrollado puede encontrarse en el apéndice 'Sobre este manual'.

Ver tambien Historia de PHP

Anterior | Inicio | Siguiente
Manual de PHP |  | Conceptos Básicos


Conceptos Básicos

Manual de PHP
Anterior Siguiente

I. Conceptos Básicos

Tabla de contenidos
1. Introducción
2. Una explicación sencilla
3. Instalación
4. Configuración del comportamiento de PHP

Anterior | Inicio | Siguiente
Prefacio |  | Introducción


Introducción

Manual de PHP
Anterior Siguiente

Capítulo 1. Introducción

Tabla de contenidos
Qué es PHP?
Qué se puede hacer con PHP?

Qué es PHP?

PHP (acronimo de "PHP: Hypertext Preprocessor") es un lenguaje "open source" interpretado de alto nivel embebido en páginas HTML y ejecutado en el servidor.

Una respuesta corta y concisa, pero que significa realmente? Un ejemplo nos aclarará las cosas:

Ejemplo 1-1. Un ejemplo introductorio

<html>
    <head>
        <title>Example</title>
    </head>
    <body>

        <?php
        echo "Hi, I'm a PHP script!";
        ?>

    </body>
</html>

Podemos ver que no es lo mismo que un script escrito en otro lenguaje de programación como Perl o C -- En vez de escribir un programa con muchos comandos para crear una salida en HTML, escribimos el código HTML con cierto código PHP embebido (introducido) en el mismo, que producirá cierta salida (en nuestro ejemplo, producir un texto). El código PHP se incluye entre etiquetas especiales de comienzo y final que nos permitirán entrar y salir del modo PHP.

Lo que distingue a PHP de la tecnología Javascript, la cual se ejecuta en la máquina cliente, es que el código PHP es ejecutado en el servidor. Si tuviesemos un script similar al de nuestro ejemplo en nuestro servidor, el cliente sólamente recibiría el resultado de su ejecución en el servidor, sin ninguna posibilidad de determinar que código ha producido el resultado recibido. El servidor web puede ser incluso configurado para que procese todos los ficheros HTML con PHP.

Lo mejor de usar PHP es que es extremadamente simple para el principiante, pero a su vez, ofrece muchas caracteristicas avanzadas para los programadores profesionales. No tengais miedo de leer la larga lista de caracteristicas de PHP, en poco tiempo podreis empezar a escribir vuestros primeros scripts.

Aunque el desarrollo de PHP está concentrado en la programación de scripts en la parte del servidor, se puede utilizar para muchas otras cosas. Sigue leyendo y descubre más sobre PHP en la sección Qué se puede hacer con PHP?.

Anterior | Inicio | Siguiente
Conceptos Básicos | Subir | Qué se puede hacer con PHP?


Qué se puede hacer con PHP?

PHP puede hacer cualquier cosa que se pueda hacer con un script CGI, como procesar la información de formularios, generar páginas con contenidos dinámicos, o mandar y recibir cookies. Y esto no es todo, se puede hacer mucho más.

Existen tres campos en los que scripts escritos en PHP son usados.

  • Scripts en la parte del servidor. Este es el campo más tradicional y el principal campo de trabajo. Se necesitan tres cosas para que esto funcione. El analizador PHP (CGI ó módulo), un servidor web y un navegador. Se necesita correr el servidor web con PHP instalado. El resultado del programa PHP se puede obtener a través del navegador, conectando con el servidor web. Consultar la sección Instrucciones de instalación para más información.

  • Scripts en linea de comandos. Podeis crear un script PHP y correrlo sin ningún servidor web ó navegador. Solamente necesitais el parseador PHP para usarlo de esta manera. Este tipo de uso es ideal para scripts ejecutados regularmente desde cron (en *nix ó Linux) ó el Planificador de tareas (en Windows). Estos scripts tambien pueden ser usados para tareas simples de procesado de texto. Consultar la sección Usos de PHP en la linea de comandos para más información.

  • Escribir aplicaciones gráficas clientes. PHP no es probablemente el mejor lenguaje para escribir aplicaciones gráficas, pero si sabeis bien PHP, y os gustaria utilizar algunas características avanzadas en programas clientes, podeis utilizar PHP-GTK para escribir dichos programas. Es tambien posible escribir aplicaciones independientes de una plataforma. PHP-GTK es una extensión de PHP, no disponible en la distribución principal. Si te interesa PHP-GTK, puedes visitar las páginas web del projecto.

PHP puede ser utilizado en cualquiera de los principales sistemas operativos del mercado, incluyendo Linux, muchas variantes Unix (incluido HP-UX, Solaris y OpenBSD), Microsoft Windows, Mac OS X, RISC OS y probablemente alguno más. PHP soporta la mayoría de servidores web de hoy en día, incluyendo Apache, Microsoft Internet Information Server, Personal Web Server, Netscape y iPlanet, Oreilly Website Pro server, Caudium, Xitami, OmniHTTPd y muchos otros. PHP tiene módulos disponibles para la mayoría de los servidores, para aquellos otros que soporten el estándar CGI, PHP puede usarse como procesador CGI.

Asi que, con PHP teneis la libertad de escoger el sistema operativo y el servidor de vuestro gusto. Tambien teneis la posibilidad de usar programación de procediminetos ó programación orientada a objetos. Aunque no todas la características estándares de la programación orientada a objetos están implementadas en la versión actual de PHP, muchas librerías y aplicaciones grandes (incluyendo la libreria PEAR) están escritas íntegramente usando programación orientada a objetos.

Con PHP no estais limitados a resultados en HTML. Entre las habilidades de PHP se incluyen, creación de imágenes, ficheros PDF y películas Flash (usando libswf y Ming) sobre la marcha. Tambien podeis presentar otros resultados, como XHTM y ficheros XML. PHP puede autogenerar estos ficheros y grabarlos en el sistema de ficheros en vez de presentarlos en la pantalla.

Quizas la característica más potente y destacable de PHP es su soporte para una gran cantidad de bases de datos. Escribir un interfaz via web para una base de datos es una tarea simple con PHP. Las siguientes bases de datos están soportadas actualmente:

Adabas D | Ingres | Oracle (OCI7 and OCI8)
dBase | InterBase | Ovrimos
Empress | FrontBase | PostgreSQL
FilePro (read-only) | mSQL | Solid
Hyperwave | Direct MS-SQL | Sybase
IBM DB2 | MySQL | Velocis
Informix | ODBC | Unix dbm

Tambien tenemos una extensión DBX de abstracción de base de datos que permite usar de forma transparente cualquier base de datos soportada por la extension. Adicionalmente, PHP soporta ODBC (The Open Database Connection standard), asi que podeis conectar a cualquier base de datos que soporte este estandar.

PHP tambien tiene soporte para comunicarse con otros servicios usando protocolos tales como LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (en Windows) y muchos otros. Tambien se pueden crear raw sockets. PHP soporta WDDX para intercambio de datos entre lenguajes de programación en web. Y hablando de interconexión, PHP puede utilizar objetos Java de forma transparente como objetos PHP Y la extensión de CORBA puede ser utilizada para acceder a objetos remotos.

PHP tiene unas características muy útiles para el proceso de texto, desde expresiones regulares POSIX Extended ó Perl hasta parseador de documentos XML. Para parsear y acceder documentos XML, soportamos los estandares SAX y DOM. Podeis utilizar la extensión XSLT para transformar documentos XML.

Si usais PHP en el campo del comercio electrónico, encontrareis muy útiles las funciones Cybercash, CyberMUT, VeriSign Payflow Pro y CCVS para vuestros programas de pago.

Para terminar, tenemos muchas otras extensiones muy interesantes, las funciones del motor de búsquedas mnoGoSearch, funciones para pasarelas de IRC, utilidades de compresión (gzip, bz2),, conversión de calendarios, traducción .....

Como podeis ver esta página no es suficiente para enumerar todas las características y beneficios que PHP ofrece. Consultar las secciones Instalando PHP y Referencia de las funciones para una explicación de las extensiones mencionadas aqui.

Anterior | Inicio | Siguiente
Introducción | Subir | Una explicación sencilla


Una explicación sencilla

Manual de PHP
Anterior Siguiente

Capítulo 2. Una explicación sencilla

Tabla de contenidos
Que necesito?
Tu primera página con PHP
Algo Útil
Usando Formas HTML
Usando código antiguo con nuevas versiones de PHP
Ahora que?

Aquí, te vamos a introducir a PHP en un pequeño y sencillo manual. Este documento te explicara como crear páginas web dinámicas para el internet con PHP, aunque PHP no solamente esta diseñado para la creación de estas. Mira la sección titulada Que se puede hacer con PHP para mas información.

Las Páginas web que utilizan PHP son tratadas como páginas de HTML comunes y corrientes, y tu puedes crearlas y editarlas de la misma manera que tu haces con documentos normales de HTML.

Que necesito?

En este manual vamos a asumir que tu tienes un servidor que soporta PHP y que todos los archivos con la extensión .php son manejados por PHP. En la mayoría de servidores esta es la extensión que archivos PHP toman por defecto, pero pregunta al administrador de tu servidor para estar asegurarte. Si tu servidor soporta PHP entonces tu no necesitas hacer nada, solamente crea tus archivos .php y guardalos en tu directorio web y el servidor como por magia los analizara por voz. No hay necesidad de compilar nada, tampoco tienes necesidad de instalar otras herramientas. Miralo de esta manera, estos archivos de PHP son tan simples como archivos de HTML con una nueva familia de etiquetas (tags) que te dejan hacer una gran cantidad de cosas. La mayoría del las compañías de alojamiento de páginas web ofrecen el soporte que tu necesitas para usar PHP, pero si por alguna razón ellos no lo hacen, considera leer la sección titulada Recursos PHP para mas información acerca de compañías de alojamiento que soportan PHP

Digamos que tu tienes limitado acceso al internet y estas programando localmente. En este caso, tu queréis instalar a servidor de web como Apache, y PHP . Lo mas seguro es que también quieres instalar una base de datos como MySQL. Tu puedes instalar estos productos individualmente o simplemente localiza un paquete pre-configurado que automáticamente instalara todos estos productos con solamente unos movimientos de tu ratón. Es muy fácil instalara un servidor de la web con soporte de PHP en cualquier sistemas de operaciones, incluyendo Linux y Windows. En Linux, rpmfind y PBone te ayudaran a encontrar un RPM.

Anterior | Inicio | Siguiente
Qué se puede hacer con PHP? | Subir | Tu primera página con PHP


Tu primera página con PHP

Empieza por crear un archivo llamado hello.php y ponlo en el "directorio raíz" (DOCUMENT_ROOT) con el siguiente contenido:

Ejemplo 2-1. Nuestro primer script PHP: hello.php

<html>
 <head>
  <title> Ejemplo de PHP</title>
 </head>
 <body>
 <?php echo "<p>Hola Mundo</p>"; ?>
 </body>
</html>

Utiliza tu navegador de web para acceder tu archivo, con el URL terminando en "/hello.php". Si estas programando localmente este URL lucirá algo como http://localhost/hello.php o http://127.0.0.1/hello.php pero esto depende en la configuración de tu servidor de web. Aunque esto es fuera del alcance de este tutorial, también puedes ver las DocumentRoot y ServerName directivas en la configuración de tu servidor (en Apache esto es httpd.conf). Si todo esta configurado correctamente, el archivo sera analizado por PHP y es siguiente contenido aparecerá en tu navegador:

<html>
 <head>
  <title>Ejemplo de PHP</title>
 </head>
 <body>
 <p>Hola Mundo</p>
 </body>
</html>

Debes observar que esto no es como scripts de CGI . El archivo no necesita ninguna clase especial de permisos para ser ejecutado. Piensa al respecto como si fueran archivos de HTML con un set muy especial de tags disponibles, y que hacen muchas cosas interesantes.

Este programa es extremadamente simple, y tu no necesitas usar PHP para crear una página como esta. Todo lo que hace es mostrar: Hola Mundo usando la declaración echo().

Si has intentado usar este ejemplo, y no produjo ningún resultado, te pregunto si queréas descargar el archivo, o te mostro todo el archivo como texto, lo mas seguro es que tu servidor no a activado PHP. Pídele a tu administrador que active esta función por voz, o usa el capítulo titulado Instalación en el manual. Si tu estas trabajando localmente, también lee el capítulo dedicado a la instalación, y asegurate de que todo este configurado apropiadamente. Si el problema continua, por favor usa una del las muchas opciones para obtener ayuda con PHP.

El objetivo de este ejemplo es para demostrar como puedes usar las tags PHP. En este ejemplo usamos <?php para indicar el inicio de la tag PHP Después describimos la declaración y dejamos el modo PHP usando ?>. Tu puedes salir de PHP y regresar cuantas veces quieras usando este método. Para mas información, puedes leer la sección en el manual titulada Sintaxis básico del PHP.

Una Nota acerca de editores de texto: Hay muchos editores de texto y Ambientes de Diseño integrado (IDE) que tu puedes usar para crear, editar, y organizar archivos de PHP. Puedes encontrar una lista parcial de estos en Lista de editores de PHP. Si tu quieres recomendar un editor, por favor visita la página mencionada anteriormente, y recomendalo a las personas encargadas del mantenimiento para que lo pongan en la lista. Teniendo un editor que resalta el sintaxis de PHP puede ser de mucha ayuda.

Una Nota acerca de procesadores de palabras: Procesadores de palabras como "StarOffice", "Microsoft word" y "Abiword" no son buenas opciones para editar archivos de PHP. Si tu deseas usar uno de estos programas para probar tus scripts, primero debes asegurarte de que guardes el documento en como "Texto" puro, o PHP no sera capaz de ejecutar el script.

Una nota acerca de "Windows Notepad": Si tu quieres escribir tus archivos PHP usando "Windows Notepad" y en algunos otros editores de texto para Windows necesitaras asegurarte que tus archivos son guardados con la extensión .php (La mayoría de los editores de texto en Windows automáticamente trataran de añadir la .txt extensión a los archivos a menos de que tomes los siguientes pasos para prevenirlo.) Cuando guardes tus archivos y el programa te pregunte que nombre le quieres dar a tu archivo utiliza comillas cuando escribes el nombre (i. e. "hola.php"). Una alternativa es oprimir en la lista de opciones "Archivos de Texto *.txt" seleccionar la opción "Todos los archivos *.*". Aquí puedes escribir el nombre del archivo sin las comillas.

Ahora que as creado un pequeño script de PHP que funciona correctamente, es hora de que trabajemos con el script de PHP mas famoso; vamos a hacer una llamada a la función phpinfo() para que obtener información acerca de tu sistema y configuración como las variables disponibles predefinidas , los módulos utilizados por PHP, y las diferentes opciones de configuración. Tomemos unos segundos para revisar esta información.

Anterior | Inicio | Siguiente
Una explicación sencilla | Subir | Algo Útil


Algo Útil

Hagamos ahora algo que puede ser mas útil. Vamos a chequear que clase de navegador de la web utilizas. Para hacerlo, vamos a mirar la información que el navegador nos manda como parte de su requesta HTTP. Esta información es guardada en una variable. Las variables siempre comiensan con un signo de dolar ("$") en PHP. La variable que vamos a utilizar en esta situación es $_SERVER["HTTP_USER_AGENT"].

Nota: $_SERVER es una variable reservada por PHP que contiene toda la información del servidor de web. Es conocida como Autoglobal (o Superglobal). Lee el manual en la sección titulada Autoglobals para mas información. Estas son variables especiales que son introducidas en la versión 4.1.0 de PHP. Antes podíamos usar los, $HTTP_*_VARS arrays, tales como $HTTP_SERVER_VARS. Aunque estos han sido despreciados, estas antiguas variables todavía existen. (También puedes mirar las notas relacionadas acerca del viejo código.)

Para poder ver esta variable solo necesitas:

Ejemplo 2-2. Imprimiendo una variable (Elemento del Array)

<?php echo $_SERVER["HTTP_USER_AGENT"]; ?>

Un ejemplo de los resultados de este programa seria:

Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)

Hay muchas clases de variables en PHP. En el ejemplo anterior imprimimos un Array. Los Arrays pueden ser muy útiles

$_SERVER es simplemente una variable que es automáticamente disponible para ti en PHP. Puedes obtener una lista en la sección titulada Variables Reservadas del manual, o puedes crear una lista completa creando un archivo como a continuación:

Ejemplo 2-3. Ver todas las variables predefinidas con phpinfo()

<?php phpinfo(); ?>

Si tu abres este archivo con tu navegador, puedes ver una página con información hacerca de PHP, junto a una lista de todas las variables que puedes usar.

Puedes usar mas de un declaración PHP dentro de una tag PHP, y crear pequeños segmentos de código que pueden hacer mas que un "echo". Por ejemplo, si queremos detectar por "Internet Explorer" haríamos algo así:

Ejemplo 2-4. Ejemplos usando estructuras de control y funciones

<?php
if (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) {
    echo "Estas usando Internet Explorer<br />";
}
?>

Un ejemplo de los resultado del script puede ser:

Estas usando Internet Explorer<br />

Aquí introduciremos un par de conceptos nuevos. Tenemos una "if" declaración. Si estas familiarizado con los la sintaxis básica del lenguaje "C", esto se vera lógico, Pero si tu no entiendes "C" o otros lenguajes de programación donde encuentras la sintaxis usada anteriormente, probablemente deberías conseguir un libro que te introduzca mejor a PHP, y lee los primeros capítulos, o también puedes ver la parte del manual titulada referencias al lenguaje. Puedes encontrar una lista de libros acerca de PHP en http://www.php.net/books.php.

El segundo concepto que introducimos fue el concepto llamado strstr(). strstr() es una función integrada en PHP que busca un cadena (string) dentro de otra cadena (string) mas larga. En el caso anterior estamos buscando por "MSIE" dentro de $_SERVER["HTTP_USER_AGENT"]. Si la cadena (string) fue encontrada, la función devolverá verdadero ("TRUE"),la declaración "if" se evalúa a verdadero ("TRUE") y el código adentro de las {braces} es ejecutado. De otra manera no lo es ejecutado. Tomate la libertad de crear ejemplos similares usando "if", "else" ("de otra manera"), y otras funciones como strtoupper() y strlen(). Cada página del manual contiene ejemplos que puedes usar. Si no estas seguro acerca de como usar estas funciones, te recomiendo que leas las páginas del manual tituladas Como leer una función definida y la sección relacionada a Funciones en PHP

Podemos dar paso mas y demostrar como podéis saltar adentro y afuera del modo PHP en el medio de un bloque de código PHP

Ejemplo 2-5. Mesclando los modos HTML y PHP

<?php
if (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) {
?>
<h3>strstr tiene que haber devuelto verdadero </h3>
<center><b>Estas usando Internet Explorer</b></center>
<?php
} else {
?>
<h3>strstr tiene que haber devuelto falso</h3>
<center><b>No estas usando Internet Explorer</b></center>
<?php
}
?>

Un ejemplo de los resultados de este script pueden ser:

<h3>strstr tiene que haber devuelto verdadero </h3>
<center><b>Estas usando Internet Explorer</b></center>

En vez de usar una declaración PHP "echo" para demostrar algo, saltamos fuera del código PHP y escribimos HTML puro. Este es un punto muy importante y potente que debemos observar aquí, este es que la fluidez lógica del script esta intacta. Solamente las partes donde hay HTML serán mandadas a tu navegador dependiendo en los resultados questrstr() ah devuelto, si fue (verdadero [TRUE], o falso [FALSE]). En otras palabras, si la cadena (string) MSIE fue encontrada o no.

Anterior | Inicio | Siguiente
Tu primera página con PHP | Subir | Usando Formas HTML


Usando Formas HTML

Una de las características de PHP es que maneja formas de HTML. El concepto básico el cual es importante entender es que cualquier elemento de la forma automáticamente estará disponible para tu código PHP. Por favor usa la sección titulada Variables fuera de PHP en el manual para mas información y ejemplos en como usar formal HTML con PHP. Observemos un ejemplo:

Ejemplo 2-6. Una forma HTML sencilla

<form action="action.php" method="POST">
 Tu nombre: <input type="text" name="name" />
 Tu edad: <input type="text" name="age" />
 <input type="submit">
</form>

No hay nada especial acerca de esta forma, es HTML limpio sin ninguna clase de tags desconocidas. Cuando el cliente llena esta forma, y oprime el botón llamado "Submit", una página titulada action.php es llamada. En este archivo encontraras algo así:

Ejemplo 2-7. Procesando la información de nuestra forma HTML

Hola <?php echo $_POST["name"]; ?>.
Tienes <?php echo $_POST["age"]; ?>  años  de viejo

Un ejemplo del resultado de este script podría ser:

Hola José.
Tienes 22 años de viejo

Creo que es obvio lo que hace. No hay mucho mas al respecto. las variables $_POST["name"] y $_POST["age"] son asignadas automáticamente por PHP. Hace un ratito usamos la variable $_SERVER Autoglobal, ahora hemos introducido $_POST Autoglobal, que contiene toda la información POST. Pon atención al method en nuestra forma; es POST. Si hubiéramos usado GET entonces nuestra información estaría en $_GET Autoglobal. También puedes utilizar $_REQUEST Autoglobal si a ti no te importa el origen de to requesta informática. Esta contiene una mezcla de información GET, POST y COOKIE. También puedes ver la función import_request_variables().

Anterior | Inicio | Siguiente
Algo Útil | Subir | Usando código antiguo con nuevas versiones de PHP


Usando código antiguo con nuevas versiones de PHP

Ahora que PHP ha crecido y se ha convertido en un lenguaje popular, hay muchas mas fuentes de recursos conteniendo código que puedes reusar en tu propio programa. Por la mayor parte las personas que mantienen PHP tratan de que el lenguaje sea compatible con versiones anteriores, para que los programas escritos con versiones antiguas continúen funcionando cuando instalas una nueva versión de PHP. En un mundo perfecto tu nunca necesitarías modificar tu código para hacerlo funcionar con versiones nuevas del lenguaje; pero como todos sabemos este no es un mundo perfecto, usualmente cambios en tu código son necesarios.

Dos de los cambios mas importantes que afectan código viejo son:

  • La desaparición de los arrays $HTTP_*_VARS (que usualmente son indicados como una global cuando su usan dentro de una función o método). Los siguientes arrays de Autoglobal son introducidos en la versión 4.1.0. de PHP. Estas son: $_GET, $_POST, $_COOKIE, $_SERVER, $_FILES, $_ENV, $_REQUEST, y $_SESSION. los antiguos $HTTP_*_VARS como $HTTP_POST_VARS, todavía existen, y han existido desde PHP 3

  • Las variables externas que ya no son registradas automáticamente. En otras palabras, desde PHP 4.2.0, la directiva PHP register_globals esta off (desactivada) en php.ini. El método preferido para obtener acceso a estos valores es por medio de los "Autoglobal arrays" mencionados anteriormente. Scripts que son antiguos, libros y tutoriales pueden asumir que esta directiva es automáticamente "on". Si "on" por ejemplo tu puedes usar $id desde el URL http://www.example.com/foo.php?id=42. No importa si es "on" u "off", $_GET['id'] esta siempre disponible.

Para mas detalles relacionados con estos cambios, puedes ver la sección en variables predefinidas.

Anterior | Inicio | Siguiente
Usando Formas HTML | Subir | Ahora que?


Ahora que?

Con lo que hemos visitado, puedes entender la mayor parte del manual, y también los ejemplos que están disponibles en los archivos. También puedes encontrar otros ejemplos en los diferentes sitios de php.net en la sección de links: http://www.php.net/links.php.

Para ver una presentacion que muestra mas acerca de lo PHP puede haer, ve a los diferents sitios con materiales relacionados a las diferentes conferencias: http://conf.php.net/ y http://talks.php.net/

Anterior | Inicio | Siguiente
Usando código antiguo con nuevas versiones de PHP | Subir | Instalación


Instalación

Manual de PHP
Anterior Siguiente

Capítulo 3. Instalación

Tabla de contenidos
Consideraciones generales de instalación
Instalación en Unix/HP-UX
Instalación en Unix/Linux
Instalación en Unix/Mac OS X
Instalación en Unix/OpenBSD
Instalación en Unix/Solaris
Instalación en sistemas Unix
Installation on Windows systems
Servidores-CGI/Linea de comandos
Servidores-Apache
Servidores-Apache 2.0
Servidores-Caudium
Servidores-fhttpd
Servidores-IIS/PWS
Servidores-Netscape e iPlanet
Servidores-Servidor OmniHTTPd
Servidores-Oreilly Website Pro
Servidores-Sambar
Servidores-Xitami
Servidores-Otros servidores web
Problemas?
Diversas opciones de configuración

Consideraciones generales de instalación

Antes de instalar PHP, necesitais saber porque quereis utilizarlo. Existen tres campos principales en donde PHP es usado, tal y como se describe en la sección Qué se puede hacer con PHP?:

  • Scripts en la parte del servidor

  • Scripts en linea de comandos

  • Aplicaciones gráficas clientes

Este es el campo más tradicional y el principal campo de trabajo. Se necesitan tres cosas para que esto funcione. El analizador PHP (CGI ó módulo), un servidor web y un navegador. Dependiendo de la versión de sistema operativo que utiliceis, probablemente tengais un servidor web (p.ej: Apache en Linux ó IIS en Windows). Tambien se puede alquilar espacio web en una empresa que ofrezca este servicio. De esta manera no se necesita instalar nada, solamente escribir los scripts PHP, subirlos al espacio alquilado y ver el resultado en vuestro navegador.

Teneis dos maneras de utilizar PHP, si instalais vosotros el servidor y PHP. Existen modulos directos (también llamados SAPI) para muchos servidores web, como Apache, Microsoft Internet Information Server, Netscape e iPlanet. Muchos otros servidores soportan ISAPI, (p.ej.:OmniHTTPd). Si PHP no soporta un módulo para tu servidor web, siempre se puede usar como binario CGI. Esto significa que el servidor se configura para usar el ejecutable para linea de comandos de PHP php.exe en Windows) en el procesado de peticiones de ficheros PHP.

Si estais interesados en usar PHP desde la linea de comandos (p.ej.: para generar imagenes offline ó precesar ficheros de textos, etc) necesitais el ejecutable para linea de comandos. Para más información, lea la sección Usando PHP desde la línea de comandos. en este caso no se necesita ni servidor web, ni navegador.

Con PHP tambien se puede escribir aplicaciones gráficas usando la extensión PHP-GTK. Esta es una forma totalmente distinta de utilizar PHP que cuando se utiliza para escribir páginas web, ya que no se genera código HTML sino que se trabaja con ventanas y objetos dentro de las mismas. Para más información sobre PHP-GTK, visitar las páginas dedicadas a esta extensión. PHP-GTK no se incluye en la distribución oficial de PHP.

A partir de ahora, esta sección tratará sobre la configuración de PHP con servidores web, en Unix y Windows, tanto como módulo, como binario CGI.

PHP, el código fuente y distribuciones binarias para Windows se pueden encontrar en http://www.php.net/. Recomendamos utilizar un servidor espejo cerca de donde esteis para bajaros la versión de PHP que querais.

Anterior | Inicio | Siguiente
Ahora que? | Subir | Instalación en Unix/HP-UX


Instalación en Unix/HP-UX

Esta sección contiene notas y ayudas específicas para instalar PHP en sistemas HP-UX.

Nota: Notas para PHP 4.0.4 y Apache v1.3.9

  1. Necesitais gzip, podeis bajar una distribución binaria de http://hpux.connect.org.uk/ftp/hpux/Gnu/gzip-1.2.4a/gzip-1.2.4a-sd-10.20.depot.Z descomprimir el fichero e instalar usando swinstall.

  2. Necesitais gcc, podeis bajar una distribución binaria de http://gatekeep.cs.utah.edu/ftp/hpux/Gnu/gcc-2.95.2/gcc-2.95.2-sd-10.20.depot.gz descomprimir el fichero e instalar usando swinstall.

  3. Necesitais GNU binutils, podeis bajar una distribución binaria de http://hpux.connect.org.uk/ftp/hpux/Gnu/binutils-2.9.1/binutils-2.9.1-sd-10.20.depot.gz descomprimir el fichero e instalar usando swinstall.

  4. Necesitais bison, podeis bajar una distribución binaria de http://hpux.connect.org.uk/ftp/hpux/Gnu/bison-1.28/bison-1.28-sd-10.20.depot.gz descomprimir el fichero e instalar usando swinstall.

  5. Necesitais flex, podeis bajar el código fuente de uno de los servidores espejo de http://www.gnu.org. Se encuentra en el directorio non-gnu en el servidor ftp. Bajar el fichero y ejecutar tar -xvf en el mismo. Entrar en el nuevo directorio flex creado y ejecutar ./configure, make, y por ultimo make install.

    Si teneis errores, es probablemente porque gcc, etc no se encuentra en vuestro PATH, actualizar la variable PATH para corregir esto.

  6. Bajar el codigo fuente de PHP y Apache

  7. Ejecutar gunzip y tar -xvf en ellos. Necesitamos cambiar una par de ficheros para que compilen sin problemas.

  8. Para empezar el fichero de configuracion necesita cambiarse porque parece que olvida que estamos en una maquina hpux. Existe otra manera de hacer esto, pero una manera rapida y faciel es introducir la linea lt_target=hpux10.20 em la linea 47286 del script de configuración.

  9. Tambien tenemos que cambiar el fichero de apache GuessOS. En el fichero apache_1.3.9/src/helpers cambiar la linea 89 de echo "hp${HPUXMACH}-hpux${HPUXVER}"; exit 0 a echo "hp${HPUXMACH}-hp-hpux${HPUXVER}"; exit 0

  10. No se puede instalar PHP como modulo compartido en HP-UX, se debe compilar estaticamente, seguir las instrucciones en la documentación de Apache.

  11. PHP y apache deberian de haber compilado sin problemas, pero Apache no arrancara. Necesitamos crear un nuevo usuario para ejecutar Apache, p.ej: www o apache. Cambiar la linea 252 y 253 en el fichero de configuracion de Apache conf/httpd.conf, para en vez de:

    User nobody
Group nogroup

    tener

    User www
Group sys

    Esto hay que hacerlo porque Apache no puede ejecutarse como nobody en hp-ux. Apache y PHP deberian de funcionar ahora.

Anterior | Inicio | Siguiente
Instalación | Subir | Instalación en Unix/Linux


Instalación en Unix/Linux

Esta sección contiene información específica sobre la instalación de PHP en sistemas Linux.

Usando paquetes

Muchas distribuciones de Linux tienen algún tipo de sistema de instalación por medio de paquetes, por ejemplo el llamado RPM. Esto puede ayudar a instalar una configuración estandar, pero si quereis tener caracteristicas especiales (como servidor seguro, ó soporte para otra base de datos, etc) seguramente tendreis que compilar PHP y/ó vuestro servidor web. Si no estais familiarizados con la compilación de vuestro propio software, podeis intentar comprobar si existe algún paquete precompilado con las caracteristicas que necesitais.

Anterior | Inicio | Siguiente
Instalación en Unix/HP-UX | Subir | Instalación en Unix/Mac OS X


Instalación en Unix/Mac OS X

Esta sección contiene informacion específica de como instalar PHP en Mac OS X Server.

Usando paquetes

Existen unos cuantos paquetes precompilados de PHP para Mac OS X. Esto puede ayudar a instalar una configuración estandar, pero si necesitais utilizar caracteristicas diferentes a las compiladas (p.ej.: servidor seguro, ó un controlador de bases de datos diferentes) tendreis que compilar PHP y vuestro servidor web ustedes mismos. Si no estais familiarizados con la compilación de vuestro propio software, no está de más comprobar si alguien ya ha creado un paquete con las caracteristicas que necesitais.

Compilando en OS X server

Existen dos versiones diferentes de Mac OS X, clente y servidor. A continuación teneis información para la versión servidor.

Ejemplo 3-1. Instalación en Mac OS X server

1. Bajarse las ultimas distribuciones de Apache y PHP.
2. Desempaquetarlas y ejecutar el programa configure en el directorio
    de apache:
    ./configure --exec-prefix=/usr \
    --localstatedir=/var \
    --mandir=/usr/share/man \
    --libexecdir=/System/Library/Apache/Modules \
    --iconsdir=/System/Library/Apache/Icons \
    --includedir=/System/Library/Frameworks/Apache.framework/Versions/1.3/Headers \
    --enable-shared=max \
    --enable-module=most \
    --target=apache

4. Podeis agregar esta linea:
    setenv OPTIM=-O2
   si quereis que el compilador optimize el c&oacute;digo.

5. Ir al directorio de PHP y configurarlo con:
    ./configure --prefix=/usr \
    --sysconfdir=/etc \
    --localstatedir=/var \
    --mandir=/usr/share/man \
    --with-xml \
    --with-apache=/src/apache_1.3.12

    Si teneis otras caracteristicas que querais a&ntilde;adir (MySQL,
    GD, etc.), asegurarse de a&ntilse;adirlas aqu&iacute;. En  --with-apache=
    teneis que poner el PATH de vuestro directorio Apache con el
    c&oacute;digo fuente del mismo, p.ej.: "/src/apache_1.3.12".

6. make
7. make install
   Esto a&ntilde;adir&aacute; un directorio en vuestro directorio Apache con el
   c&oacute;digo fuente del mismo, bajo src/modules/php4.

8. Reconfigurar Apache para utilizar PHP4:
    ./configure --exec-prefix=/usr \
    --localstatedir=/var \
    --mandir=/usr/share/man \
    --libexecdir=/System/Library/Apache/Modules \
    --iconsdir=/System/Library/Apache/Icons \
    --includedir=/System/Library/Frameworks/Apache.framework/Versions/1.3/Headers \
    --enable-shared=max \
    --enable-module=most \
    --target=apache \
    --activate-module=src/modules/php4/libphp4.a

    Podeis obtener un mensaje diciendo que libmodphp4.a no est&aacute;
    actualzido. Si esto ocurre, ir al directorio src/modules/php4 y
    ejecutar este comando:

    ranlib libmodphp4.a

    Una vez ejecutado este comando, volver el directorio raiz de apache y ejecutar
    el comando de configuraci&oacute;n antes mencionado.

9. make

10. make install

11. Copiar y renombrar el fichero php.ini-dist de vuestro directorio
    con las fuentes de PHP al directorio "bin":

    cp php.ini-dist /usr/local/bin/php.ini

    &oacute; (si no tenesi un directorio local/)

    cp php.ini-dist /usr/bin/php.ini

Compilando en MacOS X client

Estos datos han sido proporcionados por Marc Liyanage.

El módulo de PHP para Apache incluido en Mac OS X incluye soporte para bases de datos MySQL y PostgreSQL.

NOTA: Tener cuidado cuando hagais esto, podeis estropear vuestro servidor Apache.

Hacer esto para instalar:

  • 1. Abrir una ventana terminal.

  • 2. Escribir "wget http://www.diax.ch/users/liyanage/software/macosx/libphp4.so.gz", esperar a que termine

  • 3. Escribir "gunzip libphp4.so.gz"

  • 4. Escribir "sudo apxs -i -a -n php4 libphp4.so"

Ahora escribir "sudo open -a TextEdit /etc/httpd/httpd.conf" TextEdit se abrirá con el fichero de configuración de Apache. Localizar estas dos lineas al final del fichero (podeis utilizar el comando find)
#AddType application/x-httpd-php .php
   #AddType application/x-httpd-php-source .phps
Borrar los dos caracteres (#), grabar y salir de TextEdit.

Finalmente escribir "sudo apachectl graceful" para rearrancar el servidor web.

PHP deberia de funcionar ahora. Podeis comprobar que funciona, grabando un fichero llamado "test.php" en vuestro directorio web. Escribir esta linea en este fichero: "<?php phpinfo() ?>".

Ahora abrir la dirección 127.0.0.1/~your_username/test.php en vuestro navegador. Deberiais de ver una tabla con información sobre el módulo PHP.

Anterior | Inicio | Siguiente
Instalación en Unix/Linux | Subir | Instalación en Unix/OpenBSD


Instalación en Unix/OpenBSD

Esta sección contiene información específica sobre la instalación de PHP en OpenBSD 3.2.

Usando paquetes binarios

El uso de paquetes binarios para instalar PHP en OpenBSD es el método más simple y el recomendado. El paquete principal ha sido separado de los diferentes módulos y cada uno de ellos se puede instalar y desinstalar independientemente unos de otros. Los ficheros que necesitais se pueden encontrar en vuestro CD de OpenBSD ó en el servidor FTP.

El paquete principal que teneis que instalar es php4-core-4.2.3.tgz, el cual, contiene el motor básico (más gettext y iconv). A continuación podeis instalar los paquetes de módulos, tales como php4-mysql-4.2.3.tgz ó php4-imap-4.2.3.tgz. Debeis de usar el comando phpxs para activar y desactivar estos módulos en vuestro fichero php.ini.

Ejemplo 3-2. Ejemplo de instalación de los paquetes en OpenBSD

# pkg_add php4-core-4.2.3.tgz
# /usr/local/sbin/phpxs -s
# cp /usr/local/share/doc/php4/php.ini-recommended /var/www/conf/php.ini
  (add in mysql)
# pkg_add php4-mysql-4.2.3.tgz
# /usr/local/sbin/phpxs -a mysql
  (add in imap)
# pkg_add php4-imap-4.2.3.tgz
# /usr/local/sbin/phpxs -a imap
  (remove mysql as a test)
# pkg_delete php4-mysql-4.2.3
# /usr/local/sbin/phpxs -r mysql
  (install the PEAR libraries)
# pkg_add php4-pear-4.2.3.tgz

Consultar las páginas del manual packages(7) para más información sobre paquetes binarios en OpenBSD.

Usando Ports

Tambien podeis compilar PHP vosotros mismos usando el árbol de "ports". De todas maneras, esto se recomienda solamente a usuarios que esten familiarizados con OpenBSD. El "port" de PHP4 se encuentra dividido en tres subdirectorios, core, extensions y pear. El subdirectorio de extensiones genera los sub-paquetes para todos los módulos de PHP soportados. Si no quereis crear algunos de estos módulos usar el comando no_* FLAVOR. Por ejemplo, para no crear el módulo imap, configurar FLAVOR con no_imap.

Versiones antiguas

Versiones antiguas de OpenBSD usaban FLAVORS para compilar y enlazar estáticamente PHP. Ya que es difícil generar paquetes binarios utilizando este método, no se soporta más. Podeis utilizar todavia los "ports" antiguos estables, si quereis, pero debeis de saber que no se soportan más por el equipo de OpenBSD. Si teneis algún comentario sobre esto, podeis contactar con el mantenedor actual del "port" Anil Madhavapeddy.

Anterior | Inicio | Siguiente
Instalación en Unix/Mac OS X | Subir | Instalación en Unix/Solaris


Instalación en Unix/Solaris

Esta sección contiene información específica sobre la instalación de PHP en sistemas Solaris.

Software requerido

Solaris suele instalar compiladores de C carentes de caracteristicas y sus herramientas. Esta es la lista de software es necesario:

  • gcc (recomendado, otros compiladores de C puede que funcionen)

  • make

  • flex

  • bison

  • m4

  • autoconf

  • automake

  • perl

  • gzip

  • tar

  • GNU sed

Ademas, debeis de instalar (y posiblemente compilar) todo software adicional necesario por vuestra configuración, tal como Oracle ó MySQL.

Usando paquetes

El proceso de instalación en Solaris se puede simplificar con el uso de pkgadd para instalar los componentes que necesiteis.

Anterior | Inicio | Siguiente
Instalación en Unix/OpenBSD | Subir | Instalación en sistemas Unix


Instalación en sistemas Unix

Esta sección os guiará en el proceso de configuración e instalación de PHP de manera general en sistemas Unix. Consultar la sección específica de vuestra plataforma ó servidor web.

Conocimientos y software necesarios:

  • Conocimientos básicos de Unix (ser capaz de usar "make" y un compilador de C, si vais a compilar).

  • Un compilador ANSI C (si vais a compilar).

  • flex (si vais a compilar).

  • bison (si vais a compilar).

  • Un servidor web

  • Cualquier componente necesario por los modulos (p.ej: gd, pdf libs, etc.)

Existen diferentes maneras de instalar PHP en la plataforma Unix, bien por el método de compilar y configurar manualmente ó por medio de una serie de paquetes listos para instalar. Esta documentación se centra en el método de compilación y configuración manual.

El proceso inicial de configuración de PHP está controlado por las opciones en linea de comandos del script configure. Esta página muestra el uso de algunas de ellas, pero existen otras muchas. Consultar la lista completa de opciones con configure. Existen diferentes maneras de instalar PHP:

  • Como módulo de Apache 1.x ó como módulo de Apache 2.x.

  • Como un módulo Pike para Caudium

  • Para usarlo con AOLServer, NSAPI, phttpd, Pi3Web, Roxen, thttpd, ó Zeus.

  • Como un binario CGI

Referencia rápida como módulo de Apache

PHP se puede compilar de numerosas maneras, pero una de las más populares es como módulo de Apache. A continuación teneis una descripción de la instalación rápida

Ejemplo 3-3. Instrucciones para una instalación rápida de PHP 4 (Como módulo de Apache)

1.  gunzip apache_1.3.x.tar.gz
2.  tar xvf apache_1.3.x.tar
3.  gunzip php-x.x.x.tar.gz
4.  tar xvf php-x.x.x.tar
5.  cd apache_1.3.x
6.  ./configure --prefix=/www
7.  cd ../php-x.x.x
8.  ./configure --with-mysql --with-apache=../apache_1.3.x --enable-ftp
9.  make
10. make install
11. cd ../apache_1.3.x
12. ./configure --activate-module=src/modules/php4/libphp4.a
13. make
14. make install
15. cd ../php-x.x.x
16. cp php.ini-dist /usr/local/lib/php.ini
17. Editar vuestro fichero httpd.conf &oacute; srm.conf file y a&ntilde;adir:
      AddType application/x-httpd-php .php

18. Rearrancar vuestro servidor Apache de la manera habitual (Debeis
    de parar y arrancar el servidor, no vale usar una se&ntilde;al HUP o USR1)

Crear

Cuando PHP esté configurado, se puede crear el binario CGI. El comando make se encarga de esto. si esto falla y no sabeis como solucionarlo, pasaros por la sección sobre problemas.

Anterior | Inicio | Siguiente
Instalación en Unix/Solaris | Subir | Installation on Windows systems


Installation on Windows systems

This section applies to Windows 98/Me and Windows NT/2000/XP. PHP will not work on 16 bit platforms such as Windows 3.1 and sometimes we refer to the supported Windows platforms as Win32. Windows 95 is no longer supported as of PHP 4.3.0.

There are two main ways to install PHP for Windows: either manually or by using the InstallShield installer.

If you have Microsoft Visual Studio, you can also build PHP from the original source code.

Once you have PHP installed on your Windows system, you may also want to load various extensions for added functionality.

Windows InstallShield

The Windows PHP installer is available from the downloads page at http://www.php.net/downloads.php. This installs the CGI version of PHP and, for IIS, PWS, and Xitami, configures the web server as well.

Nota: While the InstallShield installer is an easy way to make PHP work, it is restricted in many aspects, as automatic setup of extensions for example is not supported. The whole set of supported extensions is only available by downloading the zip binary distribution.

Install your selected HTTP server on your system and make sure that it works.

Run the executable installer and follow the instructions provided by the installation wizard. Two types of installation are supported - standard, which provides sensible defaults for all the settings it can, and advanced, which asks questions as it goes along.

The installation wizard gathers enough information to set up the php.ini file and configure the web server to use PHP. For IIS and also PWS on NT Workstation, a list of all the nodes on the server with script map settings is displayed, and you can choose those nodes to which you wish to add the PHP script mappings.

Once the installation has completed the installer will inform you if you need to restart your system, restart the server, or just start using PHP.

Aviso

Be aware, that this setup of PHP is not secure. If you would like to have a secure PHP setup, you'd better go on the manual way, and set every option carefully. This automatically working setup gives you an instantly working PHP installation, but it is not meant to be used on online servers.

Manual Installation Steps

This install guide will help you manually install and configure PHP on your Windows webserver. The original version of this guide was compiled by Bob Silva, and can be found at http://www.umesd.k12.or.us/php/win32install.html. You need to download the zip binary distribution from the downloads page at http://www.php.net/downloads.php.

PHP 4 for Windows comes in three flavours - a CGI executable (php.exe), a CLI executable (sapi/php.exe) and some other SAPI modules:

php4apache.dll - Apache 1.3.x module
php4apache2.dll - Apache 2.0.x module
php4isapi.dll - ISAPI Module for ISAPI compliant webservers like IIS 4.0/PWS 4.0 or newer.
php4nsapi.dll - Netscape/iPlanet module

The latter form is new to PHP 4, and provides significantly improved performance and some new functionality. The CLI version is designed to use PHP for command line scripting. More information about CLI is available in the chapter about using PHP from the command line

Aviso

The SAPI modules have been significantly improved in the 4.1 release, however, you may find that you encounter possible server errors or other server modules such as ASP failing, in older systems.

DCOM and MDAC requirements: If you choose one of the SAPI modules and use Windows 95, be sure to download and install the DCOM update from the Microsoft DCOM pages. If you use Microsoft Windows 9x/NT4 download the latest version of the Microsoft Data Access Components (MDAC) for your platform. MDAC is available at http://www.microsoft.com/data/.

The following steps should be performed on all installations before any server specific instructions.

  • Extract the distribution file to a directory of your choice, c:\ is a good start. The zip package expands to a foldername like php-4.3.1-Win32 which is assumed to be renamed to php. For the sake of convenience and to be version independent the following steps assume your extracted version of PHP lives in c:\php. You might choose any other location but you probably do not want to use a path in which spaces are included (for example: c:\program files\php is not a good idea). Some web servers will crash if you do. The structure of your directory you extracted the zip file will look like:

c:\php
   |
   +--cli
   |  |
   |  |-php.exe           -- CLI executable - ONLY for commandline scripting
   |
   |
   +--dlls                -- support dlls for extensions --> Windows system directory
   |  |
   |  |-expat.dll
   |  |
   |  |-fdftk.dll
   |  |
   |  |-...
   |
   +--extensions          -- extension dlls for PHP
   |  |
   |  |-php_bz2.dll
   |  |
   |  |-php_cpdf.dll
   |  |
   |  |-..
   |
   +--mibs                -- support files for SNMP
   |
   |
   +--openssl             -- support files for Openssl
   |
   |
   +--pdf-related         -- support files for PDF
   |
   |
   +--sapi                -- SAPI dlls
   |  |
   |  |-php4apache.dll
   |  |
   |  |-php4apache2.dll
   |  |
   |  |-php4isapi.dll
   |  |
   |  |-..
   |
   |-install.txt
   |
   |-..
   |
   |-php.exe              -- CGI executable
   |
   |-..
   |
   |-php.ini-dist
   |
   |-php.ini-recommended
   |
   |-php4ts.dll           -- main dll --> Windows system directory
   |
   |-...

The CGI binary - C:/php/php.exe -, the CLI binary - c:\php\cli\php.exe -, and the SAPI modules - c:\php\sapi\*.dll - rely on the main dll c:\php\php4ts.dll. You have to make sure, that this dll can be found by your PHP installation. The search order for this dll is as follows:

The same directory from where php.exe is called. In case you use a SAPI module the same directory from where your webserver loads the dll (e.g. php4apache.dll).
Any directory in your Windows PATH environment variable.

  • The best bet is to make php4ts.dll available, regardless which interface (CGI or SAPI module) you plan to use. To do so, you have to copy this dll to a directory on your Windows path. The best place is your Windows system directory:

    c:\windows\system for Windows 9x/ME
    c:\winnt\system32 for Windows NT/2000 or c:\winnt40\system32 for NT/2000 server
    c:\windows\system32 for Windows XP

    If you plan to use a SAPI module from c:\php\sapi and do not like to copy dlls to your Windows system directory, you have the alternative choice to simply copy php4ts.dll to the sapi folder of your extracted zip package, c:\php\sapi.

  • The next step is to set up a valid configuration file for PHP, php.ini. There are two ini files distributed in the zip file, php.ini-dist and php.ini-recommended. We advise you to use php.ini-recommended, because we optimized the default settings in this file for performance, and security. Read this well documented file carefully and in addition study the ini settings and set every element manually yourself. If you would like to achieve the best security, then this is the way for you, although PHP works fine with these default ini files. Copy your chosen ini-file to a directory where PHP is able to find and rename it to php.ini. By default PHP searches php.ini in your Windows directory:

    On Windows 9x/ME/XP copy your chosen ini file to your %WINDIR%, which is typically c:\windows.
    On Windows NT/2000 copy your chosen ini file to your %WINDIR% or %SYSTEMROOT%, which is typically c:\winnt or c:\winnt40 for NT/2000 servers.

  • If you're using NTFS on Windows NT, 2000 or XP, make sure that the user running the webserver has read permissions to your php.ini (e.g. make it readable by Everyone).

The following steps are optional.

  • Edit your new php.ini file. If you plan to use OmniHTTPd, do not follow the next step. Set the doc_root to point to your webservers document_root. For example:

    doc_root = c:\inetpub        // for IIS/PWS

doc_root = c:\apache\htdocs // for Apache

  • Choose which extensions you would like to load when PHP starts. See the section about Windows extensions, about how to set up one, and what is already built in. Note that on a new installation it is advisable to first get PHP working and tested without any extensions before enabling them in php.ini.

  • On PWS and IIS, you can set the browscap configuration setting to point to: c:\windows\system\inetsrv\browscap.ini on Windows 9x/Me, c:\winnt\system32\inetsrv\browscap.ini on NT/2000, and c:\windows\system32\inetsrv\browscap.ini on XP.

Following this instructions you are done with the basic steps to setup PHP on Windows. The next step is to choose a webserver and enable it to run PHP. Installation instructions for the following webservers are available:

  • .. the Windows server family, Personal Web server (PWS) 3 and 4 or newer; Internet Information Server (IIS) 3 and 4 or newer.

  • .. the Apache servers Apache 1.3.x, and Apache 2.x.

  • .. the Netscape/iPlanet servers.

  • .. the OmniHTTPd server.

  • .. the Oreilly Website Pro server.

  • .. the Sambar server.

  • .. the Xitami server.

Building from source

Before getting started, it is worthwhile answering the question: "Why is building on Windows so hard?" Two reasons come to mind:

  1. Windows does not (yet) enjoy a large community of developers who are willing to freely share their source. As a direct result, the necessary investment in infrastructure required to support such development hasn't been made. By and large, what is available has been made possible by the porting of necessary utilities from Unix. Don't be surprised if some of this heritage shows through from time to time.

  2. Pretty much all of the instructions that follow are of the "set and forget" variety. So sit back and try follow the instructions below as faithfully as you can.

Requerimientos

To compile and build PHP you need a Microsoft Development Environment. Microsoft Visual C++ 6.0 is recommended. To extract the downloaded files you need a extraction utility (e.g.: Winzip). If you don't already have an unzip utility, you can get a free version from InfoZip.

Before you get started, you have to download...

  • ..the win32 buildtools from the PHP site at http://www.php.net/extra/win32build.zip.

  • ..the source code for the DNS name resolver used by PHP from http://www.php.net/extra/bindlib_w32.zip. This is a replacement for the resolv.lib library included in win32build.zip.

  • If you plan to compile PHP as a Apache module you will also need the Apache sources.

Finally, you are going to need the source to PHP 4 itself. You can get the latest development version using anonymous CVS, a snapshot or the most recent released source tarball.

Putting it all together

After downloading the required packages you have to extract them in a proper place.

  • Create a working directory where all files end up after extracting, e.g: c:\work.

  • Create the directory win32build under your working directory (c:\work) and unzip win32build.zip into it.

  • Create the directory bindlib_w32 under your working directory (c:\work) and unzip bindlib_w32.zip into it.

  • Extract the downloaded PHP source code into your working directory (c:\work).

Following this steps your directory structure looks like this:

+--c:\work
|  |
|  +--bindlib_w32
|  |  |
|  |  +--arpa
|  |  |
|  |  +--conf
|  |  |
|  |  +--...
|  |
|  +--php-4.x.x
|  |  |
|  |  +--build
|  |  |
|  |  +--...
|  |  |
|  |  +--win32
|  |  |
|  |  +--...
|  |
|  +--win32build
|  |  |
|  |  +--bin
|  |  |
|  |  +--include
|  |  |
|  |  +--lib

Create the directories c:\usr\local\lib. Copy bison.simple from c:\work\win32build\bin to c:\usr\local\lib.

Nota: Cygwin users may omit the last step. A properly installed Cygwin environment provides the mandatory files bison.simple and bison.exe.

Configure MVC ++

The next step is to configure MVC ++ to prepare for compiling. Launch Microsoft Visual C++, and from the menu select Tools => Options. In the dialog, select the directories tab. Sequentially change the dropdown to Executables, Includes, and Library files. Your entries should look like this:

  • Executable files: c:\work\win32build\bin, Cygwin users: cygwin\bin

  • Include files: c:\work\win32build\include

  • Library files: c:\work\win32build\lib

Build resolv.lib

You must build the resolv.lib library. Decide whether you want to have debug symbols available (bindlib - Win32 Debug) or not (bindlib - Win32 Release). Build the appropriate configuration:

  • For GUI users, launch VC++, and then select File => Open Workspace, navigate to c:\work\bindlib_w32 and select bindlib.dsw. Then select Build=>Set Active Configuration and select the desired configuration. Finally select Build=>Rebuild All.

  • For command line users, make sure that you either have the C++ environment variables registered, or have run vcvars.bat, and then execute one of the following commands:

    • msdev bindlib.dsp /MAKE "bindlib - Win32 Debug"

    • msdev bindlib.dsp /MAKE "bindlib - Win32 Release"

At this point, you should have a usable resolv.lib in either your c:\work\bindlib_w32\Debug or Release subdirectories. Copy this file into your c:\work\win32build\lib directory over the file by the same name found in there.

Compiling

The best way to get started is to build the CGI version.

  • For GUI users, launch VC++, and then select File => Open Workspace and select c:\work\php-4.x.x\win32\php4ts.dsw . Then select Build=>Set Active Configuration and select the desired configuration, either php4ts - Win32 Debug_TS or php4ts - Win32 Release_TS. Finally select Build=>Rebuild All.

  • For command line users, make sure that you either have the C++ environment variables registered, or have run vcvars.bat, and then execute one of the following commands from the c:\work\php-4.x.x\win32 directory:

    • msdev php4ts.dsp /MAKE "php4ts - Win32 Debug_TS"

    • msdev php4ts.dsp /MAKE "php4ts - Win32 Release_TS"

    • At this point, you should have a usable php.exe in either your c:\work\php-4.x.x.\Debug_TS or Release_TS subdirectories.

It is possible to do minor customization to the build process by editing the main/config.win32.h file. For example you can change the default location of php.ini, the built-in extensions, and the default location for your extensions.

Next you may want to build the CLI version which is designed to use PHP from the command line. The steps are the same as for building the CGI version, except you have to select the php4ts_cli - Win32 Debug_TS or php4ts_cli - Win32 Release_TS project file. After a successful compiling run you will find the php.exe in either the directory Release_TS\cli\ or Debug_TS\cli\.

Nota: If you want to use PEAR and the comfortable command line installer, the CLI-SAPI is mandatory. For more information about PEAR and the installer read the documentation at the PEAR website.

In order to build the SAPI module (php4isapi.dll) for integrating PHP with Microsoft IIS, set your active configuration to php4isapi-whatever-config and build the desired dll.

Installation of Windows extensions

After installing PHP and a webserver on Windows, you will probably want to install some extensions for added functionality. You can choose which extensions you would like to load when PHP starts by modifying your php.ini. You can also load a module dynamically in your script using dl().

The DLLs for PHP extensions are prefixed with 'php_' in PHP 4 (and 'php3_' in PHP 3). This prevents confusion between PHP extensions and their supporting libraries.

Nota: In PHP 4.3.1 BCMath, Calendar, COM, Ctype, FTP, MySQL, ODBC, Overload, PCRE, Session, Tokenizer, WDDX, XML and Zlib support is built in. You don't need to load any additional extensions in order to use these functions. See your distributions README.txt or install.txt or this table for a list of built in modules.

The default location PHP searches for extensions is c:\php4\extensions. To change this setting to reflect your setup of PHP edit your php.ini file:

  • You will need to change the extension_dir setting to point to the directory where your extensions lives, or where you have placed your php_*.dll files. Please do not forget the last backslash. For example:

    extension_dir = c:/php/extensions/

  • Enable the extension(s) in php.ini you want to use by uncommenting the extension=php_*.dll lines in php.ini. This is done by deleting the leading ; form the extension you want to load.

    Ejemplo 3-4. Enable Bzip2 extension for PHP-Windows

    // change the following line from ...
;extension=php_bz2.dll

// ... to
extension=php_bz2.dll

  • Some of the extensions need extra DLLs to work. Couple of them can be found in the distribution package, in the c:\php\dlls\ folder but some, for example Oracle (php_oci8.dll) require DLLs which are not bundled with the distribution package. Copy the bundled DLLs from c:\php\dlls folder to your Windows PATH, safe places are:

    c:\windows\system for Windows 9x/Me
    c:\winnt\system32 for Windows NT/2000
    c:\windows\system32 for Windows XP

    If you have them already installed on your system, overwrite them only if something doesn't work correctly (Before overwriting them, it is a good idea to make a backup of them, or move them to another folder - just in case something goes wrong).

Nota: If you are running a server module version of PHP remember to restart your webserver to reflect your changes to php.ini.

The following table describes some of the extensions available and required additional dlls.

Tabla 3-1. PHP Extensions

Extension | Description | Notes
php_bz2.dll | bzip2 compression functions | None
php_calendar.dll | Calendar conversion functions | Built in since PHP 4.0.3
php_cpdf.dll | ClibPDF functions | None
php_crack.dll | Crack functions | None
php3_crypt.dll | Crypt functions | unknown
php_ctype.dll | ctype family functions | Built in since PHP 4.3.0
php_curl.dll | CURL, Client URL library functions | Requires: libeay32.dll, ssleay32.dll (bundled)
php_cybercash.dll | Cybercash payment functions | PHP <= 4.2.0
php_db.dll | DBM functions | Deprecated. Use DBA instead (php_dba.dll)
php_dba.dll | DBA: DataBase (dbm-style) Abstraction layer functions | None
php_dbase.dll | dBase functions | None
php3_dbm.dll | Berkeley DB2 library | unknown
php_dbx.dll | dbx functions |
php_domxml.dll | DOM XML functions | PHP <= 4.2.0 requires: libxml2.dll (bundled) PHP >= 4.3.0 requires: iconv.dll (bundled)
php_dotnet.dll | .NET functions | PHP <= 4.1.1
php_exif.dll | Read EXIF headers from JPEG | None
php_fbsql.dll | FrontBase functions | PHP <= 4.2.0
php_fdf.dll | FDF: Forms Data Format functions. | Requires: fdftk.dll (bundled)
php_filepro.dll | filePro functions | Read-only access
php_ftp.dll | FTP functions | Built-in since PHP 4.0.3
php_gd.dll | GD library image functions | Removed in PHP 4.3.2. Also note that truecolor functions are not available in GD1, instead, use php_gd2.dll.
php_gd2.dll | GD library image functions | GD2
php_gettext.dll | Gettext functions | PHP <= 4.2.0 requires gnu_gettext.dll (bundled), PHP >= 4.2.3 requires libintl-1.dll, iconv.dll (bundled).
php_hyperwave.dll | HyperWave functions | None
php_iconv.dll | ICONV characterset conversion | Requires: iconv-1.3.dll (bundled), PHP >=4.2.1 iconv.dll
php_ifx.dll | Informix functions | Requires: Informix libraries
php_iisfunc.dll | IIS management functions | None
php_imap.dll | IMAP POP3 and NNTP functions | PHP 3: php3_imap4r1.dll
php_ingres.dll | Ingres II functions | Requires: Ingres II libraries
php_interbase.dll | InterBase functions | Requires: gds32.dll (bundled)
php_java.dll | Java functions | PHP <= 4.0.6 requires: jvm.dll (bundled)
php_ldap.dll | LDAP functions | PHP <= 4.2.0 requires libsasl.dll (bundled), PHP >= 4.3.0 requires libeay32.dll, ssleay32.dll (bundled)
php_mbstring.dll | Multi-Byte String functions | None
php_mcrypt.dll | Mcrypt Encryption functions | Requires: libmcrypt.dll
php_mhash.dll | Mhash functions | PHP >= 4.3.0 requires: libmhash.dll (bundled)
php_mime_magic.dll | Mimetype functions | Requires: magic.mime (bundled)
php_ming.dll | Ming functions for Flash | None
php_msql.dll | mSQL functions | Requires: msql.dll (bundled)
php3_msql1.dll | mSQL 1 client | unknown
php3_msql2.dll | mSQL 2 client | unknown
php_mssql.dll | MSSQL functions | Requires: ntwdblib.dll (bundled)
php3_mysql.dll | MySQL functions | Built-in in PHP 4
php3_nsmail.dll | Netscape mail functions | unknown
php3_oci73.dll | Oracle functions | unknown
php_oci8.dll | Oracle 8 functions | Requires: Oracle 8.1+ client libraries
php_openssl.dll | OpenSSL functions | Requires: libeay32.dll (bundled)
php_oracle.dll | Oracle functions | Requires: Oracle 7 client libraries
php_overload.dll | Object overloading functions | Built in since PHP 4.3.0
php_pdf.dll | PDF functions | None
php_pgsql.dll | PostgreSQL functions | None
php_printer.dll | Printer functions | None
php_shmop.dll | Shared Memory functions | None
php_snmp.dll | SNMP get and walk functions | NT only!
php_sockets.dll | Socket functions | None
php_sybase_ct.dll | Sybase functions | Requires: Sybase client libraries
php_tokenizer.dll | Tokenizer functions | Built in since PHP 4.3.0
php_w32api.dll | W32api functions | None
php_xmlrpc.dll | XML-RPC functions | PHP >= 4.2.1 requires: iconv.dll (bundled)
php_xslt.dll | XSLT functions | PHP <= 4.2.0 requires sablot.dll, expat.dll (bundled). PHP >= 4.2.1 requires sablot.dll, expat.dll, iconv.dll (bundled).
php_yaz.dll | YAZ functions | Requires: yaz.dll (bundled)
php_zib.dll | Zip File functions | Read only access
php_zlib.dll | ZLib compression functions | Built in since PHP 4.3.0

Anterior | Inicio | Siguiente
Instalación en sistemas Unix | Subir | Servidores-CGI/Linea de comandos


Servidores-CGI/Linea de comandos

Por defecto PHP se compila como un programa CGI. Esto crea un intérprete de comandos que puede ser usado para procesar CGI scripts ó scripts en PHP ejecutados directamente en linea de comandos. Si utilizais un servidor web que soporte PHP como módulo, deberiais de usarlo de este modo para sacarle el mejor partido. Sin embargo, la versión CGI permite correr páginas PHP bajo usuarios con identificaciones diferentes. Asegurarse de leer el Capítulo sobre seguridad si vais a utilizar PHP como CGI.

A partir de PHP 4.3.0, se han añadido caracteristicas importantes a PHP. Una nueva SAPI llamada CLI existe también y tiene el mismo nombre que el binario CGI. Lo que se instala en {PREFIX}/bin/php depende de vuestra configuración y se encuentra descrito detalladamente en la sección del manual Usando PHP desde la linea de comandos, Para más información, lea esa sección dl manual.

Comprobando

Si compilais PHP como binario CGI, podeis comprobar que todo funcione con el comando make test. Es siempre una buena idea el comprobar que todo funciona despues de una compilación. De esta manera podeis encontrar problemas con PHP en vuestra plataforma en una fase inicial.

Benchmarking

Si habeis compilado PHP 3 como binario CGI, podeis poner a prueba vuestra instalación utilizando el comando make bench. Tener en cuenta que si safe mode está activado por defecto, no se podra terminar la prueba si esta tarda en ejecutarse más de los 30 segundos permitidos. Esto ocurre porque la función set_time_limit() no puede ser usada en safe mode. Usar la opción de configuración max_execution_time para controlar el tiempo de ejecución de vuestros scripts. make bench ignora el fichero de configuración.

Nota: make bench se encuentra disponible solamente en PHP 3.

Usando variables

Algunas variables de entorno provistas por el servidor no se encuentran definidas en la especificación CGI/1.1 actual. Solamente las siguientes variables están definidas; todas las demás son se pueden definir como 'extensiones': AUTH_TYPE, CONTENT_LENGTH, CONTENT_TYPE, GATEWAY_INTERFACE, PATH_INFO, PATH_TRANSLATED, QUERY_STRING, REMOTE_ADDR, REMOTE_HOST, REMOTE_IDENT, REMOTE_USER, REQUEST_METHOD, SCRIPT_NAME, SERVER_NAME, SERVER_PORT, SERVER_PROTOCOL and SERVER_SOFTWARE

Anterior | Inicio | Siguiente
Installation on Windows systems | Subir | Servidores-Apache


Servidores-Apache

Esta sección contiene información específica sobre la instalación de PHP con Apache, tanto para la versión Unix como Windows. Las instrucciones de instalación con apache2 se encuentran en su propia página.

Instalando PHP con Apache en Unix

Se pueden seleccionar argumentos a usar con el comando configure de la linea 10 de más abajo, de la lista completa de opciones de configuración. Los números de versiones han sido omitidos aqui para asegurarse que las instrucciones no son incorrectas, debeis cambiar 'xxx' con los valores correctos de vuestros ficheros.

Ejemplo 3-5. Instrucciones de instalación para PHP (Versión módulo compartido de Apache)

1.  gunzip apache_xxx.tar.gz
2.  tar -xvf apache_xxx.tar
3.  gunzip php-xxx.tar.gz
4.  tar -xvf php-xxx.tar
5.  cd apache_xxx
6.  ./configure --prefix=/www --enable-module=so
7.  make
8.  make install
9.  cd ../php-xxx

10. Ahora, configurar vuestro PHP. En este paso podeis configurar PHP
    con diferentes opciones, como por ejemplo que extensiones estaran
    dispobibles. Podeis ejecutar ./configure --help para obtener una
    lista con las opciones que podeis usar. En nuestro ejemplo,
    configuramos con Apache y soporte MySQL. Vuestro path a apxs puede
    diferir del nuestro, dependiendo donde lo tengais instalado.

      ./configure --with-mysql --with-apxs=/www/bin/apxs

11. make
12. make install

    Si decides cambiar las opciones de configuraci&oacute;n despues de la
    instalaci&oacute;n, solamente se necesita repetir los tres ultimos
    pasos. Solamente se necesita arrancar de nuevo Apache para que
    cargue el nuevo modulo. No es necesario recompilar Apache.

    Tener en cuenta que si no se especifica lo contrario, 'make install'
    tambien instala PEAR, diferentes herramientas PHP tal como phpsize,
    PHP CLI y mas.

13. Configurar vuestro fichero php.ini

     cp php.ini-dist /usr/local/lib/php.ini

    Se puede editar el fichero php.ini para configurar como PHP
    funciona. Si quereis tener este fichero en otra localizacion, podeis
    usar --with-config-file-path=/path en el paso 10.

    Si usais el fichero php.ini-recommended, asegurarse de leer la
    lista de cambios en este fichero, ya que afectan al modo de
    funcionamiento de PHP.

14. Editar httpd.conf para cargar el modulo PHP. El path a la derecha
    de 'LoadModule' debe de coincidir con el path donde el modulo PHP
    se encuentre en vuestro sistema. El comando que habeis ajecutado
    anteriormente 'make install' puede que haya anadido esto, pero
    asegurarse de comprobar que el cambio ha sido hecho.

    Para PHP 4:

      LoadModule php4_module libexec/libphp4.so

    Para PHP 5:

      LoadModule php5_module libexec/libphp5.so

15. Y en la seccion 'AddModule' en httpd.conf, anadir:

    Para PHP 4:

      AddModule mod_php4.c

    Para PHP 5:

      AddModule mod_php5.c

16. Tenemos que decirle a Apache que extension vamos a utilizar en
    nuestros scripts PHP. Podemos utilizar la extension
    .php para PHP aunque podemos anadir la extension que queramos
    separadas con un espacio. En nuestro ejemplo utilizaremos por
    ejemplo .php y .phtml

      AddType application/x-httpd-php .php .phtml

    Tambien se sulele utilizar la extension .phps para mostrar el
    codigo PHP coloreado. Para ello tenemos que anadir la siguiente linea:

      AddType application/x-httpd-php-source .phps

17. Utilizar el procedimiento habitual que utiliceis para arrancar
    Apache. (Debeis de parar y arrancar Apache, no vale recargar
    (reload) usando una se&ntilde;al HUP &oacute; USR1).

Dependiendo de vuestra instalación de Apache y variante Unix, existen numerosas maneras de parar y arrancar el servidor Apache. Más abajo teneis las maneras más típicas de parar y arrancar el servidor en diferentes instalaciones de apache/unix. /path/to/ se tiene que actualizar

Ejemplo 3-6. Ejemplos de comandos para rearrancar Apache

1. En ciertas variantes de Linux y SysV:
/etc/rc.d/init.d/httpd restart

2. Usando el script apachectl :
/path/to/apachectl stop
/path/to/apachectl start

3. httpdctl y httpsdctl (Usando OpenSSL), similar a apachectl:
/path/to/httpsdctl stop
/path/to/httpsdctl start

4. Usando mod_ssl, u otro servidor SSL, quizas querais parar y
     arrancar manualmente:
/path/to/apachectl stop
/path/to/apachectl startssl

La localización de los binarios apachectl y http(s)dctl suele variar. Si tu sistema tiene los comandos locate ó whereis ó which, podeis utilizarlos para localizar los programas de control de vuestro servidor.

Diferentes ejemplos de compilación de PHP para Apache:

./configure --with-apxs --with-pgsql

Esto creará una biblioteca compartida libphp4.so que será cargada por Apache usando una linea LoadModule en el fichero de configuración de Apache httpd.conf. Soporte para PostgreSQL es incorporado en la biblioteca libphp4.so.

./configure --with-apxs --with-pgsql=shared

Esto creará una biblioteca compartida libphp4.so que será cargada por Apache, pero creará tambien una biblioteca compartida pgsql.so que se puede cargar por PHP usando ó la directiva de la extensión en el fichero php.ini ó cargandola explicitamente en un script usando la función dl().

./configure --with-apache=/path/to/apache_source --with-pgsql

Esto creará una biblioteca libmodphp4.a, un fichero mod_php4.c y algunos otros pequeños ficheros y copiara todo al directorio src/modules/php4 en el directorio fuente de Apache. Apache hay que compilarlo entonces con --activate-module=src/modules/php4/libphp4.a y el sistema de generación de apache se encargará de crear el fichero libphp4.a y enlazarlo estáticamente al binario httpd. El soporte para PostgreSQL es incluido directamente en el binario httpd, asi que el resultado final en un solo fichero binario httpd que incluye todo el Apache y PHP.

./configure --with-apache=/path/to/apache_source --with-pgsql=shared

Igual que el ejemplo anterior, excepto que el soporte para PostgreSQL no se incluye directamente en httpd, se crea una biblioteca compartida pgsql.so que hay que cargar en PHP, bien desde el fichero php.ini ó directamente usando la función dl().

Antes de escoger el método a utilizar para instalar PHP, debeis considerar los pros y los contras de cada método. Compilarlo como una biblioteca compartida tiene la ventaja de poder compilar Apache por separado y de no tener que recompilar todo si añadimos ó cambiamos PHP. Compilando PHP estaticamente en Apache significa que PHP cargará más rapidamente y se ejecutará más rapido. Para más información, vea la página de Apache sobre soporte DSO.

Nota: El fichero de configuración por defecto de Apache, httpd.conf, viene con una sección como esta:

User nobody
Group "#-1"

A menos que esto se cambie a "Group nogroup" ("Group daemon" tambien es muy común), PHP no podra abrir ficheros.

Nota: Asegurarse que la versión especificada de apxs cuando se usa --with-apxs=/path/to/apxs, es la version instaladada en tu sistema y no la versión que se encuentra en directorio con las fuentes de Apache.

Instalando PHP con apache 1.3.x en Windows

Existen dos maneras de utilizar PHP con Apache 1.3.x en Windows. Una es usar el binario CGI (php.exe), la otra es usar el módulo Apache DLL. En ambos casos, hay que parar el servidor Apache y editar el fichero de configuración httpd.conf para configurar Apache con PHP.

Hay que decir que el módulo SAPI es más estable ahora bajo Windows, recomendamos utilizarlo en vez del binario CGI, ya que es más transparente y seguro.

Aunque existen diferentes maneras de configurar PHP con Apache, estas son lo suficientemente simples como para que un iniciado pueda usarlas. Consultar la documentación de Apache para más información sobre directivas de configuración.

Si descomprimimos PHP en c:\php\, tal y como se describe en la sección Pasos para una instalación manual, necesitamos introducir estas lineas en el fichero de configuración de Apache para configurar el binario CGI:

  • ScriptAlias /php/ "c:/php/"

  • AddType application/x-httpd-php .php .phtml

  • Action application/x-httpd-php "/php/php.exe"

La segunda linea de esta lista, se encuentra en la versión actual de httpd.conf, pero esta comentada. Recordar que teneis que cambiar c:/php/ con el "path" a vuestro directorio PHP.

Aviso

El uso de la opción CGI abre la posibilidad de posibles ataques a tu servidor. Por favor, leer la sección sobre Seguridad con la versión CGI para aprender como defenderse de estos ataques.

Si vais a utilizar PHP como módulo de Apache, debeis copiar php4ts.dll al directorio windows/system (para Windows 9x/Me), winnt/system32 (para Windows NT/2000) ó windows/system32 (para Windows XP), sobreescribiendo cualquier fichero antiguo. Una vez copiado, debeis modificar el fichero httpd.conf:

  • Editar httpd.conf en vuestro editor favorito, localizar la directiva LoadModule y añadir la siguiente linea al final de la lista para PHP 4: LoadModule php4_module c:/php/sapi/php4apache.dll, o para PHP 5 LoadModule php5_module "c:/php/sapi/php5apache.dll"

  • Puede ocurrir que despues de usar el instalador de Apache para Windows, tengais que definir la directiva AddModule para mod_php4.c. Esto es especialmente importante si la directiva ClearModuleList está definida. Añadir AddModule mod_php4.c al final de la lista de directivas AddModule. Para PHP 5, usar AddModule mod_php5.c

  • Buscar una frase similar a # AddType allows you to tweak mime.types. Vereis algunas definiciones del tipo AddType, añadir al final de la lista: AddType application/x-httpd-php .php. Podeis elegir la extensión que querais para los ficheros PHP. .php es nuestra sugerencia. Se puede incluso tener .html y .php3 se puede añadir por asuntos de compatibilidad hacia atras.

Despues de cambiar el fichero de configuración, recordar que teneis que arrancar de nuevo Apache, por ejemplo, NET STOP APACHE seguido de NET START APACHE, si ejecutais Apache como un Servicio Windows, ó como lo hagais normalmente.

Existen dos maneras para usar la característica de destacar el código fuente, sin embargo, dependerá de nuestra instalación para que funcionen. Si Apache esta configurado para usar PHP como módulo SAPI, se puede usar esta carcterística añadiendo la linea AddType application/x-httpd-php-source .phps al fichero httpd.conf en el mismo lugar en donde añadimos AddType application/x-httpd-php .php.

Si Apache esta configurado para usar PHP como binario CGI, debereis utilizar la función show_source(). Para ello, crear un script PHP y añadir este código <?php show_source ("original_php_script.php"); ?>. Sustituir original_php_script.php con el nombre del fichero del que quereis presentar el código fuente.

Nota: En Apache para Windows, todos los "backslashes" en un "path", p.ej. "c:\directory\file.ext", deben de convertirse a "forward slashes" , "c:/directory/file.ext".

Anterior | Inicio | Siguiente
Servidores-CGI/Linea de comandos | Subir | Servidores-Apache 2.0


Servidores-Apache 2.0

Esta sección contiene información específica sobre la instalación de PHP con Apache 2.0, tanto para la versión Unix como Windows.

Aviso

No utilizar Apache 2.0 y PHP en sistemas que esten en producción, tanto en Unix como en Windows.

Animamos a que consulteis la Documentación de Apache para que tengais un conocimento básico sobre el servidor Apache 2.0.

Notas de compatibilidad entre PHP y Apache 2.0

Las siguientes versiones de PHP funcionan con las últimas versiones de Apache 2.0:

  • PHP 4.3.0 ó posterior, se pueden encontrar en: http://www.php.net/downloads.php.
  • la última versión estable de desarrollo. El código fuente se puede conseguir aqui http://snaps.php.net/php4-latest.tar.gz ó los binarios para Windows aquí http://snaps.php.net/win32/php4-win32-latest.zip.
  • una versión de prelanzamiento, se puede bajar de http://qa.php.net/.
  • siempre está disponible la opción de obtener PHP via CVS anónimo.
Estas versiones de PHP son compatibles con Apache 2.0.40 y posteriores.

Nota: El soporte para SAPI en Apache 2.0 empezó con PHP 4.2.0. PHP 4.2.3 funciona con Apache 2.0.39, no usar otra versión de apache con PHP 4.2.3. De todas maneras, la instalación recomendada es PHP 4.3.0 ó posterios con la versión más reciente de Apache2.

Todas las versiones de PHP mencionadas, tambien trabajan con Apache 1.3.x.

PHP y Apache 2 en Linux

Bajarse la versión más reciente de Apache 2.0 y una versión de PHP de uno de los sitios antes mencionados. Esta guia rápida cubre solamente lo básico para poder empezar a usar Apache 2.0 y PHP. Para más información, consultar la documentación de Apache. Los números de versiones han sido omitidos aqui para asegurarse que las instrucciones no son incorrectas, debeis cambiar 'NN' con los valores correctos de vuestros ficheros.

Ejemplo 3-7. Instrucciones de instalación (Apache 2 versión como módulo compartido)

1.  gzip -d httpd-2_0_NN.tar.gz
2.  tar xvf httpd-2_0_NN.tar
3.  gunzip php-NN.tar.gz
4.  tar -xvf php-NN.tar
5.  cd httpd-2_0_NN
6.  ./configure --enable-so
7.  make
8.  make install

    Ahora teneis Apache 2.0.NN disponible en /usr/local/apache2,
    configurado con soporte para m&oacute;dulos y el estandar "MPM prefork".
    Para comprobar que la instalaci&oacute;n funciona, podeis usar el
    procedimiento usado normalmente para arrancar el servidor Apache,
    p.ej.: /usr/local/apache2/bin/apachectl start , para configurar
    PHP parar el servidor: /usr/local/apache2/bin/apachectl stop.

9.  cd ../php4-NN
10. ./configure --with-apxs2=/usr/local/apache2/bin/apxs
11. make
12. make install
13. cp php.ini-dist /usr/local/lib/php.ini

    Se puede editar el fichero php.ini para configurar como PHP
    funciona. Si quereis tener este fichero en otra
    localizaci&oacute;n, podeis usar --with-config-file-path=/path en
    el paso 10.

14. Editar el fichero  httpd.conf y comprobar que estas
    lineas existen y no est&aacute;n comentadas:

   LoadModule php4_module        libexec/libphp4.so
   AddType application/x-httpd-php .php

    Podeis elegir la extension que querais aqui, .php es simplemente
    una sugerencia.

    El "path" a la derecha de LoadModule debe de coincidir con el
    "path" del m&oacute;dulo PHP en vuestro sistema. Si habeis seguido
    los pasos desde el punto 1. no necesitais alterar nada.

15. Utilizar el procedimiento habitual que utiliceis para arrancar
    Apache. P.ej.: /usr/local/apache2/bin/apachectl start

Si habeis seguido los pasos de más arriba, deberiais tener un instalación funcionando de Apache 2.0 con soporte para PHP como módulo SAPI. Por supuesto que existen muchas más opciones de configuración disponibles tanto para Apache como PHP. Para más información use ./configure --help en el directorio correspondiente con el código fuente. En el caso que querais crear una versión "multihilos" (multithreaded) de apache 2.0, debeis sobreescribir el módulo estandar MPM prefork con ó worker ó perchild. Para hacer esto añadir a la linea con "configure" en el paso 6 de más arriba, ó bien --with-mpm=worker ó --with-mpm=perchild. Tener cuidado con las consecuencias y entender que estais haciendo. Para más información, leer la documentación de Apache sobre Módulos MPM.

Nota: Para crear una version multihilos de Apache, vuestro sistema debe de tener soporte para hilos (threads). Esto supone que PHP se debe compilar con "Zend Thread Safety (ZTS)", el cual está en fase de experimentación. Por esto mismo, no todas las extensiones pueden estar disponibles. La configuración recomendada es compilar Apache con el módulo estandar MPM prefork.

PHP y Apache 2.0 en Windows

Se recomienda leer las notas específicas sobre Windows y apache 2.0

Aviso

Apache 2.0 está designado para ejecutarse con Windows NT 4.0, Windows 2000 ó Windows XP. Por el momento, el soporte para Windows9x es incompleto y Apache 2.0 no funcionará en estas plataformas.

Bajarse la versión más reciente de Apache 2.0 y una versión de PHP de uno de los sitios antes mencionados. Seguir las instrucciones del Manual de instalación y volver aqui para seguir con la integración de PHP y Apache.

Existen dos maneras de instalar PHP para que funcione con Apache 2.0 en Windows. Una, es usar el binario CGI y la otra, usar el módulo DLL de Apache. En ambos casos debeis de parar el servidor Apache y editar vuestro fichero httpd.conf para configurar Apache con PHP.

Debeis de insertar estas tres lineas en el fichero de configuración de Apache httpd.conf para utilizar el binario CGI :

Ejemplo 3-8. PHP y Apache 2.0, como binario CGI

ScriptAlias /php/ "c:/php/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php/php.exe"

Si quereis utilizar PHP como módulo de Apache 2.0, asegurarse de mover php4ts.dll a winnt/system32 (para Windows NT/2000) ó windows/system32 (para Windows XP), sobreescribiendo cualquier fichero anterior. Debeis de insertar estas dos lineas en el fichero de configuración de Apache httpd.conf para configurar PHP como módulo en Apache 2.0:

Ejemplo 3-9. PHP y Apache 2.0, como módulo

LoadModule php4_module "c:/php/sapi/php4apache2.dll"
AddType application/x-httpd-php .php

Nota: Recordar que en los ejemplos anteriores, teneis que sustituir c:/php/ con vuestro "path" al directorio donde hayais instalado PHP. Usar php4apache2.dll y no php4apche.dll con vuestra directiva LoadModule. La última de las mencionadas está diseñada para funcionar solo con Apache 1.3.x.

Aviso

No mezclar en vuestra instalación, ficheros dll de diferentes versiones de PHP si quereis que PHP funcione.

Anterior | Inicio | Siguiente
Servidores-Apache | Subir | Servidores-Caudium


Servidores-Caudium

PHP 4 puede ser compilado como un módulo "Pike" para el servidor web Caudium. Tener en cuenta que esto no está soportado en PHP 3. Para instalar PHP 4 con Caudium, seguir las instruciones de mas abajo.

Ejemplo 3-10. Instrucciones de instalación con Caudium

1. Asegurarse que Caudium est&aacute; instalado antes de intentar instalar
   PHP 4. Para que PHP 4 trabaje correctamente se necesita Pike
   versi&oacute;n 7.0.268 &oacute; posterior. En este ejemplo asumimos que Caudium
   est&aacute; instalado en /opt/caudium/server/.

2. Cambiar al directorio php-x.y.z (en donde x.y.z es el n&uacute;mero de
   versi&oacute;n)

3. ./configure --with-caudium=/opt/caudium/server
4. make
5. make install
6. Arrancar de nuevo Caudium, si estaba ejecutandose.
7. Conectarse al interfaz gr&aacute;fico de configuraci&oacute;n e ir al servidor
   virtual en donde quereis a&ntilde;adir soporte para PHP 4.

8. Pulsar "Add Module" y localizar y a&ntilde;adir "PHP 4 Script Support module".
9. Si la documentaci&oacute;n dice que "el interprete de PHP 4 no est&aacute;
   disponible", asegurarse de haber arrancado de nuevo el servidor. Si
   se hizo, comprobar si existe alg&uacute;n mensaje de error relacionado con
   <filename>PHP4.so</filename> en
   /opt/caudium/logs/debug/default.1. Asegurarse tambi&eacute;n que
   <filename>caudium/server/lib/[pike-version]/PHP4.so</filename> existe.
10. Si es necesario, configurar el soporte de m&oacute;dulos de PHP.

Se puede compilar el módulo Caudium con soporte para las diversas extensiones disponibles en PHP 4. Vea la lista completa de opciones de configuración para obtener información detallada.

Nota: Cuando se compila PHP 4 con soporte para MySQL, hay que asegurarse que el código normal del cliente MySQL es el usado. Si no, pueden existir conflictos si Pike ya tiene soporte para MySQL. Esto se arregla, especificando el directorio donde MySQL está instalado con la opción --with-mysql

Anterior | Inicio | Siguiente
Servidores-Apache 2.0 | Subir | Servidores-fhttpd


Servidores-fhttpd

Para compilar PHP como módulo de fhttpd, contestar "yes" a la pregunta "Build as an fhttpd module?" (la opción de configuración --with-fhttpd=DIR) y especificar el directorio con el código fuente de fhttpd. El directorio por defecto es /usr/local/src/fhttpd. Si estais usando fhttpd, compilar PHP como módulo dará mejores prestaciones, más control y la capacidad de ejecución remota.

Nota: El soporte para fhttpd no se encuentra disponible a partir de PHP 4.3.0.

Anterior | Inicio | Siguiente
Servidores-Caudium | Subir | Servidores-IIS/PWS


Servidores-IIS/PWS

Esta sección contiene información específica sobre la instalación de PHP con IIS (Microsoft Internet Information Server), versiones PWS/IIS 3, PWS 4 ó posterior y IIS 4 ó posterior

Importante para usuarios de la versión CGI: Leer la faq sobre cgi.force_redirect para más detalles. Esta directiva debe de tener el valor 0.

Windows y PWS/IIS 3

El método recomendado para configurar estos servidores es usar el archivo REG incluído con la distribución (pws-php4cgi.reg). Quizás desee editar este archivo y asegurarse que las extensiones y directorios de instalación se ajustan a su configuración. O puede seguir los pasos que siguen para hacerlo de forma manual.

Aviso

Estos pasos conllevan el trabajar directamente con el registro de windows. Un error aquí puede dejar su sistema en un estado inestable. Le recomendamos encarecidamente que haga una copia de seguridad del registro con antelación. El equipo de Desarrollo del PHP no se hará responsable si se daña su registro.

  • Ejecute Regedit.

  • Navegue hasta: HKEY_LOCAL_MACHINE /System /CurrentControlSet /Services /W3Svc /Parameters /ScriptMap.

  • En el menú de edición elija: New->String Value.

  • Escriba la extensión que desea usar para sus script PHP. P.ej.: .php

  • Haga una doble pulsación con el ratón en el nuevo valor de cadena y escriba la localización de php.exe en el campo del valor. P.ej.: c:\php\php.exe.

  • Repita estos pasos para cada extensión que desee asociar con los scripts PHP.

Los pasos siguientes no afectan a la instalación del servidor web y solamente sirven si quereis ejecutar vuestros scripts en PHP desde la linea de comandos (p.ej: c:\myscripts\test.php) ó haciendo una pulsación doble con el ratón desde una ventana del visualizador de directorios. Podeis saltaros estos pasos si quereis que los ficheros en PHP se abran en un editor cuando hagais una doble pulsación sobre ellos.

  • Navegue hasta: HKEY_CLASSES_ROOT

  • En el menú de edición elija: New->Key.

  • Déle a la clave el nombre de la extensión que preparó en la sección anterior. P.ej.: .php

  • Marque la nueva clave y en el panel del lado derecho haga una doble pulsación en "default value" y escriba phpfile.

  • Repita el último paso para cada extensión que haya preparado en la sección previa.

  • Ahora cree otra New->Key bajo HKEY_CLASSES_ROOT y denomínela phpfile.

  • Marque la nueva clave phpfile, haga una doble pulsación en el panel derecho sobre "default value" y escriba PHP Script.

  • Pulse el botón derecho sobre la clave phpfile, seleccione New->Key y llámela Shell.

  • Pulse el botón derecho sobre la clave Shell ,elija New->Key y llámela open.

  • Pulse el botón derecho sobre la clave open y elija New->Key y llámela command.

  • Marque la nueva clave command y en el panel derecho haga una doble pulsación sobre "default value" y escriba la localización de php.exe. P.ej.: c:\php\php.exe -q %1. (no olvide el %1).

  • Salga de Regedit.

  • Si está usando PWS en Windows, tendra que arrancar la maquina de nuevo para que se carge el registro.

Los usuarios de PWS e IIS3 tienen ahora un sistema completamente operativo. Los usuarios del IIS3 también pueden usar una curiosa herramienta de Steven Genusa para configurar sus mapeados de script.

Windows y PWS 4 ó posterior

Existen dos opciones para instalar PHP en Windows con PWS 4 ó posterior. Una es el binario CGI de PHP y la otra el módulo DLL ISAPI.

Si elegis el binario CGI, teneis que hacer lo siguiente:

  • Editar el fichero que se incluye con PHP llamado pws-php4cgi.reg (mirar en el directorio SAPI) para actualizarlo con la localización de vuestro php.exe. Las barras invertidas tienen que escaparse, p.ej: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters\Script Map] ".php"="c:\\php\\php.exe". A continuación incluir este registro en vuestro sistema; podeis hacer esto haciendo una doble pulsación sobre el mismo, con el ratón.

  • En el administrador de PWS, hacer una doble pulsación con el botón derecho del ratón, sobre el directorio donde quereis añadir soporte para PHP, seleccionar "Properties", elegir "Execute" y confirmar.

Si elegis el módulo ISAPI, teneis que hacer lo siguiente:

  • Editar el fichero que se incluye con PHP llamado pws-php4isapi.reg (mirar en el directorio SAPI) para actualizarlo con la localización de vuestro php4isapi.dll. Las barras invertidas tienen que escaparse, p.ej: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters\Script Map] ".php"="c:\\php\\sapi\\php4isapi.dll". A continuación incluir este registro en vuestro sistema; podeis hacer esto haciendo una doble pulsación sobre el mismo, con el ratón.

  • En el administrador de PWS, hacer una pulsación con el botón derecho del ratón, sobre el directorio donde quereis añadir soporte para PHP, seleccionar "Properties", elegir "Execute" y confirmar.

Windows NT/2000/XP y IIS 4 ó posterior

Para instalar PHP en un servidor NT/2000/XP con IIS 4 ó posterior, teneis que seguir estas instrucciones. Existen dos opciones para instalar PHP, una es el binario CGI de PHP (php.exe) y la otra el módulo ISAPI.

En ambos casos necesitais arrancar la "consola de administración de Microsoft" (Puede encontrarse como 'Administrador de servicios Internet", bien en vuestro "Windows NT 4.0 Option Pack" ó en el Control Panel=>Herramientas de administración bajo Windows 2000/XP). Hacer una pulsación con el botón derecho del ratón en el nodo perteneciente a vuestro servidor web (probablemente aparezca como "Servidor web por defecto") y seleccionar "Propiedades".

Si elegis el binario CGI, teneis que hacer lo siguiente:

  • Bajo "Carpeta Inicial", "Directorio Virtual" ó "Directorio", pulsar en el botón "Configuración" y entrar en la pestaña "Mapas de aplicaciones".

  • Pulse en ""Añadir", y en la caja Programa, escriba: c:\php\php.exe (suponemos que habeis descomprimido PHP en c:\php\).

  • En la caja Extensión, escriba la extensión de fichero que desea asociar a los script de PHP. Dejar "Exclusiones de método" vacio y elegir "Motor de scripts". Tambien podeis elegir "comprobar que el fichero existe" - por una pequeña perdida en el rendimiento, IIS (ó PWS) comprobará que el script existe antes de usar php. Esto significa que obtendremos errores del tipo 404 en vez de errores cgi diciendo que php no devolvio ningún dato.

    Debereis de repetir el paso anterior por cada extensión que querais asociar con PHP. .php y .phtml son valores comunes, aunque .php3 puede que sea necesaria para ejecutar scripts antiguos.

  • Ajuste la seguridad apropiada (esto se realiza en el Administrador de Servicio de Internet) y si su NT Server usa el sistema de archivos NTFS, añada derechos de ejecución para I_USR_ en el directorio que contenga el php.exe.

Si elegis el módulo ISAPI, teneis que hacer lo siguiente:

  • Si no quereis utilizar Autentificación HTTP usando PHP, podeis (y debeis) de saltaros este paso. Bajo "Filtros ISAPI", añadir un nuevo filtro ISAPI. Usar PHP como nombre del filtro y definir la localización del fichero php4isapi.dll.

  • Bajo "Carpeta Inicial" pulsar en el botón "Configuración" y añadir un nuevo valor en "Mapas de aplicaciones". Definir la localización del fichero php4isapi.dll como ejecutable y .php como la extensión. Dejar "Exclusiones de método" vacio y elegir "Motor de scripts"

  • Parar IIS completamente (NET STOP iisadmin)

  • Arrancar IIS de nuevo (NET START w3svc)

Anterior | Inicio | Siguiente
Servidores-fhttpd | Subir | Servidores-Netscape e iPlanet


Servidores-Netscape e iPlanet

Esta sección contiene información específica sobre la instalación de PHP con Netscape e iPlanet, tanto en Sun Solaris como en Windows.

Podeis encontrar más información sobre como instalar PHP con "Netscape Enterprise Server" aqui: http://benoit.noss.free.fr/php/install-php4.html

Instalando PHP con Netscape en Sun Solaris

Para compilar PHP para que funcione con los servidores web NES ó iPlanet, definir la localización correcta en la opción --with-nsapi = DIR. La localización por defecto es normalmente /opt/netscape/suitespot/. Leer /php-xxx-version/sapi/nsapi/nsapi-readme.txt para más información.

Ejemplo 3-11. Ejemplo de instalación con Netscape Enterprise en Solaris

Instrucciones para Sun Solaris 2.6 con Netscape Enterprise Server 3.6
From: bhager@invacare.com

1. Instalar los siguientes paquetes (se pueden bajar de
   www.sunfreeware.com u otra servidor)

    flex-2_5_4a-sol26-sparc-local
    gcc-2_95_2-sol26-sparc-local
    gzip-1.2.4-sol26-sparc-local
    perl-5_005_03-sol26-sparc-local
    bison-1_25-sol26-sparc-local
    make-3_76_1-sol26-sparc-local
    m4-1_4-sol26-sparc-local
    autoconf-2.13
    automake-1.4
    mysql-3.23.24-beta (si quereis soporte para MySQL)
    tar-1.13 (GNU tar)

2. Asegurarse que la variable PATH incluye los siguientes directorios:
    PATH=.:/usr/local/bin:/usr/sbin:/usr/bin:/usr/ccs/bin
    export PATH

3. gunzip php-x.x.x.tar.gz
4. tar xvf php-x.x.x.tar
5. cd ../php-x.x.x

6. Asegurarse que /opt/netscape/suitespot/ es el directorio donde
   teneis instalado vuestro servidor netscape, si no, cambiarlo por el
   directorio correcto:
    /configure --with-mysql=/usr/local/mysql --with-nsapi=/opt/netscape/suitespot/ --enable-track-vars --enable-libgcc
7. make
8. make install
Despues de terminar la instalación base y de leer el fichero readme apropiado, quizas necesiteis realizar unos cuantos ajustes en la configuración.

Para comenzar, quizas necesiteis añadir algunas localizaciones a la variable de entorno LD_LIBRARY_PATH, para que Netscape pueda encontrar todas las bibliotecas compartidas. Esto se puede hacer en el script de arranque del servidor Netscape. Usuarios de Windows pueden probablemente saltarse este paso. El script de arranque suele estar localizado en: /path/to/server/https-servername/start

Tambien puede que tengais que editar los ficheros de configuración localizados en: /path/to/server/https-servername/config/.

Ejemplo 3-12. Ejemplo de configuración para Netscape Enterprise

Instrucciones de configuraci&oacute;n para Netscape Enterprise Server
From: bhager@invacare.com

1. A&ntilde;adir la siguiente linea al fichero mime.types:

    type=magnus-internal/x-httpd-php exts=php

2. A&ntilde;adir la siguiente linea al fichero obj.conf, shlib
   depender&aacute; de vuestro SO, en Unix es:

    /opt/netscape/suitespot/bin/libphp4.so.

    Las siguientes lineas se deben a&ntilde;dir despues de las lineas
    que inicializan "mime types".

    Init fn="load-modules" funcs="php4_init,php4_close,php4_execute,php4_auth_trans" shlib="/php4/nsapiPHP4.dll"
    Init fn=php4_init errorString="Failed to initialize PHP!"

    <object name="default">
    .
    .
    .
    .#NOTA Esta linea debe de a&ntilde;adirse despues de todas las
     lineas 'ObjectType' y antes de las lineas 'AddLog'.

    Service fn="php4_execute" type="magnus-internal/x-httpd-php"
    .
    .
    </Object>

    <Object name="x-httpd-php">
    ObjectType fn="force-type" type="magnus-internal/x-httpd-php"
    Service fn=php4_execute
    </Object>

    Configuraci&oacute;n de la autentificaci&oacute;n

    Para configurar autentificaci&oacute;n PHP en todo el servidor,
    a&ntilde;adir la siguiente linea:

    <Object name="default">
    AuthTrans fn=php4_auth_trans
    .
    .
    .
    .
    </Object>

    Para configurar autentificaci&oacute;n PHP en una localizaci&oacute;n,
    a&ntilde;adir lo siguiente:

    <Object ppath="d:\path\to\authenticated\dir\*">
    AuthTrans fn=php4_auth_trans
    </Object>

Si estais usando Netscape Enterprise 4.x, debereis hacer lo siguiente:

Ejemplo 3-13. Ejemplo de configuración para Netscape Enterprise 4.x

A&ntilde;adir estas lineas despues de la secci&oacute;n que
inicializa "mime types", lo dem&aacute;s es similar al ejemplo anterior:
From: Graeme Hoose (GraemeHoose@BrightStation.com)

Init fn="load-modules" shlib="/path/to/server4/bin/libphp4.so" funcs="php4_init,php4_close,php4_execute,php4_auth_trans"
Init fn="php4_init" LateInit="yes"

Instalando PHP con Netscape en Windows

Para instalar PHP como binario CGI (con Netscape Enterprise Server, iPlanet y quizás Fastrack), hacer lo siguiente:

  • Copiar php4ts.dll al directorio donde instalasteis Windows.

  • Crear un fichero asociado desde la linea de comandos. Escribir lo siguiente:
    assoc .php=PHPScript
ftype PHPScript=c:\php\php.exe %1 %*

  • En el servidor de administracion de "Netscape Enterprise", crear un directorio shellcgi señuelo y borrarlo (esto crea 5 lineas importantes en obj.conf y permite al servidor web manejar scripts shellcgi)

  • En el servidor de administracion de "Netscape Enterprise", crear un nuevo tipo mime (Categoria: type, Content-Type: magnus-internal/shellcgi, File Suffix:php).

  • Hacerlo con todas las instancias del servidor web con las que quereis utilizar php.

Se pueden encontrar más detalles sobre como configurar PHP como binario CGI, aqui: http://benoit.noss.free.fr/php/install-php.html

Para instalar PHP como NSAPI (con Netscape Enterprise Server, iPlanet y quizás Fastrack), hacer lo siguiente:

  • Copiar php4ts.dll al directorio donde instalasteis Windows.

  • Crear un fichero asociado desde la linea de comandos. Escribir lo siguiente:
    assoc .php=PHPScript
ftype PHPScript=c:\php\php.exe %1 %*

  • En el servidor de administracion de "Netscape Enterprise", crear un nuevo tipo mime (Categoria: type, Content-Type: magnus-internal/x-httpd-php, File Suffix:php).

  • Parar vuestro servidor web y editar obj.conf. Al final de la sección de inicialización, añadir estas dos lineas (despues de la sección mime type):
    Init fn="load-modules" funcs="php4_init,php4_close,php4_execute,php4_auth_trans" shlib="c:/php/sapi/php4nsapi.dll"
Init fn="php4_init" errorString="Failed to initialise PHP!"

  • En la sección < Object name="default" > añadir lo siguiente despues de todas las lineas 'ObjectType' y antes de las lineas 'AddLog':
    Service fn="php4_execute" type="magnus-internal/x-httpd-php"

  • Al final del fichero, crear un nuevo objeto llamado x-httpd-php, insertando estas lineas:
    <Object name="x-httpd-php">
ObjectType fn="force-type" type="magnus-internal/x-httpd-php"
Service fn=php4_execute
</Object>

  • Rearrancar vuestro servidor web:

  • Hacerlo con todas las instancias del servidor web con las que quereis utilizar php.

Se pueden encontrar más detalles sobre como configurar PHP como un filtro NSAPI , aqui: http://benoit.noss.free.fr/php/install-php4.html

Anterior | Inicio | Siguiente
Servidores-IIS/PWS | Subir | Servidores-Servidor OmniHTTPd


Servidores-Servidor OmniHTTPd

Esta sección contiene información específica sobre la instalación de PHP con OmniHTTPd.

OmniHTTPd 2.0b1 y posteriores en Windows

Los siguientes pasos se tienen que completar para que PHP funcione con OmniHTTPd. Nos referimos a la instalación de PHP como ejecutable CGI. SAPI es soportado por OmniHTTPd, pero diferentes comprobaciones han demostrado que PHP como módulo ISAPI no es estable.

Importante para usuarios de la versión CGI: Leer la faq sobre cgi.force_redirect para más detalles. Esta directiva debe de tener el valor 0.

  • Paso 1: Instalar el servidor OmniHTTPd.

  • Paso 2: Pulsar con el botón derecho del ratón en el icono azul de OmniHTTPd en la bandeja del sistema y seleccionar Propiedades.

  • Paso 3: Pulsar en Configuración global del servidor web

  • Paso 4: En la pestaña 'Externo', escribir: virtual = .php | actual = c:\path-to-php-dir\php.exe y pulsar el botón "añadir".

  • Paso 5: en la pestaña Mime, escribir: virtual = wwwserver/stdcgi | actual = .php y pulsar el botón "añadir".

  • Paso 6: Pulsar OK

Repetir los pasos 2-6 por cada extensión que querais asociar con PHP.

Nota: Algunos paquetes OmniHTTPd vienen con soporte para PHP. Podeis elegirlos para crear una configuración a medida y no utilizar el componente PHP. Recomendamos que useis los últimos binarios disponibles. Algunos servidores OmniHTTPd vienen con la versión beta de PHP 4, asi que no debeis de elegir esta versión e instalar mejor vuestra propia versión. Si el servidor está instalado en vuestra máquina, usar el botón "Cambiar" en los pasos 4 y 5 para configurar la información correcta.

Anterior | Inicio | Siguiente
Servidores-Netscape e iPlanet | Subir | Servidores-Oreilly Website Pro


Servidores-Oreilly Website Pro

Esta sección contiene información específica sobre la instalación de PHP con Oreilly Website Pro.

Oreilly Website Pro 2.5 y posteriores en Windows

Esta lista describe como instalar el binario CGI ó el módulo ISAPI de PHP para que funcione con Oreilly Website Pro en Windows.

  • Editar "propiedades del servidor" y seleccionar la pestaña "Mapping".

  • Seleccionar "Asociaciones" y escribir la extensión deseada (.php) y la localización del ejecutable CGI (ej. c:\php\php.exe) ó el fichero ISAPI DLL (ej. c:\php\sapi\php4isapi.dll).

  • Seleccionar "Tipos de contenidos", añadir la misma extensión (.php) y el tipo de contenido. Si usais el ejecutable CGI, usar 'wwwserver/shellcgi', si usais el módulo ISAPI, usar 'wwwserver/isapi' (sin comillas)

Anterior | Inicio | Siguiente
Servidores-Servidor OmniHTTPd | Subir | Servidores-Sambar


Servidores-Sambar

Esta sección contiene información específica sobre la instalación de PHP con el servidor Sambar para Windows

Sambar para Windows

Esta lista describe como instalar el módulo ISAPI de PHP para que funcione conel servidor Sambar para Windows.

  • Localizar el fichero mappings.ini (en el directorio de configuración) en el directorio de Sambar.

  • Editar mappings.ini i añadir la siguiente linea bajo la etiqueta [ISAPI]:

    *.php = c:\php\php4isapi.dll

    (Esta linea asume que PHP está instalado en c:\php.)

  • Arrancar el servidor Sambar de nuevo.

Anterior | Inicio | Siguiente
Servidores-Oreilly Website Pro | Subir | Servidores-Xitami


Servidores-Xitami

Esta sección contiene información específica sobre la instalación de PHP con Xitami.

Xitami para Windows

A continuación se describe como instalar el binario CGI de PHP para que funcione con Xitami en Windows.

Importante para usuarios de la versión CGI: Leer la faq sobre cgi.force_redirect para más detalles. Esta directiva debe de tener el valor 0.

  • Asegurarse que el servidor está funcionando, conectar desde vuestro navegador con la consola de administración de xitamis (normalmente http://127.0.0.1/admin) y pulsar en "Configuración".

  • Ir a la sección de "Filtros" e introducir la extensión ha utilizar con PHP (p.ej: .php) en el campo "Extensiones de ficheros".

  • Como comando ó script en la sección "Filtros", introducir la localización y nombre del binario PHP, p.ej: c:\php\php.exe.

  • Pulsar el icono "Grabar".

  • Rearrancar el servidor para que carge los cambios.

Anterior | Inicio | Siguiente
Servidores-Sambar | Subir | Servidores-Otros servidores web


Servidores-Otros servidores web

PHP se puede utilizar con un gran número de servidores web. Vea las opciones relativas a Servidores para conseguir la lista completa de opciones de configuración. La versión PHP CGI es compatible prácticamente con todos los servidores web que soporten el estandar CGI.

Anterior | Inicio | Siguiente
Servidores-Xitami | Subir | Problemas?


Problemas?

Lee la FAQ

Algunos problemas son más comunes que otros. Los más comunes se pueden consultar en la FAQ de PHP en este manual.

Otros problemas

Si todavia teneis el mismo problema, alguien en la lista de correos sobre instalación de PHP, puede ayudaros. Primero, comprobar en los archivos de la lista si vuestro problema ya ha sido contestado. Los archivos se encuentran disponibles en las página de soporte http://www.php.net/. Para subscribirse a esta lista de correos mandar un correo vacío a php-install-subscribe@lists.php.net. La dirección de la lista es php-install@lists.php.net.

Si quereis conseguir ayuda en la lista de correo, intentar describir lo más detalladamente posible vuestro problema, los datos sobre vuestro sistema (sistema operativo que utilizais, versión de PHP, servidor web, si usais PHP como binario CGI ó como módulo, safe mode, etc...) y a ser posible código suficiente para poder reproducir vuestro problema.

Informes sobre Bugs

Si creeis que habeis encontrado un bug (error de programación) en PHP, mandarnos un informe. Probablemente los desarrolladores de PHP no lo conozcan y si no informais sobre el mismo no podrá arreglarse. Podeis informar sobre bugs a traves del sistema de seguimiento de bugs en http://bugs.php.net/. No mandar informes a la lista de correos ó en mensajes privados a los desarrolladores. El sistema de seguimiento tambien se puede utilizar para pedir nuevas caracteristicas en versiones futuras.

Lea Como informar sobre un bug antes de mandar un informe.

Anterior | Inicio | Siguiente
Servidores-Otros servidores web | Subir | Diversas opciones de configuración


Diversas opciones de configuración

Aquí teneis una lista parcial de opciones de configuración usadas por el script de configuración de PHP, configure, cuando se compila PHP en entornos Unix. La mayoria de las opciones de configuración están listadas en las secciones apropiadas y no aquí. Para obtener una lista completa y actualizada de las opciones de configuración, ejecutar ./configure --help, en vuestro directorio con el código fuente de PHP, despues de haber ejecutado autoconf (Vea también el capítulo sobre instalación). Tambien podeis leer la documentación de GNU configure para obtener información sobre opciones adicionales en el programa configure, tal como --prefix=PREFIX.

Nota: Estas son usadas solamente en tiempo de compilación. Si quereis cambiar opciones de configuración en tiempo de ejecución, ver el capítulo sobre Configuración del comportamiento de PHP.

  • Gráficos

  • Diversos

  • Comportamiento de PHP

  • Servidor

Opciones de configuración en PHP 4

Nota: Estas opciones son usadas solamente en PHP 4 a partir de PHP 4.1.0. Algunas están disponibles en versiones más antiguas de PHP 4, algunas incluso en PHP 3 y otras solamente en PHP 4.1.0. Si quereis compilar versiones antiguas, algunas opciones estarán probablemente no disponibles.

Opciones gráficas

--with-imagick

La extensión imagick se ha movido a PECL en PEAR y puede aquí. Instrucciones de instalación para PHP 4 se pueden encontrar en la página de PEAR.

--with-imagick es solo soportado en PHP 3, a menos que sigais las instrucciones que se encuentran en la página de PEAR.

Opciones diversas

--enable-debug

Compila con símbolos para ayudar a encontrar errores.

--with-layout=TYPE

Define como los ficheros instalados serán presentados. "Type" puede ser PHP (por defecto) ó GNU.

--with-pear=DIR

Instala PEAR en el directorio DIR (por defecto PREFIX/lib/php).

--without-pear

No instala PEAR

--enable-sigchild

Activa el propio sistema SIGCHLD de PHP

--disable-rpath

Desactiva el poder definir en tiempo de ejecución ubicaciones adicionales de bibliotecas.

--enable-libgcc

Activa explícitamente el enlazar con libgcc.

--enable-php-streams

Incluye corrientes php experimentales. No usar a menos que esteis comprobando el código.

--with-zlib-dir=<DIR>

Define la localización del directorio de instalación de zlib.

--enable-trans-sid

Activa la propagación transparente de los códigos de sesiones. Solamente valido hasta PHP 4.1.2. A partir de 4.2.0, trans-sid es compilado siempre.

--with-tsrm-pthreads

Usa hilos POSIX (activado por defecto).

--enable-shared[=PKGS]

Compila la bibliotecas compartidas [por defecto=si].

--enable-static[=PKGS]

Compila la bibliotecas estáticas [por defecto=si].

--enable-fast-install[=PKGS]

Optimización para una instalación rápida [por defecto=yes].

--with-gnu-ld

Asume que el compilador C usa GNU ld [por defecto=no].

--disable-libtool-lock

Evita "locking" (puede romper compilaciones en paralelo)

--with-pic

Trata de usar solamente objetos PIC/no-PIC [por defecto=usar los dos].

--enable-memory-limit

Compilar con soporte para limitar la memoria.

--disable-url-fopen-wrapper

Desactiva la envoltura de tipo "fopen" que permite acceder a ficheros via HTTP ó FTP.

--enable-versioning

Exporta solamente los simbolos requeridos. Ver INSTALL para más información.

--with-imsp[=DIR]

Incluye soporte para IMSp (DIR es la localización del directorio include y libimsp.a) Solamente en PHP 3.

--with-mck[=DIR]

Incluye soporte para Cybercash MCK. DIR es el directorio de instalación de cybercash, por defecto /usr/src/mck-3.2.0.3-linux. Para más información consultar extra/cyberlib. Solamente en PHP 3.

--with-mod-dav=DIR

Incluye soporte para DAV a traves del módulo mod_dav de Apache, DIR es el directorio de instalación de mod_dav (solamente en la versión como módulo para Apache) Solamente en PHP 3.

--enable-debugger

Compila con funciones remotas para ayudar a encontrar errores. Solamente en PHP 3.

--enable-versioning

Se aprovecha de las caracteristicas de versionado y scoping enSolamente en PHP 3. Solaris 2.x y Linux.

Opciones PHP

--enable-maintainer-mode

Activa la creación de reglas y dependencias no útiles (y a veces confusas) para el usuario ocasional.

--with-config-file-path=PATH

Define el PATH en donde se busca por el fichero de configuración php.ini, por defecto PREFIX/lib.

--enable-safe-mode

Activa "modo seguro" por defecto.

--with-exec-dir[=DIR]

Permite ejecutables solamente en DIR. si se utiliza "modo seguro" se utiliza por defecto /usr/local/php/bin.

--enable-magic-quotes

Activa "magic quotes" por defecto.

--disable-short-tags

Desactiva la etiqueta corta de comienzo <? por defecto.

Opciones SAPI

Las siguientes lista contiene las diferentes SAPIs (Server Application Programming Interface) para PHP.

--with-aolserver=DIR

Especifica la localización del servidor AOL instalado.

--with-apxs[=FILE]

Crea un módulo dinámico para Apache. FILE es opcional y define el nombre de la localización de la herramienta apxs que viene con Apache. Especificar la version de apxs que esta instalada en vuestro sistema y no la que se encuentra en el directorio con el código fuente de Apache.

--with-apache[=DIR]

Crea un módulo estático para Apache. DIR es el directorio donde se encuentra el código fuente de Apache, por defecto /usr/local/apache.

--with-mod_charset

Activa la transferencia de tablas para mod_charset (versión rusa de Apache)

--with-apxs2[=FILE]

Crea un módulo compartido para Apache 2.0. FILE es opcional y define el nombre de la localización de la herramienta apxs que viene con Apache.

--with-caudium=DIR

Crea PHP como módulo Pike para uso con Caudium. DIR es el directorio donde se encuentra el servidor Caudium, por defecto /usr/local/caudium/server.

--disable-cli

Disponible desde PHP 4.3.0. Desactiva la creación de la versión CLI de PHP (esto fuerza el uso de la opción --without-pear). M6aacute;s información se encuentra disponible en la sección sobre Usando PHP desde la linea de comandos.

--enable-embed[=TYPE]

Activa la creación de la biblioteca SAPI. TYPE es ó bien shared ó static, por defecto shared. Disponible desde PHP 4.3.0.

--with-fhttpd[=DIR]

Crea un módulo para fhttpd. DIR es el directorio con el código funete de fhttpd, por defecto /usr/local/src/fhttpd. No disponible a partir de PHP 4.3.0.

--with-isapi=DIR

Crea PHP como un módulo ISAPI para Zeus.

--with-nsapi=DIR

Especifica la localización del servidor Netscape/iPlanet/SunONE instalado.

--with-phttpd=DIR

Sin información.

--with-pi3web=DIR

Crea PHP como un módulo para Pi3Web.

--with-roxen=DIR

Crea PHP como módulo Pike. DIR es el directorio base de Roxen, normalmente /usr/local/roxen/server.

--enable-roxen-zts

Crea el módulo para Roxen usando "Zend Thread Safety".

--with-servlet[=DIR]

Incluye soporte para servlets. DIR es el directorio base de JSDK. Esta SAPI requiere que la extensión de java se cree como una dl compartida.

--with-thttpd=SRCDIR

Crea PHP como un módulo para thttpd.

--with-tux=MODULEDIR

Crea PHP como un módulo para TUX (solo en Linux).

--with-webjames=SRCDIR

Crea PHP como un módulo para WebJames (solo SO RISC)

--disable-cgi

Desactiva la creación de la version CGI de PHP. Disponible desde PHP 4.3.0.

--enable-force-cgi-redirect

Activa la comprobación de seguridad para redireccionamientos internos del servidor. Esto se debe de utilizar cuando se usa la versión CGI con Apache.

--enable-discard-path

Si se usa esto, el binario CGI de PHP se puede tener de un modo seguro fuera del directorio web y los usuarios no podrán pasarse por alto la seguridad implementada por .htaccess.

--with-fastcgi

Crea PHP como una aplicación FastCGI. No disponible a partir de PHP 4.3.0, usar en su lugar --enable-fastcgi.

--enable-fastcgi

Si se usa esto, el módulo CGI se creará con soporte para FastCGI. Disponible a partir de PHP 4.3.0.

--disable-path-info-check

Si se usa esto, localizaciones de la forma /info.php/test?a=b no funcionarán. Disponible a partir de PHP 4.3.0. Para mas informacion consultar el manual de Apache.

Anterior | Inicio | Siguiente
Problemas? | Subir | Configuración del comportamiento de PHP


Configuración del comportamiento de PHP

Manual de PHP
Anterior Siguiente

Capítulo 4. Configuración del comportamiento de PHP

Tabla de contenidos
El archivo de configuración
Como cambiar los valores de la configuración
Directivas de configuración diversas

El archivo de configuración

El archivo de configuración (llamado php3.ini en PHP 3.0, y simplemente php.ini a partir del PHP 4.0) es leído cuando arranca PHP. Para las versiones de PHP como módulo de servidor esto sólo ocurre una vez al arrancar el servidor web. Para la versión CGI y CLI, esto ocurre en cada llamada.

La localización por defecto de php.ini es definida en tiempo de compilación (Consultar la FAQ), pero puede ser cambiada en la versión CGI y CLI con la opción de la linea de comandos -c, consultar el cápitulo sobre como usar PHP desde la linea de comandos. Tambien se puede definir la variable de entorno PHPRC con un "path" adicional para la busqueda del fichero php.ini

Nota: El servidor web Apache cambia al directorio raiz al arrancar, por ello PHP intentará leer el fichero php.ini en el directorio raiz, si existe.

No todas las directivas estás documentadas a continuación. Para obtener una lista completa de todas las directivas, podeis consultar el fichero php.ini. Podeis consultar la última versión del fichero php.ini en el CVS.

Nota: El valor por defecto de la directiva PHP register_globals cambio de on a off en la versión de PHP 4.2.0.

Ejemplo 4-1. Ejemplo php.ini

; any text on a line after an unquoted semicolon (;) is ignored
[php] ; section markers (text within square brackets) are also ignored
; Boolean values can be set to either:
;    true, on, yes
; or false, off, no, none
register_globals = off
magic_quotes_gpc = yes

; you can enclose strings in double-quotes
include_path = ".:/usr/local/lib/php"

; backslashes are treated the same as any other character
include_path = ".;c:\php\lib"

Anterior | Inicio | Siguiente
Diversas opciones de configuración | Subir | Como cambiar los valores de la configuración


Como cambiar los valores de la configuración

Ejecutando PHP como módulo de Apache

Cuando se usa PHP como un módulo de Apache, se pueden cambiar valores de la configuración usando directivas en los ficheros de configuración de apache, httpd.conf y .htaccess (Se necesitan privilegios "AllowOverride Options" ó "AllowOverride All")

Con PHP 4.0, hay varias directivas Apache que permiten cambiar la configuracion de PHP desde los ficheros de configuración de apache. Para obtener una lista de que directivas son del tipo PHP_INI_ALL, PHP_INI_PERDIR, ó PHP_INI_SYSTEM, consultar la lista que se encuentra en la documentación de la función ini_set().

Nota: Con PHP 3.0, existen directivas que corresponden a cada parametro de configuración en php3.ini, con el prefijo "php3_".

php_value nombre valor

Asigna el valor de la directiva especificada. Puede ser usado solamente con directivas del tipo PHP_INI_ALL y PHP_INI_PERDIR. Para borrar un valor previo, asignar none como valor

Nota: No usar php_value para definir valores booleanos. Deveria usarse php_flag en su lugar (vea más abajo).

php_flag nombre on|off

Usado para asignar una directiva de configuración Booleana. Puede ser usado solamente con directivas del tipo PHP_INI_ALL y PHP_INI_PERDIR.

php_admin_value nombre valor

Asigna el valor de la directiva especificada. NO puede usarse en ficheros .htaccess. Todo tipo de directiva asignada con php_admin_value no puede ser cambiada con .htaccess ó directivas "virtualhost". Para borrar un valor previo, asignar none como valor.

php_admin_flag nombre on|off

Usado para asignar una directiva de configuración Booleana. NO puede usarse en ficheros .htaccess. Todo tipo de directiva asignada con php_admin_flag no puede ser cambiada con .htaccess ó directivas.

Ejemplo 4-2. Ejemplo de configuración de apache

<IfModule mod_php4.c>
  php_value include_path ".:/usr/local/lib/php"
  php_admin_flag safe_mode on
</IfModule>
<IfModule mod_php3.c>
  php3_include_path ".:/usr/local/lib/php"
  php3_safe_mode on
</IfModule>

Atención

Las Constantes en PHP no existen fuera de PHP. Por ejemplo, en httpd.conf no se pueden usar constantes PHP tales como E_ALL ó E_NOTICE para definir la directiva error_reporting, ya que no tendrá ningún significado y será evaluada como 0. Usar los valores asociados de "bitmask" en su lugar. Estas constantes pueden ser usadas en php.ini

Cambiando la configuracion de PHP via registros en Windows

Cuando se usa PHP en Windows, se pueden cambiar los valores de configuracion por medio de los registros de Windows. Los valores de configuracion se guardan en la llave de registro HKLM\SOFTWARE\PHP\Per Directory Values, en las subllaves correspondientes al PATH. Por ejemplo, los valores de configuracion del directorio c:\inetpub\wwwroot se guardaran en HKLM\SOFTWARE\PHP\Per Directory Values\c\inetpub\wwwroot. La configuracion de un directorio es valida para todos los scripts ejecutados en el mismo y sus subdirectorios. Los valores en la llave deben de definirse con el nombre de la directiva de configuracion de PHP y el valor correspondiente. Las constantes PHP en el valor no son analizadas.

Otros interfaces de PHP

Dependiendo del interfaz de PHP se pueden cambiar ciertos valores en tiempo de ejecución con la función ini_set(). La siguiente tabla describe en que nivel una directiva puede ser definida/cambiada.

Tabla 4-1. Definición de constantes PHP_INI_*

Constante | Valor | Significado
PHP_INI_USER | 1 | Puede ser definida en scripts de usuario
PHP_INI_PERDIR | 2 | Puede ser definida en php.ini, .htaccess ó httpd.conf
PHP_INI_SYSTEM | 4 | Puede ser definida en php.ini ó httpd.conf
PHP_INI_ALL | 7 | Puede ser definida en cualquier sitio

Se pueden ver las definiciones de los valores de configuración en la salida de phpinfo(). Los valores individuales de configuración de directivas pueden ser accedidos con ini_get() ó get_cfg_var().

Anterior | Inicio | Siguiente
Configuración del comportamiento de PHP | Subir | Directivas de configuración diversas


Directivas de configuración diversas

Esta no es un lista completa de directivas PHP. Las directivas están listadas en su lugar apropiado, por ejemplo información sobre directivas de sesión se pueden localizar en el capítulo sobre sesiones.

Opciones Httpd

Tabla 4-2. Opciones Httpd

Nombre | Defecto | Cambiable
async_send | "0" | PHP_INI_ALL

Opciones del lenguaje

Tabla 4-3. Opciones del lenguaje y diversas

Nombre | Defecto | Cambiable
short_open_tag | On | PHP_INI_SYSTEM|PHP_INI_PERDIR
asp_tags | Off | PHP_INI_SYSTEM|PHP_INI_PERDIR
precision | "14" | PHP_INI_ALL
y2k_compliance | Off | PHP_INI_ALL
allow_call_time_pass_reference | On | PHP_INI_SYSTEM|PHP_INI_PERDIR
expose_php | On | PHP_INI_SYSTEM

A continuación se presenta una corta explicación de las directivas de configuración

short_open_tag boolean

Indica si se debe permitir el formato corto (<? ?>) de la etiqueta de apertura del PHP. Si desea utilizar PHP en combinación con XML, deberá desactivar esta opción para poder usar <?xml ?> en linea. Si no, se puede imprimir con PHP, por ejemplo: <?php echo '<?xml version="1.0"'; ?>. Si está desactivada, deberá utilizar el formato largo de la etiqueta de apertura (<?php ?>).

Nota: Esta directiva tambien afecta a <?=, la cual es identica a <? echo. El uso de este atajo requiere que short_open_tag esté activada (on).

asp_tags boolean

Permite el uso de las etiquetas al estilo ASP <% %> además de las habituales etiquetas <?php ?>. También se incluye el atajo para imprimir variables <%= $valor %>. Para más información, vea Escapando del HTML.

Nota: El soporte para etiquetas al estilo ASP se añadió en la 3.0.4

precision entero

Número de digitos significativos mostrados en numeros de coma flotante.

y2k_compliance boolean

Hace cumplir la conformidad con el año 2000 (Causará problemas con navegadores que no cumplan con esto)

allow_call_time_pass_reference boolean

Define si se permitirá la capacidad de forzar que los argumentos sean pasados por referencia en el momento de llamar a la función. Este método no se utiliza más y probablemente no sea soportado en futuras versiones de PHP/Zend. El método que se recomienda para especificar que argumentos deben ser pasados por referencia es usar la declaración de la función. Se recomienda apagar esta opción y asegurarse que vuestros scripts funcionan para evitar problemas en el futuro. (recibireis un aviso cada vez que utiliceis esta caracteristica y el argumento será pasaso por valor y no referencia).

Ver también Explicación de Referencias.

expose_php boolean

Decide si PHP expondra el hecho de que está instalado en el servidor (p.ej. añadiendo su firma a la cabecera del servidor web). Esto no es una amenaza a la seguridad del sistema, pero hace posible averiguar si utilizais PHP en

Limites de recursos

Tabla 4-4. Limites de recursos

Nombre | Defecto | Cambiable
memory_limit | "8M" | PHP_INI_ALL

A continuación se presenta una corta explicación de las directivas de configuración

memory_limit integer

Asigna la cantidad maxima de memoria en bytes que un script puede usar. De esta manera se previene que scripts que no están muy bien escritos, usen toda la memoria disponible en el servidor. Para poder usar esta directiva hay que definirla a la hora de compilar PHP, incluyendo --enable-memory-limit cuando ejecuteis "configure". Si no quereis tener ningun limite en el uso de la memoria teneis que asignarle un valor -1.

A partir de PHP 4.3.2, y cuando memory_limit se encuentra activada, esta disponible la funcion memory_get_usage().

Ver también max_execution_time.

Tratamiento de datos

Tabla 4-5. Opciones de configuración para el tratamiento de datos

Nombre | Defecto | Cambiable
track-vars | "On" | PHP_INI_??
arg_separator.output | "&" | PHP_INI_ALL
arg_separator.input | "&" | PHP_INI_SYSTEM|PHP_INI_PERDIR
variables_order | "EGPCS" | PHP_INI_ALL
register_globals | "Off" | PHP_INI_PERDIR|PHP_INI_SYSTEM
register_argc_argv | "On" | PHP_INI_PERDIR|PHP_INI_SYSTEM
register_long_arrays | "On" | PHP_INI_PERDIR|PHP_INI_SYSTEM
post_max_size | "8M" | PHP_INI_SYSTEM|PHP_INI_PERDIR
gpc_order | "GPC" | PHP_INI_ALL
auto_prepend_file | "" | PHP_INI_SYSTEM|PHP_INI_PERDIR
auto_append_file | "" | PHP_INI_SYSTEM|PHP_INI_PERDIR
default_mimetype | "text/html" | PHP_INI_ALL
default_charset | "iso-8859-1" | PHP_INI_ALL
always_populate_raw_post_data | "0" | PHP_INI_SYSTEM|PHP_INI_PERDIR
allow_webdav_methods | "0" | PHP_INI_SYSTEM|PHP_INI_PERDIR

A continuación se presenta una corta explicación de las directivas de configuración

track_vars boolean

Si se activa, las variables de Entorno, GET, POST, Cookie y Server se pueden encontrar en las matrices globales asociadas $_ENV, $_GET, $_POST, $_COOKIE y $_SERVER.

A partir de PHP 4.0.3, track_vars esta siempre activada.

arg_separator.output string

El separador usado en las URLs generadas por PHP para separar argumentos.

arg_separator.input string

Lista de separadores usados por PHP para analizar URLs de entrada y asignarla a variables.

Nota: Todo caracter en esta directiva es considerado un separador.

variables_order string

Asigna el orden del analizador de variables EGPCS (Environment, GET, POST, Cookie, Server). El valor por defecto de esta directiva es "EGPCS". Asignandole el valor "GP", por ejemplo, causará que PHP ignore por completo las variables de entorno, cookies y variables server y sobreescriba toda variable GET con variables POST del mismo nombre.

Ver también register_globals.

register_globals boolean

Define si se registrará o no las variables EGPCS como variables globales. Por ejemplo, si register_globals = on, la url http://www.example.com/test.php?id=3 producirá $id. O, $DOCUMENT_ROOT desde $_SERVER['DOCUMENT_ROOT']. A lo mejor quereis desactivar este comportamiento para no confundir datos globales de vuestros scripts con datos de usuarios. Desde PHP 4.2.0, esta directiva tiene asignada el valor off por defecto. Es preferible usar las variables predefinidas en PHP, tales como superglobales: $_ENV, $_GET, $_POST, $_COOKIE y $_SERVER. Por favor leer el capítulo Usando register_globals para más información relacionada.

Hay que tener en cuenta que register_globals no se puede definir en tiempo de ejecución (ini_set()). Aunque se puede usar .htaccess si el servidor lo permite. Por ejemplo: php_flag register_globals on.

Nota: register_globals es afectada por la directiva variables_order.

register_argc_argv boolean

Indica a PHP si tiene que declarar las variables argv & argc (que contendran la información de GET)

Ver también linea de comandos.

register_long_arrays boolean

Indica a PHP si tiene que registrar ó no las variables predefinidas del tipo $HTTP_*_VARS. Cuando tenga el valor 'On' (por defecto) las variables predefinidas como $HTTP_GET_VARS se definirán. Si no las utilizais, se recomienda el desactivarlas, por razones de rendimiento. Usar en su lugar las matrices superglobales como $_GET.

This directive became available in PHP 5.0.0.

post_max_size integer

Define el tamaño maximo permitido de datos posteados. Tambien afecta a la subida de ficheros al servidor. Para subir ficheros de gran tamaño deberemos tener un valor mayor que el definido en upload_max_filesize.

Si el límite de memoria está definido, memory_limit también afectará a la subida de ficheros. Generalmente memory_limit debería ser mayor que post_max_size.

gpc_order string

Define el orden en el que se analizarán las variables GET/POST/COOKIE. El valor por defecto de esta directiva es "GPC". Por ejemplo, si le asignamos el valor "GP", PHP ignorará por completo las cookies y sobreescriba toda variable GET con variables POST del mismo nombre.

Nota: Esta opción no se encuentra disponible en PHP 4. Usar en su lugar variables_order.

auto_prepend_file string

Especifica el nombre del fichero que es analizado automaticamente antes que el fichero principal. El fichero es incluido de la misma manera que si fuese llamado con la función include(), asi que include_path es usado.

El valor especial none desactiva "auto-prepending".

auto_append_file string

Especifica el nombre del fichero que es analizado automaticamente despues que el fichero principal. El fichero es incluido de la misma manera que si fuese llamado con la función include(), asi que include_path es usado.

El valor especial none desactiva "auto-prepending".

Nota: Si el script es terminado con la función exit(), el auto-añadido (auto-append) no occurrirá.

default_mimetype string

default_charset string

a partir de PHP 4.0b4, PHP siempre muestra una codificación de carácteres por defecto en la cabecera "Content-type". Para desactivar esto, asignarle un valor vacio.

always_populate_raw_post_data boolean

Dar siempre valores a la variable $HTTP_RAW_POST_DATA

allow_webdav_methods boolean

Permite el uso de peticiones WebDAV http desde scripts en PHP (p.ej. PROPFIND, PROPPATCH, MOVE, COPY, etc..). si quereis obtener los datos de estas peticiones, teneis que definir también always_populate_raw_post_data.

Ver también: magic_quotes_gpc, magic-quotes-runtime y magic_quotes_sybase.

Paths y Directorios

Tabla 4-6. Opciones de configuración de Paths y Directorios

Nombre | Defecto | Cambiable
include_path | PHP_INCLUDE_PATH | PHP_INI_ALL
doc_root | PHP_INCLUDE_PATH | PHP_INI_SYSTEM
user_dir | NULL | PHP_INI_SYSTEM
extension_dir | PHP_EXTENSION_DIR | PHP_INI_SYSTEM
cgi.fix_pathinfo | "0" | PHP_INI_SYSTEM
cgi.force_redirect | "1" | PHP_INI_SYSTEM
cgi.redirect_status_env | "" | PHP_INI_SYSTEM
fastcgi.impersonate | "0" | PHP_INI_SYSTEM
cgi.rfc2616_headers | "0" | PHP_INI_SYSTEM

A continuación se presenta una corta explicación de las directivas de configuración

include_path string

Especifica una lista de directorios en donde las funciones require(), include() y fopen_with_path() tratan de encontrar ficheros. El formato es igual al utilizado en la variable de entorno PATH: una lista de directorios separados con dos puntos (:) en UNIX y punto y coma (;) en Windows.

Ejemplo 4-3. UNIX include_path

include_path=".:/php/includes"

Ejemplo 4-4. Windows include_path

include_path=".;c:\php\includes"

Usando un . en esta directiva, permitimos inclusiones relativas, un punto significa el directorio actual.

doc_root string

El directorio raiz de PHP en el servidor. Solamente usado si no esta vacio. Si PHP está configurado con safe mode, no se podran servir ficheros fuera de este directorio. si PHP no fue compilado con FORCE_REDIRECT, DEBERIAIS definir doc_root si correis PHP como CGI bajo un servidor web (que no sea IIS). Una alternativa es usar cgi.force_redirect.

user_dir string

El nombre base del directorio usado en el directorio de usuarios (home) para tener ficheros PHP. Por ejemplo, public_html.

extension_dir string

en que directorio debe mirar PHP por extensiones que se pueden cargar dinámicamente. Ver también: enable_dl y dl().

extension string

Que extensión de carga dinámica se cargará al arrancar PHP.

cgi.fix_pathinfo boolean

Provee soporte PATH_INFO/PATH_TRANSLATED real para CGI. PHP en el pasado asignaba el valor de SCRIPT_FILENAME a PATH_TRANSLATED sin importarle el valor de PATH_INFO. Para mas informacion sobre PATH_INFO, ver la especificacion cgi. Si asignamos el valor 1, PHP CGI arreglara su PATH para cumplir con la especificacion. Si asignamos el valor 0, PHP se comportara como en el pasado. Por defecto se usa 0. Deberiais de arreglar vuestros scripts para que usen SCRIPT_FILENAME en vez de PATH_TRANSLATED.

cgi.force_redirect boolean

cgi.force_redirect es necesario para dar seguridad cuando usemos PHP como CGI. Si no se define, PHP la activará por defecto. Se puede desactivar será tu responsabilidad.

Nota: Usuarios de Windows: Podeis desactivar sin riesgo esto en IIS. Es más, debeis hacerlo. Para poder utilizar OmniHTTPD ó Xitami debeis desactivarlo.

cgi.redirect_status_env string

Si cgi.force_redirect esta activado y no estais usando los servidores web Apache ó Netscape (iPlanet), puede que necesiteis definir una variable de entorno que PHP usará para saber si puede seguir ó no la ejecución de un script.

Nota: Definir esta variable puede ser un riesgo de seguridad. DEBEIS DE SABER QUE HACEIS ANTES DE HACERLO.

fastcgi.impersonate string

FastCGI bajo IIS (en SO basados en WINNT) soporta la personalización de los parametros de seguridad en el cliente. Esto permite a IIS definir el contexto de seguridad bajo el que se ejecuta una petición. mod_fastcgi bajo Apache no soporta actualmente esto (03/17/2002). Definir como 1 si usais IIS. Por defecto es 0.

cgi.rfc2616_headers int

Le indica a PHP que tipo de cabeceras tiene que usar cuando mande código HTTP de respuesta. Si se define como '0', PHP manda una cabecera 'Status:' soportada por Apache y otros navegadores. Cuando se define como '1', PHP manda cabeceras que cumplan con RFC 2616. Dejarla definida como '0' a menos que sepais que estais haciendo.

Subida de ficheros (upload)

Tabla 4-7. Opciones de configuración para subidas de ficheros

Nombre | Defecto | Cambiable
file_uploads | "1" | PHP_INI_SYSTEM
upload_tmp_dir | NULL | PHP_INI_SYSTEM
upload_max_filesize | "2M" | PHP_INI_SYSTEM|PHP_INI_PERDIR

A continuación se presenta una corta explicación de las directivas de configuración

file_uploads boolean

Permite HTTP file uploads. Ver también las directivas upload_max_filesize, upload_tmp_dir y post_max_size.

upload_tmp_dir string

El directorio temporal usado para grabar ficheros cuando se realiza una subida (upload) al servidor. Debe tener permiso de escritura para el usuario que ejecuta PHP. Si no se especifica, PHP usará el directorio temporal por defecto del sistema.

upload_max_filesize integer

Tamaño maximo de un fichero subido al servidor.

General SQL

Tabla 4-8. Opciones generales de configuración SQL

Nombre | Defecto | Cambiable
sql.safe_mode | "0" | PHP_INI_SYSTEM

A continuación se presenta una corta explicación de las directivas de configuración

sql.safe_mode boolean

Directivas de configuración del depurador

Atención

Solamente PHP 3 implementa un depurador por defecto, para más información vea Apéndice D.

debugger.host string

Nombre en el DNS ó IP de la máquina usada por el depurador (debugger).

debugger.port string

Número de puerto usado por el depurador.

debugger.enabled boolean

Determina si el depurador está disponible ó no.

Anterior | Inicio | Siguiente
Como cambiar los valores de la configuración | Subir | Referencia del Lenguaje


Referencia del Lenguaje

Manual de PHP
Anterior Siguiente

II. Referencia del Lenguaje

Tabla de contenidos
5. Síntaxis básica
6. Tipos
7. Variables
8. Constantes
9. Expresiones
10. Operadores
11. Estructuras de Control
12. Funciones
13. Clases y Objetos
14. Explicando las Referencias

Anterior | Inicio | Siguiente
Directivas de configuración diversas |  | Síntaxis básica


Síntaxis básica

Manual de PHP
Anterior Siguiente

Capítulo 5. Síntaxis básica

Tabla de contenidos
Saliendo de HTML
Separación de instrucciones
Comentarios

Saliendo de HTML

Para interpretar un archivo, php símplemente interpreta el texto del archivo hasta que encuentra uno de los carácteres especiales que delimitan el inicio de código PHP. El intérprete ejecuta entonces todo el código que encuentra, hasta que encuentra una etiqueta de fin de código, que le dice al intérprete que siga ignorando el código siguiente. Este mecanismo permite embeber código PHP dentro de HTML: todo lo que está fuera de las etiquetas PHP se deja tal como está, mientras que el resto se interpreta como código.

Hay cuatro conjuntos de etiquetas que pueden ser usadas para denotar bloques de código PHP. De estas cuatro, sólo 2 (<?php. . .?> y <script language="php">. . .</script>) están siempre disponibles; el resto pueden ser configuradas en el fichero de php.ini para ser o no aceptadas por el intérprete. Mientras que el formato corto de etiquetas (short-form tags) y el estilo ASP (ASP-style tags) pueden ser convenientes, no son portables como la versión de formato largo de etiquetas. Además, si se pretende embeber código PHP en XML o XHTML, será obligatorio el uso del formato <?php. . .?> para la compatibilidad con XML.

Las etiquetas soportadas por PHP son:

Ejemplo 5-1. Formas de escapar de HTML

1.  <?php echo("si quieres servir documentos XHTML o XML, haz como aqu&iacute;\n"); ?>

2.  <? echo ("esta es la m&aacute;s simple, una instrucci&oacute;n de procesado SGML \n"); ?>
    <?= expression ?> Esto es una abreviatura de "<? echo expression ?>"

3.  <script language="php">
        echo ("muchos editores (como FrontPage) no
              aceptan instrucciones de procesado");
    </script>

4.  <% echo ("Opcionalmente, puedes usar las etiquetas ASP"); %>
    <%= $variable; # Esto es una abreviatura de "<% echo . . ." %>

El método primero, <?php. . .?>, es el más conveniente, ya que permite el uso de PHP en código XML como XHTML.

El método segundo no siempre está disponible. El formato corto de etiquetas está disponible con la función short_tags() (sólo PHP 3), activando el parámetro del fichero de configuración de PHP short_open_tag, o compilando PHP con la opción --enable-short-tags del comando configure. Aunque esté activa por defecto en php.ini-dist, se desaconseja el uso del formato de etiquetas corto.

El método cuarto sólo está disponible si se han activado las etiquetas ASP en el fichero de configuración: asp_tags.

Nota: El soporte de etiquetas ASP se añadió en la versión 3.0.4.

Nota: No se debe usar el formato corto de etiquetas cuando se desarrollen aplicaciones o librerías con intención de redistribuirlas, o cuando se desarrolle para servidores que no están bajo nuestro control, porque puede ser que el formato corto de etiquetas no esté soportado en el servidor. Para generar código portable y redistribuíble, asegúrate de no usar el formato corto de etiquetas.

La etiqueta de fin de bloque incluirá tras ella la siguiente línea si hay alguna presente. Además, la etiqueta de fin de bloque lleva implícito el punto y coma; no necesitas por lo tanto añadir el punto y coma final de la última línea del bloque PHP.

PHP permite estructurar bloques como:

Ejemplo 5-2. Métodos avanzados de escape

<?php
if ($expression) {
    ?>
    <strong>This is true.</strong>
    <?php
} else {
    ?>
    <strong>This is false.</strong>
    <?php
}
?>
Este ejemplo realiza lo esperado, ya que cuando PHP encuentra las etiquetas ?> de fin de bloque, empieza a escribir lo que encuentra tal cual hasta que encuentra otra etiqueta de inicio de bloque. El ejemplo anterior es, por supuesto, inventado. Para escribir bloques grandes de texto generamente es más eficiente separalos del código PHP que enviar todo el texto mediante las funciones echo(), print() o similares.

Anterior | Inicio | Siguiente
Referencia del Lenguaje | Subir | Separación de instrucciones


Separación de instrucciones

Las separación de instrucciones se hace de la misma manera que en C o Perl - terminando cada declaración con un punto y coma.

La etiqueta de fin de bloque (?>) implica el fin de la declaración, por lo tanto lo siguiente es equivalente:

<?php
    echo "This is a test";
?>

<?php echo "This is a test" ?>

Anterior | Inicio | Siguiente
Síntaxis básica | Subir | Comentarios


Comentarios

PHP soporta el estilo de comentarios de 'C', 'C++' y de la interfaz de comandos de Unix. Por ejemplo:

<?php
    echo "This is a test"; // This is a one-line c++ style comment
    /* This is a multi line comment
       yet another line of comment */
    echo "This is yet another test";
    echo "One Final Test"; # This is shell-style style comment
?>

Los estilos de comentarios de una linea actualmente sólo comentan hasta el final de la linea o el bloque actual de código PHP, lo primero que ocurra.

<h1>This is an <?php # echo "simple";?> example.</h1>
<p>The header above will say 'This is an example'.

Hay que tener cuidado con no anidar comentarios de estilo 'C', algo que puede ocurrir al comentar bloques largos de código.

<?php
 /*
    echo "This is a test"; /* This comment will cause a problem */
 */
?>

Los estilos de comentarios de una linea actualmente sólo comentan hasta el final de la linea o del bloque actual de código PHP, lo primero que ocurra. Esto implica que el código HTML tras // ?> seráa impreso: ?> sale del modo PHP, retornando al modo HTML, el comentario // no le influye.

Anterior | Inicio | Siguiente
Separación de instrucciones | Subir | Tipos


Tipos

Manual de PHP
Anterior Siguiente

Capítulo 6. Tipos

Tabla de contenidos
Enteros
Números en punto flotante
Cadenas
Arrays
Objetos
Type juggling

PHP soporta los siguientes tipos:

  • matrices

  • números en punto flotante

  • enteros

  • objetos

  • cadenas

El tipo de una variable normalmente no lo indica el programador; en su lugar, lo decide PHP en tiempo de ejecución dependiendo del contexto en el que se utilice esa variable.

Si se quisiese obligar a que una variable se convierta a un tipo concreto, se podría forzar la variable o usar la función settype() para ello.

Nótese que una variable se puede comportar de formas diferentes en ciertas situaciones, dependiendo de qué tipo sea en ese momento. Para más información, vea la sección Conversión de Tipos.

Enteros

Los enteros se puede especificar usando una de las siguientes sintaxis:

$a = 1234; # número decimal
$a = -123; # un número negativo
$a = 0123; # número octal (equivalente al 83 decimal)
$a = 0x12; # número hexadecimal (equivalente al 18 decimal)

Anterior | Inicio | Siguiente
Comentarios | Subir | Números en punto flotante


Números en punto flotante

Los números en punto flotante ("double") se pueden especificar utilizando cualquiera de las siguientes sintaxis:

$a = 1.234; $a = 1.2e3;

Anterior | Inicio | Siguiente
Tipos | Subir | Cadenas


Cadenas

Las cadenas de caracteres se pueden especificar usando uno de dos tipos de delimitadores.

Si la cadena está encerrada entre dobles comillas ("), las variables que estén dentro de la cadena serán expandidas (sujetas a ciertas limitaciones de interpretación). Como en C y en Perl, el carácter de barra invertida ("\") se puede usar para especificar caracteres especiales:

Tabla 6-1. Caracteres protegidos

secuencia | significado
\n | Nueva línea
\r | Retorno de carro
\t | Tabulación horizontal
\\ | Barra invertida
\$ | Signo del dólar
\" | Comillas dobles
\[0-7]{1,3} | la secuencia de caracteres que coincida con la expresión regular es un carácter en notación octal
\x[0-9A-Fa-f]{1,2} | la secuencia de caracteres que coincida con la expresión regular es un carácter en notación hexadecimal

Se puede proteger cualquier otro carácter, pero se producirá una advertencia en el nivel de depuración más alto.

La segunda forma de delimitar una cadena de caracteres usa el carácter de comilla simple ("'"). Cuando una cadena va encerrada entre comillas simples, los únicos caracteres de escape que serán comprendidos son "\\" y "\'". Esto es por convenio, así que se pueden tener comillas simples y barras invertidas en una cadena entre comillas simples. Las variables no se expandirán dentro de una cadena entre comillas simples.

Otra forma de delimitar cadenas es usando la sintaxis de documento incrustado ("<<<"). Se debe proporcionar un identificador después de <<<, después la cadena, y después el mismo identificador para cerrar el entrecomillado.

Ejemplo 6-1. He aquí un ejemplo de entrecomillado de cadenas con sintaxis de documento incrustado

$str = <<<EOD
Ejemplo de cadena
Expandiendo múltiples líneas
usando sintaxis de documento incrustado.
EOD;

Nota: La sintaxis de documento incristado fue añadida en PHP 4.

Las cadenas se pueden concatenar usando el operador '.' (punto). Nótese que el operador '+' (suma) no sirve para esto. Por favor mire Operadores de cadena para más información.

Se puede acceder a los caracteres dentro de una cadena tratándola como un array de caracteres indexado numéricamente, usando una sintaxis similar a la de C. Vea un ejemplo más abajo.

Ejemplo 6-2. Algumos ejemplos de cadenas

<?php
/* Asignando una cadena. */
$str = "Esto es una cadena";

/* Añadiendo a la cadena. */
$str = $str . " con algo más de texto";

/* Otra forma de añadir, incluye un carácter de nueva línea protegido. */
$str .= " Y un carácter de nueva línea al final.\n";

/* Esta cadena terminará siendo '<p>Número: 9</p>' */
$num = 9;
$str = "<p>Número: $num</p>";

/* Esta será '<p>Número: $num</p>' */
$num = 9;
$str = '<p>Número: $num</p>';

/* Obtener el primer carácter de una cadena  */
$str = 'Esto es una prueba.';
$first = $str[0];

/* Obtener el último carácter de una cadena. */
$str = 'Esto es aún una prueba.';
$last = $str[strlen($str)-1];
?>

Conversión de cadenas

Cuando una cadena se evalúa como un valor numérico, el valor resultante y el tipo se determinan como sigue.

La cadena se evaluará como un doble si contiene cualquiera de los caracteres '.', 'e', o 'E'. En caso contrario, se evaluará como un entero.

El valor viene dado por la porción inicial de la cadena. Si la cadena comienza con datos de valor numérico, este será el valor usado. En caso contrario, el valor será 0 (cero). Los datos numéricos válidos son un signo opcional, seguido por uno o más dígitos (que opcionalmente contengan un punto decimal), seguidos por un exponente opcional. El exponente es una 'e' o una 'E' seguidos por uno o más dígitos.

Cuando la primera expresión es una cadena, el tipo de la variable dependerá de la segunda expresión.

$foo = 1 + "10.5";              // $foo es doble (11.5)
$foo = 1 + "-1.3e3";            // $foo es doble (-1299)
$foo = 1 + "bob-1.3e3";         // $foo es entero (1)
$foo = 1 + "bob3";              // $foo es entero (1)
$foo = 1 + "10 Cerditos";     // $foo es entero (11)
$foo = 1 + "10 Cerditos"; // $foo es entero (11)
$foo = "10.0 cerdos " + 1;        // $foo es entero (11)
$foo = "10.0 cerdos " + 1.0;      // $foo es double (11)

Para más información sobre esta conversión, mire en la página del manual de Unix strtod(3).

Si quisiera probar cualquiera de los ejemplos de esta sección, puede cortar y pegar los ejemplos e insertar la siguiente línea para ver por sí mismo lo que va ocurriendo:

echo "\$foo==$foo; el tipo es " . gettype( $foo ) . "<br>\n";

Anterior | Inicio | Siguiente
Números en punto flotante | Subir | Arrays


Arrays

Los arrays actualmente actúan tanto como tablas hash (arrays asociativos) como arrays indexados (vectores).

Arrays unidimensionales

PHP soporta tanto arrays escalares como asociativos. De hecho, no hay diferencias entre los dos. Se puede crear una array usando las funciones list() o array(), o se puede asignar el valor de cada elemento del array de manera explícita.

$a[0] = "abc";
$a[1] = "def";
$b["foo"] = 13;

También se puede crear un array simplemente añadiendo valores al array. Cuando se asigna un valor a una variable array usando corchetes vacíos, el valor se añadirá al final del array.

$a[] = "hola"; // $a[2] == "hola"
$a[] = "mundo"; // $a[3] == "mundo"

Los arrays se pueden ordenar usando las funciones
asort(), arsort(),
ksort(), rsort(),
sort(), uasort(),
usort(), y uksort()
dependiendo del tipo de ordenación que se desee.

Se puede contar el número de elementos de un array usando la función count().

Se puede recorrer un array usando las funciones next() y prev(). Otra forma habitual de recorrer un array es usando la función each().

Arrays Multidimensionales

Los arrays multidimensionales son bastante simples actualmente. Para cada dimensión del array, se puede añadir otro valor [clave] al final:

$a[1]      = $f;           # ejemplos de una sola dimensión
$a["foo"]  = $f;

$a[1][0]     = $f;         # bidimensional
$a["foo"][2] = $f;         # (se pueden mezclar índices numéricos y asociativos)
$a[3]["bar"] = $f;         # (se pueden mezclar índices numéricos y asociativos)

$a["foo"][4]["bar"][0] = $f;   # tetradimensional!

En PHP3 no es posible referirse a arrays multidimensionales directamente dentro de cadenas. Por ejemplo, lo siguiente no tendrá el resultado deseado:

$a[3]['bar'] = 'Bob';
echo "Esto no va a funcionar: $a[3][bar]";

En PHP3, lo anterior tendrá la salida Esto no va a funcionar: Array[bar]. De todas formas, el operador de concatenación de cadenas se puede usar para solucionar esto:

$a[3]['bar'] = 'Bob';
echo "Esto no va a funcionar: " . $a[3][bar];

En PHP4, sin embargo, todo el problema se puede circunvenir encerrando la referencia al array (dentro de la cadena) entre llaves:

$a[3]['bar'] = 'Bob';
echo "Esto va a funcionar: {$a[3][bar]}";

Se pueden "rellenar" arrays multidimensionales de muchas formas, pero la más difícil de comprender es cómo usar el comando array() para arrays asociativos. Estos dos trozos de código rellenarán el array unidimensional de la misma manera:

# Ejemplo 1:

$a["color"]	= "rojo";
$a["sabor"]	= "dulce";
$a["forma"]	= "redondeada";
$a["nombre"]	= "manzana";
$a[3]		= 4;

# Example 2:
$a = array(
     "color" => "rojo",
     "sabor" => "dulce",
     "forma" => "redondeada",
     "nombre"  => "manzana",
     3       => 4
);

La función array() se puede anidar para arrays multidimensionales:

<?
$a = array(
     "manzana"  => array(
          "color"  => "rojo",
          "sabor"  => "dulce",
          "forma"  => "redondeada"
     ),
     "naranja"  => array(
          "color"  => "naranja",
          "sabor"  => "ácido",
          "forma"  => "redondeada"
     ),
     "plátano"  => array(
          "color"  => "amarillo",
          "sabor"  => "paste-y",
          "forma"  => "aplatanada"
     )
);

echo $a["manzana"]["sabor"];    # devolverá "dulce"
?>

Anterior | Inicio | Siguiente
Cadenas | Subir | Objetos


Objetos

Inicialización de Objetos

Para inicializar un objeto, se usa la sentencia new para instanciar el objeto a una variable.

class foo {
    function do_foo () {
        echo "Doing foo.";
    }
}

$bar = new foo;
$bar->do_foo();

Anterior | Inicio | Siguiente
Arrays | Subir | Type juggling


Type juggling

PHP no requiere (o soporta) la declaración explícita del tipo en la declaración de variables; el tipo de una variable se determina por el contexto en el que se usa esa variable. Esto quiere decir que si se asigna un valor de cadena a la variable var, var se convierte en una cadena. Si después se asigna un valor entero a la variable var, se convierte en una variable entera.

Un ejemplo de conversión de tipo automática en PHP3 es el operador suma '+'. Si cualquiera de los operandos es un doble, entonces todos los operandos se evalúan como dobles, y el resultado será un doble. En caso contrario, los operandos se interpretarán como enteros, y el resultado será también un entero. Nótese que esto NO cambia los tipos de los operandos propiamente dichos; el único cambio está en cómo se evalúan los operandos.

$foo = "0";  // $foo es una cadena (ASCII 48)
$foo++;      // $foo es la cadena "1" (ASCII 49)
$foo += 1;   // $foo ahora es un entero (2)
$foo = $foo + 1.3;  // $foo ahora es un doble (3.3)
$foo = 5 + "10 Cerditos Pequeñitos"; // $foo es entero (15)
$foo = 5 + "10 Cerditos";     // $foo es entero (15)

Si los últimos dos ejemplos anteriores parecen confusos, vea Conversión de cadenas.

Si se desea obligar a que una variable sea evaluada con un tipo concreto, mire la sección Forzado de tipos. Si se desea cambiar el tipo de una variable, vea la función settype().

Si quisiese probar cualquiera de los ejemplos de esta sección, puede cortar y pegar los ejemplos e insertar la siguiente línea para ver por sí mismo lo que va ocurriendo:

echo "\$foo==$foo; el tipo es " . gettype( $foo ) . "<br>\n";

Nota: La posibilidad de una conversión automática a array no está definida actualmente.

$a = 1;       // $a es un entero
$a[0] = "f";  // $a se convierte en un array, en el que $a[0] vale "f"

Aunque el ejemplo anterior puede parecer que claramente debería resultar en que $a se convierta en un array, el primer elemento del cual es 'f', consideremos esto:

$a = "1";     // $a es una cadena
$a[0] = "f";  // ¿Qué pasa con los índices de las cadenas? ¿Qué ocurre?

Dado que PHP soporta indexación en las cadenas vía offsets usando la misma sintaxis que la indexación de arrays, el ejemplo anterior nos conduce a un problema: ¿debería convertirse $a en un array cuyo primer elemento sea "f", o debería convertirse "f" en el primer carácter de la cadena $a?

Por esta razón, tanto en PHP 3.0.12 como en PHP 4.0b3-RC4, el resultado de esta conversión automática se considera que no está definido. Los parches se están discutiendo, de todas formas.

Forzado de tipos

El forzado de tipos en PHP funciona como en C: el nombre del tipo deseado se escribe entre paréntesis antes de la variable a la que se pretende forzar.

$foo = 10;   // $foo es un entero
$bar = (double) $foo;   // $bar es un doble

Los forzados de tipo permitidos son:

  • (int), (integer) - fuerza a entero (integer)

  • (real), (double), (float) - fuerza a doble (double)

  • (string) - fuerza a cadena (string)

  • (array) - fuerza a array (array)

  • (object) - fuerza a objeto (object)

Nótese que las tabulaciones y espacios se permiten dentro de los paréntesis, así que los siguientes ejemplos son funcionalmente equivalentes:

$foo = (int) $bar;
$foo = ( int ) $bar;

Puede no ser obvio que ocurrirá cuando se fuerce entre ciertos tipos. Por ejemplo, lo siguiente debería ser tenido en cuenta.

Cuando se fuerza el cambio de un escalar o una variable de cadena a un array, la variable se convertirá en el primer elemento del array:

$var = 'ciao';
$arr = (array) $var;
echo $arr[0];  // produce la salida 'ciao'

Cuando se fuerza el tipo de una variable escalar o de una cadena a un objeto, la variable se convertirá en un atributo del objeto; el nombre del atributo será 'scalar':

$var = 'ciao';
$obj = (object) $var;
echo $obj->scalar;  // produce la salida 'ciao'

Anterior | Inicio | Siguiente
Objetos | Subir | Variables


Variables

Manual de PHP
Anterior Siguiente

Capítulo 7. Variables

Tabla de contenidos
Conceptos Básicos
Variables predefinidas
Ambito de las variables
Variables variables
Variables externas a PHP

Conceptos Básicos

En PHP las variables se representan como un signo de dólar seguido por el nombre de la variable. El nombre de la variable es sensible a minúsculas y mayúsculas.

Los nombres de variables siguen las mismas reglas que otras etiquetas en PHP. Un nombre de variable valido tiene que empezar con una letra o una raya (underscore), seguido de cualquier número de letras, números y rayas. Como expresión regular se podria expresar como: '[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'

Nota: En nuestro caso, una letra es a-z, A-Z, y los caracteres ASCII del 127 al 255 (0x7f-0xff).

<?php
$var = "Bob";
$Var = "Joe";
echo "$var, $Var";      // outputs "Bob, Joe"

$4site = 'not yet';     // invalid; starts with a number
$_4site = 'not yet';    // valid; starts with an underscore
$täyte = 'mansikka';    // valid; 'ä' is ASCII 228 (Extendido)
?>

En PHP3, las variables siempre se asignan por valor. Esto significa que cuando se asigna una expresión a una variable, el valor íntegro de la expresión original se copia en la variable de destino. Esto quiere decir que, por ejemplo, después e asignar el valor de una variable a otra, los cambios que se efectúen a una de esas variables no afectará a la otra. Para más información sobre este tipo de asignación, vea Expresiones.

PHP4 ofrece otra forma de asignar valores a las variables: asignar por referencia. Esto significa que la nueva variable simplemente referencia (en otras palabras, "se convierte en un alias de" ó "apunta a") la variable original. Los cambios a la nueva variable afectan a la original, y viceversa. Esto también significa que no se produce una copia de valores; por tanto, la asignación ocurre más rápidamente. De cualquier forma, cualquier incremento de velocidad se notará sólo en los bucles críticos cuando se asignen grandes matrices u objetos.

Para asignar por referencia, simplemente se antepone un ampersandsigno "&" al comienzo de la variable cuyo valor se está asignando (la variable fuente). Por ejemplo, el siguiente trozo de código produce la salida 'Mi nombre es Bob' dos veces:

<?php
$foo = 'Bob';              // Asigna el valor 'Bob' a $foo
$bar = &amp;$foo;              // Referencia $foo v&iacute;a $bar.
$bar = "Mi nombre es $bar";  // Modifica $bar...
echo $foo;                 // $foo tambi&eacute;n se modifica.
echo $bar;
?>

Algo importante a tener en cuenta es que sólo las variables con nombre pueden ser asignadas por referencia.

<?php
$foo = 25;
$bar = &amp;$foo;      // Esta es una asignaci&oacute;n v&aacute;lida.
$bar = &amp;(24 * 7);  // Inv&aacute;lida; referencia una expresi&oacute;n sin nombre.

function test() {
   return 25;
}

$bar = &amp;test();    // Inv&aacute;lida.
?>

Anterior | Inicio | Siguiente
Type juggling | Subir | Variables predefinidas


Variables predefinidas

PHP proporciona una gran cantidad de variables predefinidas a cualquier script que se ejecute. De todas formas, muchas de esas variables no pueden estar completamente documentadas ya que dependen de sobre qué servidor se esté ejecutando, la versión y configuración de dicho servidor, y otros factores. Algunas de estas variables no estarán disponibles cuando se ejecute PHP desde la línea de comandos.Para obtener una lista de estas variables podeis consultar la sección Variables predefinidas reservadas.

Aviso

A partir de PHP 4.2.0, el valor por defecto de la directiva PHP register_globals es off (desactivada). Este es un cambio importante en PHP. Teniendo register_globals off afecta el conjunto de variables predefinidas disponibles en el sistema. Por ejemplo, para obtener DOCUMENT_ROOT se usará $_SERVER['DOCUMENT_ROOT'] en vez de $DOCUMENT_ROOT ó $_GET['id'] de la URL http://www.example.com/test.php?id=3 en vez de $id ó $_ENV['HOME'] en vez de $HOME.

Para más información sobre este cambio, podeis consultar el apartado de configuración sobre register_globals, el capítulo sobre seguridad Usando "Register Globals" , asi como los anuncios de lanzamiento de PHP 4.1.0 y 4.2.0

El uso de las variables reservadas predefinidas en PHP, como matrices superglobales es recomendable.

A partir de PHP 4.1.0, PHP ofrece un conjunto adicional de matrices predefinidas, conteniendo variables del servidor web, el entorno y entradas del usuario. Estas nuevas matrices son un poco especiales porque son automáticamente globales. Por esta razón, son conocidas a menudo como "autoglobales" ó "superglobales". Las superglobales se mencionan más abajo; sin embargo para una lista de sus contenidos y más información sobre variables predefinidas en PHP, consultar la sección Variables predefinidas reservadas. Podreis ver como las variables predefinidas antiguas ($HTTP_*_VARS) todavía existen. A partir de PHP 5.0.0, las matrices de tipo "long" de variables predefinidas, se pueden desactivar con la directiva register_long_arrays.

Variables variables: Las superglobales no pueden usarse como variables variables.

Si ciertas variables no son definidas en variables_order, las matrices PHP predefinidas asociadas a estas, estarán vacias.

PHP superglobales

$GLOBALS

Contiene una referencia a cada variable disponible en el espectro de las variables del script. Las llaves de esta matriz son los nombres de las variables globales. $GLOBALS existe dese PHP 3.

$_SERVER

Variables definidas por el servidor web ó directamente relacionadas con el entorno en don el script se esta ejecutando. Análoga a la antigua matriz $HTTP_SERVER_VARS (la cual está todavía disponible, aunque no se use).

$_GET

Variables proporcionadas al script por medio de HTTP GET. Análoga a la antigua matriz $HTTP_GET_VARS (la cual está todavía disponible, aunque no se use).

$_POST

Variables proporcionadas al script por medio de HTTP POST. Análoga a la antigua matriz $HTTP_POST_VARS (la cual está todavía disponible, aunque no se use).

$_COOKIE

Variables proporcionadas al script por medio de HTTP cookies. Análoga a la antigua matriz $HTTP_COOKIE_VARS (la cual está todavía disponible, aunque no se use).

$_FILES

Variables proporcionadas al script por medio de la subida de ficheros via HTTP . Análoga a la antigua matriz $HTTP_POST_FILES (la cual está todavía disponible, aunque no se use). Vea también Subiendo ficheros por método POST para más información.

$_ENV

Variables proporcionadas al script por medio del entorno. Análoga a la antigua matriz $HTTP_ENV_VARS (la cual está todavía disponible, aunque no se use).

$_REQUEST

Variables proporcionadas al script por medio de cuaquier mecanismo de entrada del usuario y por lo tanto no se puede confiar en ellas. La presencia y el orden en que aparecen las variables en esta matriz es definido por la directiva de configuración variables_order. Esta matriz no tiene un análogo en versiones anteriores a PHP 4.1.0. Vea también import_request_variables().

Nota: Cuando se utiliza la linea de comandos, argv y argc no son incluidas aquí; estas variables se podrán encontrar en la matriz

$_SESSION

Variables registradas en la sesión del script. Análoga a la antigua matriz $HTTP_SESSION_VARS (la cual está todavía disponible, aunque no se use). Vea también la sección Funciones para el manejo de sessiones para más información.

Anterior | Inicio | Siguiente
Variables | Subir | Ambito de las variables


Ambito de las variables

El ámbito de una variable es el contexto dentro del que la variable está definida. La mayor parte de las variables PHP sólo tienen un ámbito simple. Este ámbito simple también abarca los ficheros incluidos y los requeridos. Por ejemplo:

<?php
$a = 1;
include "b.inc";
?>

Aquí, la variable $a dentro del script incluido b.inc. De todas formas, dentro de las funciones definidas por el usuario aparece un ámbito local a la función. Cualquier variables que se use dentro de una función está, por defecto, limitada al ámbito local de la función. Por ejemplo:

<?php
$a = 1; /* global scope */

function Test()
{
    echo $a; /* reference to local scope variable */
}

Test();
?>

Este script no producirá salida, ya que la orden echo utiliza una versión local de la variable $a, a la que no se ha asignado ningún valor en su ámbito. Puede que usted note que hay una pequeña diferencia con el lenguaje C, en el que las variables globales están disponibles automáticamente dentro de la función a menos que sean expresamente sobreescritas por una definición local. Esto puede causar algunos problemas, ya que la gente puede cambiar variables globales inadvertidamente. En PHP, las variables globales deben ser declaradas globales dentro de la función si van a ser utilizadas dentro de dicha función. Veamos un ejemplo:

<?php
$a = 1;
$b = 2;

function Sum()
{
    global $a, $b;

    $b = $a + $b;
}

Sum();
echo $b;
?>

El script anterior producirá la salida "3". Al declarar $a y $b globales dentro de la función, todas las referencias a tales variables se referirán a la versión global. No hay límite al número de variables globales que se pueden manipular dentro de una función.

Un segundo método para acceder a las variables desde un ámbito global es usando la matriz $GLOBALS. El ejemplo anterior se puede reescribir así:

<?php
$a = 1;
$b = 2;

function Sum()
{
    $GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];
}

Sum();
echo $b;
?>

La matriz $GLOBALS es una matriz asociativa con el nombre de la variable global como clave y los contenidos de dicha variable como el valor del elemento de la matriz. $GLOBALS existe en cualquier ámbito, esto pasa porque $GLOBALS es una superglobal. Aqui teneis un ejemplo que demuestra el poder de las superglobales:

<?php
function test_global()
{
    // Most predefined variables aren't "super" and require
    // 'global' to be available to the functions local scope.
    global $HTTP_POST_VARS;

    print $HTTP_POST_VARS['name'];

    // Superglobals are available in any scope and do
    // not require 'global'.  Superglobals are available
    // as of PHP 4.1.0
    print $_POST['name'];
}
?>

Otra característica importante del ámbito de las variables es la variable static. Una variable estática existe sólo en el ámbito local de la función, pero no pierde su valor cuando la ejecución del programa abandona este ámbito. Consideremos el siguiente ejemplo:

<?php
function Test ()
{
    $a = 0;
    echo $a;
    $a++;
}
?>

Esta función tiene poca utilidad ya que cada vez que es llamada asigna a $a el valor 0 y representa un "0". La sentencia $a++, que incrementa la variable, no sirve para nada, ya que en cuanto la función termina la variable $a desaparece. Para hacer una función útil para contar, que no pierda la pista del valor actual del conteo, la variable $a debe declararse como estática:

<?php
function Test()
{
    static $a = 0;
    echo $a;
    $a++;
}
?>

Ahora, cada vez que se llame a la función Test(), se representará el valor de $a y se incrementará.

Las variables estáticas también proporcionan una forma de manejar funciones recursivas. Una función recursiva es la que se llama a sí misma. Se debe tener cuidado al escribir una función recursiva, ya que puede ocurrir que se llame a sí misma indefinidamente. Hay que asegurarse de implementar una forma adecuada de terminar la recursión. La siguiente función cuenta recursivamente hasta 10, usando la variable estática $count para saber cuándo parar:

<?php
function Test()
{
    static $count = 0;

    $count++;
    echo $count;
    if ($count < 10) {
        Test ();
    }
    $count--;
}
?>

En motor Zend 1, utilizado por PHP4, implementa los modificadores static y global para variables en términos de referencias. Por ejemplo, una variable global verdadera importada dentro del ámbito de una función con global, crea una referencia a la variable global. Esto puede ser causa de un comportamiento inesperado, tal y como podemos comprobar en el siguiente ejemplo:

<?php
function test_global_ref() {
    global $obj;
    $obj = &new stdclass;
}

function test_global_noref() {
    global $obj;
    $obj = new stdclass;
}

test_global_ref();
var_dump($obj);
test_global_noref();
var_dump($obj);
?>

Al ejecutar este ejemplo obtendremos la siguiente salida:

NULL
object(stdClass)(0) {
}

Un comportamiento similar se aplica a static. Referencias no son guardadas estáticamente.

<?php
function &get_instance_ref() {
    static $obj;

    echo "Static object: ";
    var_dump($obj);
    if (!isset($obj)) {
        // Assign a reference to the static variable
        $obj = &new stdclass;
    }
    $obj->property++;
    return $obj;
}

function &get_instance_noref() {
    static $obj;

    echo "Static object: ";
    var_dump($obj);
    if (!isset($obj)) {
        // Assign the object to the static variable
        $obj = new stdclass;
    }
    $obj->property++;
    return $obj;
}

$obj1 = get_instance_ref();
$still_obj1 = get_instance_ref();
echo "\n";
$obj2 = get_instance_noref();
$still_obj2 = get_instance_noref();
?>

Al ejecutar este ejemplo obtendremos la siguiente salida:

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object(stdClass)(1) {
  ["property"]=>
  int(1)
}

Este ejemplo demuestra que al asignar una referencia a una variable estática, esta no es recordada cuando se invoca la funcion &get_instance_ref() por segunda vez.

Anterior | Inicio | Siguiente
Variables predefinidas | Subir | Variables variables


Variables variables

A veces es conveniente tener nombres de variables variables. Dicho de otro modo, son nombres de variables que se pueden establecer y usar dinámicamente. Una variable normal se establece con una sentencia como:

<?php
$a = "hello";
?>

Una variable variable toma el valor de una variable y lo trata como el nombre de una variable. En el ejemplo anterior, hello, se puede usar como el nombre de una variable utilizando dos signos de dólar. p.ej.

<?php
$$a = "world";
?>

En este momento se han definido y almacenado dos variables en el árbol de símbolos de PHP: $a, que contiene "hello", y $hello, que contiene "world". Es más, esta sentencia:

<?php
echo "$a ${$a}";
?>

produce el mismo resultado que:

<?php
echo "$a $hello";
?>

p.ej. ambas producen el resultado: hello world.

Para usar variables variables con matrices, hay que resolver un problema de ambigüedad. Si se escribe $$a[1] el intérprete necesita saber si nos referimos a utilizar $a[1] como una variable, o si se pretendía utilizar $$a como variable y el índice [1] como índice de dicha variable. La sintaxis para resolver esta ambiguedad es: ${$a[1]} para el primer caso y ${$a}[1] para el segundo.

Aviso

Tener en cuenta que variables variables no pueden usarse con Matrices superglobales. Esto significa que no se pueden hacer cosas como ${$_GET}. Si buscais un método para manejar la disponibilidad de superglobales y las antiguas HTTP_*_VARS, podeis intentar referiros a ellas.

Anterior | Inicio | Siguiente
Ambito de las variables | Subir | Variables externas a PHP


Variables externas a PHP

Formularios HTML (GET y POST)

Cuando se envía un formulario a un script PHP, las variables de dicho formulario pasan a estar automáticamente disponibles en el script gracias a PHP. Por ejemplo, consideremos el siguiente formulario:

Ejemplo 7-1. Variables de formulario simples

<form action="foo.php" method="POST">
    Name:  <input type="text" name="username"><br>
    Email: <input type="text" name="email"><br>
    <input type="submit" name="submit" value="Submit me!">
</form>

Dependiendo de tu configuración y preferencias personales, existen muchas maneras de acceder a los datos de tus formularios HTML. Algunos ejemplos:

Ejemplo 7-2. Accediendo datos de un formulario simple HTML POST

<?php
// Available since PHP 4.1.0

   print $_POST['username'];
   print $_REQUEST['username'];

   import_request_variables('p', 'p_');
   print $p_username;

// Available since PHP 3.  As of PHP 5.0.0, these long predefined
// variables can be disabled with the register_long_arrays directive.

   print $HTTP_POST_VARS['username'];

// Available if the PHP directive register_globals = on.  As of
// PHP 4.2.0 the default value of register_globals = off.
// Using/relying on this method is not preferred.

   print $username;
?>

Usando un formulario GET es similar excepto en el uso de variables predefinidas, que en este caso serán del tipo GET. GET también se usa con QUERY_STRING (la información despues del símbolo '?' en una URL). Por ejemplo http://www.example.com/test.php?id=3 contiene datos GET que son accesibles con $_GET['id']. Vea también $_REQUEST y import_request_variables().

Nota: Matrices superglobales, como $_POST y$_GET, están disponibles desde PHP 4.1.0.

Como hemos dicho, antes de PHP 4.2.0, el valor por defecto de register_globals era on (activado). Y, en PHP 3 estba siempre activado. La comunidad PHP anima a no confiar en esta directiva ya que es preferible asumir que tiene el valor off (desactivada) y programar teniendo en cuenta esto.

Nota: La directiva de configuración magic_quotes_gpc afecta a valores Get, Post y Cookie, Si esta activada (on) el valor (It's "PHP!") sera convertido automaticamente a (It\'s \"PHP!\"). "Escaping" es necesario en inserciones a bases de datos. Vea también addslashes(), stripslashes() y magic_quotes_sybase.

PHP tambien entiende matrices en el contexto de variables de formularios. (vea la faq relacionada). Se puede, por ejemplo, agrupar juntas variables relacionadas ó usar esta característica para obtener valores de una entrada "select2 múltiple. Por ejemplo, vamos a mandar un formulario asi mismo y a presentar los datos cuando se reciban:

Ejemplo 7-3. Variables de formulario más complejas

<?php
if ($HTTP_POST_VARS['action'] == 'submitted') {
    print '<pre>';

    print_r($HTTP_POST_VARS);
    print '<a href="'. $HTTP_SERVER_VARS['PHP_SELF'] .'">Please try again</a>';

    print '</pre>';
} else {
?>
<form action="<?php echo $HTTP_SERVER_VARS['PHP_SELF']; ?>" method="POST">
    Name:  <input type="text" name="personal[name]"><br>
    Email: <input type="text" name="personal[email]"><br>
    Beer: <br>
    <select multiple name="beer[]">
        <option value="warthog">Warthog</option>
        <option value="guinness">Guinness</option>
        <option value="stuttgarter">Stuttgarter Schwabenbräu</option>
    </select><br>
    <input type="hidden" name="action" value="submitted">
    <input type="submit" name="submit" value="submit me!">
</form>
<?php
}
?>

en PHP 3, el uso de matrices de variables de formularios está limitado a matrices unidimensionales. En PHP 4, no existe esta restricción.

IMAGE SUBMIT variable names

Cuando mandamos un formulario, es posible usar una imagen en vez del botón estandar de "mandar":

<input type="image" src="image.gif" name="sub">

Cuando el usuario hace click en cualquier parte de la imagen, el formulario que la acompaña se transmitirá al servidor con dos variables adicionales, sub_x y sub_y. Estas contienen las coordenadas del click del usuario dentro de la imagen. Los más experimentados puede notar que los nombres de variable enviados por el navegador contienen un guión en vez de un subrayado (guión bajo), pero PHP convierte el guión en subrayado automáticamente.

Cookies HTTP

PHP soporta cookies de HTTP de forma transparente tal y como están definidas en en las Netscape's Spec. Las cookies son un mecanismo para almacenar datos en el navegador y así rastrear o identificar a usuarios que vuelven. Se pueden crear cookies usando la función SetCookie(). Las cookies son parte de la cabecera HTTP, así que se debe llamar a la función SetCookie antes de que se envíe cualquier salida al navegador. Es la misma restricción que para la función header(). Los datos de una cookie estan disponibles en la matriz con datos de cookies apropiada, tal como $_COOKIE, $HTTP_COOKIE_VARS y también en $_REQUEST. vea la función setcookie() para más detalles y ejemplos.

Si se quieren asignar múltiples valores a una sola cookie, basta con añadir [] al nombre de la cookie para definirla como una matriz. Por ejemplo:

<?php
  setcookie("MyCookie[foo]", "Testing 1", time()+3600);
  setcookie("MyCookie[bar]", "Testing 2", time()+3600);
?>

Esto creara dos cookies separadas aunque MyCookie será una matriz simple en el script. Si se quiere definir una sola cookie con valores multiples, considerar primero el uso de la función serialize() ó explode() en el valor.

Nótese que una cookie reemplazará a una cookie anterior que tuviese el mismo nombre en el navegador a menos que el camino (path) o el dominio fuesen diferentes. Así, para una aplicación de carro de la compra se podría querer mantener un contador e ir pasándolo. P.ej.

Ejemplo 7-4. Ejemplo SetCookie

<?php
$count++;
setcookie("count", $count, time()+3600);
setcookie("Cart[$count]", $item, time()+3600);
?>

Puntos en los nombres de variables de entrada

Típicamente, PHP no altera los nombres de las variables cuando se pasan a un script. De todas formas, hay que notar que el punto no es un carácter válido en el nombre de una variable PHP. Por esta razón:
<?php
$varname.ext;  /* nombre de variable invalido */
?>
Lo que el intérprete ve es el nombre de una variable $varname, seguido por el operador de concatenación, y seguido por la prueba (es decir, una cadena sin entrecomillar que no coincide con ninguna palabra clave o reservada conocida) 'ext'. Obviamente, no se pretendía que fuese este el resultado.

Por esta razón, es importante hacer notar que PHP reemplazará automáticamente cualquier punto en los nombres de variables de entrada por guiones bajos (subrayados).

Determinando los tipos de variables

Dado que PHP determina los tipos de las variables y los convierte (generalmente) según lo necesita, no siempre resulta obvio de qué tipo es una variable dada en un momento concreto. PHP incluye varias funciones que descubren de qué tipo es una variable: gettype(), is_array(), is_float(), is_int(), is_object(), y is_string(). Vea también el capítulo sobre Tipos.

Anterior | Inicio | Siguiente
Variables variables | Subir | Constantes


Constantes

Manual de PHP
Anterior Siguiente

Capítulo 8. Constantes

Tabla de contenidos
Sintaxis
Constantes predefinidas

Una constante es un identificador para expresar un valor simple. Como el nombre sugiere, este valor no puede variar durante la ejecución del script. (Las constantes especiales __FILE__ y __LINE__ son una excepción a esto, ya que actualmente no lo soin). Una constante es sensible a mayúsculas por defecto. Por convención, los identificadores de constantes suelen declararse en mayúsculas

El nombre de una constante sigue las mismas reglas que cualquier etiqueta en PHP. Un nombre de constante válido empieza con una letra o un caracter de subrayado, seguido por cualquier número de letras, números, o subrayados. Se podrían expresar mediante la siguiente expresión regular: [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*

Nota: Para nuestros propósitos , entenderemos como letra los carácteres a-z, A-Z, y los ASCII del 127 hasta el 255 (0x7f-0xff).

El alcanze de una constante es global, Es decir, es posible acceder a ellas sin preocuparse por el ámbito de alcance.

Sintaxis

Se puede definir una constante usando la función define(). Una vez definida, no puede ser modificada ni eliminada .

Solo se puede definir como constantes valores escalares (boolean, integer, float y string ).

Para obtener el valor de una constante solo es necesario especificar su nombre. A diferencia de las variables, no se tiene que especificar el prefijo $. Tambien se puede utilizar la función constant(), para obtener el valor de una constante, en el caso de que queramos expresarla de forma dinámica Usa la función get_defined_constants() parar obtener una lista de todas las constantes definidas.

Nota: Las contantes y las variables (globales) se encuentran en un espacio de nombres distinto. Esto implica que por ejemplo TRUE y $TRUE son diferentes.

Si usas una constante todavia no definida, PHP asume que estás refiriéndote al nombre de la constante en si. Se lanzará un aviso si esto sucede. Usa la función defined() para comprobar la existencia de dicha constante.

Estas son las diferencias entre constantes y variables:

  • Las constantes no son precedidas por un símbolo de dolar ($)

  • Las contantes solo pueden ser definidas usando la función() define , nunca por simple asignación

  • Las constantes pueden ser definidas y accedidas sin tener en cuenta las reglas de alcanze del ámbito.

  • Las constantes no pueden ser redefinidas o eliminadas despues de establecerse; y

  • Las constantes solo puede albergar valores escalares

Ejemplo 8-1. Definiendo constantes

<?php
define("CONSTANT", "Hello world.");
echo CONSTANT; // outputs "Hello world."
echo Constant; // outputs "Constant" and issues a notice.
?>

Anterior | Inicio | Siguiente
Variables externas a PHP | Subir | Constantes predefinidas


Constantes predefinidas

PHP ofrece un largo número de constantes predefinidas a cualquier script en ejecución. Muchas de estas constantes, sin embargo, son creadas por diferentes extensiones, y solo estarán presentes si dichas extensiones están disponibles, bien por carga dinámica o porque has sido compiladas.

Se puede encontrar una lista de constantes predefinidas en la seccion Constantes predefinidas.

Anterior | Inicio | Siguiente
Constantes | Subir | Expresiones


Expresiones

Manual de PHP
Anterior Siguiente

Capítulo 9. Expresiones

Las expresiones son la piedra angular de PHP. En PHP, casi cualquier cosa que escribes es una expresión. La forma más simple y ajustada de definir una expresión es "cualquier cosa que tiene un valor".

Las formas más básicas de expresiones son las constantes y las variables. Cuando escribes "$a = 5", estás asignando '5' a $a. '5', obviamente, tiene el valor 5 ó, en otras palabras '5' es una expresión con el valor 5 (en este caso, '5' es una constante entera).

Después de esta asignación, se espera que el valor de $a sea 5 también, de manera que si escribes $b = $a, se espera también que se comporte igual que si escribieses $b = 5. En otras palabras, $a es una expresión también con el valor 5. Si todo va bien, eso es exactamente lo que pasará.

Las funciones son un ejemplo algo más complejo de expresiones. Por ejemplo, considera la siguiente función:

<?php
function foo () {
    return 5;
}
?>

Suponiendo que estés familiarizado con el concepto de funciones (si no lo estás échale un vistazo al capítulo sobre funciones), asumirás que teclear $c = foo() es esencialmente lo mismo que escribir $c = 5, y has acertado. Las funciones son expresiones que valen el valor que retornan. Como foo() devuelve 5, el valor de la expresión 'foo()' es 5. Normalmente las funciones no devuelven un valor fijo, sino que suele ser calculado.

Desde luego, los valores en PHP no se limitan a enteros, y lo más normal es que no lo sean. PHP soporta tres tipos escalares: enteros, punto flotante y cadenas (los tipos escalares son aquellos cuyos valores no pueden 'dividirse' en partes menores, no como los arrays, por ejemplo). PHP también soporta dos tipos compuestos (no escalares): arrays y objetos. Se puede asignar cada uno de estos tipos de valor a variables o bien retornarse de funciones, sin ningún tipo de limitación.

Hasta aquí, los usuarios de PHP/FI 2 no deberían haber notado ningún cambio. Sin embargo, PHP lleva las expresiones mucho más allá, al igual que otros lenguajes. PHP es un lenguaje orientado a expresiones, en el sentido de que casi todo es una expresión. Considera el ejemplo anterior '$a = 5'. Es sencillo ver que hay dos valores involucrados, el valor de la constante entera '5', y el valor de $a que está siendo actualizado también a 5. Pero la verdad es que hay un valor adicional implicado aquí, y es el valor de la propia asignación. La asignación misma se evalúa al valor asignado, en este caso 5. En la práctica, quiere decir que '$a = 5', independientemente de lo que hace, es una expresión con el valor 5. De esta manera, escribir algo como '$b = ($a = 5)' es como escribir '$a = 5; $b = 5;' (un punto y coma marca el final de una instrucción). Como las asignaciones se evalúan de derecha a izquierda, puedes escribir también '$b = $a = 5'.

Otro buen ejemplo de orientación a expresiones es el pre y post incremento y decremento. Los usuarios de PHP/FI 2 y los de otros muchos lenguajes les sonará la notación variable++ y variable--. Esto son las operaciones de incremento y decremento. En PHP/FI 2, la instrucción '$a++' no tiene valor (no es una expresión), y no puedes asignarla o usarla de ningún otro modo. PHP mejora las características del incremento/decremento haciéndolos también expresiones, como en C. En PHP, como en C, hay dos tipos de incremento - pre-incremento y post-incremento. Ambos, en esencia, incrementan la variable y el efecto en la variable es idéntico. La diferencia radica en el valor de la propia expresion incremento. El preincremento , escrito '++$variable', se evalúa al valor incrementado (PHP incrementa la variable antes de leer su valor, de ahí el nombre 'preincremento'). El postincremento, escrito '$variable++', se evalúa al valor original de $variable antes de realizar el incremento (PHP incrementa la variable después de leer su valor, de ahí el nombre 'postincremento').

Un tipo muy corriente de expresiones son las expresiones de comparación. Estas expresiones se evalúan a 0 o 1, significando FALSO (FALSE) o CIERTO (TRUE), respectivamente. PHP soporta > (mayor que), >= (mayor o igual que), == (igual que), != (distinto), < (menor que) y <= (menor o igual que). Estas expresiones se usan frecuentemente dentro de la ejecución condicional como la instrucción if.

El último tipo de expresiones que trataremos, es la combinación operador-asignación. Ya sabes que si quieres incrementar $a en 1, basta con escribir '$a++' o ++$a'. Pero qué pasa si quieres añadir más de 1, por ejemplo 3? Podrías escribir '$a++' múltiples veces, pero no es una forma de hacerlo ni eficiente ni cómoda. Una práctica mucho más corriente es escribir '$a = $a + 3'. '$a + 3' se evalúa al valor de $a más 3, y se asigna de nuevo a $a, lo que resulta en incrementar $a en 3. En PHP, como en otros lenguajes como C, puedes escribir esto de una forma más concisa, que con el tiempo será más clara y también fácil de entender. Añadir 3 al valor actual de $a se puede escribir como '$a += 3'. Esto quiere decir exactamente "toma el valor de $a, súmale 3, y asígnalo otra vez a $a". Además de ser más corto y claro, también resulta en una ejecución más rápida. El valor de '$a += 3', como el valor de una asignación normal y corriente, es el valor asignado. Ten en cuenta que NO es 3, sino el valor combinado de $a más 3 (ése es el valor asignado a $a). Cualquier operación binaria puede ser usada en forma de operador-asignación, por ejemplo '$a -= 5' (restar 5 del valor de $a), '$b *= 7' (multiplicar el valor de $b por 7), etc.

Hay otra expresión que puede parecer extraña si no la has visto en otros lenguaes, el operador condicional ternario:

<?php
$first ? $second : $third
?>

Si el valor de la primera subexpresión es verdadero (distinto de cero), entonces se evalúa la segunda subexpresión, si no, se evalúa la tercera y ése es el valor.

El siguiente ejemplo te ayudará a comprender un poco mejor el pre y post incremento y las expresiones en general:

<?php
function double($i) {
    return $i*2;
}
$b = $a = 5;        /* asignar el valor cinco a las variables $a y $b */
$c = $a++;          /* postincremento, asignar el valor original de $a (5) a $c */
$e = $d = ++$b;     /* preincremento, asignar el valor incrementado de $b (6) a
                       $d y a $e */

/* en este punto, tanto $d como $e son iguales a 6 */

$f = double($d++);  /* asignar el doble del valor de $d antes
                       del incremento, 2*6 = 12 a $f */
$g = double(++$e);  /* asignar el doble del valor de $e despu&eacute;s
                       del incremento, 2*7 = 14 a $g */
$h = $g += 10;      /* primero, $g es incrementado en 10 y termina valiendo 24.
                       despu&eacute;s el valor de la asignaci&oacute;n (24) se asigna a $h,
                       y $h tambi&eacute;n acaba valiendo 24. */
?>

Al principio del capítulo hemos dicho que describiríamos los distintos tipos de instrucciones y, como prometimos, las expresiones pueden ser instrucciones. Sin embargo, no todas las expresiones son instrucciones. En este caso, una instrucción tiene la forma 'expr' ';', es decir, una expresión seguida de un punto y coma. En '$b=$a=5;', $a=5 es una expresión válida, pero no es una instrucción en sí misma. Por otro lado '$b=$a=5:' sí es una instrucción válida.

Una última cosa que vale la pena mencionar, es el valor booleano de las expresiones. En muchas ocasiones, principalmente en condicionales y bucles, no estás interesado en el valor exacto de la expresión, sino únicamente si es TRUE ó FALSE Las constantes TRUE y FALSE son los dos posibles valores booleanos. Cuando es necesario, una expresión se puede transformar automáticamente al tipo booleano. Consultar la sección sobre type-casting para obtener detalles de como se hace.

PHP brinda una completa y potente implementación de expresiones, y documentarla enteramente está más allá del objetivo de este manual. Los ejemplos anteriores, deberían darte una buena idea de qué son las expresiones y cómo construir expresiones útiles. A lo largo del resto del manual, escribiremos expr para indicar una expresión PHP válida.

Anterior | Inicio | Siguiente
Constantes predefinidas | Subir | Operadores


Operadores

Manual de PHP
Anterior Siguiente

Capítulo 10. Operadores

Tabla de contenidos
Operadores Aritméticos
Operadores de Asignación
Operadores Bit a bit
Operadores de Comparación
Operador de ejecución
Operadores de Incremento/decremento
Operadores Lógicos
Precedencia de Operadores
Operadores de Cadenas

Operadores Aritméticos

¿Recuerdas la aritmética básica del colegio? Pues estos operadores funcionan exactamente igual.

Tabla 10-1. Operadores Aritméticos

ejemplo | nombre | resultado
$a + $b | Adición | Suma de $a y $b.
$a - $b | Substracción | Diferencia entre $a y $b.
$a * $b | Multiplicación | Producto de $a and $b.
$a / $b | División | Cociente de $a entre $b.
$a % $b | Módulo | Resto de $a dividido entre $b.

Anterior | Inicio | Siguiente
Expresiones | Subir | Operadores de Asignación


Operadores de Asignación

El operador básico de asignación es "=". A primera vista podrías pensar que es el operador de comparación "igual que". Pero no. Realmente significa que el operando de la izquierda toma el valor de la expresión a la derecha, (esto es, "toma el valor de").

El valor de una expresión de asignación es el propio valor asignado. Esto es, el valor de "$a = 3" es 3. Esto permite hacer cosas curiosas como

$a = ($b = 4) + 5; // ahora $a es igual a 9, y $b vale 4.

Además del operador básico de asignación, existen los "operadores combinados" para todas las operaciones aritméticas y de cadenas que sean binarias. Este operador combinado te permite, de una sola vez, usar una variable en una expresión y luego establecer el valor de esa variable al resultado de la expresión. Por ejemplo:

$a = 3;
$a += 5; // establece $a a 8, como si hubiésemos escrito: $a = $a + 5;
$b = "Hola ";
$b .= "Ahí!"; // establece $b a "Hola Ahí!", igual que si hiciésemos $b = $b . "Ahí!";

Fíjate en que la asignación realiza una nueva copia de la variable original (asignación por valor), por lo que cambios a la variable original no afectan a la copia. Esto puede tener interés si necesitas copiar algo como un array con muchos elementos dentro de un bucle que se repita muchas veces (cada vez se realizará una nueva copia del array). PHP4 soporta asignación por referencia, usando la sintaxis $var = &$othervar;, pero esto no es posible en PHP3. 'Asignación por referencia' quiere decir que ambas variables acabarán apuntando al mismo dato y que nada es realmente copiado.

Anterior | Inicio | Siguiente
Operadores | Subir | Operadores Bit a bit


Operadores Bit a bit

Los operadores bit a bit te permiten activar o desactivar bits individuales de un entero.

Tabla 10-2. Operadores Bit a bit

ejemplo | nombre | resultado
$a & $b | Y | Se activan los bits que están activos tanto en $a como $b.
$a | $b | O | Se activan los bits que están activos en $a o que lo están en $b.
$a ^ $b | Xor ("o exclusiva") | Se activan los bits que están activos en $a o en $b pero no en ambos a la vez.
~ $a | No | Se activan los bits que no están activos en $a.
$a << $b | Desplazamiento a la izquierda | Desplaza los bits de $a, $b posiciones hacia la izquierda (por aritmética binaria, cada posición desplazada equivale a multiplicar por dos el valor de $a)
$a >> $b | Desplazamiento a la derecha | Desplaza los bits de $a, $b posiciones hacia la derecha (por aritmética binaria, cada posición desplazada equivale a dividir entre dos el valor de $a)

Anterior | Inicio | Siguiente
Operadores de Asignación | Subir | Operadores de Comparación


Operadores de Comparación

Los operadores de comparación, como su nombre indica, permiten comparar dos valores.

Tabla 10-3. Operadores de Comparación

ejemplo | nombre | resultado
$a == $b | Igualdad | Cierto si $a es igual a $b.
$a === $b | Identidad | Cierto si $a es igual a $b y si son del mismo tipo (sólo PHP4)
$a != $b | Desigualdad | Cierto si $a no es igual a $b.
$a < $b | Menor que | Cierto si $a es estrictamente menor que $b.
$a > $b | Mayor que | Cierto si $a es estrictamente mayor que $b.
$a <= $b | Menor o igual que | Cierto si $a es menor o igual que $b.
$a >= $b | Mayor o igual que | Cierto si $a es mayor o igual que $b.

Otro operador condicional es el operador "?:" (o ternario), que funciona como en C y otros muchos lenguajes.

(expr1) ? (expr2) : (expr3);

La expresión toma el valor expr2 si expr1 se evalúa a cierto, y expr3 si expr1 se evalúa a falso.

Anterior | Inicio | Siguiente
Operadores Bit a bit | Subir | Operador de ejecución


Operador de ejecución

PHP soporta un operador de ejecución: el apóstrofe invertido (``). ¡Fíjate que no son apostrofes normales! PHP intentará ejecutar la instrucción contenida dentro de los apóstrofes invertidos como si fuera un comando del shell; y su salida devuelta como el valor de esta expresión (i.e., no tiene por qué ser simplemente volcada como salida; puede asignarse a una variable).

$output = `ls -al`;
echo "<pre>$output</pre>";

Ver también system(),
passthru(), exec(),
popen(), y
escapeshellcmd().

Anterior | Inicio | Siguiente
Operadores de Comparación | Subir | Operadores de Incremento/decremento


Operadores de Incremento/decremento

PHP soporta los operadores de predecremento y post incremento al estilo de C.

Tabla 10-4. Operadores de Incremento/decremento

ejemplo | nombre | efecto
++$a | Preincremento | Incrementa $a en uno y después devuelve $a.
$a++ | Postincremento | Devuelve $a y después incrementa $a en uno.
--$a | Predecremento | Decrementa $a en uno y después devuelve $a.
$a-- | Postdecremento | Devuelve $a y después decrementa $a en uno.

He aquí un listado de ejemplo:

<?php
echo "<h3>Postincremento</h3>";
$a = 5;
echo "Debería ser 5: " . $a++ . "<br>\n";
echo "Debería ser 6: " . $a . "<br>\n";

echo "<h3>Preincremento</h3>";
$a = 5;
echo "Debería ser 6: " . ++$a . "<br>\n";
echo "Debería ser 6: " . $a . "<br>\n";

echo "<h3>Postdecremento</h3>";
$a = 5;
echo "Debería ser 5: " . $a-- . "<br>\n";
echo "Debería ser 4: " . $a . "<br>\n";

echo "<h3>Predecremento</h3>";
$a = 5;
echo "Debería ser 4: " . --$a . "<br>\n";
echo "Debería ser 4: " . $a . "<br>\n";
?>

Anterior | Inicio | Siguiente
Operador de ejecución | Subir | Operadores Lógicos


Operadores Lógicos

Tabla 10-5. Operadores Lógicos

ejemplo | nombre | resultado
$a and $b | Y | Cierto si tanto $a como $b son ciertos.
$a or $b | O | Cierto si $a o $b son ciertos.
$a xor $b | O exclusiva | Cierto si $a es cierto o $b es cierto, pero no ambos a la vez.
! $a | Negación | Cierto si $a no es cierto.
$a && $b | Y | Cierto si tanto $a como $b son ciertos.
$a || $b | O | Cierto si $a o $b son ciertos.

La razón de las dos variaciones de "y" y "o" es que operan con distinta precedencia (ver Precedencia de Operadores.)

Anterior | Inicio | Siguiente
Operadores de Incremento/decremento | Subir | Precedencia de Operadores


Precedencia de Operadores

La precedencia de operadores especifica cómo se agrupan las expresiones. Por ejemplo, en la expresión 1 + 5 * 3, la respuesta es 16 y no 18 porque el operador de multiplicación ("*") tiene una mayor precedencia que el de adición ("+").

La siguiente tabla lista la precedencia de operadores, indicándose primero los de menor precedencia.

Tabla 10-6. Precedencia de Operadores

Asociatividad | Operadores
izquierda | ,
izquierda | or
izquierda | xor
izquierda | and
derecha | print
izquierda | = += -= *= /= .= %= &= |= ^= ~= <<= >>=
izquierda | ? :
izquierda | ||
izquierda | &&
izquierda | |
izquierda | ^
izquierda | &
no asociativo | == != ===
no asociativo | < <= > >=
izquierda | << >>
izquierda | + - .
izquierda | * / %
derecha | ! ~ ++ -- (int) (double) (string) (array) (object) @
derecha | [
no asociativo | new

Anterior | Inicio | Siguiente
Operadores Lógicos | Subir | Operadores de Cadenas


Operadores de Cadenas

Hay dos operadores de cadenas. El primero es el operador de concatenación ('.'), que devuelve el resultado de concatenar sus operandos izquierdo y derecho. El segundo es el operador de concatenación y asignación ('.='). Consulta Operadores de Asignación para más información.

$a = "Hola ";
$b = $a . "Mundo!"; // ahora $b contiene "Hola Mundo!"

$a = "Hola ";
$a .= "Mundo!"; // ahora $a contiene "Hola Mundo!"

Anterior | Inicio | Siguiente
Precedencia de Operadores | Subir | Estructuras de Control


Estructuras de Control

Manual de PHP
Anterior Siguiente

Capítulo 11. Estructuras de Control

Tabla de contenidos
if
else
elseif
Sintaxis Alternativa de Estructuras de Control
while
do..while
for
foreach
break
continue
switch
declare
return
require()
include()
require_once()
include_once()

Todo script PHP se compone de una serie de sentencias. Una sentencia puede ser una asignación, una llamada a función, un bucle, una sentencia condicional e incluso una sentencia que no haga nada (una sentencia vacía). Las sentencias normalmente acaban con punto y coma. Además, las sentencias se pueden agrupar en grupos de sentencias encapsulando un grupo de sentencias con llaves. Un grupo de sentencias es también una sentencia. En este capítulo se describen los diferentes tipos de sentencias.

if

La construcción if es una de las más importantes características de muchos lenguajes, incluido PHP. Permite la ejecución condicional de fragmentos de código. PHP caracteriza una estructura if que es similar a la de C:

<?php
if (expr)
    sentencia
?>

Como se describe en la sección sobre expresiones, expr se evalúa a su valor condicional (boolean). Si expr se evalúa como TRUE, PHP ejecutará la sentencia, y si se evalúa como FALSE - la ignorará. Se puede encontrar más información sobre los valores evaluados como FALSE en la sección Convirtiendo a un valor condicional (boolean)'.

El siguiente ejemplo mostraría a es mayor que b si $a fuera mayor que $b:

<?php
if ($a > $b)
   print "a es mayor que b";
?>

A menudo, se desea tener más de una sentencia ejecutada de forma condicional. Por supuesto, no hay necesidad de encerrar cada sentencia con una cláusula if. En vez de eso, se pueden agrupar varias sentencias en un grupo de sentencias. Por ejemplo, este código mostraría a es mayor que b si $a fuera mayor que $b, y entonces asignaría el valor de $a a $b:

<?php
 if ($a > $b) {
     print "a es mayor que b";
     $b = $a;
 }
?>

Las sentencias if se pueden anidar indefinidamente dentro de otras sentencias if, lo cual proporciona una flexibilidad completa para ejecuciones condicionales en las diferentes partes de tu programa.

Anterior | Inicio | Siguiente
Operadores de Cadenas | Subir | else


Sintaxis Alternativa de Estructuras de Control

PHP ofrece una sintaxis altenativa para alguna de sus estructuras de control; a saber, if, while, for, y switch. En cada caso, la forma básica de la sintaxis alternativa es cambiar abrir-llave por dos puntos (:) y cerrar-llave por endif;, endwhile;, endfor;, or endswitch;, respectivamente.

<?php if ($a==5): ?>
 A es igual a 5
 <?php endif; ?>

En el ejemplo de arriba, el bloque HTML "A es igual 5" se anida dentro de una sentencia if escrita en la sintaxis alternativa. El bloque HTML se mostraría solamente si $a fuera igual a 5.

La sintaxis alternativa se aplica a else y también a elseif. La siguiente es una estructura if con elseif y else en el formato alternativo:

<?php
 if ($a == 5):
     print "a es igual a 5";
     print "...";
 elseif ($a == 6):
     print "a es igual a 6";
     print "!!!";
 else:
     print "a no es ni 5 ni 6";
 endif;
?>

Mirar también while, for, e if para más ejemplos.

Anterior | Inicio | Siguiente
elseif | Subir | while


return

Si se llama desde una función, return() termina inmediatamente la ejecución de la función y retorna su argumento como valor de la función. return() tambien terminará la ejecución de una sentencia eval()ó un script PHP.

Si el script actual ha sido incluido ó requerido con include() ó require(), el control es transferido al script que llamo al script incluido. Además, si el script actual fue incluido, el valor dado a return() será retornado como el valor de la llamada include(). Si return() es invocado desde el script principal, la ejecución terminara inmediatamente. Si el script actual fue incluido con las opciones de configuración auto_prepend_file ó auto_append_file, la ejecución terminara inmediatamente.

Para más información, consultar Retornando valores.

Nota: Tener en cuenta que ya que return() es un constructor del lenguaje y no una función, los paréntesis alrededor de sus argumentos, son solo necesarios si el argumento contiene una expresion, no se suelen utilizar tan a menudo, cuando retornan una variable.

Anterior | Inicio | Siguiente
declare | Subir | require()


Funciones

Manual de PHP
Anterior Siguiente

Capítulo 12. Funciones

Tabla de contenidos
Funciones definidas por el usuario
Parámetros de las funciones
Devolviendo valores
Funciones variables
Funciones internas (incorporadas)

Funciones definidas por el usuario

Una función se puede definir con la siguiente sintaxis:

Ejemplo 12-1. Psuedo código para demostrar el uso de funciones

<?php
function foo ($arg_1, $arg_2, ..., $arg_n)
{
    echo "Funci&oacute;n de ejemplo.\n";
    return $retval;
}
?>

Cualquier instrucción válida de PHP puede aparecer en el cuerpo de la función, incluso otras funiones y definiciones de clases.

En PHP3, las funciones deben definirse antes de que se referencien. En PHP4 no existe tal requerimiento.Excepto cuando una función es definida condicionalmente como en los ejemplos siguientes.

Cuando una función es definida condicionalmente como se puede ver en estos dos ejemplos, su definición debe ser procesada antes que sea llamada.

Ejemplo 12-2. Funciones Condicionales

<?php

$makefoo = true;

/* We can't call foo() from here
   since it doesn't exist yet,
   but we can call bar() */

bar();

if ($makefoo) {
  function foo ()
  {
    echo "I don't exist until program execution reaches me.\n";
  }
}

/* Now we can safely call foo()
   since $makefoo evaluated to true */

if ($makefoo) foo();

function bar()
{
  echo "I exist immediately upon program start.\n";
}

?>

Ejemplo 12-3. Funciones dentro de funciones

<?php
function foo()
{
  function bar()
  {
    echo "I don't exist until foo() is called.\n";
  }
}

/* We can't call bar() yet
   since it doesn't exist. */

foo();

/* Now we can call bar(),
   foo()'s processesing has
   made it accessible. */

bar();

?>

PHP no soporta la redefinición de funciones previamente declaradas.

Nota: Los nombres de funciones se pueden llamar con mayusculas o minusculas, aunque es una buena costumbre el llamar a las funciones tal y como aparecen en su definición.

PHP3 no soporta un número variable de parámetros, aunque sí soporta parámetros por defecto (ver Valores por defecto de de los parámetros para más información). PHP4 soporta ambos: ver Listas de longitud variable de parámetros y las referencias de las funciones func_num_args(), func_get_arg(), y func_get_args() para más información.

Anterior | Inicio | Siguiente
include_once() | Subir | Parámetros de las funciones


Parámetros de las funciones

La información puede suministrarse a las funciones mediante la lista de parámetros, una lista de variables y/o constantes separadas por comas.

PHP soporta pasar parámetros por valor (el comportamiento por defecto), por referencia, y parámetros por defecto. Listas de longitud variable de parámetros sólo están soportadas en PHP4 y posteriores; ver Listas de longitud variable de parámetros y la referencia de las funciones func_num_args(), func_get_arg(), y func_get_args() para más información. Un efecto similar puede conseguirse en PHP3 pasando un array de parámetros a la función:

Ejemplo 12-4. Pasando matrices a funciones

<?php
function takes_array($input)
{
    echo "$input[0] + $input[1] = ", $input[0]+$input[1];
}
?>

Pasar parámetros por referencia

Por defecto, los parámetros de una función se pasan por valor (de manera que si cambias el valor del argumento dentro de la función, no se ve modificado fuera de ella). Si deseas permitir a una función modificar sus parámetros, debes pasarlos por referencia.

Si quieres que un parámetro de una función siempre se pase por referencia, puedes anteponer un ampersand (&) al nombre del parámetro en la definición de la función:

Ejemplo 12-5. Pasando parámetros de funciones por referencia

<?php
function add_some_extra(&amp;$string)
{
    $string .= ' y algo m&aacute;s.';
}
$str = 'Esto es una cadena, ';
add_some_extra($str);
echo $str;    // Saca 'Esto es una cadena, y algo m&aacute;s.'
?>

Parámetros por defecto

Una función puede definir valores por defecto para los parámetros escalares estilo C++:

Ejemplo 12-6. Uso de parámetros por defecto en funciones

<?php
function makecoffee ($type = "cappucino")
{
    return "Hacer una taza de $type.\n";
}
echo makecoffee ();
echo makecoffee ("espresso");
?>

La salida del fragmento anterior es:
Hacer una taza de cappucino.
Hacer una taza de espresso.

El valor por defecto tiene que ser una expresión constante, y no una variable, miembro de una clase ó llamada a una función.

Destacar que cuando se usan parámetros por defecto, estos tienen que estar a la derecha de cualquier parámetro sin valor por defecto; de otra manera las cosas no funcionarán de la forma esperada. Considera el siguiente fragmento de código:

Ejemplo 12-7. Uso incorrecto de parámetros por defecto en funciones

<?php
function makeyogurt ($type = "acidophilus", $flavour)
{
    return "Haciendo un bol de $type $flavour.\n";
}

echo makeyogurt ("mora");   // No funcionar&aacute; de la manera
esperada
?>

La salida del ejemplo anterior es:

Warning: Missing argument 2 in call to makeyogurt() in
/usr/local/etc/httpd/htdocs/php3test/functest.html on line 41
Haciendo un bol de mora.

Y ahora, compáralo con:

Ejemplo 12-8. Uso correcto de parámetros por defecto en funciones

<?php
function makeyogurt ($flavour, $type = "acidophilus")
{
    return "Haciendo un bol de $type $flavour.\n";
}

echo makeyogurt ("mora");   // funciona como se esperaba
?>

La salida de este ejemplo es:

Haciendo un bol de acidophilus mora.

Lista de longitud variable de parámetros

PHP4 soporta las listas de longitud variable de parámetros en las funciones definidas por el usuario. Es realmente fácil, usando las funciones func_num_args(), func_get_arg(), y func_get_args().

No necesita de ninguna sintaxis especial, y las listas de parámetros pueden ser escritas en la llamada a la función y se comportarán de la manera esperada.

Anterior | Inicio | Siguiente
Funciones | Subir | Devolviendo valores


Devolviendo valores

Los valores se retornan usando la instrucción opcional return. Puede devolverse cualquier tipo de valor, incluyendo listas y objetos.

Ejemplo 12-9. Us0 de return()

<?php
function square ($num)
{
    return $num * $num;
}
echo square (4);   // saca '16'.
?>

No puedes devolver múltiples valores desde una función, pero un efecto similar se puede conseguir devolviendo una lista.

Ejemplo 12-10. Retornando una matriz para obtener múltiples valores

<?php
function small_numbers()
{
    return array (0, 1, 2);
}
list ($zero, $one, $two) = small_numbers();
?>

Para retornar una referencia desde una función, se tiene que usar el operador de referencias & tanto en la declaración de la función como en la asignación del valor de retorno a una variable;

Ejemplo 12-11. Retornando una referencia desde una función

<?php
function &returns_reference()
{
    return $someref;
}

$newref =& returns_reference();
?>

Para más información sobre referencias,consultar Explicando Referencias.

Anterior | Inicio | Siguiente
Parámetros de las funciones | Subir | Funciones variables


Funciones variables

PHP soporta el concepto de funciones variable, esto significa que si una variable tiene unos paréntesis añadidos al final, PHP buscará una función con el mismo nombre que la evaluación de la variable, e intentará ejecutarla. Entre otras cosas, esto te permite implementar retrollamadas (callbacks), tablas de funciones y demás.

Las funciones varibles no funcionarán con construcciones del lenguaje, tal como echo(), print(), unset(), isset(), empty(), include(), require() y derivados. Se necesitará usar una función propia para utilizar cualquiera de estos constructores como funciones variables.

Ejemplo 12-12. Ejemplo de función variable

<?php
function foo()
{
    echo "In foo()<br>\n";
}

function bar($arg = '')
{
    echo "In bar(); argument was '$arg'.<br>\n";
}

// This is a wrapper function around echo
function echoit($string)
{
    echo $string;
}

$func = 'foo';
$func();        // This calls foo()

$func = 'bar';
$func('test');  // This calls bar()

$func = 'echoit';
$func('test');  // This calls echoit()
?>

También se puede llamar a un metodo de un objeto usando la característica variable de las funciones.

Ejemplo 12-13. Ejemplo sobre el metodo variable

<?php
class Foo
{
    function Var()
    {
        $name = 'Bar';
        $this->$name(); // This calls the Bar() method
    }

    function Bar()
    {
        echo "This is Bar";
    }
}

$foo = new Foo();
$funcname = "Var";
$foo->$funcname();  // This calls $foo->Var()

?>

Ver también call_user_func(), variable variables y function_exists().

Anterior | Inicio | Siguiente
Devolviendo valores | Subir | Funciones internas (incorporadas)


Funciones internas (incorporadas)

PHP tiene incorporadas muchas funciones y construcciones. Existen también funciones que requieren extensiones específicas de PHP para que no fallen con un error fatal del tipo "undefined function". Por ejemplo, para usar funciones image, tal como imagecreatetruecolor(), se necesita compilar PHP con soporte para GD. O para usar mysql_connect() se necesita compilar PHP con soporte para MySQL. Existen muchas funciones en el núcleo de PHP que se incluyen en cada version de PHP, como las funciones string y variable. Una llamada a la función phpinfo() ó get_loaded_extensions() mostrará que extensiones están cargadas en tu versión de PHP. Tener tambien en cuenta que muchas extensiones se encuentran activadas por defecto y que el manual de PHP se encuentra dividido en partes, según estas extensiones. Vea los capítulos configuración, instalación y los capitulos sobre cada extensión, para obtener información sobre como configurar vuestro PHP

La explicación de como leer e intrerpretar un prototipo de función se encuentra en la sección del manual titulada como leer la definición de una función. Es importante entender que devuelve una función ó si la función trabaja directamente en el valor entregado a la misma. Por ejemplo, str_replace() devuelve una cadena modificada mientras que usort() trabaja directamente en el valor entregado a la misma. Cada página del manual contiene información específica sobre las diferentes funciones existentes, parametros que utilizan, valores devueltos, cambios de comportamiento, etc. Es importante conocer estas diferencias para poder escribir correctamente código PHP.

Vea también function_exists(), referencias de funciones,
 get_extension_funcs() y
 dl().

Anterior | Inicio | Siguiente
Funciones variables | Subir | Clases y Objetos


Clases y Objetos

Manual de PHP
Anterior Siguiente

Capítulo 13. Clases y Objetos

Tabla de contenidos
class

class

Una clase es una colección de variables y de funciones que acceden a esas variables. Una clase se define con la siguiente sintaxis:

<?php
class Cart {
    var $items;  // Items en nuestro carro de la compra

    // Añadir $num artículos de tipo $artnr al carro

    function add_item ($artnr, $num) {
        $this->items[$artnr] += $num;
    }

    // Sacar $num artículos del tipo $artnr del carro

    function remove_item ($artnr, $num) {
        if ($this->items[$artnr] > $num) {
            $this->items[$artnr] -= $num;
            return true;
        } else {
            return false;
        }
    }
}
?>

El ejemplo define una clase llamada Cart que consiste en un array asociativo de artículos en el carro y dos funciones para meter y sacar ítems del carro

Las clases son tipos, es decir, son plantillas para variables. Tienes que crear una variable del tipo deseado con el operador new.

$cart = new Cart;
 $cart->add_item("10", 1);

Este ejemplo crea un objeto $cart de clase Cart. La función add_item() de ese objeto se llama para añadir un item del artículo número 10 al carro.

Las Clases pueden ser extensiones de otras clases. Las clases extendidas o derivadas tienen todas las variables y funciones de la clase base y lo que les añadas al extender la definición. La herencia múltiple no está soportada.

class Named_Cart extends Cart {
    var $owner;

    function set_owner ($name) {
        $this->owner = $name;
    }
}

Ese ejemplo define una clase Named_Cart (carro con nombre o dueño) que tiene todas las variables y funciones de Cart, y además añade la variable $owner y una función adicional set_owner(). Un carro con nombre se crea de la forma habitual y, una vez hecho, puedes acceder al propietario del carro. En los carros con nombre también puedes acceder a las funciones normales del carro:

$ncart = new Named_Cart;    // Creamos un carro con nombre
$ncart->set_owner ("kris"); // Nombramos el carro
print $ncart->owner;        // Imprimimos el nombre del propietario
$ncart->add_item ("10", 1); // Funcionalidad heredada de Cart

Entre funciones de una clase, la variable $this hace referencia al propio objeto. Tienes que usar $this->loquesea para acceder a una variable o función llamada loquesea del objeto actual.

Los constructores son funciones de una clase que se llaman automáticamente al crear una nueva instancia (objeto) de una clase. Una función se convierte en constructor cuando tiene el mismo nombre que la clase.

class Auto_Cart extends Cart {
    function Auto_Cart () {
        $this->add_item ("10", 1);
    }
}

Este ejemplo define una clase Auto_Cart que es un Cart junto con un constructor que inicializa el carro con un item del tipo de artículo "10" cada vez que se crea un nuevo Auto_Cart con "new". Los constructores también pueden recibir parámetros y estos parámetros pueden ser opcionales, lo que los hace más útiles.

class Constructor_Cart extends Cart {
    function Constructor_Cart ($item = "10", $num = 1) {
        $this->add_item ($item, $num);
    }
}

// Compramos las mismas cosas aburridas de siempre

$default_cart   = new Constructor_Cart;

// Compramos las cosas interesantes

$different_cart = new Constructor_Cart ("20", 17);

Atención

Para las clases derivadas, el constructor de la clase padre no es llamado automáticamente cuando se llama al constructor de la clase derivada.

Anterior | Inicio | Siguiente
Funciones internas (incorporadas) | Subir | Explicando las Referencias


Explicando las Referencias

Manual de PHP
Anterior Siguiente

Capítulo 14. Explicando las Referencias

Tabla de contenidos
What References Are
Lo que las Referencias son
Lo que las Referencias no son
Paso de variables por Referencia
Retorno por Referencia
Borrando Referencias
Más Referencias

What References Are

Las Referencias en PHP son un medio para acceder al mismo contenido de una variable pero con diferentes nombres. No son como los punteros de C, sino que son alias en la tabla de símbolos. Hay que tener en cuenta, que en PHP el nombre de una variable y el contenido de una variable son diferentes, de manera que el mismo contenido, puede tener varios nombres. La analogía más cercana podría ser la de los archivos de Unix y sus nombres, dónde los nombres de las variables serían los directorios, y el contenido de las variables es el archivo en si. Las referencias también pueden ser pensadas como un enlace duro en un sistema de archivos Unix.

Anterior | Inicio | Siguiente
Clases y Objetos | Subir | Lo que las Referencias son


Lo que las Referencias son

Las Referencias en PHP te permiten lograr que dos variables "apunten" al mismo contenido. Cuando haces algo como:

$a =& $b

significa que $a y $b apuntan a la misma variable.

Nota: $a y $b son completamente iguales, no es que $a esté apuntando a $b o viceversa, sino que tanto $a como $b apuntan al mismo lugar.

La misma sintáxis puede ser utilizada con funciones, que devuelven Referencias, y con el operador new (en PHP 4.0.4 o superior):

$bar =& new fooclass();
$foo =& find_var ($bar);

Nota: El no utilizar el operador & causa que el objeto sea copiado en memoria. Si utilizamos $this en la clase, entonces actuaremos sobre la instancia actual de la clase. Las asignaciones sin & harán una copia de la instancia (por ejemplo, del objeto) y $this operará en la copia, lo que no siempre es el comportamiento deseado. Usualmente se desea utilizar una sola instancia, debido a razones de memoria y performance de la aplicación.

Mientras que se puede utilizar @ para silenciar cualquier error en el constructor utilizando @new, esto no funciona cuando utilizamos &new. Esto es una limitación del Zend Engine y por lo tanto, resultará en un error de sintáxis.

Otro uso que se le puede dar a las referencias es el traspaso de variables por-referencia. Esto se logra haciendo que una variable 'local' a la función y una variable en el script 'referencien' al mismo contenido. Por ejemplo:

function foo (&$var)
{
    $var++;
}

$a=5;
foo ($a);

hará que $a valga 6. Esto es posible porque en la funció foo, la variable $var 'referencia' al mismo contenido que la variable $a. Más información acerca de paso por referencia.

Un tercer uso de las referencias es el retorno por referencia.

Anterior | Inicio | Siguiente
Explicando las Referencias | Subir | Lo que las Referencias no son


Lo que las Referencias no son

Como se ha mencionado antes, las Referencias NO son punteros. Esto significa que el siguiente ejemplo no hará lo que se espera:

function foo (&$var)
{
    $var =& $GLOBALS["baz"];
}
foo($bar);

Lo que ocurrirá aquí es que $var en foo será 'ligada' con $bar al momento de llamar a la función. Pero luego será 're-ligada' con $GLOBALS["baz"]. No existe manera de ligar $bar en el ámbito global del script con alguna otra cosa utilizando el mecanismo de Referencias, ya que $bar no existe dentro de foo (está representado por $var, pero $var solo está ligado por el contenido, no por el nombre en la tabla de símbolos).

Anterior | Inicio | Siguiente
Lo que las Referencias son | Subir | Paso de variables por Referencia


Paso de variables por Referencia

Podemos pasar variables a una función por referencia, para que ésta pueda modificar sus argumentos. La sintáxis es la siguiente :

function foo (&$var)
{
    $var++;
}

$a=5;
foo ($a);
// $a ser&aacute; 6 aqui

Notar que no hay signo de referencia en la llamada a la función - solo en la definición de la misma. Colocar el signo de referencia solo en la definición de la función alcanza para pasar correctamente el argumento por referencia.

La lista siguiente indica que puede ser pasado por referencia:

  • Variables, por ejemplo foo($a)

  • Operador New, por ejemplo foo(new foobar())

  • Referencias, devueltas por una función:

    function &bar()
{
    $a = 5;
    return $a;
}
foo(bar());

    Se recomienda leer también la explicación sobre retorno por referencia.

Cualquier otro tipo de expresión no debería pasarse por referencia, ya que el resultado sería indefinido. Los ejemplos de paso por referencia siguientes son inválidos:

function bar() // Notar que falta &
{
    $a = 5;
    return $a;
}
foo(bar());

foo($a = 5) // Expresi&oacute;n, no variable
foo(5) // Constante, no variable

Estos requerimientos son para PHP 4.0.4 y superior.

Anterior | Inicio | Siguiente
Lo que las Referencias no son | Subir | Retorno por Referencia


Retorno por Referencia

Devolver por Referencia es muy útil cuando se quiere utilizar una función para averiguar a que variable debe estar una referencia ligada. Cuando se devuelve por referencia, se debe utilizar esta sintáxis:

function &encontrar_var ($param)
{
    ...codigo...
    return $var_encontrada;
}

$foo =& encontrar_var ($bar);
$foo->x = 2;

En este ejemplo, el atributo del objeto devuelto por la función encontrar_var fue asignado, no ya en la copia, como habría sucedido si no se utilizaba la sintáxis de referencias.

Nota: A diferencia del paso de parámetros, aquí se debe utilizar & en ambos lugares - para indicar que se pretende devolver por referencia ( y no una copia, como usualmente sucede) y que además esa referencia sea 'ligada' a una variable, y no solo asignada.

Anterior | Inicio | Siguiente
Paso de variables por Referencia | Subir | Borrando Referencias


Borrando Referencias

Cuando de borra una referencia, solo se rompe esa unión entre el nombre de la variable y el contenido. Esto no significa que el contenido haya sido destruido. Por ejemplo :

$a = 1;
$b =& $a;
unset ($a);

no destruiría $b, solo $a.

Nuevamente, sería útil pensar el tema de las referencias como una analogía al comando unlink de Unix.

Anterior | Inicio | Siguiente
Retorno por Referencia | Subir | Más Referencias


Más Referencias

Muchas construcciones sintácticas en PHP son implementadas utilizando el mecanismo referencial, de manera que todo lo dicho anteriormente sobre las referencias también se aplica a estas construcciones. Algunas de ellas, como pasar o retornar por referencia, se mencionaron antes. Otras construcciones que utilizan referencias son:

Referencias globales

Cuando declaramos una variable como global $var en realidad estamos creando una referencia a una variable global. Esto significa, que es lo mismo que hacer :

$var =& $GLOBALS["var"];

De esta manera, por ejemplo, si borramos $var no estaríamos borrando la variable global.

$this

En un método de objeto, $this es siempre una referencia al objeto que contiene el método.

Anterior | Inicio | Siguiente
Borrando Referencias | Subir | Seguridad


Seguridad

Manual de PHP
Anterior Siguiente

III. Seguridad

Tabla de contenidos
15. Seguridad

Anterior | Inicio | Siguiente
Más Referencias |  | Seguridad


Seguridad

Manual de PHP
Anterior Siguiente

Capítulo 15. Seguridad

Tabla de contenidos
Consideraciones generales
Instalación como un binario CGI
Instalación como módulo de Apache
Seguridad del sistema de archivos
Seguridad de Bases de Datos
Reporte de Errores
Uso de Register Globals
Datos Enviados por el Usuario
Ocultando PHP
Mantenerse al Día

PHP es un poderoso lenguaje e intérprete, ya sea incluido como parte de un servidor web en forma de módulo o ejecutado como un binario CGI separado, es capaz de acceder a archivos, ejecutar comandos y abrir conexiones de red en el servidor. Estas propiedades hacen que cualquier cosa que sea ejecutada en un servidor web sea insegura por naturaleza. PHP está diseñado específicamente para ser un lenguaje más seguro para escribir programas CGI que Perl o C, y con la selección correcta de opciones de configuración en tiempos de compilación y ejecución, y siguiendo algunas prácticas correctas de programación, PHP le puede dar la combinación precisa de libertad y seguridad que usted necesita.

Ya que hay muchas maneras de utilizar PHP, existen varias opciones de configuración diseñadas para controlar su comportamiento. Un amplio rango de opciones le garantizan que pueda usar PHP para muchos propósitos distintos, pero también quiere decir que hay combinaciones de éstas opciones y configuraciones de servidor que pueden resultar en un entorno inseguro.

El nivel de flexibilidad en la configuración de PHP se compara quizás solo con su flexibilidad de desarrollo. PHP puede ser usado para escribir aplicaciones completas de servidor, con todo el poder de un usuario de un intérprete de comandos, o puede ser usado para inclusiones simples del lado del servidor con muy poco riesgo en un entorno minuciosamente controlado. Cómo construir ese entorno, y qué tan seguro es, básicamente depende del desarrollador PHP.

Este capítulo comienza con algunas recomendaciones generales de seguridad, explica las diferentes combinaciones de opciones de configuración y las situaciones en las que pueden ser usadas con seguridad, y describe diferentes consideraciones a la hora de programar para diferentes niveles de seguridad.

Consideraciones generales

La pretensión de contar con un sistema completamente seguro es prácticamente un imposible, de modo que el enfoque usado con mayor frecuencia en la profesión de seguridad es uno que busque el balance adecuado entre riesgo y funcionalidad. Si cada variable enviada por un usuario requiriera de dos formas de validación biométrica (como rastreo de retinas y análisis dactilar), usted contaría con un nivel extremadamente alto de confiabilidad. También implicaría que llenar los datos de un formulario razonablemente complejo podría tomar media hora, cosa que podría incentivar a los usuarios a buscar métodos para esquivar los mecanismos de seguridad.

La mejor seguridad con frecuencia es lo suficientemente razonable como para suplir los requerimientos dados sin prevenir que el usuario realice su labor de forma natural, y sin sobrecargar al autor del código con una complejidad excesiva. De hecho, algunos ataques de seguridad son simples recursos que aprovechan las vulnerabilidades de este tipo de seguridad sobrecargada, que tiende a erosionarse con el tiempo.

Una frase que vale la pena recordar: Un sistema es apenas tan bueno como el eslabón más débil de una cadena. Si todas las transacciones son registradas copiosamente basándose en la fecha/hora, ubicación, tipo de transacción, etc. pero la verificación del usuario se realiza únicamente mediante una cookie sencilla, la validez de atar a los usuarios al registro de transacciones es mermada severamente.

Cuando realice pruebas, tenga en mente que no será capaz de probar todas las diferentes posibilidades, incluso para las páginas más simples. Los datos de entrada que usted puede esperar en sus aplicaciones no necesariamente tendrán relación alguna con el tipo de información que podría ingresar un empleado disgustado, un cracker con meses de tiempo entre sus manos, o un gato doméstico caminando sobre el teclado. Es por esto que es mejor observar el código desde una perspectiva lógica, para determinar en dónde podrían introducirse datos inesperados, y luego hacer un seguimiento de cómo esta información es modificada, reducida o amplificada.

Internet está repleto de personas que tratan de crearse fama al romper la seguridad de su código, bloquear su sitio, publicar contenido inapropiado, y por lo demás haciendo que sus días sean más interesantes. No importa si usted administra un sitio pequeño o grande, usted es un objetivo por el simple hecho de estar en línea, por tener un servidor al cual es posible conectarse. Muchas aplicaciones de cracking no hacen distinciones por tamaños, simplemente recorren bloques masivos de direcciones IP en busca de víctimas. Trate de no convertirse en una.

Anterior | Inicio | Siguiente
Seguridad | Subir | Instalación como un binario CGI


Instalación como un binario CGI

Posibles ataques

El uso de PHP como un binario CGI es una opción para el tipo de situaciones en las que por alguna razón no se desea integrar PHP como módulo de algún software de servidor web (como Apache), o en donde se espera usar PHP con diferentes tipos de capas que envuelven el entorno CGI para crear ambientes chroot y setuid seguros para la ejecución de scripts. Esta configuración usualmente involucra la instalación de un binario ejecutable del intérprete PHP en el directorio cgi-bin del servidor web. El aviso de seguridad de CERT CA-96.11 recomienda que se evite la colocación de cualquier intérprete bajo cgi-bin. Incluso si el binario PHP puede ser usado como un intérprete independiente, PHP está diseñado para prevenir el tipo de ataques que esta configuración hace posible:

  • Acceso a archivos del sistema: http://mi.servidor/cgi-bin/php?/etc/passwd

    La información del query en una url, la cual viene después del signo de interrogación (?), es pasada como argumentos de línea de comandos al intérprete por la interfaz CGI. Usualmente los intérpretes abren y ejecutan el archivo especificado como primer argumento de la línea de comandos.

    Cuando es invocado como un binario CGI, PHP se rehúsa a interpretar los argumentos de la línea de comandos.

  • Acceso a cualquier documento web en el servidor: http://mi.servidor/cgi-bin/php/zona_secreta/doc.html

    El segmento de la url que sigue al nombre del binario de PHP, que contiene la información sobre la ruta /zona_secreta/doc.html es usada convencionalmente para especificar el nombre de un archivo que ha de ser abierto e interpretado por el programa CGI. Usualmente, algunas directivas de configuración del servidor web (Apache: Action) son usadas para redireccionar peticiones de documentos como http://mi.servidor/zona_secreta/script.php al intérprete de PHP. Bajo este modelo, el servidor web revisa primero los permisos de acceso al directorio /zona_secreta, y después de eso crea la petición de redireccionamiento a http://mi.servidor/cgi-bin/php/zona_secreta/script.php. Desafortunadamente, si la petición se hace originalmente en esta forma, no se realizan chequeos de acceso por parte del servidor web para el archivo /zona_secreta/script.php, únicamente para el archivo /cgi-bin/php. De este modo, cualquier usuario capaz de acceder a /cgi-bin/php es capaz también de acceder a cualquier documento protegido en el servidor web.

    En PHP, la configuración de tiempo de compilación --enable-force-cgi-redirect y las directivas de configuración en tiempo de ejecución doc_root y user_dir pueden ser usadas para prevenir este tipo de ataques, si el árbol de documentos del servidor llegara a tener directorio alguno con restricciones de acceso. Consulte las siguientes secciones para una explicación detallada de las diferentes combinaciones.

Caso 1: sólo se sirven archivos públicos

Si su servidor no tiene contenido alguno que no esté restringido por contraseñas o control de acceso basado en direcciones ip, no hay ninguna necesidad de recurrir a estas opciones de configuración. Si su servidor web no le permite hacer redireccionamientos, o el servidor no tiene una forma de comunicarle al binario PHP que la petición de redireccionamiento es segura, puede especificar la opción --enable-force-cgi-redirect en el script de configuración. Aun así debe asegurarse de que sus scripts PHP no dependan de alguna forma especial de hacer llamados al script, ya sea directamente mediante http://mi.servidor/cgi-bin/php/dir/script.php ni por la redirección http://mi.servidor/dir/script.php.

Los redireccionamientos pueden ser configurados en Apache mediante el uso de directivas AddHandler y Action (vea más adelante).

Caso 2: uso de --enable-force-cgi-redirect

Esta opción en tiempo de compilación previene que cualquier persona haga llamados a PHP directamente mediante una url como http://mi.servidor/cgi-bin/php/directorio_secreto/script.php. En lugar de esto, PHP analizará documentos de esta forma únicamente si han pasado por una regla de redirección del servidor web.

Por lo general, el redireccionamiento en la configuración de Apache es realizada con alguna de las siguientes directivas:

Action php-script /cgi-bin/php
AddHandler php-script .php

Esta opción ha sido probada únicamente con el servidor web Apache, y depende de que Apache defina la variable de entorno no-estándar REDIRECT_STATUS a la hora de gestionar peticiones redirigidas. Si su servidor web no dispone de modo alguno de comunicar si la petición es directa o redirigida, no puede usar esta opción y debe recurrir a alguna de las otras formas documentadas aquí de ejecutar la versión CGI.

Caso 3: configuración de doc_root o user_dir

Incluir contenido activo en los directorios de documentos del servidor web, como scripts y ejecutables, es considerada en ocasiones una práctica insegura. Si, por algún fallo de configuración, los scripts no llegaran a ser ejecutados sino desplegados como documentos HTML normales, esto podría resultar en la revelación de información crítica como trabajos cubiertos por normas de propiedad intelectual o datos de seguridad como contraseñas. Por lo tanto muchos administradores de sistemas preferirán la configuración de otra estructura de directorios para los scripts que sean asequibles únicamente a través del CGI PHP, y por lo tanto deben ser interpretados siempre y no desplegados directamente.

Así mismo, si el método para asegurarse de que las peticiones no son redireccionadas, tal y como se describió en la sección anterior, no está disponible, es necesario entonces configurar un directorio raíz (doc_root) de scripts que sea diferente al directorio raíz de documentos web.

Puede definir el directorio raíz para scripts de PHP mediante la directiva de configuración doc_root en el archivo de configuración, o puede darle un valor a la variable de entorno PHP_DOCUMENT_ROOT. Si ésta está definida, la versión CGI de PHP construirá siempre el nombre del archivo a abrir con este doc_root y la información de la ruta dada en la petición, de modo que puede estar seguro de que ningún script será ejecutado por fuera de este directorio (excepto por aquellos indicados en user_dir, como se verá a continuación).

Otra opción que puede ser usada en este caso es user_dir. Cuando user_dir no está definida, lo único que controla la apretura de archivos es doc_root. Abrir una url como http://mi.servidor/~usuario/doc.php no resulta en la apertura de un archivo bajo el directorio personal del usuario, sino de un archivo llamado ~usuario/doc.php bajo la ruta doc_root (así es, un directorio cuyo nombre comienza por el caracter de equivalencia [~]).

Si user_dir está definido como, por ejemplo, public_php, una petición como http://mi.servidor/~usuario/doc.php abrirá un archivo llamado doc.php bajo el directorio con el nombre public_php ubicado en el directorio personal del usuario. Si el directorio personal del usuario es /home/usuario, el archivo ejecutado es /home/usuario/public_php/doc.php.

La expansión del valor de user_dir ocurre independientemente del parámetro doc_root, de modo que es posible controlar el directorio raíz de los documentos y el acceso a los directorios de los usuarios en forma separada.

Caso 4: intérprete PHP por fuera del árbol web

Una opción bastante segura es colocar el intérprete binario de PHP en alguna parte por fuera del árbol de archivos web. En /usr/local/bin, por ejemplo. El único inconveniente real con esta alternativa es que ahora usted tendrá que colocar una línea como esta:

#!/usr/local/bin/php

al comienzo de cualquier archivo que contenga etiquetas PHP. También tendrá que hacer cada archivo ejecutable. Esto quiere decir que debe tratarlo exactamente igual a como trataría cualquier otro script CGI escrito en Perl o sh o cualquier otro lenguaje de scripting común que usara el mecanismo de escape-shell #! para el lanzamiento del intérprete.

Para lograr que PHP gestione correctamente la información de PATH_INFO y PATH_TRANSLATED con este tipo de configuración, el intérprete PHP debe haber sido compilado con la opción de configuración --enable-discard-path.

Anterior | Inicio | Siguiente
Seguridad | Subir | Instalación como módulo de Apache


Instalación como módulo de Apache

Cuando PHP es usado como un módulo de Apache, hereda los permisos del usuario de Apache (generalmente los del usuario "nobody"). Este hecho representa varios impactos sobre la seguridad y las autorizaciones. Por ejemplo, si está usando PHP para acceder a una base de datos, a menos que tal base de datos disponga de un control de acceso propio, usted tendrá que hacer que la base de datos sea asequible por el usuario "nobody". Esto quiere decir que un script malicioso podría tener acceso y modificar la base de datos, incluso sin un nombre de usuario y contraseña. Es completamente posible que un archivador automatizado de documentos web pudiera toparse con la página web de administración de una base de datos, y eliminar todas sus bases de datos. Usted puede protegerse de este tipo de situaciones mediante mecanismos de autorización de Apache, o puede diseñar su propio modelo de acceso usando LDAP, archivos .htaccess, etc. e incluir ese código como parte de sus scripts PHP.

Con frecuencia, una vez la seguridad se ha establecido en un punto en donde el usuario de PHP (en este caso, el usuario de apache) tiene asociada una muy leve capacidad de riesgo, se descubre que PHP se encuentra ahora imposibilitado de escribir archivos en los directorios de los usuarios. O quizás se le haya desprovisto de la capacidad de acceder o modificar bases de datos. Se ha prevenido exitosamente que pudiera escribir tanto archivos buenos como malos, o que pudiera realizar transacciones buenas o malas en la base de datos.

Un error de seguridad cometido con frecuencia en este punto es darle permisos de administrador (root) a apache, o incrementar las habilidades del usuario de apache de alguna otra forma.

Escalar los permisos del usuario de Apache hasta el nivel de administrador es extremadamente peligroso y puede comprometer al sistema entero, así que el uso de entornos sudo, chroot, o cualquier otro mecanismo que sea ejecutado como root no debería ser una opción viable para aquellos que no son profesionales en seguridad.

Existen otras soluciones más simples. Mediante el uso de open_basedir usted puede controlar y restringir aquellos directorios que podrían ser usados por PHP. También puede definir áreas solo-Apache, para restringir todas las actividades basadas en web a archivos que no son de usuarios, o del sistema.

Anterior | Inicio | Siguiente
Instalación como un binario CGI | Subir | Seguridad del sistema de archivos


Seguridad del sistema de archivos

PHP está sujeto a la seguridad misma de la mayoría de sistemas de servidores en lo que a permisos sobre archivos y directorios se refiere. Esto le permite controlar cuáles archivos en el sistema de archivos pueden ser leídos. Debe tenerse cuidado con aquellos archivos que tengan permisos de lectura globales, para asegurarse de que su contenido es seguro y no represente peligro el que pueda ser leído por todos los usuarios con acceso al sistema de archivos.

Ya que PHP fue diseñado para permitir acceso al nivel de usuarios al sistema de archivos, es completamente posible escribir un script PHP que le permita leer archivos del sistema como /etc/passwd, modificar sus conexiones tipo ethernet, enviar trabajos de impresión masivos, etc. Esto tiene algunas implicaciones obvias, en el sentido en que usted tiene que asegurarse de que los archivos desde lo que lee y hacia los que escribe datos, sean los correctos.

Considere el siguiente script, en donde un usuario indica que quisiera eliminar un archivo ubicado en su directorio personal. Este caso asume que se trata de una situación en donde se usa normalmente una interfaz web que se vale de PHP para la gestión de archivos, así que el usuario de Apache tiene permitido eliminar archivos en los directorios personales de los usuarios.

Ejemplo 15-1. Un chequeo pobre de variables nos lleva a...

<?php
// eliminar un archivo del directorio personal del usuario

$nombre_usuario = $_POST['nombre_enviado_por_el_usuario'];
$directorio     = "/home/$nombre_usuario";

$archivo_a_eliminar = "$archivo_de_usuario";

unlink ("$directorio/$archivo_de_usuario");

echo "&iexcl;El archivo $archivo_a_eliminar ha sido eliminado!";
?>
Ya que el nombre de usuario es enviado desde un formulario de usuario, cualquiera puede enviar un nombre de usuario y archivo propiedad de otra persona, y eliminar archivos. En este caso, usted querrá usar otro método de autenticación. Considere lo que sucede si las variables enviadas son "../etc/" y "passwd". El código entonces se ejecutaría efectivamente como:

Ejemplo 15-2. ... un ataque al sistema de archivos

<?php
// elimina un archivo de cualquier parte del disco duro al que el
// usuario de PHP tiene acceso. Si PHP tiene acceso de root:

$nombre_usuario = "../etc/";
$directorio     = "/home/../etc/";

$archivo_a_eliminar = "passwd";

unlink ("/home/../etc/passwd");

echo "&iexcl;El archivo /home/../etc/passwd ha sido eliminado!";
?>
Hay dos importantes medidas que usted debe tomar para prevenir estas situaciones.

  • Otorgarle únicamente permisos limitados al usuario web del binario PHP.

  • Chequear todas las variables que son enviadas por usuarios.

Aquí hay una versión mejorada del script:

Ejemplo 15-3. Un chequeo de nombres de archivos más seguro

<?php
// elimina un archivo de cualquier parte del disco duro al que el
// usuario de PHP tiene acceso.

$nombre_usuario = $_SERVER['REMOTE_USER']; // uso de un mecanismo de
                                           // autenticacion

$directorio = "/home/$nombre_usuario";

$archivo_a_eliminar = basename("$archivo_de_usuario"); // remover rutas
unlink ($directorio/$archivo_a_eliminar);

$fp = fopen("/home/registros/eliminacion.log","+a"); // registrar el proceso

$cadena_de_registro = "$nombre_usuario $directorio $archivo_a_eliminar";

fputs ($fp, $cadena_de_registro);
fclose($fp);

echo "&iexcl;El archivo $archivo_a_eliminar ha sido eliminado!";
?>
Sin embargo, incluso este caso no está libre de problemas. Si su sistema de autenticación le ha permitido a los usuarios la creación de sus propios nombres en el sistema, y un usuario elige "../etc/", el sistema se encuenrta nuevamente expuesto. Por esta razón, puede que uster prefiera escribir un chequeo más personalizado:

Ejemplo 15-4. Chequeo de nombres de archivos aun más seguro

<?php
$nombre_usuario = $_SERVER['REMOTE_USER']; // uso de un mecanismo de
                                           // autenticacion

$directorio = "/home/$nombre_usuario";

if (!ereg('^[^./][^/]*$', $archivo_de_usuario))
     die('nombre de archivo inv&aacute;lido'); // finalizar,
                                               // no ejecutar el proceso

if (!ereg('^[^./][^/]*$', $nombre_usuario))
     die('nombre de archivo inv&aacute;lido'); // finalizar,
                                               // no ejecutar el proceso

//etc...
?>

Dependiendo de su sistema operativo, existe una amplia variedad de archivos sobre los que usted debería estar atento, incluyendo las entradas de dispositivos (/dev/ o COM1), archivos de configuración (archivos /etc/ y los archivos .ini), areas conocidas de almacenamiento de datos (/home/, Mis Documentos), etc. Por esta razón, usualmente es más sencillo crear una política en donde se prohíba toda transacción excepto por aquellas que usted permita explícitamente.

Anterior | Inicio | Siguiente
Instalación como módulo de Apache | Subir | Seguridad de Bases de Datos


Seguridad de Bases de Datos

Hoy en día, las bases de datos son componentes cardinales de cualquier aplicación basada en web, permitiendo que los sitios web provean contenido dinámico. Debido a que información considerablemente sensible o secreta puede ser almacenada en una base de datos, usted debe considerar seriamente la protección de sus bases de datos.

Para recuperar o almacenar cualquier información necesita conectarse a la base de datos, enviar una consulta válida, recoger el resultado y cerrar la conexión. Hoy en día, el lenguaje de consultas usado comúnmente en estas interacciones es el Lenguaje de Consultas Estructurado (SQL por sus siglas en Inglés). Puede apreciar cómo un atacante puede intentar acometidas con una consulta SQL.

Como puede suponer, PHP no puede proteger su base de datos por sí solo. Las siguientes secciones están dirigidas a servir de introducción a los conceptos básicos de cómo acceder y manipular bases de datos desde scripts PHP.

Mantenga en mente esta simple regla: protección en profundidad. Entre más acciones tome para incrementar la protección de su base de datos, menor será la probabilidad de que un atacante tenga éxito exponiendo o abusando de cualquier información almacenada. Un buen diseño del esquema de la base de datos y de la aplicación basta para lidiar con sus mayores temores.

Diseño de Bases de Datos

El primer paso siempre es crear la base de datos, a menos que desee usar una creada por alguien más. Cuando una base de datos es creada, ésta es asignada a un dueño, quien ejecutó la sentencia de creación. Usualmente, únicamente el dueño (o un super-usuario) puede hacer cualquier cosa con los objetos de esa base de datos, y para que otros usuarios puedan usarla, deben otorgarse privilegios.

Las aplicaciones nunca deberían conectarse a la base de datos bajo el usuario correspondiente a su dueño, o como un super-usuario, ya que éstos usuarios pueden, por ejemplo, ejecutar cualquier consulta a su antojo, modificando el esquema (p. ej. eliminando tablas) o borrando su contenido completo.

Usted puede crear diferentes usuarios de la base de datos para cada aspecto de su aplicación con derechos muy limitados sobre los objetos de la base de datos. Tan solo deben otorgarse los privilegios estrictamente necesarios, y evitar que el mismo usuario pueda interactuar con la base de datos en diferentes casos de uso. Esto quiere decir que si un intruso gana acceso a su base de datos usando las credenciales de sus aplicaciones, él solo puede efectuar tantos cambios como su aplicación se lo permita.

Es buena idea que no implemente toda la lógica del asunto en la aplicación web (es decir, en su script); en su lugar, hágalo en el esquema de la base de datos usando vistas, disparadores o reglas. Si el sistema evoluciona, se espera que nuevos puertos sean abiertos a la aplicación, y tendrá que re-implementar la lógica para cada cliente de la base de datos. Por sobre todo, los disparadores pueden ser usados para gestionar de forma transparente todos los campos automáticamente, lo cual con frecuencia provee información útil cuando se depuren problemas de su aplicación, o se realicen rastreos sobre transacciones particulares.

Conexión con la Base de Datos

Puede que desee establecer las conexiones sobre SSL para encriptar las comunicaciones cliente/servidor, incrementando el nivel de seguridad, o puede hacer uso de ssh para encriptar la conexión de red entre los clientes y el servidor de la base de datos. Si cualquiera de estos recursos es usado, entonces monitorear su tráfico y adquirir información sobre su base de datos será difícil para un atacante potencial.

Modelo de Almacenamiento Encriptado

SSL/SSH protege los datos que viajan desde el cliente al servidor, SSL/SSH no protege los datos persistentes almacenados en la base de datos. SSL es un protocolo sobre-el-cable.

Una vez el atacante adquiere acceso directo a su base de datos (evitando el paso por el servidor web), los datos críticos almacenados pueden estar expuestos o malutilizados, a menos que la información esté protegida en la base de datos misma. La encriptación de datos es una buena forma de mitigar esta amenaza, pero muy pocas bases de datos ofrecen este tipo de mecanismo de encriptación de datos.

La forma más sencilla de evitar este problema es crear primero su propio paquete de encriptación, y luego utilizarlo desde sus scripts de PHP. PHP puede ayudarle en este sentido con varias extensiones, como Mcrypt y Mhash, las cuales cubren una amplia variedad de algoritmos de encriptación. El script encripta los datos antes de insertarlos en la base de datos, y los decripta cuando los recupera. Vea las referencias para consultar más ejemplos de cómo opera la encriptación.

En el caso de datos realmente escondidos, si su representación original no se necesita (es decir, no debe ser desplegada), los resúmenes criptográficos pueden llegar a considerarse también. El ejemplo clásico de gestión de resúmenes criptográficos es el almacenamiento de secuencias MD5 de una contraseña en una base de datos, en lugar de la contraseña misma. Vea también crypt() y md5().

Ejemplo 15-5. Uso de un campo de contraseñas encriptado

// almacenamiento de resumen criptografico de la contrasenya

$consulta  = sprintf("INSERT INTO usuarios(nombre,contr) VALUES('%s','%s');",
                     addslashes($nombre_usuario), md5($contrasenya));
$resultado = pg_exec($conexion, $consulta);

// consulta de verificacion de la contrasenya enviada

$consulta  = sprintf("SELECT 1 FROM usuarios WHERE nombre='%s' AND contr='%s';",
                     addslashes($nombre_usuario), md5($contrasenya));
$resultado = pg_exec($conexion, $consulta);

if (pg_numrows($resultado) > 0) {
    echo "&iexcl;Bienvenido, $nombre_usuario!";
}
else {
    echo "No pudo autenticarse a $nombre_usuario.";
}

Inyección de SQL

Muchos desarrolladores web no son conscientes de cómo pueden manipularse las consultas SQL, y asumen que una consulta SQL es un comando confiable. Esto representa que las consultas SQL pueden burlar los controles de acceso, y de este modo evitar los chequeos estándares de autenticación y autorización, y a veces las consultas SQL pueden incluso permitir acceso a comandos al nivel del sistema operativo de la máquina huésped.

La Inyección Directa de Comandos SQL es una técnica en la cual un atacante crea o altera comandos SQL existentes para exponer datos escondidos, o sobrescribir datos críticos, o incluso ejecutar comandos del sistema peligrosos en la máquina en donde se encuentra la base de datos. Esto se consigue cuando la aplicación toma información de entrada del usuario y la combina con parámetros estáticos para construir una consulta SQL. Los siguientes ejemplos, desafortunadamente, están basados en historias reales.

Debido a la falta de validación de la información de entrada y el establecimiento de conexiones con la base de datos desde un super-usuario o aquel que puede crear usuarios, el atacante podría crear un super-usuario en su base de datos.

Ejemplo 15-6. Paginación del conjunto de resultados ... y creación de super-usuarios (PostgreSQL y MySQL)

$offset   = argv[0]; // atencion, no se valida la entrada!
$consulta = "SELECT id, nombre FROM productos ORDER BY nombre LIMIT 20 " .
            "OFFSET $offset;";

// con PostgreSQL
$resultado = pg_exec($conexion, $consulta);

// con MySQL
$resultado = mysql_query($consulta);
Los usuarios normales pulsan sobre los enlaces 'siguiente' y 'anterior', en donde el desplazamiento ($offset) se encuentra codificado en la URL. El script espera que el valor entrante $offset sea un número decimal. Sin embargo, qué sucede si alguien intenta un ataque añadiendo una forma codificada (urlencode()) de lo siguiente en la URL

// en el caso de PostgreSQL
0;
insert into pg_shadow(usename,usesysid,usesuper,usecatupd,passwd)
    select 'crack', usesysid, 't','t','crack'
    from pg_shadow where usename='postgres';
--

// en el caso de MySQL
0;
UPDATE user SET Password=PASSWORD('crack') WHERE user='root';
FLUSH PRIVILEGES;

Si esto ocurriera, entonces el script le presentaría un acceso de superusuario al atacante. Note que 0; es usado para ofrecer un desplazamiento válido a la consulta original y finalizarla.

Nota: Es una técnica común obligar al analizador sintáctico de SQL a que ignore el resto de la consulta escrita por el desarrollador mediante --, el cual es el signo de comentarios en SQL.

Una forma viable de adquirir contraseñas es jugar con las páginas de resultados de búsquedas. Lo único que necesita el atacante es ver si existen variables enviadas por el usuario que sean usadas en sentencias SQL, y que no sean tratadas apropiadamente. Estos filtros pueden ubicarse por lo general previos a cláusulas WHERE, ORDER BY, LIMIT y OFFSET en sentencias SELECT para personalizar la instrucción Si su base de datos soporta la construcción UNION, el atacante puede intentar añadir una consulta completa a la consulta original para generar una lista de contraseñas desde una tabla cualquiera. El uso de campos encriptados de contraseñas es altamente recomendable.

Ejemplo 15-7. Listado de artículos ... y algunas contraseñas (en cualquier base de datos)

$consulta  = "SELECT id, nombre, insertado, tam FROM productos
                  WHERE tam = '$tam'
                  ORDER BY $orden LIMIT $limite, $offset;";
$resultado = odbc_exec($conexion, $consulta);
La parte estática de la consulta puede combinarse con otra sentencia SELECT la cual revela todas las contraseñas:

'
union select '1', concat(uname||'-'||passwd) as name, '1971-01-01', '0' from usertable;
--

Si esta consulta (la cual juega con ' y --) fuera asignada a una de las variables usadas en $consulta, la bestia de la consulta habrá despertado.

Las sentencias UPDATE de SQL son también susceptibles a ataque. Éstas consultas también se encuentran amenazadas por un posible acotamiento y adición de una consulta completamente nueva. Pero en este caso el atacante puede amañar la información de una cláusula SET. En este caso se requiere contar con cierta información sobre el esquema de la base de datos para poder manipular la consulta satisfactoriamente. Esta información puede ser adquirida mediante el estudio de los nombres de variables de los formularios, o simplemente por fuerza bruta. No existen demasiadas convenciones para nombrar campos de contraseñas o nombres de usuario.

Ejemplo 15-8. De restablecer una contraseña ... a adquirir más privilegios (con cualquier servidor de base de datos)

$consulta = "UPDATE usertable SET pwd='$pwd' WHERE uid='$uid';";
Pero un usuario malicioso envía el valor ' or uid like'%admin%'; -- como $uid para cambiar la contraseña del administrador, o simplemente establece $pwd a "hehehe', admin='yes', trusted=100 " (con un espacio al inicio) para adquirir más privilegios. En tal caso, la consulta sería manipulada:

// $uid == ' or uid like'%admin%'; --
$consulta = "UPDATE usertable SET pwd='...' WHERE uid='' or uid like '%admin%'; --";

// $pwd == "hehehe', admin='yes', trusted=100 "
$consulta = "UPDATE usertable SET pwd='hehehe', admin='yes', trusted=100 WHERE ...;"

Un horrible ejemplo de cómo puede accederse a comandos del nivel del sistema operativo en algunas máquinas anfitrionas de bases de datos.

Ejemplo 15-9. Ataque al sistema operativo de la máquina anfitriona de la base de datos (MSSQL Server)

$consulta  = "SELECT * FROM productos WHERE id LIKE '%$prod%'";
$resultado = mssql_query($consulta);
Si el atacante envía el valor a%' exec master..xp_cmdshell 'net user test testpass /ADD' -- a $prod, entones la $consulta será:

$consulta  = "SELECT * FROM productos
                    WHERE id LIKE '%a%'
                    exec master..xp_cmdshell 'net user test testpass /ADD'--";
$resultado = mssql_query($consulta);

MSSQL Server ejecuta sentencias SQL en el lote, incluyendo un comando para agregar un nuevo usuario a la base de datos de cuentas locales. Si esta aplicación estuviera corriendo como sa y el servicio MSSQLSERVER está corriendo con los privilegios suficientes, el atacante tendría ahora una cuenta con la que puede acceder a esta máquina.

Nota: Algunos de los ejemplos anteriores están atados a un servidor de base de datos específico. Esto no quiere decir que un ataque similar sea imposible con otros productos. Su base de datos puede ser vulnerable de forma semejante, en alguna otra manera.

Técnicas de protección

Usted puede argumentar con justa razón que el atacante debe poseer cierta cantidad de información sobre el esquema de la base de datos en la mayoría de ejemplos que hemos visto. Tiene razón, pero usted nunca sabe cuándo y cómo puede filtrarse esta información, y si ocurre, su base de datos estará expuesta. Si está usando un paquete de gestión de bases de datos de código abierto, o cuyo código fuente está disponible públicamente, el cual puede pertenecer a algún sistema de administración de contenido o foro, los intrusos pueden producir fácilmente una copia de un trozo de su código. También puede ser un riesgo de seguridad si es un segmento de código pobremente diseñado.

Estos ataques se basan principalmente en la explotación del código que no ha sido escrito pensando en la seguridad. Nunca confíe en ningún tipo de información de entrada, especialmente aquella que proviene del lado del cliente, aun si lo hace desde una caja de selección, un campo de entrada hidden o una cookie. El primer ejemplo le muestra que una consulta así de descuidada puede causar desastres.

  • Nunca se conecte a la base de datos como un super-usuario o como el dueño de la base de datos. Use siempre usuarios personalizados con privilegios muy limitados.

  • Revise si la entrada recibida es del tipo apropiado. PHP posee un amplio rango de funciones de validación de datos, desde los más simples encontrados en Funciones sobre variables y en Funciones de tipo de caracter (p. ej. is_numeric(), ctype_digit() respectivamente) hasta el soporte para Expresiones Regulares compatibles con Perl.

  • Si la aplicación espera alguna entrada numérica, considere la verificación de información con is_numeric(), o modifique silenciosamente su tipo usando settype(), o utilice su representación numérica, dada por sprintf().

    Ejemplo 15-10. Una forma más segura de generar una consulta para paginado

    settype($offset, 'integer');
$consulta = "SELECT id, nombre FROM productos ORDER BY nombre " .
            "LIMIT 20 OFFSET $offset;";

// note el simbolo %d en la cadena de formato, usar %s no tendria sentido
$consulta = sprintf("SELECT id, nombre FROM productos ORDER BY nombre" .
                    "LIMIT 20 OFFSET %d;", $offset);

  • Ubique cada entrada del usuario no-numérica que sea pasada a la base de datos entre comillas con addslashes() o addcslashes(). Vea el primer ejemplo. Como se ve allí, las comillas colocadas en la parte estática de la consulta no son suficientes, y pueden ser manipuladas fácilmente.

  • No imprima ninguna información específica sobre la base de datos, especialmente sobre su esquema, ya sea por razones justas o por equivocaciones. Vea también Reporte de Errores y Gestión de Errores y Funciones de Registro.

  • Puede usar procedimientos almacenados y cursores previamente definidos para abstraer el acceso a las bases de datos, de modo que los usuarios no tengan acceso directo a las tablas o vistas, aunque esta solución tiene otros impactos.

Además de estas acciones, usted puede beneficiarse del registro explícito de las consultas realizadas, ya sea desde su script o por la base de datos misma, si ésta soporta la gestión de registros. Por supuesto, el registro de acciones no puede prevenir cualquier intento peligroso, pero puede ser útil para rastrear cuáles aplicaciones han sido usadas para violar la seguridad. El registro en sí no es útil; lo es la información que contiene. Por lo general, es mejor contar con más detalles que con menos.

Anterior | Inicio | Siguiente
Seguridad del sistema de archivos | Subir | Reporte de Errores


Reporte de Errores

Hablando de la seguridad en PHP, hay dos caras en lo que se concierne al reporte de errores. Una es benéfica al incremento de la seguridad, la otra va en dirección de su detrimento.

Una táctica de ataque típica involucra la acumulación de un perfil de datos del sistema alimentándolo con datos inapropiados, y luego chequear los tipos de errores que son devueltos, y sus contextos. Esto permite que el cracker del sistema pueda adquirir información del servidor, para así determinar posibles debilidades. Por ejemplo, si un atacante ha recogido información sobre una página creada a partir de los datos de un formulario, él podría intentar sobrescribir las variables, o modificarlas:

Ejemplo 15-11. Ataque a Variables con una página HTML personalizada

<form method="POST" action="destino_del_ataque?username=badfoo&password=badfoo">
<input type="hidden" name="username" value="badfoo">
<input type="hidden" name="password" value="badfoo">
</form>

Los errores de PHP que son devueltos normalmente pueden ser bastante útiles para un desarrollador que esté tratando de depurar un script, indicando cosas como la función o archivo que falló, el archivo PHP y el número de línea en donde ocurren los fallos. Toda esta es información de la que puede sacarse provecho. No es extraño que un desarrollador php use show_source(), highlight_string(), o highlight_file() como medida de depuración, pero en un sitio en producción, esta acción puede exponer variables ocultas, sintaxis sin chequear, y otra información peligrosa. Algo especialmente peligroso es ejecutar código que proviene de fuentes bien conocidas con gestores de depuración incorporados, o que usan técnicas de depuración comunes. Si el atacante puede determinar qué técnica general está usando, puede intentar un ataque de fuerza bruta sobre una página, enviando varias cadenas comunes de depuración:

Ejemplo 15-12. Explotación de variables comunes de depuración

<form method="POST" action="destino_del_ataque?errors=Y&amp;showerrors=1&amp;debug=1">
<input type="hidden" name="errors" value="Y">
<input type="hidden" name="showerrors" value="1">
<input type="hidden" name="debug" value="1">
</form>

Independientemente del método de gestión de errores, la capacidad de conseguir que un sistema revele sus posibles estados de error representa un camino para darle información al atacante.

Por ejemplo, el estilo mismo de un error de PHP genérico indica que el sistema está ejecutando PHP. Si el atacante estuviera viendo una página .html, y quisiera consultar qué está siendo usado para la generación de ella por detrás (en busca de debilidades conocidas en el sistema), podría determinar que el sistema fue creado usando PHP alimentándolo con información equivocada.

Un error de función puede indicar si el sistema está ejecutando un tipo particular de motor de base de datos, o dar pistas sobre cómo fue programada o diseñada una página web. Esto facilita posteriores investigaciones en determinados puertos abiertos de bases de datos, o en busca de fallos específicos o debilidades en una página web. Al entregar diferentes trozos de datos inválidos al sistema, por ejemplo, un atacante puede determinar el orden de autenticación en un script, (a partir de los números de línea de los errores) así como averiguar sobre vulnerabilidades que pueden aprovecharse en diferentes puntos del script.

Un error del sistema de archivos o en general de PHP puede indicar qué permisos tiene el servidor web, así como la estructura y organización de los archivos en el servidor web. Algún código de gestión de errores escrito por el desarrollador puede agravar este problema, llevando a la fácil explotación de información hasta entonces "escondida".

Existen tres soluciones principales a este problema. La primera es revisar cuidadosamente todas las funciones, y tratar de compensar por la mayoría de errores encontrados. La segunda es deshabilitar el reporte de errores completamente del código que está siendo ejecutado. La tercera es usar las funciones de gestión de errores personalizables de PHP para crear su propio gestor de errores. Dependiendo de su política de seguridad, puede encontrar que todas ellas pueden ser aplicables a su situación.

Una forma de detectar este problema por adelantado es hacer uso del reporte de errores propio de PHP (error_reporting()), para ayudarle a asegurar su código y encontrar uso de variables que pueda ser peligroso. Al probar su código, previamente a su entrega final, con E_ALL, puede encontrar rápidamente áreas en donde sus variables pueden estar abiertas a la manipulación y explotación en distintas formas. Una vez esté listo para liberar su código, usando E_NONE puede aislarlo de posibles intentos por adquirir información útil para un atacante.

Ejemplo 15-13. Detección de variables peligrosas con E_ALL

<?php
if ($nombre_usuario) {  // Variable no inicializada o chequeada antes de su uso
    $login_correcto = 1;
}
if ($login_correcto == 1) { // Si la condicion anterior falla, esta variable
                            // no se encuentra inicializada ni validada
                            // antes de su uso

    readfile ("/informacion/altamente/confidencial/index.html");
}
?>

Anterior | Inicio | Siguiente
Seguridad de Bases de Datos | Subir | Uso de Register Globals


Uso de Register Globals

Quizás el cambio más controversial en la historia de PHP se ha dado cuando la directiva register_globals pasó de tener como valor por defecto ON al valor OFF en PHP 4.2.0. La dependencia sobre esta directiva era bastante común y muchas personas nisiquiera estaban enteradas de que existía y asumían que ese era el modo en que PHP trabajaba. Esta página explicará cómo puede llegar a escribirse código inseguro con esta directiva pero tenga en mente que no es la directiva misma la que es insegura sino el uso inapropiado de ella.

Cuando se encuentra activa, la directiva register_globals inyectará (o envenenará) sus scripts con todo tipo de variables, como variables de peticiones provenientes de formularios html. Esto junto con el hecho de que PHP no requiere la inicialización de variables significa que es muy fácil escribir código inseguro. Fue una decisión difícil, pero la comunidad de PHP decidió desahibilar esta directiva por defecto. Cuando está habilitada, las personas usan variables sin saber con seguridad de dónde provienen y solo queda asumir. Las variables internas que son definidas en el script mismo son mezcladas con los datos enviados por los usuarios y al deshabilitar register_globals se modifica este comportamiento. Demostremos este caso con un ejemplo del uso incorrecto de register_globals:

Ejemplo 15-14. Ejemplo del uso inapropiado de register_globals = on

<?php
// definir $autorizado = true solo si el usuario ha sido autenticado

if (usurio_autenticado()) {
    $autorizado = true;
}

// Ya que no inicializamos $autorizado como false, esta podria estar
// definida a traves de register_globals, como en el caso de GET
// auth.php?autorizado=1

// De modo que cualquier persona podria verse como autenticada!

if ($autorizado) {
    include "/datos/muy/importantes.php";
}
?>

Cuando register_globals = on, nuestra lógica anterior podría verse comprometida. Cuando la directiva está deshabilitada, $autorizado no puede definirse a través de peticiones, así que no habrá ningún problema, aunque es cierto que siempre es una buena práctica de programación inicializar las variables primero. Por ejemplo, en nuestro ejemplo anterior pudimos haber realizado primero algo como $authorized = false. Hacer esto representa que el código anterior podría funcionar con register_globals establecido a on u off ya que los usuarios no serían autorizados por defecto.

Otro ejemplo es aquel de las sesiones. Cuando register_globals = on, podríamos usar también $nombre_usuario en nuestro siguiente ejemplo, pero nuevamente usted debe notar que $nombre_usuario puede provenir de otros medios, como GET (a través de la URL).

Ejemplo 15-15. Ejemplo del uso de sesiones con register_globals on u off

<?php
// No sabriamos de donde proviene $nombre_usuario, pero sabemos que
// $_SESSION es para datos de sesion

if (isset($_SESSION['nombre_usuario'])) {

    echo "Hola <b>{$_SESSION['nombre_usuario']}</b>";

} else {

    echo "Hola <b>Invitado</b><br />";
    echo "&iquest;Quisiera iniciar su sesi&oacute;n?";

}
?>

Incluso es posible tomar medidas preventivas para advertir cuando se intente falsificar la información. Si usted sabe previamente con exactitud el lugar de donde debería provenir una variable, usted puede chequear si los datos enviados provienen de una fuente inadecuada. Aunque esto no garantiza que la información no haya sido falsificada, esto requiere que un atacante adivine el medio apropiado para falsificar la información. Si no le importa de dónde proviene la información, puede usar $_REQUEST ya que allí se incluye una mezcla de variables que provienen de datos GET, POST y COOKIE. Consulte también la sección del manual sobre el uso de variables desde fuera de PHP.

Ejemplo 15-16. Detección de envenenamiento simple de variables

<?php
if (isset($_COOKIE['COOKIE_MAGICA'])) {

    // COOKIE_MAGICA proviene de una cookie.
    // Asegurese de validar los datos de la cookie!

} elseif (isset($_GET['COOKIE_MAGICA']) || isset($_POST['COOKIE_MAGICA'])) {

   mail("admin@ejemplo.com", "Posible intento de intromision",
        $_SERVER['REMOTE_ADDR']);
   echo "Violaci&oacute;n de seguridad, el administrador ha sido alertado.";
   exit;

} else {

   // COOKIE_MAGICA no fue definida en este REQUEST

}
?>

Por supuesto, deshabilitar register_globals no quiere decir que su código vaya a ser seguro. Por cada trozo de datos que sea enviado por el usuario, éste debe ser chequeado en otras formas. ¡Siempre valide los datos de los usuarios e inicialice sus variables! Para chequear por variables no inicializadas, usted puede usar error_reporting() para mostrar errores del nivel E_NOTICE.

Superglobals: Nota de disponibilidad: Desde 4.1.0, están disponibles algunas matrices superglobales tales como $_GET, $_POST, y $_SERVER, etc. Para más información puede consultar la sección superglobals

Anterior | Inicio | Siguiente
Reporte de Errores | Subir | Datos Enviados por el Usuario


Datos Enviados por el Usuario

Las mayores debilidades de muchos programas PHP no son inherentes al lenguaje mismo, sino simplemente un problema generado cuando se escribe código sin pensar en la seguridad. Por esta razón, usted debería tomarse siempre el tiempo para considerar las implicaciones de cada pedazo de código, para averiguar el posible peligro involucrado cuando una variable inesperada es enviada.

Ejemplo 15-17. Uso Peligroso de Variables

<?php
// eliminar un archivo del directorio personal del usuario .. o
// quizas de alguien mas?

unlink ($variable_malvada);

// Imprimir el registro del acceso... o quizas una entrada de /etc/passwd?
fputs ($desc_archivo, $variable_malvada);

// Ejecutar algo trivial.. o rm -rf *?
system ($variable_malvada);
exec ($variable_malvada);

?>
Usted debería examinar siempre, y cuidadosamente su código para asegurarse de que cualquier variable siendo enviada desde un navegador web sea chequeada apropiadamente, y preguntarse a sí mismo:

  • ¿Este script afectará únicamente los archivos que se pretende?

  • ¿Puede tomarse acción sobre datos inusuales o indeseados?

  • ¿Puede ser usado este script en formas malintencionadas?

  • ¿Puede ser usado en conjunto con otros scripts en forma negativa?

  • ¿Serán adecuadamente registradas las transacciones?

Al preguntarse adecuadamente estas preguntas mientras escribe su script, en lugar de hacerlo posteriormente, usted previene una desafortunada re-implementación del programa cuando desee incrementar el nivel de seguridad. Al comenzar con esta mentalidad, no garantizará la seguridad de su sistema, pero puede ayudar a mejorarla.

Puede que también desee considerar la deshabilitación de register_globals, magic_quotes, u otros parámetros convenientes que pueden causar confusión sobre la validez, fuente o valor de una determinada variable. Trabajar con PHP en modo error_reporting(E_ALL) también puede ayudarle a advertir variables que están siendo usadas antes de ser chequeadas o inicializadas (de modo que puede prevenir que datos inusuales produzcan operaciones inadvertidas).

Anterior | Inicio | Siguiente
Uso de Register Globals | Subir | Ocultando PHP


Ocultando PHP

En general, la seguridad por oscuridad es una de las formas más débiles de seguridad. Pero, en algunos casos, cada pequeño elemento extra de seguridad es deseable.

Unas cuantas técnicas simples pueden ayudarle a esconder PHP, posiblemente retrasando a un atacante que esté intentando descubrir debilidades en su sistema. Al establecer expose_php = off en su archivo php.ini, usted reduce la cantidad de información disponible a posibles atacantes.

Otra táctica consiste en configurar los servidores web como apache para que procesen diferentes tipos de archivos como scripts de PHP, ya sea con una directiva .htaccess, o en el archivo de configuración de apache mismo. En ese caso puede usar extensiones de archivo que produzcan confusión:

Ejemplo 15-18. Ocultando PHP como otro lenguaje

# Hacer que el codigo PHP parezca como otro tipo de codigo
AddType application/x-httpd-php .asp .py .pl
U ocultarlo completamente:

Ejemplo 15-19. Uso de tipos desconocidos como extensiones para PHP

# Hacer que el codigo PHP parezca como de tipos desconocidos
AddType application/x-httpd-php .bop .foo .133t
O escóndalo como código html, lo que tiene un pequeño impacto de rendimiento ya que todos los documentos html serán procesados por el motor de PHP:

Ejemplo 15-20. Uso de tipos html para extensiones PHP

# Hacer que todo el codigo PHP luzca como html
AddType application/x-httpd-php .htm .html
Para que esto funcione de manera efectiva, usted debe renombrar sus archivos PHP con las extensiones anteriores. Aunque es una forma de seguridad por oscuridad, representa una medida preventiva con pocas incomodidades.

Anterior | Inicio | Siguiente
Datos Enviados por el Usuario | Subir | Mantenerse al Día


Mantenerse al Día

PHP, como cualquier otro sistema de tamaño considerable, está bajo constante escrutinio y remodelación. Cada nueva versión incluye con frecuencia cambios mayores y menores para mejorar y reparar fallos de seguridad, problemas de configuración, y otros asuntos que puedan afectar la seguridad y estabilidad global de su sistema.

Como cualquier lenguaje y programa de scripting del nivel del sistema, el mejor enfoque es el de actualizar con frecuencia, y mantenerse alerta sobre las últimas versiones y sus cambios.

Anterior | Inicio | Siguiente
Ocultando PHP | Subir | Características


Características

Manual de PHP
Anterior Siguiente

IV. Características

Tabla de contenidos
16. Autentificación HTTP con PHP
17. Cookies
18. Manejo de envío de archivos
19. Usando archivos remotos
20. Manejando conexiones
21. Conexiones persistentes a bases de datos
22. Modo Seguro (Safe Mode)
23. Usando PHP desde la línea de comando

Anterior | Inicio | Siguiente
Mantenerse al Día |  | Autentificación HTTP con PHP


Autentificación HTTP con PHP

Manual de PHP
Anterior Siguiente

Capítulo 16. Autentificación HTTP con PHP

Las caracteríticas de autentificación HTTP en PHP solo están disponibles cuando se está ejecutando como un módulo en Apache y hasta ahora no lo estan en la versión CGI. En un script PHP como módulo de Apache, se puede usar la función header() para enviar un mensaje de "Autentificación requerida" al navegador cliente haciendo que muestre una ventana de entrada emergente con nombre de usuario y contraseña. Una vez que el usuario ha rellenado el nombre y la contraseña, la URL que contiene el script PHP será llamada de nuevo con las variables predefinidas PHP_AUTH_USER, PHP_AUTH_PW, y AUTH_TYPE asignadas con el nombre de usuario, la contraseña y el tipo de autentificación respectivamente. Estas variables predefinidas se pueden encontrar en las matrices $_SERVER y $HTTP_SERVER_VARS. Sólo autentificación "Básica" está soportada en este momento. Consulte la función header() para más información.

Nota sobre la versión PHP: Las Autoglobales, tales como $_SERVER, han estado disponibles desde la versión de PHP 4.1.0. $HTTP_SERVER_VARS ha estado disponible desde PHP 3.

Un script de ejemplo que fuerce la autentificación del cliente en una página sería como el siguiente:

Ejemplo 16-1. Ejemplo de autentificación HTTP

<?php
  if (!isset($_SERVER['PHP_AUTH_USER'])) {
    header('WWW-Authenticate: Basic realm="My Realm"');
    header('HTTP/1.0 401 Unauthorized');
    echo 'Text to send if user hits Cancel button';
    exit;
  } else {
    echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";
    echo "<p>You entered {$_SERVER['PHP_AUTH_PW']} as your password.</p>";
  }
?>

Nota de compatibilidad: Por favor tener cuidado cuando esteis programando las lineas de cabecera HTTP. Para garantizar la máxima compatibilidad con todos los clientes, la palabra clave "Basic" debe de ser escrita con "B" mayúscula, la cadena de texto debe estar incluida entre comillas dobles (no simples) y exactamente un espacio debe preceder el código 401 en la linea de cabecera HTTP/1.0 401

En vez de, sencillamente, mostrar PHP_AUTH_USER y PHP_AUTH_PW, seguramente querais comprobar la validez del nombre de usuario y la contraseña. Tal vez enviando una consulta a una base de datos o buscando el usuario en un fichero dbm.

Vigilar aquí los navegadores Interner Explorer con bugs. Parecen muy quisquillosos con el orden de las cabeceras. Enviar la cabecera WWW-Autentificación antes que la cabecera HTTP/1.0 401 parece ser el truco por ahora.

En fecha de la versión PHP 4.3.0, para prevenir que alguien escriba un script que revele la contraseña de una página que ha sido autentificada a través de algún mecanismo externo tradicional, las variables PHP_AUTH no serán asignadas si algún tipo de autentificación externa ha sido activada para la página en particular. En este caso, la variable REMOTE_USER puede ser usada para identificar al usuario autentificado externamente. Asi que se puedes utilizar $_SERVER['REMOTE_USER'].

Configuration Note: PHP usa la directiva AuthType para determinar si una autentificación externa esta en uso.

Nota, a pesar de todo, lo ya dicho no proteje de que alguien que controle una URL no autentificada robe contraseñas de URLs autentificadas en el mismo servidor.

Tanto Netscape como Internet Explorer borrarán la caché de la ventana de autentificación en el navegador local después de recibir una respuesta 401 del servidor. Esto puede usarse, de forma efectiva, para "desconectar" a un usuario, forzandole a reintroducir su nombre y contraseña. Algunas personas usan esto para "hacer caducar" entradas, o para proveer un botón de "desconectar".

Ejemplo 16-2. Ejemplo de autentificación HTTP forzando una reentrada

<?php
  function authenticate() {
    header('WWW-Authenticate: Basic realm="Test Authentication System"');
    header('HTTP/1.0 401 Unauthorized');
    echo "You must enter a valid login ID and password to access this resource\n";
    exit;
  }

  if (!isset($_SERVER['PHP_AUTH_USER']) ||
      ($_POST['SeenBefore'] == 1 && $_POST['OldAuth'] == $_SERVER['PHP_AUTH_USER'])) {
   authenticate();
  }
  else {
   echo "<p>Welcome: {$_SERVER['PHP_AUTH_USER']}<br>";
   echo "Old: {$_REQUEST['OldAuth']}";
   echo "<form action='{$_SERVER['PHP_SELF']}' METHOD='POST'>\n";
   echo "<input type='hidden' name='SeenBefore' value='1'>\n";
   echo "<input type='hidden' name='OldAuth' value='{$_SERVER['PHP_AUTH_USER']}'>\n";
   echo "<input type='submit' value='Re Authenticate'>\n";
   echo "</form></p>\n";
  }
?>

Este comportamiento no es requerido por el estándar de autentificación básica de HTTP, por lo que nunca debe depender de esto. Pruebas con Lynx han demostrado que Lynx no borra las credenciales de autentificación con una respuesta 401 del servidor, por lo que pulsando atrás y después adelante abriría el recurso de nuevo (siempre que los requerimientos de contraseña no hayan cambiado).

Además tener en cuenta que hasta la version de PHP 4.3.3, la autentificación HTTP no funcionaba con el servidor IIS de Microsoft y la versión CGI de PHP, debido a una limitación de IIS. Para que funcione a partir de PHP 4.3.3, debeis de editar vuestra configuración sobre "Seguridad en directorios" en IIS. Pulsar en 'Editar" y elegir solamente "acceso anonimo", todos los demas campos no se deben de elegir.

Otra limitación es, si estais usando el módulo de IIS (ISAPI), que no podeis usar las variables PHP_AUTH_*, en su lugar debeis utilizar la variable HTTP_AUTHORIZATION. Por ejemplo: list($user, $pw) = explode(':', base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6)));

Nota para IIS:: Para que la autentificación HTTP funcione con IIS, la directiva de PHP cgi.rfc2616_headers debe de tener el valor 0 (valor por defecto).

Nota: Si safe mode está activado, el uid de el script es agregado a la cabecera WWW-Authenticate

Anterior | Inicio | Siguiente
Características | Subir | Cookies


Cookies

Manual de PHP
Anterior Siguiente

Capítulo 17. Cookies

PHP soporta transparentemente cookies HTTP. Las Cookies son un mecanismo que sirve para almacenar datos en el navegador del usuario remoto, para así poder identificar al usuario cuando vuelva. Se pueden poner cookies usando la función setcookies(). Las Cookies son parte de la cabecera HTTP, por tanto la función setcookie() debe ser llamada antes de que se produzca cualquier salida al navegador. Esta limitación es la misma a la de la función header(). Se pueden usar las funciones de almacenamiento intermedio del resultado para retrasar el resultado del script hasta que hayas decidido mandar o no una cookie o cabecera.

Cualquier cookie enviada a ti desde el cliente, automáticamente se convertirá en una variable PHP igual como ocurre con los métodos de datos GET y POST, dependiendo de las variables de configuración register_globals y variables_order. Si deseas asignar multiples valores a una cookie simple, añade simplemente [] a el nombre de la cookie.

En PHP 4.1.0 y posteriores, la matriz auto-global $_COOKIE será siempre actualizada con cualquier cookie mandada por el cliente. $HTTP_COOKIE_VARS es tambien actualizada en versiones anteriores de PHP cuando la variable de configuración track_vars esté activada. (Siempre activada a partir de PHP 4.0.3.)

Para más detalles ver la función setcookie().

Anterior | Inicio | Siguiente
Autentificación HTTP con PHP | Subir | Manejo de envío de archivos


Manejo de envío de archivos

Manual de PHP
Anterior Siguiente

Capítulo 18. Manejo de envío de archivos

Tabla de contenidos
Envío de archivos con el método POST
Errores comunes
Envío de multiples ficheros
Soporte del método PUT

Envío de archivos con el método POST

PHP es capaz de recibir envíos de archivo de cualquier navegador que cumpla la norma RFC-1867 (entre los que se incluyen Netscape Navigator 3 o posterior, Microsoft Internet Explorer 3 con un parche o posterior sin éste). Ésta característica permite que los usuarios envien archivos de texto y binarios. Mediante la autentificación y funciones de manejo de archivos de PHP, es posible un control total de quién puede enviar archivos y que se hace con éstos una vez recibidos.

Es importante destacar que PHP también soporta el método PUT para envío de archivos tal y como lo utiliza Netscape Composer y el cliente Amaya de W3C. Consulte Soporte del método PUT para más detalles.

Una página de envío de archivos se puede crear mediante un formulario parecido a éste:

Ejemplo 18-1. Formulario de envío de archivo

<form enctype="multipart/form-data" action="_URL_" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="1000">
Send this file: <input name="userfile" type="file">
<input type="submit" value="Send File">
</form>
La _URL_ debe tener como destino un script PHP. El input oculto MAX_FILE_SIZE debe encontrarse antes del input de tipo "file" para indicar el tamaño máximo de archivo que se puede enviar en bytes

Aviso

MAX_FILE_SIZE debe ser consultado por el navegador; aun así es sencillo saltarse este máximo por lo tanto no se debe presuponer que el navegador siempre lo respetará. En contrapartida, la configuracion de PHP relativa al tamaño maximo no puede ser obviada.

Las variables definidas para los archivos enviados varian en función de la versión y configuración de PHP que se utilice. Las variables de las que hablamos a continuación serán definidas en la página destino despues de una recepción de fichero correcta. Cuando track_vars este activado, el array $HTTP_POST_FILES/$_FILES se inicializará. Por ultimo, las variables relacionadas seran inicializadas como globales cuando register_globals esté habilitado. Cabe señalar que el uso de las variables globales no esta recomendado en ningún caso.

Nota: track_vars esta activado siempre desde PHP 4.0.3. A partir de PHP 4.1.0 , $_FILES puede ser utilizado alternativamente a $HTTP_POST_FILES. $_FILES es siempre global asi que global no debe ser usado con $_FILES en el ámbito de función.

$HTTP_POST_FILES/$_FILES contienen la información sobre el fichero recibido.

A continuación se describe el contenido de $HTTP_POST_FILES. Se ha tomado el nombre 'userfile' para el fichero recibido tal y como se usaba en el script de ejemplo anterior:

$HTTP_POST_FILES['userfile']['name']

El nombre original del fichero en la máquina cliente.

$HTTP_POST_FILES['userfile']['type']

El tipo mime del fichero (si el navegador lo proporciona). Un ejemplo podría ser "image/gif".

$HTTP_POST_FILES['userfile']['size']

El tamaño en bytes del fichero recibido.

$HTTP_POST_FILES['userfile']['tmp_name']

El nombre del fichero temporal que se utiliza para almacenar en el servidor el archivo recibido.

Nota: A partir de PHP 4.1.0 se puede utilizar el variable corta $_FILES. PHP 3 no soporta $HTTP_POST_FILES.

Cuando register_globals se activa en el php.ini las siguientes variables son accesibles. Se ha tomado el nombre 'userfile' para el fichero recibido tal y como se usaba en el script de ejemplo del principio:

  • $userfile - El nombre del fichero temporal que se utiliza para almacenar en el servidor el archivo recibido.

  • $userfile_name - El nombre original del fichero en la máquina cliente.

  • $userfile_size - El tamaño en bytes del fichero recibido.

  • $userfile_type - El tipo mime del fichero (si el navegador lo proporciona). Un ejemplo podría ser "image/gif".

Se puede ver que "$userfile" (en las variables anteriores) toma el valor del atributo "name" que contenga el campo <input> de tipo "file" del formulario de envio. En el ejemplo anterior, elegimos llamarlo "userfile".

Nota: register_globals = On se desaconseja por razones de seguridad y rendimiento.

Por defecto, los ficheros serán almacenados en el directorio temporal por defecto del servidor a no ser que se especifique otra localizacion con la directiva upload_tmp_dir en php.ini. El directorio temporal por defecto del servidor puede ser modificado cambiando el valor de la variable de entorno TMPDIR en el contexto en que se ejecuta PHP La configuración de las variables de entorno no se puede realizar en PHP a través de la función putenv(). Esta variable de entorio puede ser utilizada también para asegurarnos que otras operaciones con archivos recibidos están funcionando correctamente.

Ejemplo 18-2. Verificando los archivos recibidos

Los siguientes ejemplos son validos para versiones de PHP 4 superiores a la 4.0.2. Veanse las funciones is_uploaded_file() y move_uploaded_file().

<?php
// In PHP 4.1.0 or later, $_FILES should be used instead of $HTTP_POST_FILES.
if (is_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'])) {
    copy($HTTP_POST_FILES['userfile']['tmp_name'], "/place/to/put/uploaded/file");
} else {
    echo "Possible file upload attack. Filename: " . $HTTP_POST_FILES['userfile']['name'];
}
/* ...or... */
move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], "/place/to/put/uploaded/file");
?>

El script PHP que recibe el fichero, debe implementar la lógica necesaria para determinar que debe ser realizado con el fichero. Se puede utilizar, por ejemplo, la variable $HTTP_POST_FILES['userfile']['size'] para descartar los ficheros demasiado chicos o demasiado grandes; por otro lado, se puede usar la variable $HTTP_POST_FILES['userfile']['type'] para descartar los que no se ajusten a algun criterio de tipo. Cualquiera que sea la logica que utilicemos, se debe borrar o mover el archivo del directorio temporal.

El archivo será borrado del directorio temporal al final de la petición si no se ha movido o renombrado.

Anterior | Inicio | Siguiente
Cookies | Subir | Errores comunes


Errores comunes

A MAX_FILE_SIZE no se le puede dar un valor mayor que el valor que se haya especificado en la directivaupload_max_filesize. Por defecto se tiene un límite de 2 MegaBytes.

Si se ha activado el límite de memoria, se deben especificar un valor alto para memory_limit. En cualquier caso, se debe asegurar un valor suficientemente grande para memory_limit.

Si max_execution_time tiene un valor muy pequeño, la ejecución del script puede exceder este valor. De esta forma, se debe asegurar un valor suficientemente grande para max_execution_time.

Si post_max_size tiene un valor muy pequeño, los ficheros mas grandes a este valor, no podrán ser enviados. Por ello, se debe asegurar un valor suficientemente grande para post_max_size.

No verificar que ficheros se estan manipulando puede tener como consecuencia que los usuarios puedan acceder a información sensible en otros directorios.

Cabe señalar que el httpd de CERN parece cortar todo a partir del primer espacio en blanco en el "content-type" de la cabecera mime que obtiene del cliente. Si este es el caso, con el httpd de CERN no se soporta la funcionalidad de envío de ficheros.

Anterior | Inicio | Siguiente
Manejo de envío de archivos | Subir | Envío de multiples ficheros


Envío de multiples ficheros

Se pueden enviar multiples ficheros usando diferentes nombres (name) para los input.

Así mismo, es posible enviar varios archivos simultaneamente y tener organizada en arrays la información. Para hacer esto, se utiliza la misma sintáxis que cuando tenemos multiples "selects" o "checkboxes" en el formulario HTML:

Nota: El soporte para envío multiple de ficheros fue añadido en la versión 3.0.10.

Ejemplo 18-3. Envío de multiples ficheros

<form action="file-upload.php" method="post" enctype="multipart/form-data">
  Send these files:<br>
  <input name="userfile[]" type="file"><br>
  <input name="userfile[]" type="file"><br>
  <input type="submit" value="Send files">
</form>

Cuando el formulario del ejemplo es enviado, los arrays $HTTP_POST_FILES['userfile'], $HTTP_POST_FILES['userfile']['name'] y $HTTP_POST_FILES['userfile']['size'] son inicializados. Así mismo pasa con $_FILES en PHP 4.1.0 o superiores y $HTTP_POST_VARS en PHP 3. Cuando register_globals esta activa, las variables globales para los archivos recibidos también son inicializadas. Cada uno de estos arrays tendrá en los índices numericos correspondientes los valores para cada fichero recibido.

Por ejemplo, si tomamos como nombres de archivo enviados /home/test/review.html y /home/test/xwp.out. Tendríamos en $HTTP_POST_FILES['userfile']['name'][0] el valor de review.html, y en $HTTP_POST_FILES['userfile']['name'][1] tendríamos xwp.out; analogamente, $HTTP_POST_FILES['userfile']['size'][0] contendría el tamaño del fichero review.html, y asi sucesivamente...

$HTTP_POST_FILES['userfile']['name'][0], $HTTP_POST_FILES['userfile']['tmp_name'][0], $HTTP_POST_FILES['userfile']['size'][0] y $HTTP_POST_FILES['userfile']['type'][0] tambien son asignadas.

Anterior | Inicio | Siguiente
Errores comunes | Subir | Soporte del método PUT


Soporte del método PUT

PHP soporta el metodo HTTP PUT que usan aplicaciones como Netscape Composer y Amaya del W3C. Las peticiones PUT son más sencillas que el método POST. Un ejemplo:

PUT /path/filename.html HTTP/1.1

Esto normalmente significaría que el cliente remoto quiere salvar el contenido como: /path/filename.html en tu árbol web. Lógicamente no una buena idea que la gente pueda escribir en tu árbol web. Para manipular esta petición debes decirle al servidor que esta petición sea atendida por un script PHP. En Apache, por ejemplo, se utiliza para esto la directiva Script en los alguno de los archivos de configuración del servidor. Un sitio típico de uso es dentro del bloque &lt;Directory&gt; o quizás en el bloque &lt;Virtualhost&gt;. Una linia así deberia hacer ésta función:

Script PUT /put.php

Ésto le dice a Apache que envíe todas peticiones PUT para URIs que contengan esta linia al script put.php. Se asume que PHP se encuentra activo y con la extensión .php enlazada a él.

Dentro del script put.php3 se podría implementar algo así:

<?php copy($PHP_UPLOADED_FILE_NAME,$DOCUMENT_ROOT.$REQUEST_URI); ?>

Esto copiaría el archivo a la localización requerida por el cliente remoto. Aqui se pueden ejecutar funciones de autentificación de usuario o cualquier otro tipo de chequeo. El archivo se guarda en el archivo temporal del sistema servidor de la misma manera que el Método POST. Cuando la petición finaliza, el archivo temporal es eliminado. En consequencia el script dede proceder al trato de éste inmediatamente, ya sea para copiarlo, renombrarlo, etc. El archivo se encuentra en la variable $PHP_PUT_FILENAME, y el destino sugerido por el cliente en la variable $REQUEST_URI (puede variar en servidores web que no sean Apache). No es necesario hacer caso al destino sugerido por el cliente. Por ejemplo se podrían copiar los archivos enviados a directorios especialmente designados para esta tarea.

Anterior | Inicio | Siguiente
Envío de multiples ficheros | Subir | Usando archivos remotos


Usando archivos remotos

Manual de PHP
Anterior Siguiente

Capítulo 19. Usando archivos remotos

Siempre que allow_url_fopen esté habilitado en php.ini, se pueden usar URLs HTTP y FTP con la mayoría de las funciones que toman un archivo como parámetro. Además URLs pueden ser usadas con include(), include_once(), require() y require_once(). Consultar Apéndice I para más información sobre los protocolos soportados por PHP.

Nota: En PHP 4.0.3 y versiones anteriores, para usar envolturas URL, habia que configurar PHP usando la opción de configuración --enable-url-fopen-wrapper.

Nota: Las versiones para windows de PHP, anteriores a PHP 4.3 no soportaban acceso remoto a ficheros en las funciones siguientes: include(), include_once(), require(), require_once(), y las funciones imagecreatefromXXX de la extensión Referencia XLI, Funciones para imágenes.

Por ejemplo, se puede usar este para abrir un archivo en un servidor web remoto, analizar en la salida la información que se quiera, y entonces, usar la información en una consulta a base de datos, o simplemente para sacarlas en un estilo que coincida con el resto de su sitio web.

Ejemplo 19-1. Obtener el título de una página remota

<?php
$file = fopen ("http://www.example.com/", "r");
if (!$file) {
    echo "<p>Unable to open remote file.\n";
    exit;
}
while (!feof ($file)) {
    $line = fgets ($file, 1024);
    /* This only works if the title and its tags are on one line */
    if (eregi ("<title>(.*)</title>", $line, $out)) {
        $title = $out[1];
        break;
    }
}
fclose($file);
?>

También se puede escribir a archivos en un servidor FTP (siempre que se conecte como un usuario con los correctos derechos de acceso). Solamente se pueden crear nuevos ficheros usando este método; si se intenta sobreescribir un fichero ya existente, la función fopen() fallará

Para conectar como un usuario distinto de 'anonymous', se necesita especificar el nombre de usuario (y posiblemente contraseña) dentro de la URL, tales como 'ftp://usuario:clave@ftp.ejemplo.com/camino/a/archivo'. (Se puede usar la misma clase de sintaxis para acceder a archivos via HTTP cuando se requería una autenticació de same sort of syntax to access files via HTTP when they require Basic authentication.)

Ejemplo 19-2. Almacenando datos en un servidor remoto

<?php
$file = fopen ("ftp://ftp.example.com/incoming/outputfile", "w");
if (!$file) {
    echo "<p>Unable to open remote file for writing.\n";
    exit;
}
/* Write the data here. */
fputs ($file, $_SERVER['HTTP_USER_AGENT'] . "\n");
fclose ($file);
?>

Nota: Podeis creer por el ejemplo anterior, que podeis usar esta tecnica para escribir en un fichero de registro remoto. Desgraciadamente no funcionaria porque la llamada fopen() fallaria si el fichero remoto existe. Para usar registros distribuidos de esa manera podeis consultar la funcion syslog().

Anterior | Inicio | Siguiente
Soporte del método PUT | Subir | Manejando conexiones


Manejando conexiones

Manual de PHP
Anterior Siguiente

Capítulo 20. Manejando conexiones

Nota: Todo lo siguiente se aplica a partir de la versión 3.0.7 y posterior.

Internamente en PHP se mantiene el estado de la conexión. Hay 3 posibles estados:

  • 0 - NORMAL

  • 1 - ABORTED (Abortado)

  • 2 - TIMEOUT (Fuera de tiempo)

Cuando un script PHP se está ejecutando se activa el estado NORMAL. Si el cliente remoto se desconecta, se pasa al estado ABORTED. Esto suele ocurrir cuando el usuario pulsa en el botón STOP del navegador. Si se alcanza el límite de tiempo impuesto por PHP (ver set_time_limit()), se pasa al estado TIMEOUT.

Puedes decidir si quieres que la desconexión de un cliente cause que tu script sea abortado. Algunas veces es cómodo que tus scripts se ejecuten por completo, incluso si no existe ya un navegador remoto que reciba la salida. El comportamiento por defecto es sin embargo, que tu script se aborte cuando el cliente remoto se desconecta. Este comportamiento puede ser configurado vía la directiva ignore_user_abort en el fichero php3.ini, o también con la función ignore_user_abort(). Si no le espeficicas al PHP que cuando un usuario aborte lo ignore, tu script terminará su ejecución. La única excepción es si tienes registrada un función de desconexión usando la función register_shutdown_function(). Con una función de desconexión, cuando un usuario remoto pulsa en el botón STOP, la próxima vez que tu script intenta mostrar algo, PHP detecta que la conexión ha sido abortada y se llama a la función de desconexión. Esta función de desconexión también se llama al final de la ejecución de tu script cuando se ha ejecutado normalmente, de manera que si quieres hacer algo diferente en caso de que un cliente se haya desconectado, puedes usar la función connection_aborted(). Esta función devuelve TRUE si la conexión fue abortada.

Vuestro script también se puede terminar por un temporizador interno. El timeout por defecto es de 30 segundos. Se puede cambiar usando la directiva max_execution_time en el fichero php.ini o la correspondiente directiva php_max_execution_time en la configuración del servidor de páginas Apache, como también con la función set_time_limit(). Cuando el temporizador expira, el script se aborta como en el caso de la desconexión del cliente, de manera que si se ha definido una función de desconexión, esta se llamará. Dentro de esta función de desconexión, puedes comprobar si fue el timeout el que causó que se llamara a la función de desconexión, llamando a la función connection_timeout(). Esta función devolverá verdadero si el timeout causa que se llame a la función de desconexión.

Hay que destacar que ambos, el estado ABORTED y el TIMEOUT, se pueden activar al mismo tiempo. Esto es posible si le dices a PHP que ignore las desconexiones intencionadas de los usuarios. PHP aún notará el hecho de que el usuario puede haberse desconectado, pero el script continuará ejecutándose. Si se alcanza el tiempo límite de ejecución será abortado y, si se ha definido una función de desconexión, esta será llamada. En este punto, encontrarás que las funciones connection_timeout() y connection_aborted() devuelven verdadero. Puedes comprobar ambos estados de una manera simple usando la función connection_status(). Esta función devuelve un campo de bit de los estados activos. De este modo, si ambos estados están activos devolvería por ejemplo un valor 3.

Anterior | Inicio | Siguiente
Usando archivos remotos | Subir | Conexiones persistentes a bases de datos


Conexiones persistentes a bases de datos

Manual de PHP
Anterior Siguiente

Capítulo 21. Conexiones persistentes a bases de datos

Las conexiones persistentes son enlaces que no se cierran cuando termina la ejecución del archivo de comandos. Cuando se pide una conexión persistente, PHP comprueba si hay ya una conexión persistente idéntica (que permanecía abierta desde antes) - y si existe, la usa. Si no existe, crea un enlace. Una conexión 'idéntica' es una conexión que se abrió hacia el mismo "host", con el mismo nombre de usuario y la misma contraseña (donde sea aplicable).

La gente que no está familiarizada con el modo como trabajan y distribuyen la carga los servidores "web" puede confundir que significa conexiones persistentes. En particular, no te dan la habilidad de abrir 'sesiones de usuario' en el mismo enlace, no dan la habilidad de construir una transacción de forma eficiente, y no hacen un montón de otras cosas. De hecho, para ser extremadamente claros sobre el tema las conexiones persistentes no te dan ninguna functionalidad que no fuera posible con sus hermanas no-persistentes.

¿Por qué?

Esto tiene que ver con el modo como funcionan los servidores "web". Hay tres modos en que un servidor "web" puede utilizar PHP para generar páginas web.

El primer método es usar PHP como una capa CGI. Cuando corre de este modo, se crea y destruye una instancia del intérprete PHP por cada página solicitada (para una página PHP) a tu servidor. Debido a que se destruye después de cada petición, cualquier recurso que adquiera (como un enlace a un servidor de base de datos SQL) se cierra cuando es destruido. En este caso, no se gana nada si se intentan usar conexiones persistentes, ya que simplemente no persisten.

El segundo, y más popular, método es correr PHP como un módulo en un servidor web multiproceso, lo cual actualmente sólo incluye Apache. Un servidor multiproceso tiene típicamente un proceso (el padre) que coordina un conjunto de procesos (sus hijos) que realmente hacen el trabajo se servir las páginas web. Cuando entra cada petición de un cliente, es entregada a uno de los hijos que no esté ya sirviendo a otro cliente. Esto significa que cuando el mismo cliente hace una segunda petción al servidor, puede ser atendido por un proceso hijo distinto del de la primera vez. Lo que una conexión persistente hace por ti en este caso es hacerlo de tal modo que cada proceso hijo sólo necesita conectar a tu SQL server la primera vez que sirve una página que hace uso de una conexión así. Cuando otra página solicita una conexión a SQL server, puede reutilizar la conexión que el hijo estableció previamente.

El último método es usar PHP como un "plug-in" para un servidor web multihilo. En la actualidad es solamente teórico -- PHP no funciona aún como "plug-in" para ningún servidor web multihilo. Actualmente PHP 4 soporta ISAPI, WSAPI y NSAPI (en Windows), lo cual permite a PHP ser utilizado como "plug-in" para servidores web multihilo como Netscape FastTrack, Internet Information Server (IIS) de Microsoft, y O'Reilly's WebSite Pro. El comportamiento es exactamente el mismo que para el modelo de multiprocesador descrito anteriormente. Tener en cuanta que el soporte para SAPI no está disponible en PHP 3.

Si las conexiones persistentes no aportan ninguna funcionalidad añadida, ¿para qué son buenas?

La respuesta aqui es extremadamente simple -- eficiencia. Las conexiones persistentes son buenas si las cabeceras de control para crear un enlace a tu servidor SQL es alta. Que estas cabeceras sean o no realmente altas depende de muchos factores. Como, qué clase de base de datos es, si esta o no situada en el mismo ordenador que el servidor web, cómo está de cargada la máquina donde se encuentre el servidor SQL, y otras así. El hecho fundamental es que si la cabecera de conexión es alta, las conexiones persistentes te ayudan considerablemente . Ellas hacen que el proceso hijo simplemente conecte solamente una vez durante todo su intervalo de vida, en vez de cada vez que procesa una pagina que requiere conectar al servidor SQL. Esto significa que por cada hijo que abrió una conexión persistente tendrá su propia conexión persistente al servidor. Por ejemplo, si tienes 20 procesos hijos distintos que corran un archivo de comandos que cree una conexión persistente a tu servidor SQL, tendrías 20 conexiones diferentes a ti servidor SQL, una por cada hijo.

No obstante, hay que tener en cuenta que esto puede tener desventajas si estais utilizando una base de datos con límites de conexión, por debajo del numero de procesos hijo con conexiones persistentes. Si tu base de datos tiene un límite de 16 conexiones simultaneas y en el curso de una sesión de servidor, 17 procesos hijo intentan conectarse, uno de ellos no podrá hacerlo. Si existen errores en los scripts, que no permitan terminar la conexion (p.ej.bucles infinitos), una base de datos con solo 16 conexiones puede ser rápidamente hundida. Comprobar la documentacion de vuestra base de datos para obtener información sobre que hacer con conexiones abandonadas ó libres.

Aviso

Un par de advertencias más a tener en cuenta cuando utiliceis conexiones persistentes. La primera, si utilizais bloqueos en una tabla desde una conexión persistente y por cualquier causa el script no puede desbloquear la tabla, todos los scripts posteriores que usen esta conexión, quedarán bloqueados indefinídamente y se requerirá que, ó bien el servidor httpd ó la base de datos sean arrancados de nuevo. La segunda, cuando utiliceis transacciones, un bloqueo por transacción será heredado por el próximo script usando la conexión, si la ejecución del primer script termina antes que el bloqueo. en ambos caso podeis utilizar register_shutdown_function() para registrar una funcion simple de limpieza que desbloquee las tablas ó deshaga la transacción. Lo mejor para evitar problemas es no usar conexiones persistentes en scripts que usen bloqueos de tablas ó transacciones (para todolo demás pueden ser usadas sin problemas)

Un resumen importante. Las conexiones persistentes fueron diseñadas para tener una equivalencia uno-a-uno con las conexiones normales. Eso significa que deberíais siempre ser capaz de reemplazar las conexiones persistentes por conexiones no persistentes y no cambiará el modo como se comporta el archivo de comandos. Puede cambiar la eficiencia del archivo de comandos (y probablemete lo hará), ¡pero no su comportamiento!

Ver tambien fbsql_pconnect(),
ibase_pconnect(),
ifx_pconnect(), imap_popen(),
ingres_pconnect(),
msql_pconnect(),
mssql_pconnect(),
mysql_pconnect(),
ociplogon(), odbc_pconnect(),
ora_plogon(), pfsockopen(),
pg_pconnect() y
sybase_pconnect().

Anterior | Inicio | Siguiente
Manejando conexiones | Subir | Modo Seguro (Safe Mode)


Modo Seguro (Safe Mode)

Manual de PHP
Anterior Siguiente

Capítulo 22. Modo Seguro (Safe Mode)

Tabla de contenidos
Funciones restringidas/inhabilitadas por Modo Seguro

El Modo Seguro de PHP es un intento para resolver el problema de la seguridad en un servidor compartido. Tratar de resolver este problema al nivel de PHP es arquitectónicamente incorrecto, pero ya que las alternativas en un servidor web y a niveles de sistemas operativos no son tan realistas, mucha gente, especialmente la de proveedores de Internet (ISP), usa el Modo Seguro por ahora.

Tabla 22-1. Las directivas de Configuración que controlan el Modo Seguro son:

Directiva | Valor por Omisión
safe_mode | Off
safe_mode_gid | 0
safe_mode_include_dir | ""
safe_mode_exec_dir | 1
open_basedir | ""
safe_mode_allowed_env_vars | PHP_
safe_mode_protected_env_vars | LD_LIBRARY_PATH
disable_functions | ""

Cuando safe_mode está en On, el PHP verifica si el dueño del script actual coincide con el dueño del fichero a ser operado por una función de fichero. Por ejemplo:
-rw-rw-r--    1 rasmus   rasmus       33 Jul  1 19:20 script.php
-rw-r--r--    1 root     root       1116 May 26 18:01 /etc/passwd
Corriendo este script.php
<?php
 readfile('/etc/passwd');
?>
resulta in este error cuando Modo Seguro está habilitado:
Warning: SAFE MODE Restriction in effect. The script whose uid is 500 is not
allowed to access /etc/passwd owned by uid 0 in /docroot/script.php on line 2

Sin embargo, pueden haber ambientes donde una estricta verificación del UID no es apropiada, y una relajada verificación del GID es suficiente. Esto es soportado por medio del switch safe_mode_gid. Seteándolo a On hace la verificación relajada GID, seteándolo a Off (el valor por omisión) hace la verificación del UID.

Si en vez del safe_mode, Ud. setea un directorio open_basedir, entonces todas las operaciones de fichero estarán limitadas a los ficheros bajo ese directorio especificado. Por ejemplo (ejemplo de httpd.conf de Apache):
<Directory /docroot>
  php_admin_value open_basedir /docroot
</Directory>
Si Ud. corre el mismo script.php con este seteo open_basedir, entonces este es el resultado:
Warning: open_basedir restriction in effect. File is in wrong directory in
/docroot/script.php on line 2

Ud. también puede inhabilitar funciones individuales. Note que la directiva disable_functions no puede ser usada fuera del fichero php.ini lo que significa que Ud. no puede inhabilitar funciones en los principios per-virtualhost o per-directory en su fichero httpd.conf. Si agregamos esto a nuestro fichero php.ini:
disable_functions readfile,system
Entonces obtenemos esta salida:
Warning: readfile() has been disabled for security reasons in
/docroot/script.php on line 2

Funciones restringidas/inhabilitadas por Modo Seguro

Esta es una lista probablemente incompleta y posiblemente incorrecta de las funciones limitadas por safe mode.

Tabla 22-2. Funciones limitadas por Modo Seguro

Función | Limitaciones
dbmopen() | Comprueba que los archivos/directorios que va a utilizar, tengan la misma UID que el script que está siendo ejecutado.
dbase_open() | Comprueba que los archivos/directorios que va a utilizar, tengan la misma UID que el script que está siendo ejecutado.
filepro() | Comprueba que los archivos/directorios que va a utilizar, tengan la misma UID que el script que está siendo ejecutado.
filepro_rowcount() | Comprueba que los archivos/directorios que va a utilizar, tengan la misma UID que el script que está siendo ejecutado.
filepro_retrieve() | Comprueba que los archivos/directorios que va a utilizar, tengan la misma UID que el script que está siendo ejecutado.
ifx_*() | restricciones sql_safe_mode, (!= safe mode)
ingres_*() | restricciones sql_safe_mode, (!= safe mode)
mysql_*() | restricciones sql_safe_mode, (!= safe mode)
pg_loimport() | Comprueba que los archivos/directorios que va a utilizar, tengan la misma UID que el script que está siendo ejecutado.
posix_mkfifo() | Comprueba si el directorio que vaa a utilizar, tiene la misma UID que el script que está siendo ejecutado.
putenv() | Obecede las ini-directivas safe_mode_protected_env_vars y safe_mode_allowed_env_vars. Vea también la documentación de putenv()
move_uploaded_file() | Comprueba que los archivos/directorios que va a utilizar, tengan la misma UID que el script que está siendo ejecutado.
chdir() | Comprueba si el directorio que vaa a utilizar, tiene la misma UID que el script que está siendo ejecutado.
dl() | Esta función no está habilitada en safe-mode (modo-seguro)
backtick operator | Esta función no está habilitada en safe-mode (modo-seguro)
shell_exec() (equivalencia funcional de backticks) | Esta función no está habilitada en safe-mode (modo-seguro)
exec() | Ud. puede correr sólo ejecutables dentro delsafe_mode_exec_dir. Por razones prácticas, no está actualmente permitido tener componentes .. en la ruta del fichero ejecutable.
system() | Ud. puede correr sólo ejecutatables dentro delsafe_mode_exec_dir. Por razones prácticas, no está actualmente permitido tener componentes .. en la ruta del fichero ejecutable.
passthru() | Ud. puede correr sólo ejecutatables dentro delsafe_mode_exec_dir. Por razones prácticas, no está actualmente permitido tener componentes .. en la ruta del fichero ejecutable.
popen() | Ud. puede correr sólo ejecutatables dentro delsafe_mode_exec_dir. Por razones prácticas, no está actualmente permitido tener componentes .. en la ruta del fichero ejecutable.
mkdir() | Comprueba si el directorio que vaa a utilizar, tiene la misma UID que el script que está siendo ejecutado.
rmdir() | Comprueba que los archivos/directorios que va a utilizar, tengan la misma UID que el script que está siendo ejecutado.
rename() | Comprueba que los archivos/directorios que va a utilizar, tengan la misma UID que el script que está siendo ejecutado. Comprueba si el directorio que vaa a utilizar, tiene la misma UID que el script que está siendo ejecutado.
unlink() | Comprueba que los archivos/directorios que va a utilizar, tengan la misma UID que el script que está siendo ejecutado. Comprueba si el directorio que vaa a utilizar, tiene la misma UID que el script que está siendo ejecutado.
copy() | Comprueba que los archivos/directorios que va a utilizar, tengan la misma UID que el script que está siendo ejecutado. Comprueba si el directorio que vaa a utilizar, tiene la misma UID que el script que está siendo ejecutado. (en source y target)
chgrp() | Comprueba que los archivos/directorios que va a utilizar, tengan la misma UID que el script que está siendo ejecutado.
chown() | Comprueba que los archivos/directorios que va a utilizar, tengan la misma UID que el script que está siendo ejecutado.
chmod() | Comprueba que los archivos/directorios que va a utilizar, tengan la misma UID que el script que está siendo ejecutado. Además, Ud. no puede setear los bits de SUID, SGID y sticky
touch() | Comprueba que los archivos/directorios que va a utilizar, tengan la misma UID que el script que está siendo ejecutado. Comprueba si el directorio que vaa a utilizar, tiene la misma UID que el script que está siendo ejecutado.
symlink() | Comprueba que los archivos/directorios que va a utilizar, tengan la misma UID que el script que está siendo ejecutado. Comprueba si el directorio que vaa a utilizar, tiene la misma UID que el script que está siendo ejecutado. (Nota: sólo el target es comprobado)
link() | Comprueba que los archivos/directorios que va a utilizar, tengan la misma UID que el script que está siendo ejecutado. Comprueba si el directorio que vaa a utilizar, tiene la misma UID que el script que está siendo ejecutado. (Nota: sólo the target es comprobado)
getallheaders() | En Modo Seguro, las cabeceras que empiezan con 'authorization' (insensitivo al tipo de letra) no serán retornadas. Advertencia: esto está roto por la implementación de aol-server de getallheaders()!
header() | En Modo Seguro, el UID del script está agregado a la parte realm de la cabecera WWW-Authenticate si Ud. setea esta cabecera (usado por HTTP Authentication).
highlight_file(), show_source() | Comprueba que los archivos/directorios que va a utilizar, tengan la misma UID que el script que está siendo ejecutado. Comprueba si el directorio que vaa a utilizar, tiene la misma UID que el script que está siendo ejecutado. (Nota: sólo afectado desde PHP 4.2.1)
parse_ini_file() | Comprueba que los archivos/directorios que va a utilizar, tengan la misma UID que el script que está siendo ejecutado. Comprueba si el directorio que vaa a utilizar, tiene la misma UID que el script que está siendo ejecutado. (Nota: sólo afectado desde PHP 4.2.1)
Cualquier función que usa php4/main/fopen_wrappers.c | ??

Anterior | Inicio | Siguiente
Conexiones persistentes a bases de datos | Subir | Usando PHP desde la línea de comando


Usando PHP desde la línea de comando

Manual de PHP
Anterior Siguiente

Capítulo 23. Usando PHP desde la línea de comando

Desde la versión 4.3.0, PHP soporta un nuevo tipo de SAPI (Interfaz De Programación De Uso Del Servidor) llamada CLI que significa literalmente interfaz de línea de comando (Command Line Interface). Como el nombre implica, este tipo de SAPI se foca en la creación de aplicaciones que pueden correr desde la línea de comando (o desde el desktop también) con PHP. Hay algunas diferencias dentro del CLI SAPI y otros SAPI que son explicadas en este capítulo. Es importante mencionar que CLI y CGI son diferentes clases de SAPI y comparten algunas características.

La interfaz llamada CLI SAPI fue introducida con PHP 4.2.0, pero es todavía en estado experimental y tiene que ser activada explícitamente con --enable-cli cuando usando ./configure. Desde PHP 4.3.0 la interfaz CLI SAPI es activada automáticamente. Tu puedes usar --disable-cli para de-activarla.

Desde PHP 4.3.0, el nombre, locación, y existencia de los binarios CLI/CGI serán diferentes dependiendo en como Instales PHP en tu sistema. Cuando ejecutes make, CGI, y CLI son compilados automáticamente, y puestas como sapi/cgi/php y sapi/cli/php respectivamente, en el directorio "source" de PHP. Debes notar, que los dos son llamados php. Lo que ocurre durante el proceso make depende en tu línea de configuración (./configure). Si el modulo SAPI es seleccionado durante tu configuración, como por ejemplo apxs, o la opción --disable-cgi es usada, el CLI es copiado a {PREFIX}/bin/php durante la ejecución del comando make install de otras maneras el CGI es instalado aquí. Por ejemplo, si pones --with-apxs en tu configuración, entonces el CLI es copiado a {PREFIX}/bin/php durante make install. Si tu quieres sobrescribir la instalación del CGI binario, utiliza make install-cli después de usar make install. Alternativamente puedes especificar --disable-cgi en tu línea de configuración.

Nota: Por que ambos --enable-cli y --enable-cgi son activados automáticamente, simplemente teniendo --enable-cli en tu línea de configuración no necesariamente significa que CLI son copiados a {PREFIX}/bin/php durante make install.

Los archivos de PHP 4.2.0 y PHP 4.2.3 distribuían el CLI como php-cli.exe, y los mantenía en el mismo directorio que el CGI php.exe. Empezando con PHP 4.3.0 el archivo para windows distribuye el CLI como php.exe en un directorio llamado cli; o sea cli/php.exe.

Que versión de SAPI tengo?: Desde tu línea de comando, ejecutando php -v te dejara saber si php es CGI o CLI.

Diferencias remarcables del CLI SAPI comparadas con otros SAPIs: SAPIs:

  • En esta clase de CGI SAPI no hay cabeceras ("headers") escritas en el resultado ("output").

    Aunque el CGI SAPI provee una manera de suprimir HTTP cabeceras ("headers"), no existe una opción equivalente que los activa en el CLI SAPI.

    CLI automáticamente empieza en modo silencioso, la opción -q existe por compatibilidad con antiguos programas CGI.

    No cambia el directorio corriente, a ese en el cual el programa vive. La opción -C es mantenida por compatibilidad.

    Errores son reportados en texto, no en el formato HTML.

  • Hay ciertas directivas en el php.ini que son sobrescrita por el CLI SAPI por que estas no hacen mucho sentido en situaciones donde la línea de comando es usada:

    Tabla 23-1. Directivas sobrescrita en php.ini

    Directivas (directives) | CLI SAPI evaluó automático (default value) | Commentario (comment)
    html_errors | FALSE | Cuando los resultados incorrectos aparecen en tu línea de comando, puede ser difícil hacer sentido de ellos con todas esas HTML tags, por esta razón, esta directiva es automáticamente FALSE.
    implicit_flush | TRUE | Es deseoso que los resultados de print (imprimir)(), echo (ecco)() y otras relacionadas, sean inmediatamente escritas como resultados y no mantenidas en ningún buffer. Tu todavía puedes usar output buffering si tu quieres manipular los resultados proveidos automáticamente.
    max_execution_time | 0 (unlimited) | Debido un numero ilimitado de posibilidades de usar PHP en la línea de comando, el máximo tiempo de ejecución es ilimitado. Aunque aplicaciones escritas para el Internet, usualmente requieres una rápida ejecución, la clase de aplicación que es ejecutada desde la línea de comando, usualmente necesitan mas tiempo para ejecutar correctamente.
    register_argc_argv TRUE

    Por que estas opciones son TRUE tu siempre necesitaras acceso al argc (el numero de argumentos pasados a la aplicación) y argv (el array de argumentos) en el CLI SAPI.

    Desde la versión 4.3.0 de PHP, las variables $argc y $argv son registradas y llenadas con los resultados apropiados cuando usando CLI SAPI. Antes de esta versión, la creación de estas variables es similar a como en CGI y MODULE versiones que requiere la PHP directiva register_globals estar on (active). Sin importar la versión o la configuración de register_globals tu siempre puedes trabajar por medio de $_SERVER o $HTTP_SERVER_VARS. Por ejemplo: $_SERVER['argv']

    Nota: Estas instrucciones no pueden ser iniciadas con valores que son diferentes a los de la configuración en php.ini o el archivo correspondiente. Esta es una limitación dada por que esos valores automáticos, son aplicados después de que todos los archivos conteniendo parámetros de configuración an sido ejecutados; PERO, esto valores pueden ser cambiados mientras to programa esta ejecutando (esto no hace sentido para todas las directivas, como por ejemplo register_argc_argv).

  • Para facilitar trabajando en la línea de comando, las siguientes constantes son definidas:

    Tabla 23-2. constantes especificas de CLI

    Constant (constante) Description (descripción)
    STDIN Una stream abierta hacia stdin. Esto nos salva de abrirla con
    $stdin = fopen('php://stdin', 'r');
    STDOUT Una stream abierta hacia stdout. Esto nos salva de abrirla con
    $stdout = fopen('php://stdout', 'w');
    STDERR Una stream abierta hacia stderr. Esto nos salva de abrirla con
    $stderr = fopen('php://stderr', 'w');

    Dado lo anterior, tu no necesitas abrir, como por ejemplo, una stream hacia stderr manualmente, solamente necesitas usar la constante en vez de usar los recursos de la stream:
    php -r 'fwrite(STDERR, "stderr\n");'
    No necesitas cerrar estas stream explícitamente, desde que son cerradas automáticamente por PHP cuando tu programa termina.

  • El CLI SAPI no cambia el directorio en el cual to estas corrientemente, al directorio donde el programa ejecutado vive!

    Ejemplo mostrando la diferencia al CGI SAPI:
    <?php
    /* Nuestra aplicaci&oacute;n llamada.php*/
    echo getcwd(), "\n";
?>

    Cuando usas la versión CGI el resultado es:
    $ pwd
/tmp

$ php -q otro_directorio/test.php
/tmp/otro_directorio
    Esto claramente muestra que PHP cambia su directorio al usado por el programa que ejecutas.

    Usando el CLI SAPI resulta:
    $ pwd
/tmp

$ php -f otro_directorio/test.php
/tmp
    Esto no da mas flexibilidad cuando escribiendo utilidades en la línea de comando con PHP.

    Nota:

Puedes obtener acceso a la lista de opciones proveida por PHP ejecutando PHP con el -hswitch:
Usage: php [options] [-f] <file> [args...]
       php [options] -r <code> [args...]
       php [options] [-- args...]
  -s               Display colour syntax highlighted source.
  -w               Display source with stripped comments and whitespace.
  -f <file>        Parse <file>.
  -v               Version number
  -c <path>|<file> Look for php.ini file in this directory
  -a               Run interactively
  -d foo[=bar]     Define INI entry foo with value 'bar'
  -e               Generate extended information for debugger/profiler
  -z <file>        Load Zend extension <file>.
  -l               Syntax check only (lint)
  -m               Show compiled in modules
  -i               PHP information
  -r <code>        Run PHP <code> without using script tags <?..?>
  -h               This help

  args...          Arguments passed to script. Use -- args when first argument
                   starts with - or script is read from stdin
Aunque los resultados anteriores siempre serán dados en ingles, a continuación te daré una lista que probablemente sera muy útil:
Usage: php [options] [-f] <file> [args...]
         php [options] -r <code> [args...]
         php [options] [-- args...]
    -s               Display colour syntax highlighted source.
                     (colorear el sintaxis en el c&oacute;digo)
    -w               Display source with stripped comments and whitespace.
                     (remueve los comentarios y espacios del c&oacute;digo)
    -f <file>        Parse <file>.
                     (analiza <file>)
    -v               Version number
                     (la versi&oacute;n de PHP que estas usando)
    -c <path>|<file> Look for php.ini file in this directory
                     (usa el php.ini archivo localizado aqu&iacute;)
    -a               Run interactively
                     (interactivo)
    -d foo[=bar]     Define INI entry foo with value 'bar'
                     (define foo con el valor 'bar' en php.ini)
    -e               Generate extended information for debugger/profiler
                     (genera mas informaci&oacute;n para el debugger/profiler)
    -z <file>        Load Zend extension <file>.
                     (inicia las exenciones Zend <archive>)
    -l               Syntax check only (lint)
                     (Mira al sintaxis (lint))
    -m               Show compiled in modules
                     (muestra los m&oacute;dulos compilados)
    -i               PHP information
                     (informaci&oacute;n PHP)
    -r <code>        Run PHP <code> without using script tags <?..?>
                     (ejecuta PHP <code> sin usar las tags <?..?> en el script
    -h               This help
                     (estas opciones)
    args...          Arguments passed to script. Use -- args when first argument
                     starts with - or script is read from stdin
                     (Argumentos pasados al programa. Usa -- args cuando el primer
                     argumento empieza con - o tu programa es le&iacute;do directamente desde stdin)

El CLI SAPI tiene tres diferentes maneras de obtener el código PHP que tu quieres ejecutar:

  1. Puedes decir a PHP que ejecute ciertos archivos.

    php my_script.php

php -f my_script.php
    En estos dos ejemplos (aunque utilices el switch -f o no) ejecutan el archivo my_script.php. Tu puedes escoger cualquier archivo para ejecutar - tus programas PHP no tienen que terminar con la exención .php y pueden tener cualquier otra exención tu desees.

  2. Pasa el código PHP para que sea ejecutado directamente en la línea de comando.

    php -r 'print_r(get_defined_constants());'
    Debes tener cuidado en reguardo a las substituciones variables en tu línea de comando y usando comillas(").

    Nota: Deves ponerle atención al ejemplo, y notaras que no tiene tags ni al principio ni al final, el comando -r simplemente no las usa. Usando las tags te dará un error cuando trates de ejecutar el programa.

  3. Provee el código PHP para ejecutar por medio de stdin

    Esto te da la habilidad de dinámicamente crear código PHP y mandarlo al programa, como por ejemplo a continuación:
    $ some_application | some_filter | php | sort -u >final_output.txt

Tu no puedes combinar ninguna de las tres formas de ejecutar el código.

Como cualquier aplicación ejecutada en la línea de comando, el PHP binario acepta un numero de argumentos y tu programa también puede recibir argumentos. El numero de argumentos que pueden ser pasados a tu programa no es limitado por PHP (la línea de comando tiene limitaciones en el numero de símbolos que pueden ser pasados; usualmente tu nunca alcanzarías este limite). Los argumentos pasados a tu programa, están disponibles en tu array global $argv. El índex cero ("0") siempre contiene el nombre de tu programa (que es - en caso de código que esta viniendo por medio del input estándar, o del switch en la línea de comando -r. La segunda variable global registrada es $argc y contiene el numero de elementos en el array $argv (no el numero de argumentos pasados as programa).

Mientras el argumento que tu quieres pasas a tu programa no comienza con -, no tienes que esperar por nada especial. Pero si el argumento empieza con -, te puede generar problemas, por que PHP pensara que tiene que procesarlo. Para prevenir esto, usa la lista separadora de argumentos: --. Después de que el separador a sido procesado, cada siguiente argumento es pasado sin tocar a tu programa.

# This will not execute the given code but will show the PHP usage
# Esto no ejecutara el c&oacute;digo pero PHP mostrara el uso
$ php -r 'var_dump($argv);' -h
Usage: php [options] [-f] <file> [args...]
[...]

# This will pass the '-h' argument to your script and prevent PHP from showing it's usage
# passaremos el argumento '-h' a tu programa y prevenira que PHP demuestre su uso
$ php -r 'var_dump($argv);' -- -h
array(2) {
  [0]=>
  string(1) "-"
  [1]=>
  string(2) "-h"
}

Pero, existe otra manera de usar PHP en la línea de comando. Tu puedes escribir un programa donde la primera línea empieza con #!/usr/bin/php (donde /usr/bin/php es la locación de php). Después de esto, tu puedes usar PHP común y corriente. Una vez que tu le as dado permiso de ejecución a tu programa (por ejemplo +x test) tu programa puede ser ejecutado como si fuera digamos un programa en perl:
#!/usr/bin/php
<?php
    var_dump($argv);
?>
Asumiremos que el archivo es llamado test, y esta en el mismo directorio en el cual to estas, en ese caso, podemos hacer lo siguiente.
$ chmod 755 test
$ ./test -h -- foo
array(4) {
  [0]=>
  string(6) "./test"
  [1]=>
  string(2) "-h"
  [2]=>
  string(2) "--"
  [3]=>
  string(3) "foo"
}
Como puedes ver, en este caso no atención es dada a pasar los parámetros que comiensen con - en tu programa.

Tabla 23-3. Opciones en la línea de comando

Opciones | Descripcion
-s

colora el sintaxis de tu código

Esta opción usa un mecanismo interno para ejecutar el archivo, y produce una versión coloreada en HML y la escribe como output normal. Nota que todo lo que hace es generar un bloque de <code> [...] </code> HTML tags, no cabecera deHTML es creada.

Nota: Esta opción no trabaja en conjunto con -r.

-w

Te mostrara tu código sin comentarios ni espacios blancos.

Nota: Esta opción no trabaja en conjunto con -r.

-f

Ejecuta el archivo indicado en la opción -f. Esta opción es opcional y puede ser excluida. Solamente proveiendo el archivo que necesita ser ejecutado es suficiente.

-v

Escribe la version de PHP, PHP SAPI y Zend al output normal, por ejemplo:
$ php -v
PHP 4.3.0 (cli), Copyright (c) 1997-2002 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2002 Zend Technologies

-c

Con esta opción uno puede especificar el directorio donde encontraremos el php.ini archivo, o tu puedes especificar una versión única del mismo (la cual no tiene que ser llamada php.ini), por ejemplo:
$ php -c /costumatisado/directorio/ mi_programa.php

$ php -c /customatisado/directorio/customatisado-archivo.ini mi_programa.php

-a

Corre PHP interactivamente.

-d

Esta opción te hayudara a crear el valor de cualquier directiva de configuración permitidas en el php.ini archivo. El sintaxis es:
-d directiva__de_configuracion [=valor]

Ejemplos:
# Omitting the value part will set the given configuration directive to "1"
# Omitiendo la parte relacionada al valor, le asignara a la directiva de configuracion el valor # "1"
$ php -d max_execution_time -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(1) "1"

# Passing an empty value part will set the configuration directive to ""
# Pasando un valor vac&iacute;o, le asignara a la directiva de configuraci&oacute;n el valor ""
php -d max_execution_time= -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(0) ""

# The configuration directive will be set to anything passed after the '=' character
# la directiva de configuraci&oacute;n sera asignada a todo pasada el "=" simbolo
$  php -d max_execution_time=20 -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(2) "20"
$  php -d max_execution_time=doesntmakesense -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(15) "doesntmakesense"

-e

Generando mas información para el debugger/profiler.

-z

Activa las extensiones Zend. Si solamente un archivo es dado, PHP tratara de activar estas extensiones directamente desde el directorio defacto donde esta tu librería en tu sistema (Usualmente especificado /etc/ld.so.conf en Linux). Pasando el nombre del archivo con descripción absoluta de la locación de tus archivos, no usara las librerías en tu sistema. Un archivo conteniendo la información de estos directorios, le dira a PHP que solamente trate de activar las extensiones relativas al directorio donde te encuentras

-l

Esta opción proveerá una forma conveniente para marcar tu sintaxis en tu código. En caso de suceso, el texto "No sintax errors detected in <filename> (no errores de sintaxis fueron detectados) es escrito en tu output normal, y la línea de comando retornara el código 0. En caso de problemas, el texto Errors parsing <filename>, en adición al la forma interna de detectar errores, mensajes son escritos como output normal y tu línea de comando recibirá el código 255

Esta opción no encontrara errores fatales (como por ejemplo funciones indefinida), usa -f si tu quieres probar por esta clase de errores también.

Nota: Esta opción no trabaja en conjunción con -r

-m

Usando esta opción, PHP imprime sus módulos internos (y activados) usados por PHP y Zend:
$ php -m
[PHP Modules]
xml
tokenizer
standard
session
posix
pcre
overload
mysql
mbstring
ctype

[Zend Modules]

-i | Esta opción llama phpinfo, e imprime los resultado. Si PHP no esta trabajando correctamente, es recomendable que uses esta opción observes si algún mensaje es imprimido antes de, o en medio de la información dada por esta opción. Es un detalle importante que entiendas que el mensaje imprimido es en HTML y por esta razón grandecito.
-r

Esta opción te ayudara a ejecutar PHP directamente desde la línea de comando. Las etiquetas que determinas el principio y al final de tu programa (<?php y ?>) no son necesarias y causaran errores si las pones en tu código.

Nota: Debes tener cuidado cuando usando esta forma de PHP para que no crees conflicto con la substitución de variables usada por la línea de comando.

Ejemplos de errores
$ php -r "$foo = get_defined_constants();"
Command line code(1) : Parse error - parse error, unexpected '='
El problema aquí es que sh/bash esta haciendo una substitución de variables, aunque las comillas (") están presentes. Desde que la variable $foo probablemente no esta definida, esta no se inflara en ninguna dirección, el resultado es que el código pasado a PHP para que ejecute realmente lee:
$ php -r " = get_defined_constants();"
La forma correcta de hacer esto, seria usando solamente una comilla ('), variables usando solamente una comilla no son infladas por sh/bash.
$ php -r '$foo = get_defined_constants(); var_dump($foo);'
array(370) {
  ["E_ERROR"]=>
  int(1)
  ["E_WARNING"]=>
  int(2)
  ["E_PARSE"]=>
  int(4)
  ["E_NOTICE"]=>
  int(8)
  ["E_CORE_ERROR"]=>
  [...]
Si tu no estas usando sh/bash, también puedes encontrar otros problemas. Por favor reporta estos problemas mandando un e-mail a phpdocs@lists.php.net Tu también puedes tener problemas si tratas de poner variables en tu código o cuando usas "/" como símbolos de escape. Te hemos advertido

Nota: -r esta listo en CLI SAPI y no en el CGI SAPI.

-h | Con esta opción, tu puedes obtener información acerca de las opciones describías anteriormente, y una breve descripción acerca de sus funciones.

PHP puede ejecutar tus programas absolutamente independiente de tu servidor de páginas de web. Si tu usas Unix, tu puedes añadir una línea especial al principio de tu programa, y hacerlo ejecutable, para que el sistema sepa que programa debe ejecutar tu nueva creación. Si usas windows, tu puedes asociar tu programa con php.exe para que solamente tengas que ejecutarlo como harías con otros programas bajo windows, también puedes crear un "batch" archivo para ejecutar tu programa por medio de PHP. La primera línea que usaste para hacer que tu programa funcione en Unix, no le ara daño a tu programa cuando ejecutad bajo windows, pero de esta manera puedes crear programas que puedes ser usados bajo las dos plataformas. A continuación te daremos un ejemplo:

Ejemplo 23-1. Programa para correr en la línea do comando (script.php)

#!/usr/bin/php
<?php

if ($argc != 2 || in_array($argv[1], array('--help', '-help', '-h', '-?'))) {
?>

Este es un programa en php entendido para la l&iacute;nea de
comando con una opci&oacute;n.

  Usage:
  <?php echo $argv[0]; ?> <option>

  <option> puede ser cualquier palabra que tu quieras
  imprimir. Con la opci&oacute;n --help, -help -h or -?, tu puedes
  obtener esta informaci&oacute;n

<?php
} else {
    echo $argv[1];
}
?>

En el programa anterior, usamos una línea especial como nuestra primera línea, para indicar que archivo deber ser ejecutado por PHP. Nosotros trabajamos con una versión de CLI aquí, por eso, no tendremos cabeceras de HTTP imprimidas. Hay dos variables que puedes usar cuando escribiendo aplicaciones en la línea de comando en PHP: $argc y $argv. La primera es el numero de argumentos mas uso (el nombre del programa siendo ejecutado). La segunda es un array conteniendo los argumentos, empezando con el programa nombre, y el numero cero "0" ($argv[0]).

En el programa anterior chequeamos si habían mas, o menos de dos argumentos. También trata de ver si --help, -help, -h o -?, son llamados, e imprime el mensaje de ayuda.

Si tu quieres ejecutar el programa anterior en Unix, tu tienes que hacerlo ejecutable, y simplemente llamado script.php echo this o script.php -h. En windows, tu puedes hacer un batch archivo para alcanzar estos resultados:

Ejemplo 23-2. Archivo batch para ejecutar el programa php (script.bat)

@c:\php\cli\php.exe script.php %1 %2 %3 %4

Asumiendo que llamaste el programa descrito anteriormente script.php , Y que tienes tu CLI php.exe en c:\php\cli\php.ese este archivo batch, lo ejecutara para ti con las funciones añadidas: script.bat echo this o script.bat -h.

Mira también la documentación de Readline para mas funciones que puedes usar para incrementar tus opciones en este sujeto.

Anterior | Inicio | Siguiente
Modo Seguro (Safe Mode) | Subir | Referencia de las Funciones


Referencia de las Funciones

Manual de PHP
Anterior Siguiente

V. Referencia de las Funciones

Tabla de contenidos
I. Funciones específicas de Apache
II. Funciones de matrices
III. Funciones Aspell [deprecated]
IV. Funciones matemáticas de precisión arbitraria BCMath
V. Funciones de compresión Bzip2
VI. Funciones de calendario
VII. Funciones del API de CCVS
VIII. soporte de las funciones COM para Windows
IX. Funciones de Clases/Objectos
X. Funciones de ClibPDF
XI. Crack functions
XII. Funciones CURL (Client URL Library)
XIII. Funciones de pago electrónico
XIV. Cyrus IMAP administration functions
XV. Funciones de tipo de caracter
XVI. Funciones de la capa de abstraccion de bases de datos (dbm-style)
XVII. Funciones de Fecha y Hora
XVIII. Funciones para dBase
XIX. Funciones dbm
XX. dbx functions
XXI. DB++ Functions
XXII. Funciones de acceso directo a E/S
XXIII. Funciones de directorio
XXIV. Funciones de DOM XML
XXV. .NET functions
XXVI. Funciones de Gestión de Errores y Registros
XXVII. File alteration monitor functions
XXVIII. FrontBase Functions
XXIX. Funciones filePro
XXX. Funciones del Sistema de Archivos
XXXI. Funciones Forms Data Format (Formato de Datos de Formularios)
XXXII. FriBiDi functions
XXXIII. Funciones FTP
XXXIV. Function Handling functions
XXXV. Gettext
XXXVI. GMP functions
XXXVII. Funciones HTTP
XXXVIII. Funciones para Hyperwave
XXXIX. Hyperwave API functions
XL. iconv functions
XLI. Funciones para imágenes
XLII. Funciones IMAP
XLIII. Funciones para Informix
XLIV. Funciones InterBase
XLV. Ingres II functions
XLVI. IRC Gateway Functions
XLVII. Integración de Java y PHP
XLVIII. Funciones LDAP
XLIX. Funciones de Correo
L. Funciones mailparse
LI. Funciones matemáticas
LII. Multi-Byte String Functions
LIII. MCAL functions
LIV. Funciones Criptográficas
LV. MCVE Payment Functions
LVI. Funciones Hash
LVII. Funciones Mimetype
LVIII. Funciones de Microsoft SQL Server
LIX. Ming functions for Flash
LX. Miscelánea de funciones
LXI. mnoGoSearch Functions
LXII. funciones mSQL
LXIII. Funciones MySQL
LXIV. Improved MySQL Extension
LXV. Mohawk Software session handler functions
LXVI. muscat functions
LXVII. Funciones de Red
LXVIII. Ncurses terminal screen control functions
LXIX. Lotus Notes functions
LXX. NSAPI-specific Functions
LXXI. ODBC functions
LXXII. Object Aggregation/Composition Functions
LXXIII. Funciones de Oracle 8
LXXIV. OpenSSL functions
LXXV. Funciones Oracle
LXXVI. Ovrimos SQL functions
LXXVII. Output Control Functions
LXXVIII. Object property and method call overloading
LXXIX. PDF functions
LXXX. Verisign Payflow Pro functions
LXXXI. Opciones e Información de PHP
LXXXII. Funciones POSIX
LXXXIII. Funciones de PostgreSQL
LXXXIV. Process Control Functions
LXXXV. Funciones de Ejecución de Programas
LXXXVI. Printer functions
LXXXVII. Pspell Functions
LXXXVIII. GNU Readline
LXXXIX. Funciones GNU Recode
XC. Funciones de expresiones regulares compatibles con Perl
XCI. qtdom functions
XCII. Funciones para expresiones regulares
XCIII. Funciones Semáforo y de memoria compartida
XCIV. SESAM database functions
XCV. Funciones para el manejo de sesiones
XCVI. Funciones de Memoria Compartida
XCVII. SQLite
XCVIII. Shockwave Flash functions
XCIX. Funciones SNMP
C. Socket functions
CI. Stream functions
CII. Funciones de cadenas
CIII. Funciones de Sybase
CIV. tidy Functions
CV. Tokenizer functions
CVI. Funciones URL
CVII. Funciones sobre variables
CVIII. vpopmail functions
CIX. W32api functions
CX. Funciones WDDX
CXI. Funciones de intérprete XML
CXII. XML-RPC functions
CXIII. XSLT functions
CXIV. YAZ
CXV. NIS funciona
CXVI. Funciones de manejo de archivos Zip (Solo lectura)
CXVII. Funciones de Compresión

Anterior | Inicio | Siguiente
Usando PHP desde la línea de comando |  | Funciones específicas de Apache


Funciones específicas de Apache

Manual de PHP
Anterior Siguiente

I. Funciones específicas de Apache

Introducción

Estas funciones están disponibles solamente cuando PHP se ejecuta como módulo de Apache 1.x.

Instalación

Información sobre la instalación de PHP con Apache se puede encontrar en el capítulo sobre instalación en la sección sobre Apache

Configuración en tiempo de ejecución

El comportamiento del módulo PHP de Apache está sujeto a los parámetros ajustados en php.ini. Los parámetros ajustados mediante php_flag en el archivo de configuración del servidor o archivos .htaccess locales, tendrán preferencia sobre aquellos ajustados en php.ini.

Ejemplo 1. Desactivar el intérprete PHP en un directorio utilizando .htaccess

php_flag engine off

Tabla 1. Opciones de configuración de Apache

Nombre | Por defecto | Modificable | Función
engine | On | PHP_INI_ALL | habilita o desactiva el intérprete PHP
child_terminate | Off | PHP_INI_ALL | especifica si los scripts PHP pueden requerir la terminación del proceso hijo al acabar un requerimiento. Véase también apache_child_terminate()
last_modified | Off | PHP_INI_ALL | enviar la fecha de modificación de los scripts PHP como la fecha de la última modifición en la cabecera del requerimiento actual
xbithack | Off | PHP_INI_ALL | interpretar los archivos cuyo bit ejecutable esté fijado a PHP, independientemente de su extensión

A continuación se presenta una corta explicación de las directivas de configuración

engine boolean

Esta directiva realmente sólo es útil cuando PHP es un módulo de Apache. Se utiliza para sitios que quieran activar o desactivar el intérprete de PHP en función del directorio o del host-virtual. Añadiendo engine off en los lugares apropiados del archivo httpd.conf, PHP puede ser habilitado o desactivado.

Tipos de recursos

Esta extensión no tiene ningún tipo de recurso definido.

Constantes predefinidas

Esta extensión no tiene ninguna constante definida.

Tabla de contenidos
apache_child_terminate -- Terminar un proceso de apache una vez concluido el requerimiento en ejecució
apache_get_version -- Fetch Apache version
apache_lookup_uri -- Efectua una petición parcial a la URI especificada y devuelve toda la información sobre ella.
apache_note -- Recibe y establece los valores de una petición en una tabla de notas del Apache
apache_request_headers -- Obtener todas las cabeceras HTTP
apache_response_headers -- Obtener todas las cabeceras HTTP de respuesta
apache_setenv -- fijar una variable subprocess_env de Apache
ascii2ebcdic -- Traducir una cadena en ASCII a EBCDIC
ebcdic2ascii -- Traduce una cadena en EBCDIC a ASCII
getallheaders -- Recibe todas las cabeceras de una petición HTTP
virtual -- Ejecuta una sub-petición al Apache

Anterior | Inicio | Siguiente
Referencia de las Funciones | Subir | apache_child_terminate


apache_child_terminate

(PHP 4 >= 4.0.5)

apache_child_terminate -- Terminar un proceso de apache una vez concluido el requerimiento en ejecució

Descripcíon

bool apache_child_terminate ( void )

apache_child_terminate() registrará el proceso Apache que esté ejecutando el requeriminto PHP actual para su terminacióon una vez que la ejecución del código haya finalizado. Puede ser utilizado para terminar un proceso una vez que un script con un alto consumo de memoria haya sido ejecutado, dado que la memoria únicamente sera liberada de forma interna, pero no será devuelta al sistema operativo.

Nota: La disponibilidad de esta característica se controla mediante la directiva child_terminate php.ini, que por defecto está establecida como off (desactivada).

Esta característica tampoco está disponible en las versiones "multi-thread" de Apache, como por ejemplo la versión win32.

Véase también la función exit().

Anterior | Inicio | Siguiente
Funciones específicas de Apache | Subir | apache_get_version


apache_get_version

(PHP 4 >= 4.3.2)

apache_get_version -- Fetch Apache version

Description

string apache_get_version ( void )

apache_get_version() returns the version of Apache as string, or FALSE on failure.

Ejemplo 1. apache_get_version() example

<?php
$version = apache_get_version();
echo "$version \n <br \>";
?>

The printout of the above program will look similar to:

Apache/1.3.29 (Unix) PHP/4.3.4

See also phpinfo().

Anterior | Inicio | Siguiente
apache_child_terminate | Subir | apache_lookup_uri


apache_lookup_uri

(PHP 3>= 3.0.4, PHP 4 )

apache_lookup_uri -- Efectua una petición parcial a la URI especificada y devuelve toda la información sobre ella.

Descripción

class apache_lookup_uri ( string filename)

Esta función efectua una llamada parcial a URI. Esta llamada no hace sino obtener toda la información importante sobre el recurso pedido y la devuelve en un tipo clase .Las propiedades de esa clase son:

status
the_request
status_line
method
content_type
handler
uri
filename
path_info
args
boundary
no_cache
no_local_copy
allowed
send_bodyct
bytes_sent
byterange
clength
unparsed_uri
mtime
request_time

Nota: Nota: apache_lookup_uri solo funciona cuando el PHP está instalado como módule del Apache.

Anterior | Inicio | Siguiente
apache_get_version | Subir | apache_note


apache_note

(PHP 3>= 3.0.2, PHP 4 )

apache_note -- Recibe y establece los valores de una petición en una tabla de notas del Apache

Descripción

string apache_note ( string note_name [, string note_value])

apache_note() es una función específica del Apache que recibe y establece valores de la petición en una tabla de notas. Si se llama con un solo parámetro,devuelve el valor de note_name. Si se llama con dos parámetros, establece el valor de note_value en note_value y devuelve el valor que había en note_name.

Anterior | Inicio | Siguiente
apache_lookup_uri | Subir | apache_request_headers


apache_request_headers

(PHP 4 >= 4.3.0)

apache_request_headers -- Obtener todas las cabeceras HTTP

Descripción

array apache_request_headers ( void )

apache_request_headers() devuelve una matriz asociativa de todas las cabeceras HTTP en la petición actual. Esta función está disponible únicamente cuando PHP se ejecuta como un módulo de Apache.

Ejemplo 1. Ejemplo de apache_request_headers()

<?php
$headers = apache_request_headers();

foreach ($headers as $header => $value) {
    echo "$header: $value <br />\n";
}
?>

Nota: Con anterioridad a PHP 4.3.0, apache_request_headers() se denominaba getallheaders(). A partir de PHP 4.3.0, getallheaders() es un alias para apache_request_headers().

Nota: También se puede obtener el valor de las variables CGI comunes a partir de las variables de entorno, lo cual funciona independientemente de que se esté utilizando PHP como un módulo de Apache. Utiliza phpinfo() para ver una lista de todas las variables de entorno disponibles.

Anterior | Inicio | Siguiente
apache_note | Subir | apache_response_headers


apache_response_headers

(PHP 4 >= 4.3.0)

apache_response_headers -- Obtener todas las cabeceras HTTP de respuesta

Descripción

array apache_response_headers ( void )

Devuelve una matriz con todas las cabeceras de respuesta de Apache. Esta característica sólo está disponible a partir de PHP 4.3.0.

Véase también getallheaders() y headers_sent().

Anterior | Inicio | Siguiente
apache_request_headers | Subir | apache_setenv


apache_setenv

(PHP 4 >= 4.2.0)

apache_setenv -- fijar una variable subprocess_env de Apache

Description

int apache_setenv ( string variable, string value [, bool walk_to_top])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
apache_response_headers | Subir | ascii2ebcdic


ascii2ebcdic

(PHP 3>= 3.0.17)

ascii2ebcdic -- Traducir una cadena en ASCII a EBCDIC

Descripción

int ascii2ebcdic ( string ascii_str)

ascii2ebcdic() es una función específica de Apache que únicamente está disponible en sistemas operativos basados en EBCDIC (OS/390, BS2000). Traduce la cadena ascii_str codificada en ASCII a su representació equivalente EBCDIC (a prueba de binario), y devuelve el resultado.

Véase también la función inversa ebcdic2ascii()

Anterior | Inicio | Siguiente
apache_setenv | Subir | ebcdic2ascii


ebcdic2ascii

(PHP 3>= 3.0.17)

ebcdic2ascii -- Traduce una cadena en EBCDIC a ASCII

Descripción

int ebcdic2ascii ( string ebcdic_str)

ebcdic2ascii() es una función específica de Apache que únicamente está disponible en sistemas operativos basados en EBCDIC (OS/390, BS2000). Traduce la cadena ebcdic_str codificada en EBCDIC a su representació equivalente ASCII (a prueba de binario), y devuelve el resultado.

Véase también la función inversa ascii2ebcdic()

Anterior | Inicio | Siguiente
ascii2ebcdic | Subir | getallheaders


getallheaders

(PHP 3, PHP 4 )

getallheaders -- Recibe todas las cabeceras de una petición HTTP

Descripción

array getallheaders ( void )

Esta función devuelve asociados en un vector todas las cabeceras de la actual petición HTTP.

Nota: También puedes obtener los valores de las variables de los CGIs mediante variables de entorno, que funcionan, esté o no el PHP funcionando como módulo del Apache. Utiliza phpinfo()para ver una lista de todas las variables de entorno definidas de esta forma.

Ejemplo 1. ObtenerTodaslasCabeceras() Ejemplo

$cabeceras = getallheaders();
while (list($cabecera, $valor) = each($cabeceras)) {
    echo "$cabecera: $valor<br>\n";
}
Este ejemplo visualiza todas las cabeceras de la petición actual.

Nota: ObtenerTodaslasCabeceras() actualmente solo funcionará si el PHP es cargado como módulo del Apache .

Anterior | Inicio | Siguiente
ebcdic2ascii | Subir | virtual


virtual

(PHP 3, PHP 4 )

virtual -- Ejecuta una sub-petición al Apache

Descripción

int virtual ( string filename)

virtual() es una función específica del Apache que es equivalente a <!--#include virtual...--> en mod_include. Esto ejecuta una sup-petición al Apache .Esto, es util para incluir CGI-scripts o páginas .shtml o cualquier tipo de fichero que puedas procesar mediante el Apache. Los CGI-scripts deberán generar cabeceras válidas. Esto, implica como mínimo un include() ó un require(); La función virtual() no puede ser usada para incluir un documento que sea por si mismo un documento PHP.

Anterior | Inicio | Siguiente
getallheaders | Subir | Funciones de matrices


Funciones de matrices

Manual de PHP
Anterior Siguiente

II. Funciones de matrices

Introducción

Estas funciones permiten trabajar y manipular matrices (arrays) de diferentes maneras. Las matrices se utilizan para guardar, manejar y operar grupos de variables.

Matrices simples y multi-dimensionales están soportadas y pueden ser creadas por el usuario u otras funciones. Existen funciones específicas de manejo de bases de datos que actualizan matrices con el resultado devuelto por la base de datos, numerosas otras funciones devuelven matrices como resultado.

Consultar la sección del manual Matrices si quereis una explicación detallada de como las matrices están implementadas en PHP.

Requerimientos

No se necesitan bibliotecas externas para construir esta extensión

Instalación

No se necesita ninguna instalación para usar estas funciones, son parte del núcleo de PHP.

Configuración en tiempo de ejecución

Esta extensión no tiene directivas de configuración en php.ini.

Tipos de recursos

Esta extensión no tiene ningún tipo de recurso definido.

Constantes predefinidas

Las constantes listadas aqui están siempre disponibles a través del "núcleo PHP".

CASE_LOWER (integer)

CASE_LOWER se utiliza con array_change_key_case() y se utiliza para convertir las claves de una matriz a minúsculas. Este es el valor por defecto de array_change_key_case().

CASE_UPPER (integer)

CASE_UPPER se utiliza con array_change_key_case() para convertir claves de matriz a mayúsculas.

Flags de ordenación:

SORT_ASC (integer)

SORT_ASC se utiliza con array_multisort() para ordenar en sentido ascendente.

SORT_DESC (integer)

SORT_DESC se utiliza con array_multisort() para ordenar en sentido descendente.

Flags de tipo ordenación: utilizadas por varias funciones ordenación

SORT_REGULAR (integer)

SORT_REGULAR se utiliza para comparar elementos de forma normal.

SORT_NUMERIC (integer)

SORT_NUMERIC se utiliza para comparar elementos de forma numérica.

SORT_STRING (integer)

SORT_STRING se utiliza para comparar elementos como cadenas.

COUNT_NORMAL (integer)

COUNT_RECURSIVE (integer)

EXTR_OVERWRITE (integer)

EXTR_SKIP (integer)

EXTR_PREFIX_SAME (integer)

EXTR_PREFIX_ALL (integer)

EXTR_PREFIX_INVALID (integer)

EXTR_PREFIX_IF_EXISTS (integer)

EXTR_IF_EXISTS (integer)

EXTR_REFS (integer)

Ver también

Ver tambien is_array(),
explode(), implode(),
split(), preg_split() y
unset().

Tabla de contenidos
array_change_key_case -- Devuelve una matriz con todas las claves de las cadenas convertidas a mayúsculas o minúsculas
array_chunk -- Divide una matriz en segmentos
array_combine -- Crea una nueva matriz, usando una matriz para las claves y otra para sus valores
array_count_values -- Cuenta todos los valores de una matriz
array_diff_assoc -- Comprueba las diferencias entre matrices teniendo en cuenta los índices
array_diff_uassoc -- Computa la diferencia entre matrices con un chequeo adicional de índices, el cual es realizado por una llamada de retorno entregada por el usuario.
array_diff -- Comprueba las diferencias entre matrices
array_fill -- Llena una matriz con valores
array_filter -- Filtra elementos de una matriz mediante una función "callback"
array_flip -- Intercambia los valores de una matriz
array_intersect_assoc -- Computes the intersection of arrays with additional index check
array_intersect -- Computes the intersection of arrays
array_key_exists -- Comprueba si el índice o clave dada existe en la matriz
array_keys -- Devuelve todas las claves de una matriz
array_map -- Aplica la llamada de retorno especificada a los elementos de las matrices dadas
array_merge_recursive -- Une dos o más matrices recursivamente
array_merge -- Combina dos o más matrices
array_multisort -- Ordena múltiples matrices, o matrices multi-dimensionales
array_pad -- Rellena una matriz con un valor hasta el tamaño especificado
array_pop -- Extrae el último elemento de la matriz
array_push -- Inserta uno o más elementos al final de la matriz
array_rand -- Selecciona una o más entradas aleatorias de una matriz
array_reduce -- Reduce iterativamente una matriz a un solo valor usando una función llamada de retorno
array_reverse -- Devuelve una matriz con los elementos en orden inverso
array_search -- Busca un valor determinado en una matriz y devuelve la clave correspondiente en caso de éxito
array_shift -- Extrae un elemento del comienzo de la matriz
array_slice -- Extrae una porción de la matriz
array_splice -- Suprime una porción de la matriz y la sustituye por otra cosa
array_sum -- Calcula la suma de los valores en una matriz
array_udiff_assoc -- Computa la diferencia entre matrices con un chequeo de índices adicional. Los datos son comparados usando una llamada de retorno.
array_udiff_uassoc -- Computa la diferencia entre matrices con un chequeo de índices adicional. Los datos son comparados usando una llamada de retorno. El chequeo de índice es realizado por una llamada de retorno también.
array_udiff -- Computa la diferencia entre matrices, usando una llamada de retorno para la comparación de datos.
array_unique -- Remueve valores duplicados de una matriz
array_unshift -- Introduce uno o más elementos al principio de la matriz
array_values -- Devuelve todos los valores de una matriz
array_walk -- Aplica una función del usuario a cada elemento de una matriz.
array -- Crear una matriz
arsort -- Ordena una matriz en orden inverso y mantiene la asociación de índices
asort -- Ordena una matriz y mantiene la asociación de índices
compact -- Crea una matriz que contiene variables y sus valores
count -- Cuenta los elementos de una variable
current -- Devuelve el elemento actual de una matriz
each -- Devuelve el siguiente par clave/valor de una matriz
end -- Mueve el puntero interno de una tabla al último elemento
extract -- Importa variables a la tabla de símbolos desde una matriz
in_array -- Devuelve TRUE si un valor está en una matriz
key -- Obtiene una clave de una matriz asociativa
krsort -- Ordena una matriz por clave en orden inverso
ksort -- Ordena una matriz por clave
list -- Asigna variables como si fueran una matriz
natcasesort -- Ordena una matriz usando un algoritmo de "orden natural" sin distinguir mayúsculas de minúsculas
natsort -- Ordena una matriz usando un algoritmo de "orden natural"
next -- Avanza el puntero interno de una matriz
pos -- Obtiene el elemento actual de una matriz
prev -- Rebobina el puntero interno de una matriz
range -- Crea una matriz que contiene un rango de elementos
reset -- Fija el puntero interno de una matriz a su primer elemento
rsort -- Ordena una matriz en orden inverso
shuffle -- Mezcla una matriz
sizeof -- Obtiene el número de elementos de una matriz
sort -- Ordena una matriz
uasort -- Ordena una matriz mediante una función de comparación definida por el usuario y mantiene la asociación de índices
uksort -- Ordena una matriz por claves mediante una función definida por el usuario
usort -- Ordena una matriz por valores mediante una funcion definida por el usuario

Anterior | Inicio | Siguiente
virtual | Subir | array_change_key_case


array_change_key_case

(PHP 4 >= 4.2.0)

array_change_key_case -- Devuelve una matriz con todas las claves de las cadenas convertidas a mayúsculas o minúsculas

Descripción

array array_change_key_case ( array input [, int case])

array_change_key_case() cambia las claves de la matriz input de forma que éstas sean todas mayúsculas o minúsculas. El cambio depende del parámetro opcional case, mediante el cual se pueden pasar dos constantes a la función: CASE_UPPER (mayúsculas) y CASE_LOWER (minúsculas). El valor por defecto es CASE_LOWER. La función no afectará a los índices numéricos.

Ejemplo 1. Ejemplo de array_change_key_case()

$input_array = array("PriMero" => 1, "SeGunDo" => 4);
print_r(array_change_key_case($input_array, CASE_UPPER));

La salida del programa anterior será:
Array
(
    [PRIMERO] => 1
    [SEGUNDO] => 4
)

Anterior | Inicio | Siguiente
Funciones de matrices | Subir | array_chunk


array_chunk

(PHP 4 >= 4.2.0)

array_chunk -- Divide una matriz en segmentos

Descripción

array array_chunk ( array input, int size [, bool preserve_keys])

array_chunk() divide una matriz en varias matrices, cada una con un número de valores equivalente a size. La última matriz generada puede tener un número menor de valores. Las matrices se obtienen como miembros de una matriz multidimensional, que será indexada con números empezando por el cero.

Si al parámetro opcional preserve_keys se le da el valor de TRUE, se fuerza a PHP a preservar las claves originales de la matriz de entrada. Si se especifica FALSE, se utilizarán nuevos índices numéricos en cada matriz resultante. El valor por defecto es FALSE.

Ejemplo 1. Ejemplo de array_chunk()

$input_array = array('a', 'b', 'c', 'd', 'e');
print_r(array_chunk($input_array, 2));
print_r(array_chunk($input_array, 2, TRUE));

La salida del anterior programa será:
Array
(
    [0] => Array
        (
            [0] => a
            [1] => b
        )

    [1] => Array
        (
            [0] => c
            [1] => d
        )

    [2] => Array
        (
            [0] => e
        )

)
Array
(
    [0] => Array
        (
            [0] => a
            [1] => b
        )

    [1] => Array
        (
            [2] => c
            [3] => d
        )

    [2] => Array
        (
            [4] => e
        )

)

Anterior | Inicio | Siguiente
array_change_key_case | Subir | array_combine


array_combine

(PHP 5 CVS only)

array_combine -- Crea una nueva matriz, usando una matriz para las claves y otra para sus valores

Descripción

array array_combine ( array claves, array valores)

Devuelve un array usando los valores de la matriz claves como claves, y los valores de la matriz valores como los valores correspondientes.

Devuelve FALSE si el número de elementos de cada matriz no es equivalente o si las matrices están vacías.

Ejemplo 1. Un ejemplo simple de array_combine()

<?php
$a = array('verde', 'rojo', 'amarillo');
$b = array('aguacate', 'manzana', 'banano');
$c = array_combine($a, $b);

print_r($c);

/* Despliega:
Array
(
    [verde]    => aguacate
    [rojo]     => manzana
    [amarillo] => banano
)
*/
?>

Vea también array_merge(),
array_walk(), y
array_values().

Anterior | Inicio | Siguiente
array_chunk | Subir | array_count_values


array_count_values

(PHP 4 )

array_count_values -- Cuenta todos los valores de una matriz

Descripción

array array_count_values ( array entrada)

array_count_values() devuelve una matriz usando los valores de la matriz entrada como claves y su frecuencia de aparición en la entrada como valores.

Ejemplo 1. Ejemplo de array_count_values()

$matriz = array(1, "hola", 1, "mundo", "hola");
array_count_values($matriz); // devuelve array(1=>2, "hola"=>2, "mundo"=>1)

Nota: Esta función fue añadida en el PHP 4.0.

Anterior | Inicio | Siguiente
array_combine | Subir | array_diff_assoc


array_diff_assoc

(PHP 4 >= 4.3.0)

array_diff_assoc -- Comprueba las diferencias entre matrices teniendo en cuenta los índices

Descripción

array array_diff_assoc ( array array1, array array2 [, array ...])

array_diff_assoc() devuelve una matriz que contiene todos los valores de array1 que no estén presentes en ninguna de las otras matrices que se pasan como argumento. Hay que tener en cuenta que las claves de los valores se utilizan en la comparación, a diferencia de array_diff().

Ejemplo 1. Ejemplo de array_diff_assoc()

<?php
$array1 = array ("a" => "verde", "b" => "negro", "c" => "azul", "rojo");
$array2 = array ("a" => "verde", "amarillo", "rojo");
$result = array_diff_assoc ($array1, $array2);

/* El resultado es:
Array
(
    [b] => negro
    [c] => azul
    [0] => rojo
)
*/
?>

En el ejemplo anterior se ve que el par "a" => "verde" está presente en ambas matrices y por ello no aparece en la matriz resultado. Por el contrario, el par 0 => "rojo" sí aparece en el resultado puesto que en el segundo argumento el valor "red" tiene la clave 1.

Dos valores de pares clave => valor se consideran iguales si y sólo si (string) $elem1 === (string) $elem2, es decir, cuando la representación de cadena es la misma.

Nota: Hay que tener en cuenta que esta función sólo comprueba una dimensión de una matriz n-dimensional. Por supuesto, se pueden comprobar dimensiones sucesivas mediante: array_diff_assoc($array1[0], $array2[0]);.

Véase también array_diff(),
array_intersect(),
y array_intersect_assoc().

Anterior | Inicio | Siguiente
array_count_values | Subir | array_diff_uassoc


array_diff_uassoc

(no version information, might be only in CVS)

array_diff_uassoc -- Computa la diferencia entre matrices con un chequeo adicional de índices, el cual es realizado por una llamada de retorno entregada por el usuario.

Descripción

array array_diff_assoc ( array matriz1, array matriz2 [, array ..., callback func_comparacion_claves])

array_diff_uassoc() devuelve un array que contiene todos los valores de matriz1 que no están presentes en ninguno de los otros argumentos. Note que las claves son usadas en la comparación, a diferencia de array_diff(). Esta comparación es realizada por una llamada de retorno entregada por el usuario. La función debe devolver un entero menor que, igual, o mayor que cero si el primer argumento es considerado como menor, igual, o mayor que el segundo, respectivamente. Esto en contraste a array_diff_assoc() en donde es usada una función interna para la comparación de índices.

Ejemplo 1. Ejemplo de array_diff_uassoc()

<?php
function func_comparacion_claves($a, $b) {
    if ($a === $b) return 0;
    return ($a > $b)? 1:-1;
}

$matriz1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$matriz2 = array("a" => "green", "yellow", "red");
$resultado = array_diff_uassoc($matriz1, $matriz2, "func_comparacion_claves");
?>

El resultado es:

Array
(
    [b] => brown
    [c] => blue
    [0] => red
)

En nuestro ejemplo anterior, puede ver que la pareja "a" => "green" está presente en ambas matrices y por lo tanto no hace parte de la salida de la función. En contraste, la pareja 0 => "red" está en la salida ya que en el segundo argumento, "red" tiene una clave que es 1.

La igualdad de 2 índices es revisada por la llamada de retorno indicada por el usuario.

Nota: Por favor note que esta función sólo analiza una dimensión de una matriz n-dimensional. Por supuesto que puede analizar dimensiones más profundas usando, por ejemplo, array_diff_uassoc($matriz1[0], $matriz2[0], "func_comparacion_claves");.

Vea también
array_diff(),
array_diff_assoc(),
array_udiff(),
array_udiff_assoc(),
array_udiff_uassoc(),
array_intersect(),
array_intersect_assoc(),
array_uintersect(),
array_uintersect_assoc() y
array_uintersect_uassoc().

Anterior | Inicio | Siguiente
array_diff_assoc | Subir | array_diff


array_diff

(PHP 4 >= 4.0.1)

array_diff -- Comprueba las diferencias entre matrices

Descripción

array array_diff ( array array1, array array2 [, array ...])

array_diff() devuelve una matriz que contiene todos los valores de array1 que no aparezcan en ninguna de las otras matrices que se pasan a la función como argumento. Hay que tener en cuenta que las claves se mantienen.

Ejemplo 1. Ejemplo de array_diff()

$array1 = array ("a" => "verde", "rojo", "azul", "rojo");
$array2 = array ("b" => "verde", "amarillo", "rojo");
$resultado = array_diff ($array1, $array2);

Lo cual hace que $resultado contenga la matriz array ("azul");. Multiples ocurrencias en $array1 son tratadas todas de la misma forma.

Nota: Dos elementos se consideran equivalentes si y sólo si (string) $elem1 === (string) $elem2, es decir, cuando la representación de cadena es la misma.

Nota: Hay que tener en cuenta que esta función sólo comprueba una dimensión de una matriz n-dimensional. Por supuesto, se pueden comprobar dimensiones sucesivas mediante: array_diff($array1[0], $array2[0]);.

Aviso

Esta función se rompió en PHP 4.0.4!

Véase también array_diff_assoc(),
array_intersect() y
array_intersect_assoc().

Anterior | Inicio | Siguiente
array_diff_uassoc | Subir | array_fill


array_fill

(PHP 4 >= 4.2.0)

array_fill -- Llena una matriz con valores

Descripción

array array_fill ( int start_index, int num, mixed value)

array_fill() introduce en una matriz tantas entradas como especifique el parámetro num, numerandolas a partir de start_index, y les asigna el valor del parámetro value.

Ejemplo 1. Ejemplo de array_fill()

$a = array_fill(5, 6, 'banana');
print_r($a);

$a contendrá ahora:
Array
(
    [5]  => banana
    [6]  => banana
    [7]  => banana
    [8]  => banana
    [9]  => banana
    [10] => banana
)

Anterior | Inicio | Siguiente
array_diff | Subir | array_filter


array_filter

(PHP 4 >= 4.0.6)

array_filter -- Filtra elementos de una matriz mediante una función "callback"

Description

array array_filter ( array input [, callback function])

array_filter() repasa cada valor en la matriz input y lo pasa a la función callback. Si la función callback devuelve verdadero, el valor es devuelto a la matriz resultado. Los índices de la matriz se mantienen.

Ejemplo 1. Ejemplo de array_filter()

<?php
function impar($var) {
    return ($var % 2 == 1);
}

function par($var) {
    return ($var % 2 == 0);
}

$array1 = array ("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
$array2 = array (6, 7, 8, 9, 10, 11, 12);

echo "Impares :\n";
print_r(array_filter($array1, "impar"));
echo "Pares:\n";
print_r(array_filter($array2, "par"));
?>

La salida en pantalla del programa anterior será:

Impares :
Array
(
    [a] => 1
    [c] => 3
    [e] => 5
)
Pares:
Array
(
    [0] => 6
    [2] => 8
    [4] => 10
    [6] => 12
)

No se debe modificar la matriz a la que array_filter() se aplica desde la función "callback", como p. ej. añadir o eliminar un elemento, o realizar un "unset()". Si la matriz es modificada el comportamiento de esta función no está definido.

Ver también array_map(), array_reduce(), y array_walk().

Anterior | Inicio | Siguiente
array_fill | Subir | array_flip


array_flip

(PHP 4 )

array_flip -- Intercambia los valores de una matriz

Descripción

array array_flip ( array trans)

array_flip() devuelve una matriz con los valores intercambiados.

Ejemplo 1. Ejemplo de array_flip()

$trans = array_flip ($trans);
$original = strtr ($str, $trans);

Nota: Esta función fue añadida en el PHP 4.0.

Anterior | Inicio | Siguiente
array_filter | Subir | array_intersect_assoc


array_intersect_assoc

(PHP 4 >= 4.3.0)

array_intersect_assoc -- Computes the intersection of arrays with additional index check

Description

array array_intersect_assoc ( array array1, array array2 [, array ...])

array_intersect_assoc() returns an array containing all the values of array1 that are present in all the arguments. Note that the keys are used in the comparison unlike in array_intersect().

Ejemplo 1. array_intersect_assoc() example

<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "yellow", "red");
$result_array = array_intersect_assoc($array1, $array2);

/* $result_array will look like:

Array
(
    [a] => green
)

*/
?>

In our example you see that only the pair "a" => "green" is present in both arrays and thus is returned. The value "red" is not returned because in $array1 it's key is 0 while the key of "red" in $array2 is 1.

The two values from the key => value pairs are considered equal only if (string) $elem1 === (string) $elem2 . In otherwords a strict type check is executed so the string representation must be the same.

See also array_intersect(),
array_diff() and
array_diff_assoc().

Anterior | Inicio | Siguiente
array_flip | Subir | array_intersect


array_intersect

(PHP 4 >= 4.0.1)

array_intersect -- Computes the intersection of arrays

Description

array array_intersect ( array array1, array array2 [, array ...])

array_intersect() returns an array containing all the values of array1 that are present in all the arguments. Note that keys are preserved.

Ejemplo 1. array_intersect() example

<?php
$array1 = array("a" => "green", "red", "blue");
$array2 = array("b" => "green", "yellow", "red");
$result = array_intersect($array1, $array2);
?>

This makes $result have

Array
(
    [a] => green
    [0] => red
)

Nota: Two elements are considered equal if and only if (string) $elem1 === (string) $elem2. In words: when the string representation is the same.

See also array_intersect_assoc(),
array_diff(), and
array_diff_assoc().

Anterior | Inicio | Siguiente
array_intersect_assoc | Subir | array_key_exists


array_key_exists

(PHP 4 >= 4.1.0)

array_key_exists -- Comprueba si el índice o clave dada existe en la matriz

Descripción

bool array_key_exists ( mixed clave, array fuente)

array_key_exists() devuelve TRUE si la clave dada existe en la matriz. La clave puede ser cualquier valor válido como índice de una matriz.

Ejemplo 1. Ejemplo de array_key_exists()

<?php
$matriz_a_buscar = array("primero" => 1, "segundo" => 4);
if (array_key_exists("primero", $matriz_a_buscar)) {
    echo "El elemento 'primero' se encuentra en la matriz";
}
?>

Nota: El nombre de esta función es key_exists() en la versión 4.0.6 de PHP.

Vea también isset(),
array_keys(), y
in_array().

Anterior | Inicio | Siguiente
array_intersect | Subir | array_keys


array_keys

(PHP 4 )

array_keys -- Devuelve todas las claves de una matriz

Descripción

array array_keys ( array entrada [, mixed val_a_buscar])

array_keys() devuelve las claves, numéricas y de cadena, de la matriz entrada.

Si se especifica el parámetro opcional val_a_buscar, sólo se devuelven las claves para dicho valor. De otro modo, se devuelven todas las claves de la entrada.

Ejemplo 1. Ejemplo de array_keys()

$matriz = array(0 => 100, "color" => "rojo");
array_keys ($matriz);       // devuelve array (0, "color")

$matriz = array(1, 100, 2, 100);
array_keys ($matriz, 100);  // devuelve array (0, 2)

Vea también: array_values().

Nota: Esta función fue añadida en el PHP 4.0.

Anterior | Inicio | Siguiente
array_key_exists | Subir | array_map


array_map

(PHP 4 >= 4.0.6)

array_map -- Aplica la llamada de retorno especificada a los elementos de las matrices dadas

Descripción

array array_map ( mixed llamada_de_retorno, array matriz1 [, array ...])

array_map() devuelve una matriz que contiene todos los elementos de matriz1 después de haber aplicado la función llamada_de_retorno a cada uno de ellos. El número de parámetros que la función llamada_de_retorno acepte debería coincidir con el número de matrices que son pasadas como argumentos a array_map().

Ejemplo 1. Ejemplo de array_map()

<?php
function cubo($n) {
    return($n * $n * $n);
}

$a = array(1, 2, 3, 4, 5);
$b = array_map("cubo", $a);
print_r($b);
?>

Esto hace que $b contenga:

Array
(
    [0] => 1
    [1] => 8
    [2] => 27
    [3] => 64
    [4] => 125
)

Ejemplo 2. array_map() - usando más matrices

<?php
function mostrar_Castellano($n, $m) {
    return("El n&uacute;mero $n es llamado $m en Castellano");
}

function map_Castellano($n, $m) {
    return(array($n => $m));
}

$a = array(1, 2, 3, 4, 5);
$b = array("uno", "dos", "tres", "cuatro", "cinco");

$c = array_map("mostrar_Castellano", $a, $b);
print_r($c);

$d = array_map("map_Castellano", $a , $b);
print_r($d);
?>

Esto produce:

// salida correspondiente a $c
Array
(
    [0] => El n&uacute;mero 1 es llamado uno en Castellano
    [1] => El n&uacute;mero 2 es llamado dos en Castellano
    [2] => El n&uacute;mero 3 es llamado tres en Castellano
    [3] => El n&uacute;mero 4 es llamado cuatro en Castellano
    [4] => El n&uacute;mero 5 es llamado cinco en Castellano
)

// salida correspondiente a $d
Array
(
    [0] => Array
        (
            [1] => uno
        )

    [1] => Array
        (
            [2] => dos
        )

    [2] => Array
        (
            [3] => tres
        )

    [3] => Array
        (
            [4] => cuatro
        )

    [4] => Array
        (
            [5] => cinco
        )

)

Usualmente cuando se usan dos o más matrices, éstas deberían ser de longitudes iguales ya que la llamada de retorno es aplicada en paralelo a los elementos correspondientes. Si los arreglos son de longitudes diferentes, el más corto de ellos será extendido con elementos vacíos.

Un uso interesante de esta función es la construcción de una matriz de matrices, que puede ser llevada a cabo usando NULL como el nombre de la llamada de retorno.

Ejemplo 3. Creación de una matriz de matrices

<?php
$a = array(1, 2, 3, 4, 5);
$b = array("one", "two", "three", "four", "five");
$c = array("uno", "dos", "tres", "cuatro", "cinco");

$d = array_map(null, $a, $b, $c);
print_r($d);
?>

La salida del anterior programa será:

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => one
            [2] => uno
        )

    [1] => Array
        (
            [0] => 2
            [1] => two
            [2] => dos
        )

    [2] => Array
        (
            [0] => 3
            [1] => three
            [2] => tres
        )

    [3] => Array
        (
            [0] => 4
            [1] => four
            [2] => cuatro
        )

    [4] => Array
        (
            [0] => 5
            [1] => five
            [2] => cinco
        )

)

Vea también array_filter(),
array_reduce(), y
array_walk().

Anterior | Inicio | Siguiente
array_keys | Subir | array_merge_recursive


array_merge_recursive

(PHP 4 >= 4.0.1)

array_merge_recursive -- Une dos o más matrices recursivamente

Descripción

array array_merge_recursive ( array matriz1, array matriz2 [, array ...])

array_merge_recursive() une los elementos de dos o más matrices de modo tal que los valores de cada una sean añadidos al final de la matriz previa. Devuelve la matriz resultante.

Si las matrices de entrada tienen las mismas claves tipo cadena, entonces los valores de estas claves son unidas en una matriz, y esto es hecho recursivamente, de modo que si uno de los valores es una matriz misma, la función unirá también ésta con la correspondiente entrada de otra matriz. Sin embargo, si las matrices tienen la misma clave numérica, el valor más cercano al final no sobrescribirá el valor original, sino que será añadido al final.

Ejemplo 1. Ejemplo de array_merge_recursive()

<?php
$m1 = array("color" => array("favorito" => "rojo"), 5);
$m2 = array(10, "color" => array("favorito" => "verde", "azul"));
$resultado = array_merge_recursive($m1, $m2);
?>

El $resultado será:

Array
(
    [color] => Array
        (
            [favorito] => Array
                (
                    [0] => rojo
                    [1] => verde
                )

            [0] => azul
        )

    [0] => 5
    [1] => 10
)

Vea también array_merge().

Anterior | Inicio | Siguiente
array_map | Subir | array_merge


array_merge

(PHP 4 )

array_merge -- Combina dos o más matrices

Descripción

array array_merge ( array matriz1, array matriz2 [, ...])

array_merge() combina los elementos de dos o más matrices conjuntamente de modo que los valores de una son agregados al final de los valores de la anterior. Devuelve la matriz resultante.

Si las matrices de entrada tienen las mismas claves de cadena, el último valor para cada clave reemplazará el valor previo de la misma. Si, por el contrario, las matrices tienen la misma clave numérica, esto no pasa y los valores son simplemente agregados.

Ejemplo 1. Ejemplo de array_merge()

$matriz1 = array ("color" => "rojo", 2, 4);
$matriz2 = array ("a", "b", "color" => "verde", "forma" => "trapezoide");
array_merge ($matriz1, $matriz2);

La matriz resultante sería array("color" => "verde", 2, 4, "a", "b", "forma" => "trapezoide").

Nota: Esta función fue añadida en el PHP 4.0.

Anterior | Inicio | Siguiente
array_merge_recursive | Subir | array_multisort


array_multisort

(PHP 4 )

array_multisort -- Ordena múltiples matrices, o matrices multi-dimensionales

Descripción

bool array_multisort ( array matriz1 [, mixed arg [, mixed ... [, array ...]]])

array_multisort() puede usarse para ordenar varias matrices al tiempo o una matriz multi-dimensional de acuerdo a una de sus varias dimensiones. La función mantiene la asociación de claves cuando realiza es ordenamiento.

Las matrices de entrada son tratadas como columnas de una tabla que deberá ser ordenada por filas - de forma similar a la funcionalidad de una sentencia SQL ORDER BY. La primera matriz es considerada la primaria para el ordenamiento. Las filas (valores) en esa matriz que sean comparadas como iguales son ordenadas por la siguiente matriz de entrada, y así sucesivamente.

La estructura de argumentos de esta función es un poco inusual, pero flexible. El primer argumento de todos debe ser una matriz. Subsecuentemente, cada argumento puede ser o una matriz o una bandera de ordenamiento de las siguientes.

Banderas de orientación del ordenamiento:

  • SORT_ASC - ordenar ascendentemente

  • SORT_DESC - ordenar descendentemente

Banderas de tipo de ordenamiento

  • SORT_REGULAR - comparar elementos normalmente

  • SORT_NUMERIC - comparar elementos numéricamente

  • SORT_STRING - comparar elementos como cadenas

No pueden especificarse dos banderas de ordenamiento del mismo tipo luego de cada matriz. Las banderas de ordenamiento especificadas a continuación de un argumento matriz se aplican sólo a esa matriz - estos valores son restablecidos de vuelta a SORT_ASC y SORT_REGULAR antes de cada nuevo argumento matriz.

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Ejemplo 1. Ordenamiento de varias matrices

<?php
$matriz1 = array("10", 100, 100, "a");
$matriz2 = array(1, 3, "2", 1);
array_multisort($matriz1, $matriz2);
?>

En este ejemplo, después del ordenamiento, la primera matriz contendrá los valores 10, "a", 100, 100. La segunda matriz contendrá 1, 1, "2", 3. Las entradas en la segunda matriz que correspondían a las entradas idénticas de la primera matriz (100 y 100) fueron ordenadas también.

Ejemplo 2. Ordenamiento de una matriz multi-dimensional

<?php
$matriz = array(array("10", 100, 100, "a"), array(1, 3, "2", 1));
array_multisort($matriz[0], SORT_ASC, SORT_STRING,
                $matriz[1], SORT_NUMERIC, SORT_DESC);
?>

En este ejemplo, después del ordenamiento, la primera matriz contendrá 10, 100, 100, "a" (fue ordenada como cadenas en orden ascendente), y la segunda tendrá 1, 3, "2", 1 (ordenada como números, en orden descendiente).

Anterior | Inicio | Siguiente
array_merge | Subir | array_pad


array_pad

(PHP 4 )

array_pad -- Rellena una matriz con un valor hasta el tamaño especificado

Descripción

array array_pad ( array entrada, int tama_relleno, mixed valor_relleno)

array_pad() Devuelve una copia de la entrada rellenada hasta el tamaño tama_relleno con el valor valor_relleno. Si tama_relleno es positivo, entonces la matriz es rellenada por la derecha, y si es negativo, por la izquierda. Si el valor absoluto de tama_relleno es menor o igual que el tamaño de la entrada no se produce relleno alguno.

Ejemplo 1. Ejemplo de array_pad()

$entrada = array (12, 10, 9);

$resultado = array_pad ($entrada, 5, 0);
// el resultado es array (12, 10, 9, 0, 0)

$resultado = array_pad ($entrada, -7, -1);
// el resultado es array (-1, -1, -1, -1, 12, 10, 9)

$resultado = array_pad ($entrada, 2, "no");
// no rellenado

Anterior | Inicio | Siguiente
array_multisort | Subir | array_pop


array_pop

(PHP 4 )

array_pop -- Extrae el último elemento de la matriz

Descripción

mixed array_pop ( array matriz)

array_pop() extrae y devuelve el último valor de la matriz, acortando la matriz en un elemento.

Ejemplo 1. Ejemplo de array_pop()

$pila = array ("naranja", "manzana", "frambuesa");
$fruta = array_pop ($pila);

Tras esto, $pila contiene sólo 2 elementos: "naranja" y "manzana", y $fruta contiene "frambuesa".

Vea también: array_push(),
array_shift(), y
array_unshift().

Nota: Esta función fue añadida en el PHP 4.0.

Anterior | Inicio | Siguiente
array_pad | Subir | array_push


array_push

(PHP 4 )

array_push -- Inserta uno o más elementos al final de la matriz

Descripción

int array_push ( array matriz, mixed var [, ...])

array_push() considera a la matriz como una pila, e inserta las variables que se le pasan al final de la matriz. La longitud de la matriz se incrementa en el número de variables insertadas. Tiene el mismo efecto que ejecutar:
$matriz[] = $var;
para cada var.

Devuelve el nuevo número de elementos de la matriz.

Ejemplo 1. Ejemplo de array_push()

$pila = array (1, 2);
array_push($pila, "+", 3);
Este ejemplo dejará $pila conteniendo 4 elementos: 1, 2, "+", y 3.

Vea también: array_pop(),
array_shift(), y
array_unshift().

Nota: Esta función fue añadida en el PHP 4.0.

Anterior | Inicio | Siguiente
array_pop | Subir | array_rand


array_rand

(PHP 4 )

array_rand -- Selecciona una o más entradas aleatorias de una matriz

Descripción

mixed array_rand ( array entrada [, int num_req])

array_rand() es bastante útil cuando desea elegir una o más entradas aleatorias de una matriz. Recibe una matriz de entrada y un argumento opcional num_req que especifica cuántas entradas desea seleccionar; si no se precisa éste argumento, recibe un valor por defecto de 1.

Si está eligiendo únicamente una entrada, array_rand() devuelve la clave de una entrada al azar. De lo contrario, devuelve una matriz de claves para las entradas aleatorias. Esto se ha hecho de esta forma para que usted pueda elegir claves al igual que valores al azar de la matriz.

Nota: A partir de PHP 4.2.0, no es necesario inicializar el generador de números aleatorios con srand() ó mt_srand(), ya que esto se hace ahora automáticamente.

Ejemplo 1. Ejemplo de array_rand()

<?php
srand((float) microtime() * 10000000);
$entrada = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
$claves_aleatorias = array_rand($entrada, 2);
print $entrada[$claves_aleatorias[0]] . "\n";
print $entrada[$claves_aleatorias[1]] . "\n";
?>

Vea también shuffle().

Anterior | Inicio | Siguiente
array_push | Subir | array_reduce


array_reduce

(PHP 4 >= 4.0.5)

array_reduce -- Reduce iterativamente una matriz a un solo valor usando una función llamada de retorno

Descripción

mixed array_reduce ( array entrada, callback funcion [, int inicial])

array_reduce() aplica iterativamente la función funcion a los elementos de la matriz entrada, con el propósito de reducir la matriz a un solo valor. Si el argumento opcional inicial está disponible, éste será usado al inicio del proceso, o como resultado final en caso de que la matriz está vacía.

Ejemplo 1. Ejemplo de array_reduce()

<?php
function rsum($v, $w) {
    $v += $w;
    return $v;
}

function rmul($v, $w) {
    $v *= $w;
    return $v;
}

$a = array(1, 2, 3, 4, 5);
$x = array();
$b = array_reduce($a, "rsum");
$c = array_reduce($a, "rmul", 10);
$d = array_reduce($x, "rsum", 1);
?>

Este ejemplo resultará en $b conteniendo el valor 15, $c conteniendo 1200 (= 1*2*3*4*5*10), y $d conteniendo 1.

Vea también array_filter(),
array_map(),
array_unique(), y
array_count_values().

Anterior | Inicio | Siguiente
array_rand | Subir | array_reverse


array_reverse

(PHP 4 )

array_reverse -- Devuelve una matriz con los elementos en orden inverso

Descripción

array array_reverse ( array matriz)

array_reverse() toma la matriz de entrada y devuelve una nueva matriz con los elementos en orden inverso.

Ejemplo 1. Ejemplo de array_reverse()

$entrada = array ("php", 4.0, array ("verde", "rojo"));
$resultado = array_reverse ($entrada);
Esto hace que $resultado contenga array (array ("verde", "rojo"), 4.0, "php").

Nota: Esta función fue añadida en PHP 4.0 Beta 3.

Anterior | Inicio | Siguiente
array_reduce | Subir | array_search


array_search

(PHP 4 >= 4.0.5)

array_search -- Busca un valor determinado en una matriz y devuelve la clave correspondiente en caso de éxito

Descripción

mixed array_search ( mixed aguja, array pajar [, bool estricto])

Busca en el pajar por la aguja y retorna la clave de ésta si se encuentra en la matriz, o FALSE de lo contrario.

Nota: En versiones de PHP anteriores a 4.2.0, array_search() devuelve NULL en caso de fallo, en lugar de FALSE.

Si el opcional tercer argumento, estricto, se define como TRUE entonces la función array_search() también realizará un chequeo sobre los tipos de datos de aguja en el pajar.

Aviso

Esta función puede devolver FALSE, pero también puede devolver un valor no-booleano que será evaluado FALSE, como por ejemplo 0 o "". Por favor, lea la sección Booleans para más información. Utilice el operador === para comprobar el valor devuelto por esta función.

Vea también array_keys(),
array_values(),
array_key_exists(), y
in_array().

Anterior | Inicio | Siguiente
array_reverse | Subir | array_shift


array_shift

(PHP 4 )

array_shift -- Extrae un elemento del comienzo de la matriz

Descripción

mixed array_shift ( array matriz)

array_shift() extrae el primer valor de la matriz y lo devuele, acortando la matriz en un elemnto y moviendo todo hacia arriba.

Ejemplo 1. Ejemplo de array_shift()

$args = array ("-v", "-f");
$opcion = array_shift ($args);
Esto da como resultado que $args tenga como elemento restante "-f" y que $opcion valga "-v".

Vea también: array_unshift(),
array_push(), y
array_pop().

Nota: Esta función fue añadida en el PHP 4.0.

Anterior | Inicio | Siguiente
array_search | Subir | array_slice


array_slice

(PHP 4 )

array_slice -- Extrae una porción de la matriz

Descripción

array array_slice ( array matriz, int desplazamiento [, int tamano])

array_slice() devuelve una secuencia de elementos de la matriz especificada por los parámetros desplazamiento y tamano.

Si el desplazamiento es positivo, la secuencia comenzará en dicha posición de la matriz. Si el desplazamiento es negativo, la secuencia comenzará en esa posición desde el final de la matriz.

Si se especifica el tamano y éste es positivo, la secuencia contendrá tantos elementos como se diga en él. Si fuese negativo, la secuencia se detendrá a tantos elementos del final de la matriz. Si se omite, la secuencia contendrá todos los elementos desde el desplazamiento hasta el final de la matriz.

Ejemplo 1. Ejemplo de array_slice() examples

$entrada = array ("a", "b", "c", "d", "e");

$salida = array_slice ($entrada, 2);      // devuelve "c", "d", y "e"
$salida = array_slice ($entrada, 2, -1);  // devuelve "c", "d"
$salida = array_slice ($entrada, -2, 1);  // devuelve "d"
$salida = array_slice ($entrada, 0, 3);   // devuelve "a", "b", y "c"

Vea también: array_splice().

Nota: Esta función fue añadida en el PHP 4.0.

Anterior | Inicio | Siguiente
array_shift | Subir | array_splice


array_splice

(PHP 4 )

array_splice -- Suprime una porción de la matriz y la sustituye por otra cosa

Descripción

array array_splice ( array entrada, int desplazamiento [, int tamano [, array sustitucion]])

array_splice() suprime los elementos designados por el desplazamiento y el tamano de la matriz entrada, y los sustituye con los elementos de la matriz de sustitucion si se especifica.

Si el desplazamiento es positivo, el comienzo de la parte suprimida sería en esa posición desde el comienzo de la matriz de entrada. Si el desplazamiento es negativo, se cuenta la posición desde el final de la matriz de entrada.

Si se omite tamano, se suprime todo desde el desplazamiento hasta el final de la matriz. Si se especifica el tamano y es positivo, se suprimirán tantos elementos como se especifica. Si fuera negativo, el final de la porción eliminada estará a tantos elementos del final de la matriz. Truco: para eliminar todo desde el desplazamiento hasta el final de la matriz cuando también se especifica sustitucion, utilice count($entrada) como tamano.

Si se especifia la matriz de sustitucion, entonces los elementos suprimidos son reemplazados con los elementos de dicha matriz. Si los valores de desplazamiento y tamano son tales que nada es borrado, los elementos de la matriz sustitucion se insertarán en la posición indicada por el desplazamiento. Truco: si sólo se va a sustituir algo por un elemento nada más, no hace falta poner array() alrededor del mismo, salvo que dicho elemento sea una matriz en sí mismo.

Las siguientes funciones son equivalentes:
array_push($entrada, $x, $y)     array_splice($entrada, count($entrada), 0, array($x, $y))
array_pop($entrada)              array_splice($entrada, -1)
array_shift($entrada)            array_splice($entrada, 0, 1)
array_unshift($entrada, $x, $y)  array_splice($entrada, 0, 0, array($x, $y))
$a[$x] = $y                    array_splice($entrada, $x, 1, $y)

Devuelve una matriz que tiene los elementos eliminados

Ejemplo 1. Ejemplos de array_splice()

$entrada = array("rojo", "verde", "azul", "amarillo");

array_splice($entrada, 2);      // $entrada vale ahora array("rojo", "verde")
array_splice($entrada, 1, -1);  // $entrada vale ahora array("rojo", "amarillo")
array_splice($entrada, 1, count($entrada), "naranja");
                              // $entrada vale ahora array("rojo", "naranja")
array_splice($entrada, -1, 1, array("negro", "marrón"));
                              // $entrada vale ahora array("rojo", "verde",
                              //          "azul", "negro", "marrón")

Vea también: array_slice().

Nota: Esta función fue añadida en el PHP 4.0.

Anterior | Inicio | Siguiente
array_slice | Subir | array_sum


array_sum

(PHP 4 >= 4.0.4)

array_sum -- Calcula la suma de los valores en una matriz

Descripción

mixed array_sum ( array matriz)

array_sum() devuelve la suma de los valores de una matriz como un entero o un valor de punto flotante.

Ejemplo 1. Ejemplos de array_sum()

<?php
$a = array(2, 4, 6, 8);
echo "sum(a) = ".array_sum($a)."\n";

$b = array("a"=>1.2,"b"=>2.3,"c"=>3.4);
echo "sum(b) = ".array_sum($b)."\n";
?>

La salida del anterior programa será:

sum(a) = 20
sum(b) = 6.9

Nota: Las versiones de PHP anteriores a 4.2.1 modificaban la matriz misma pasada como argumento y convertía las cadenas a números (lo que en la mayoría de casos significaba convertirlas a cero, dependiendo de sus valores).

Anterior | Inicio | Siguiente
array_splice | Subir | array_udiff_assoc


array_udiff_assoc

(no version information, might be only in CVS)

array_udiff_assoc -- Computa la diferencia entre matrices con un chequeo de índices adicional. Los datos son comparados usando una llamada de retorno.

Descripción

array array_udiff_assoc ( array matriz1, array matriz2 [, array ..., callback func_comparacion_datos])

array_udiff_assoc() devuelve un array que contiene todos los valores de matriz1 que no están presentes en ninguno de los otros argumentos. Note que las claves son usadas en la comparación, a diferencia de array_diff() y array_udiff(). La comparación entre datos de las matrices es realizada usando una llamada de retorno especificada por el usuario. En este sentido, el comportamiento de ésta función es opuesto al de array_diff_assoc(), la cual usa una función interna para la comparación.

Ejemplo 1. Ejemplo de array_udiff_assoc()

<?php
class cr {
    var $miembro_privado;
    function cr($val) {
        $this->miembro_privado = $val;
    }
    function func_comp_cr($a, $b) {
        if ($a->miembro_privado === $b->miembro_privado) return 0;
        return ($a->miembro_privado > $b->miembro_privado)? 1:-1;
    }
}
$a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23), 1=> new cr(4), 2 => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr( 3), 1=> new cr(4), 2 => new cr(-15),);

$resultado = array_udiff_assoc($a, $b, array("cr", "func_comp_cr"));
print_r($resultado);
?>

El resultado es:

Array
(
    [0.1] => cr Object
        (
            [miembro_privado:private] => 9
        )

    [0.5] => cr Object
        (
            [miembro_privado:private] => 12
        )

    [0] => cr Object
        (
            [miembro_privado:private] => 23
        )
)

En nuestro ejemplo anterior puede observar la pareja "1" => new cr(4) presente en ambas matrices y por lo tanto no hace parte de la salida de la función.

Para la comparación es usada la llamada de retorno entregada por el usuario. Ésta debe devolver un entero menor que, igual, o mayor que cero si el primer argumento es considerado como menor, igual, o mayor que el segundo, respectivamente.

Nota: Por favor note que esta función sólo analiza una dimensión de una matriz n-dimensional. Por supuesto, puede analizar dimensiones más profundas usando, por ejemplo, array_udiff_assoc($matriz1[0], $matriz2[0], "func_alguna_comparacion");.

Vea también
array_diff(),
array_diff_assoc(),
array_diff_uassoc(),
array_udiff(),
array_udiff_uassoc(),
array_intersect(),
array_intersect_assoc(),
array_uintersect(),
array_uintersect_assoc() y
array_uintersect_uassoc().

Anterior | Inicio | Siguiente
array_sum | Subir | array_udiff_uassoc


array_udiff_uassoc

(no version information, might be only in CVS)

array_udiff_uassoc -- Computa la diferencia entre matrices con un chequeo de índices adicional. Los datos son comparados usando una llamada de retorno. El chequeo de índice es realizado por una llamada de retorno también.

Descripción

array array_udiff_uassoc ( array matriz1, array matriz2 [, array ..., callback func_comparacion_datos, callback func_comparacion_claves])

array_udiff_uassoc() devuelve un array que contiene todos los valores de matriz1 que no están presentes en ninguno de los otros argumentos. Note que las claves son usadas en la comparación, a diferencia de array_diff() y array_udiff(). La comparación de los datos de las matrices es realizada usando una llamada de retorno entregada por el usuario: func_comparacion_datos. En este sentido, su comportamiento es el opuesto del de array_diff_assoc(), quien usa una función interna para la comparación. La comparación de claves (índices) es realizada también por la llamada de retorno func_comparacion_claves. Este comportamiento contrasta con lo que hace array_udiff_assoc(), ya que ésta compara los índices usando una función interna.

Ejemplo 1. Ejemplo de array_udiff_uassoc()

<?php
class cr {
    var $miembro_privado;
    function cr($val) {
        $this->miembro_privado = $val;
    }
    function func_comp_cr($a, $b) {
        if ($a->miembro_privado === $b->miembro_privado) return 0;
        return ($a->miembro_privado > $b->miembro_privado)? 1:-1;
    }
    function func_comp_claves($a, $b) {
        if ($a === $b) return 0;
        return ($a > $b)? 1:-1;
    }
}
$a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23), 1=> new cr(4), 2 => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr( 3), 1=> new cr(4), 2 => new cr(-15),);

$resultado = array_udiff_uassoc($a, $b, array("cr", "func_comp_cr"), array("cr","func_comp_claves"));
print_r($resultado);
?>

El resultado es:

Array
(
    [0.1] => cr Object
        (
            [miembro_privado:private] => 9
        )

    [0.5] => cr Object
        (
            [miembro_privado:private] => 12
        )

    [0] => cr Object
        (
            [miembro_privado:private] => 23
        )
)

En nuestro ejemplo anterior, puede ver que la pareja "1" => new cr(4) está presente en ambas matrices, y por lo tanto no hace parte de la salida de la función. Tenga en cuenta que debe especificar 2 llamadas de retorno.

Para la comparación, se usa la llamada de retorno indicada por el usuario. Ésta debe devolver un entero menor que, igual, o mayor que cero si el primer argumento es considerado como menor, igual, o mayor que el segundo, respectivamente.

Nota: Por favor note que esta función únicamente chequea una dimensión de una matriz n-dimensional. Por supuesto, puede chequear dimensiones más profundas usando, por ejemplo, array_udiff_uassoc($matriz1[0], $matriz2[0], "func_comparacion_datos", "func_comparacion_claves");.

Vea también
array_diff(),
array_diff_assoc(),
array_diff_uassoc(),
array_udiff(),
array_udiff_assoc(),
array_intersect(),
array_intersect_assoc(),
array_uintersect(),
array_uintersect_assoc() y
array_uintersect_uassoc().

Anterior | Inicio | Siguiente
array_udiff_assoc | Subir | array_udiff


array_udiff

(no version information, might be only in CVS)

array_udiff -- Computa la diferencia entre matrices, usando una llamada de retorno para la comparación de datos.

Descripción

array array_udiff ( array matriz1, array matriz2 [, array ..., callback func_comparacion_datos])

array_udiff() devuelve una matriz que contiene todos los valores de matriz1 que no están presentes en ninguno de los otros argumentos. Note que las claves son preservadas. Para la comparación de datos, se usa func_comparacion_datos. Esta función debe devolver un entero menor que, igual, o mayor que cero si el primer argumento es considerado como menor, igual, o mayor que el segundo, respectivamente. Esto en contraste a array_diff(), la cual usa una función interna para la comparación de datos.

Ejemplo 1. Ejemplo de array_udiff()

<?php
class cr {
    var $miembro_privado;
    function cr($val) {
        $this->miembro_privado = $val;
    }
    function func_comp_cr($a, $b) {
        if ($a->miembro_privado === $b->miembro_privado) return 0;
        return ($a->miembro_privado > $b->miembro_privado)? 1:-1;
    }
}
$a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23), 1=> new cr(4), 2 => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr( 3), 1=> new cr(4), 2 => new cr(-15),);

$resultado = array_udiff($a, $b, array("cr", "func_comp_cr"));
print_r($resultado);
?>

El resultado es:

Array
(
    [0.5] => cr Object
        (
            [miembro_privado:private] => 12
        )

    [0] => cr Object
        (
            [miembro_privado:private] => 23
        )

)

Nota: Dos elementos son considerados iguales si, y solo si (string) $elem1 === (string) $elem2. Esto es: cuando su representación tipo cadena es la misma.

Nota: Por favor note que esta función sólo analiza una dimensión de una matriz n-dimensional. Por supuesto, puede analizar dimensiones más profundas usando array_udiff($matriz1[0], $matriz2[0], "data_compare_func");.

Vea también
array_diff(),
array_diff_assoc(),
array_diff_uassoc(),
array_udiff_assoc(),
array_udiff_uassoc(),
array_intersect(),
array_intersect_assoc(),
array_uintersect(),
array_uintersect_assoc() y
array_uintersect_uassoc().

Anterior | Inicio | Siguiente
array_udiff_uassoc | Subir | array_unique


array_unique

(PHP 4 >= 4.0.1)

array_unique -- Remueve valores duplicados de una matriz

Descripción

array array_unique ( array matriz)

array_unique() toma la matriz de entrada y devuelve una nueva matriz sin los valores repetidos.

Note que las claves son preservadas. array_unique() ordena los valores tratados como cadenas inicialmente, y luego conservará la primera clave encontrada para cada valor, ignorando todas las claves posteriores. No quiere decir esto que la clave del primer valor relacionado de la matriz no-ordenada se conservará.

Nota: Dos elementos son considerados equivalentes si y solo si (string) $elem1 === (string) $elem2. En palabras: cuando la representación tipo cadena es la misma.

Se usará el primer elemento.

Ejemplo 1. Ejemplo de array_unique()

<?php
$entrada = array("a" => "verde", "rojo", "b" => "verde", "azul", "rojo");
$resultado = array_unique($entrada);
print_r($resultado);
?>

Esto producirá la salida:

Array
(
    [a] => verde
    [0] => rojo
    [1] => azul
)

Ejemplo 2. array_unique() y tipos de datos

<?php
$entrada = array(4,"4","3",4,3,"3");
$resultado = array_unique($entrada);
var_dump($resultado);
?>

Este script resultará en la siguiente salida:

array(2) {
  [0] => int(4)
  [2] => string(1) "3"
}

Anterior | Inicio | Siguiente
array_udiff | Subir | array_unshift


array_unshift

(PHP 4 )

array_unshift -- Introduce uno o más elementos al principio de la matriz

Descripción

int array_unshift ( array matriz, mixed var [, ...])

array_unshift() añade los elementos que se le pasan al principio de la matriz. Nótese que la lista de elementos es añadida como un todo, de modo que los elementos añadidos mantienen su orden.

Devuelve el número de elementos en la matriz.

Ejemplo 1. Ejemplo de array_unshift()

$cola = array("p1", "p3");
array_unshift($cola, "p4", "p5", "p6");
Esto hará que $cola contenga 5 elementos: "p4", "p5", "p6", "p1", y "p3".

Vea también: array_shift(),
array_push(), y
array_pop().

Nota: Esta función fue añadida en el PHP 4.0.

Anterior | Inicio | Siguiente
array_unique | Subir | array_values


array_values

(PHP 4 )

array_values -- Devuelve todos los valores de una matriz

Descripción

array array_values ( array entrada)

array_values() devuelve todos los valores de la matriz entrada.

Ejemplo 1. Ejemplo de array_values()

$matriz = array("talla" => "XL", "color" => "dorado");
array_values($matriz);    // devuelve array("XL", "dorado")

Nota: Esta función fue añadida en el PHP 4.0.

Anterior | Inicio | Siguiente
array_unshift | Subir | array_walk


array_walk

(PHP 3>= 3.0.3, PHP 4 )

array_walk -- Aplica una función del usuario a cada elemento de una matriz.

Descripción

int array_walk ( array matriz, string func, mixed datosvarios)

Aplica la función llamada func a cada elemento de la matriz. La función func recibirá el valor de la matriz como primer parámetro y la clave como segundo. Si se proporciona el parámetro datosvarios será pasado como tercer parámetro a la función de usuario.

Si func necesita más de dos o 3 argumentos, dependiendo de datosvarios, se generará un aviso cada vez que array_walk() llama a func. Estos avisos pueden suprimirse si se pone '@' antes de la llamada a array_walk(), o usando la función error_reporting().

Nota: Si func precisa trabajar con los valores reales de la matriz, especifique que el valor del primer parámetro de func debe pasarse por referencia. Desde ese instante, los cambios realizados sobre dichos elementos también serán realizados en la propia matriz.

Nota: El pasar la clave y los datos de usuario a func fue una característica añadida en PHP 4.0.

En PHP 4 se debe llamar reset() las veces necesarias, pues array_walk() no reajusta la matriz por defecto.

Ejemplo 1. Ejemplo de array_walk()

$frutas = array ("d"=>"limón", "a"=>"naranja", "b"=>"plátano", "c"=>"manzana");

function test_alterar ($item1, $clave, $prefix) {
   $item1 = "$prefix: $item1";
}

function test_ver ($item2, $clave) {
   echo "$clave. $item2<br>\n";
}

array_walk ($frutas, 'test_ver');
reset ($frutas);
array_walk ($frutas, 'test_alterar', 'fruta');
reset ($frutas);
array_walk ($frutas, 'test_ver');

Vea también: each() y list().

Anterior | Inicio | Siguiente
array_values | Subir | array


array

(PHP 3, PHP 4 )

array -- Crear una matriz

Descripción

array array ( mixed ...)

Devuelve una matriz con los parámetros que se le pasan. A dichos parámetros se les puede dar un índice usando el operador =>.

Nota: array() es una construcción del lenguaje que se utiliza para representar matrices literales, no una función regular.

El siguiente ejemplo demuestra cómo crear una matriz bidimensional, cómo especificar claves para matrices asociativas, y cómo especificar índices no consecutivos en matrices normales.

Ejemplo 1. Ejemplo de array()

$frutas = array (
    "frutas"  => array("a"=>"naranja", "b"=>"plátano", "c"=>"manzana"),
    "números" => array(1, 2, 3, 4, 5, 6),
    "hoyos"   => array("primero", 5 => "segundo", "tercero")
);

Vea también: list().

Anterior | Inicio | Siguiente
array_walk | Subir | arsort


arsort

(PHP 3, PHP 4 )

arsort -- Ordena una matriz en orden inverso y mantiene la asociación de índices

Descripción

void arsort ( array matriz)

Esta función ordena una matriz de modo que los índices mantengan su correlación con los elementos de la misma a los que están asociados. Esto se utiliza principalmente para ordenar matrices asociativas en las que el orden de los elementos es importante.

Ejemplo 1. Ejemplo de arsort()

$frutas = array ("d"=>"limón", "a"=>"naranja", "b"=>"plátano", "c"=>"manzana");
arsort ($frutas);
for (reset ($frutas); $clave = key ($frutas); next ($frutas)) {
    echo "frutas[$clave] = ".$frutas[$clave]."\n";
}
Este ejemplo mostraría:
frutas[b] = plátano
frutas[a] = naranja
frutas[c] = manzana
frutas[d] = limón
 Las frutas han sido ordenadas en orden alfabético inverso y los índices asociados con cada elemento se han mantenido.

Vea también: asort(), rsort(), ksort(), y sort().

Anterior | Inicio | Siguiente
array | Subir | asort


asort

(PHP 3, PHP 4 )

asort -- Ordena una matriz y mantiene la asociación de índices

Descripción

void asort ( array matriz)

Esta función ordena una matriz de modo que los índices mantengan su correlación con los elementos de la misma a los que están asociados. Esto se utiliza principalmente para ordenar matrices asociativas en las que el orden de los elementos es importante.

Ejemplo 1. Ejemplo de asort()

$frutas = array ("d"=>"limón", "a"=>"naranja", "b"=>"plátano", "c"=>"manzana");
asort ($frutas);
for (reset ($frutas); $clave = key ($frutas); next ($frutas)) {
    echo "frutas[$clave] = ".$frutas[$clave]."\n";
}
Este ejemplo mostrará:
frutas[d] = limón
frutas[a] = naranja
frutas[c] = manzana
frutas[d] = plátano
 Las frutas han sido ordenadas en orden alfabético y los índices asociados con cada elemento se han mantenido.

Vea también: arsort(), rsort(), ksort(), y sort().

Anterior | Inicio | Siguiente
arsort | Subir | compact


compact

(PHP 4 )

compact -- Crea una matriz que contiene variables y sus valores

Descripción

array compact ( string nombrevar | array nombrevars [, ...])

compact() toma un número variable de parámetros. Cada uno puede ser tanto una cadena que contiene el nombre de la variable, como una matriz de nombres de variable. La matriz puede contener otras matrices de nombres de variable en su interior; compact() los procesa recursivamente.

Para cada uno de estos, compact() busca una variable con dicho nombre en la tabla de símbolos y la añade a la matriz de salida de modo que el nombre de la variable es la clave y el contenido de ésta es el valor para dicha clave. Para resumir, hace lo contrario de extract(). Devuelve la matriz de salida con las variables añadidas a la misma.

Ejemplo 1. Ejemplo de compact()

$ciudad = "San Francisco";
$estado = "CA";
$evento = "SIGGRAPH";

$location_vars = array ("ciudad", "estado");

$resultado = compact ("evento", $location_vars);

Tras esto, $resultado valdrá array ("evento" => "SIGGRAPH", "ciudad" => "San Francisco", "estado" => "CA").

Vea también: extract().

Nota: Esta función fue añadida en el PHP 4.0.

Anterior | Inicio | Siguiente
asort | Subir | count


count

(PHP 3, PHP 4 )

count -- Cuenta los elementos de una variable

Descripción

int count ( mixed var)

Devuelve el número de elementos en var, que típicamente es una matriz (porque cualquier otra cosa tendría sólo un elemento).

Devuele 1 si la variable no es una matriz.

Devuelve 0 si la variable no tiene valor.

Aviso

count() puede devolver 0 para una variable sin valor, pero también puede devolver 0 para una variable ya inicializada pero con una matriz vacía. Utilice isset() para comprobar si una variable está inicializada.

Vea también: sizeof(),
isset(), y
is_array().

Anterior | Inicio | Siguiente
compact | Subir | current


current

(PHP 3, PHP 4 )

current -- Devuelve el elemento actual de una matriz

Descripción

mixed current ( array matriz)

Cada matriz tiene un puntero interno al elemento "actual", que se inicializa al primer elemento insertado en la misma.

La función current() simplemente devuelve el elemento de la tabla al que apunta el puntero interno. No mueve el puntero de ninguna manera. Si el puntero interno apunta fuera del final de la lista de elementos, current() devuelve FALSE.

Aviso

Si la matriz contiene elementos vacíos (0 ó "", la cadena vacía) esta función devolverá FALSE también para dichos elementos. Esto hace imposible determinar si se está realmente al final de la lista en tales matrices usando current(). Para recorrer adecuadamente una matriz que pueda contener elementos vacíos, utilice la función each().

Vea también: end(), next(), prev() y reset().

Anterior | Inicio | Siguiente
count | Subir | each


each

(PHP 3, PHP 4 )

each -- Devuelve el siguiente par clave/valor de una matriz

Descripción

array each ( array matriz)

Devuelve el par clave/valor actual para la matriz y avanza el cursor de la misma. Esta pareja se devuele en una matriz de 4 elementos, con las claves 0, 1, key, y value. Los elementos 0 y key contienen el nombre de clave del elemento de la matriz, y 1 y value contienen los datos.

Si el puntero interno para la matriz apunta pasado el final del contenido de la matriz, each() devuelve FALSE.

Ejemplo 1. Ejemplos de each()

$chorrada = array ("bob", "fred", "jussi", "jouni", "egon", "marliese");
$tonteria = each ($chorrada);

$tonteria contiene ahora los siguientes pares clave/valor:

  • 0 => 0
  • 1 => 'bob'
  • key => 0
  • value => 'bob'
$chorrada = array ("Robert" => "Bob", "Seppo" => "Sepi");
$tonteria = each ($chorrada);

$tonteria contiene ahora los siguientes pares clave/valor:

  • 0 => 'Robert'
  • 1 => 'Bob'
  • key => 'Robert'
  • value => 'Bob'

each() se usa normalmente de forma conjunta a list() para recorrer una matriz; por ejemplo, $HTTP_POST_VARS:

Ejemplo 2. Recorriendo $HTTP_POST_VARS con each()

echo "Valores enviados con el método POST:<br>";
reset ($HTTP_POST_VARS);
while (list ($clave, $val) = each ($HTTP_POST_VARS)) {
    echo "$clave => $val<br>";
}

Cuando se ha ejecutado each(), el cursor de la matriz quedará en el siguiente elemento de la misma, o en el último si llega al final de ésta.

Vea también: key(), list(),
current(), reset(),
next(), y prev().

Anterior | Inicio | Siguiente
current | Subir | end


end

(PHP 3, PHP 4 )

end -- Mueve el puntero interno de una tabla al último elemento

Descripción

end ( array matriz)

end() avanza el puntero interno de la matriz al último elemento.

Vea también: current(),
each(), end(),
next(), y reset().

Anterior | Inicio | Siguiente
each | Subir | extract


extract

(PHP 3>= 3.0.7, PHP 4 )

extract -- Importa variables a la tabla de símbolos desde una matriz

Descripción

void extract ( array matriz_vars [, int tipo_extraccion [, string prefijo]])

Esta función se utiliza para importar variables desde una matriz a la tabla de símbolos actual. Toma la matriz asoiativa matriz_vars y trata las claves como nombres de variable y los valores como los valores de éstas. Para cada par clave/valor creará una variable en la tabla de símbolos actual, sujeto a los parámetros tipo_extraccion y prefijo.

extract() controla las colisiones con las variables que ya existen. La forma de tratar éstas se determina por el tipo_extraccion. Puede tener únicamente uno de los siguientes valores:

EXTR_OVERWRITE

Si hay colisión, sobreescribe la variable existente.

EXTR_SKIP

Si hay colisión, no sobreescribas la variable existente.

EXTR_PREFIX_SAME

Si hay una colisión, añade el prefijo a la nueva variable.

EXTR_PREFIX_ALL

Añade el prefijo a todas las variables.

Si no se especifica tipo_extraccion, se asume que vale EXTR_OVERWRITE.

Nótese que el prefijo sólo se necisita si tipo_extraccion vale EXTR_PREFIX_SAME o EXTR_PREFIX_ALL.

extract() comprueba si cada clave es un nombre válido de variable, y sólo lo importa si lo es.

Nota: N.T.: En el caso español, no valdría "año" como nombre variable (pero sí como clave en una matriz cualquiera).

Un uso posible para extract sería importar en la tabla de símbolos las variables contenidas en la matriz asociativa que devuelve wddx_deserialize().

Ejemplo 1. Ejemplo de extract()

<php?

/* Suponemos que $matriz_var es una matriz devuelta por
   wddx_deserialize */

$tamano = "grande";
$matriz_var = array ("color" => "azul",
                    "tamano"  => "media",
                    "forma" => "esfera");
extract ($matriz_var, EXTR_PREFIX_SAME, "wddx");

print "$color, $tamano, $forma, $wddx_tamano\n";

?>

El programa anterior producirá:
azul, grande, esfera, media

La variable $tamano no fue sobreescrita porque especificamos EXTR_PREFIX_SAME, que provocó la creación de $wddx_tamano. Si se hubiera especificado EXTR_SKIP, $wddx_tamano ni siquiera habría sido creada. EXTR_OVERWRITE habría provocado que $tamano tuviera el valor "media", y EXTR_PREFIX_ALL habría provocado que aparecieran nuevas variables llamadas $wddx_color, $wddx_tamano, y $wddx_forma.

Anterior | Inicio | Siguiente
end | Subir | in_array


in_array

(PHP 4 )

in_array -- Devuelve TRUE si un valor está en una matriz

Descripción

bool in_array ( mixed aguja, array pajar)

Busca la aguja en el pajar, y devuelve TRUE si se encuentra y FALSE en caso contrario.

Ejemplo 1. Ejemplo de in_array()

$os = array ("Mac", "NT", "Irix", "Linux");
if (in_array ("Irix", $os))
    print "Encontrado Irix";

Nota: Esta función fue añadida en el PHP 4.0.

Anterior | Inicio | Siguiente
extract | Subir | key


key

(PHP 3, PHP 4 )

key -- Obtiene una clave de una matriz asociativa

Descripción

mixed key ( array matriz)

key() devuelve el elemento índice de la posición actual en la matriz.

Vea también: current(), next()

Anterior | Inicio | Siguiente
in_array | Subir | krsort


krsort

(PHP 3>= 3.0.13, PHP 4 )

krsort -- Ordena una matriz por clave en orden inverso

Descripción

int krsort ( array matriz)

Ordena una matriz por clave en orden inverso, manteniendo las correlaciones clave a dato. Esto es útil principalmente en matrices asociativas.

Ejemplo 1. Ejemplo de krsort()

$frutas = array ("d"=>"limón", "a"=>"naranja", "b"=>"plátano", "c"=>"manzana");
krsort ($frutas);
for (reset ($frutas); $clave = key ($frutas); next ($frutas)) {
    echo "frutas[$clave] = ".$frutas[$clave]."\n";
}
Este ejemplo mostrará:
frutas[d] = limón
frutas[c] = manzana
frutas[b] = plátano
frutas[a] = naranja

Vea también: asort(), arsort(),
ksort() sort(), y
rsort().

Anterior | Inicio | Siguiente
key | Subir | ksort


ksort

(PHP 3, PHP 4 )

ksort -- Ordena una matriz por clave

Descripción

int ksort ( array matriz)

Ordena una matriz por clave, manteniendo las correlaciones clave a dato. Esto es útil principalmente en matrices asociativas.

Ejemplo 1. Ejemplo de ksort()

$frutas = array ("d"=>"limón", "a"=>"naranja", "b"=>"plátano", "c"=>"manzana");
ksort ($frutas);
for (reset ($frutas); $clave = key ($frutas); next ($frutas)) {
    echo "frutas[$clave] = ".$frutas[$clave]."\n";
}
Este ejemplo mostrará:
frutas[a] = naranja
frutas[b] = plátano
frutas[c] = manzana
frutas[d] = limón

Vea también: asort(), arsort(), sort(), y rsort().

Anterior | Inicio | Siguiente
krsort | Subir | list


list

(PHP 3, PHP 4 )

list -- Asigna variables como si fueran una matriz

Descripción

void list ( mixed ...)

Como array(), esta no es realmente una función, sino una construcción del lenguaje. list() se usa para asignar una lista de variables en una sola operación.

Ejemplo 1. Ejemplo de list()

<table>
 <tr>
  <th>Nombre empleado</th>
  <th>Sueldo</th>
 </tr>

<?php

$resultado = mysql($conn, "SELECT id, nombre, salario FROM empleados");
while (list($id, $nombre, $salario) = mysql_fetch_row($resultado)) {
    print(" <tr>\n".
          "  <td><a href=\"info.php3?id=$id\">$nombre</a></td>\n".
          "  <td>$salario</td>\n".
          " </tr>\n");
}

?>

</table>

Vea también: each(), array().

Anterior | Inicio | Siguiente
ksort | Subir | natcasesort


natcasesort

(PHP 4 )

natcasesort -- Ordena una matriz usando un algoritmo de "orden natural" sin distinguir mayúsculas de minúsculas

Descripción

void natcasesort ( array matriz)

Esta función implementa un algoritmo de ordenamiento que ordena cadenas alfanuméricas en la forma en que un ser humano lo haría. Esta propiedad se conoce como "ordenamiento natural".

natcasesort() es una versión de natsort() que no distingue entre mayúsculas y minúsculas. Visite natsort() si desea consultar un ejemplo de las diferencias entre éste y los algoritmos computacionales normales de ordenamiento de cadenas.

Para más información vea: la página de Comparación de Cadenas en Orden Natural de Martin Pool.

Vea también sort(),
natsort(),
strnatcmp(), y
strnatcasecmp().

Anterior | Inicio | Siguiente
list | Subir | natsort


natsort

(PHP 4 )

natsort -- Ordena una matriz usando un algoritmo de "orden natural"

Descripción

void natsort ( array matriz)

Esta función implementa un algoritmo que ordena cadenas alfanuméricas en la forma en que lo haría un ser humano. Esta propiedad es conocida como "ordenamiento natural". Un ejemplo de la diferencia entre éste y el algoritmo computacional normal de ordenamiento de cadenas (usado en sort()) puede apreciarse a continuación:

Ejemplo 1. Ejemplo de natsort()

<?php
$matriz1 = $matriz2 = array("img12.png", "img10.png", "img2.png", "img1.png");

sort($matriz1);
echo "Ordenamiento est&aacute;ndar\n";
print_r($matriz1);

natsort($matriz2);
echo "\nOrdenamiento natural\n";
print_r($matriz2);
?>

El anterior fragmento de código genera la siguiente salida:

Ordenamiento est&aacute;ndar
Array
(
    [0] => img1.png
    [1] => img10.png
    [2] => img12.png
    [3] => img2.png
)

Ordenamiento natural
Array
(
    [3] => img1.png
    [2] => img2.png
    [1] => img10.png
    [0] => img12.png
)

Para más información vea: la página de Comparación de Cadenas en Orden Natural de Martin Pool.

Nota: Si desea conservar asociaciones entre índice/valor, considere usar uasort($matriz, 'strnatcmp').

Vea también natcasesort(),
strnatcmp(), y
strnatcasecmp().

Anterior | Inicio | Siguiente
natcasesort | Subir | next


next

(PHP 3, PHP 4 )

next -- Avanza el puntero interno de una matriz

Descripción

mixed next ( array matriz)

Devuelve el elemento de la matriz que ocupa el lugar siguiente al apuntado por el puntero interno, o FALSE si no hay más elementos.

next() se comporta como current(), con una diferencia. Avanza el puntero interno de la matriz en una posición antes de devolver el elemento. Eso significa que devuelve el siguiente elemento de la matriz y que avanza el puntero interno en uno. Si al avanzar se pasa del final de la lista de elementos, next() devuelve FALSE.

Aviso

Si la matriz contiene elementos vacíos, esta función también devolverá FALSE para dichos elementos. Para recorrer adecuadamente una matriz que pueda contener elementos vacíos, vea la función each().

Vea también: current(), end() prev() y reset()

Anterior | Inicio | Siguiente
natsort | Subir | pos


pos

(PHP 3, PHP 4 )

pos -- Obtiene el elemento actual de una matriz

Descripción

mixed pos ( array matriz)

Este es un alias para current().

Vea también: end(), next(), prev() y reset().

Anterior | Inicio | Siguiente
next | Subir | prev


prev

(PHP 3, PHP 4 )

prev -- Rebobina el puntero interno de una matriz

Descripción

mixed prev ( array matriz)

Devuelve el elemento de la matriz que está en la posición anterior a la que apuntaba previamente el puntero interno, o FALSE si no hay más elementos.

Aviso

Si la matriz contiene elementos vacíos, esta función también devolverá FALSE para dichos elementos. Para recorrer adecuadamente una matriz que puede contener elementos vacíos, vea la función each().

prev() se comporta igual que next(), excepto que rebobina el puntero interno una posición en lugar de avanzarlo.

Vea también: current(), end() next() y reset()

Anterior | Inicio | Siguiente
pos | Subir | range


range

(PHP 3>= 3.0.8, PHP 4 )

range -- Crea una matriz que contiene un rango de elementos

Descripción

array range ( int bajo, int alto [, int paso])

rango() devuelve una matriz de elementos desde bajo hasta alto, ambos inclusive. Si bajo > alto, la secuencia será del mayor al menor.

Nuevo parámetro: El parámetro opcional paso fue añadido en 5.0.0.

Si un valor paso es dado, éste será usado como el incremento entre elementos en la secuencia. paso debería ser definido como un número positivo. Si no se especifica, paso tendrá un valor predeterminado de 1.

Ejemplo 1. Ejemplos de range()

<?php
// array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ,11, 12)
foreach(range(0, 12) as $numero) {
    echo $numero;
}

// El parametro paso fue introducido en 5.0.0
// array(0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100)
foreach(range(0, 100, 10) as $numero) {
    echo $numero;
}

// Uso de secuencias de caracteres introducidas en 4.1.0
// array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i');
foreach(range('a', 'i') as $letra) {
    echo $letra;
}
// array('c', 'b', 'a');
foreach(range('c', 'a') as $letra) {
    echo $letra;
}
?>

Nota: Antes de la versión 4.1.0 de PHP, range() solo generaba matrices de enteros incrementales. El soporte para secuencias de caracteres y matrices en decremento fue añadido en 4.1.0. Los valores de secuencia de caracteres esán limitados a una longitud de uno. Si una longitud superior a uno es ingresada, solo se usa el primer caracter.

Atención

En versiones de PHP desde 4.1.0 hasta 4.3.2, range() considera las cadenas numéricas como cadenas y no enteros. En su lugar, ellas serán usadas para secuencias de caracteres. Por ejemplo, "4242" es tratado como "4".

Vea también shuffle(), array_fill(), y foreach.

Anterior | Inicio | Siguiente
prev | Subir | reset


reset

(PHP 3, PHP 4 )

reset -- Fija el puntero interno de una matriz a su primer elemento

Descripción

mixed reset ( array matriz)

reset() rebobina el puntero interno de la matriz a su primer elemento.

reset() devuelve el valor del primer elemento de la matriz.

Vea también: current(),
each(), next(),
prev(), y reset().

Anterior | Inicio | Siguiente
range | Subir | rsort


rsort

(PHP 3, PHP 4 )

rsort -- Ordena una matriz en orden inverso

Descripción

void rsort ( array matriz)

Esta función ordena una matriz en orden inverso (mayor a menor).

Ejemplo 1. Ejemplo de rsort()

$frutas = array ("limón", "naranja", "plátano", "manzana");
rsort ($frutas);
for (reset ($frutas); list ($clave, $valor) = each ($frutas); ) {
    echo "frutas[$clave] = ", $valor, "\n";
}
Este ejemplo mostrará:
frutas[0] = plátano
frutas[1] = naranja
frutas[2] = manzana
frutas[3] = limón
 Las frutas han sido ordenadas en orden alfabético inverso.

Vea también: arsort(),
asort(), ksort(),
sort(), y usort().

Anterior | Inicio | Siguiente
reset | Subir | shuffle


shuffle

(PHP 3>= 3.0.8, PHP 4 )

shuffle -- Mezcla una matriz

Descripción

void shuffle ( array matriz)

Esta función mezcla (cambia aleatoriamente el orden de los elementos de) una matriz.

Ejemplo 1. Ejemplo de shuffle()

$numeros = range (1,20);
srand (time());
shuffle ($numeros);
while (list(, $numero) = each ($numeros)) {
    echo "$numero ";
}

Vea también: arsort(), asort(),
ksort(), rsort(),
sort() y usort().

Anterior | Inicio | Siguiente
rsort | Subir | sizeof


sizeof

(PHP 3, PHP 4 )

sizeof -- Obtiene el número de elementos de una matriz

Descripción

int sizeof ( array matriz)

Devueve el número de elementos de la matriz.

Vea también: count()

Anterior | Inicio | Siguiente
shuffle | Subir | sort


sort

(PHP 3, PHP 4 )

sort -- Ordena una matriz

Descripción

void sort ( array matriz)

Esta función ordena una matriz. Los elementos estarán ordenados de menor a mayor cuando la función termine.

Ejemplo 1. Ejemplo de sort()

$frutas = array ("limón", "naranja", "plátano", "manzana");
sort ($frutas);
for (reset ($frutas); $clave = key ($frutas); next ($frutas)) {
    echo "frutas[$clave] = ".$frutas[$clave]."\n";
}
Este ejemplo mostrará:
frutas[0] = limón
frutas[1] = manzana
frutas[2] = naranja
frutas[3] = plátano
 Las frutas han sido ordenadas en orden alfabético.

Vea también: arsort(),
asort(), ksort(),
rsort(), y usort().

Anterior | Inicio | Siguiente
sizeof | Subir | uasort


uasort

(PHP 3>= 3.0.4, PHP 4 )

uasort -- Ordena una matriz mediante una función de comparación definida por el usuario y mantiene la asociación de índices

Descripción

void uasort ( array matriz, function func_comparar)

Esta función ordena una matriz de modo que los índices de la misma mantengan su correlación con los elementos a los que están asociados. Esto se utiliza principalmente para ordenar matrices asociativas en las que el orden de los elementos es importante. La función de comparación viene definida por el usuario.

Anterior | Inicio | Siguiente
sort | Subir | uksort


uksort

(PHP 3>= 3.0.4, PHP 4 )

uksort -- Ordena una matriz por claves mediante una función definida por el usuario

Descripción

void uksort ( array matriz, function func_comparar)

Esta función ordenará las claves de una matriz utilizando una función de comparación suministrada por el usuario. Si la matriz a ordenar necesita utilizar un criterio poco trivial, esta es la función que deberá usar.

Ejemplo 1. Ejemplo de uksort()

function micomparar ($a, $b) {
    if ($a == $b) return 0;
    return ($a > $b) ? -1 : 1;
}
$a = array (4 => "cuatro", 3 => "tres", 20 => "veinte", 10 => "diez");
uksort ($a, micomparar);
while (list ($clave, $valor) = each ($a)) {
    echo "$clave: $valor\n";
}
Este ejemplo mostrará: 20: veinte 10: diez 4: cuatro 3: tres

Vea también: arsort(),
asort(), uasort(),
ksort(), rsort(), y
sort().

Anterior | Inicio | Siguiente
uasort | Subir | usort


usort

(PHP 3>= 3.0.3, PHP 4 )

usort -- Ordena una matriz por valores mediante una funcion definida por el usuario

Descripción

void usort ( array matriz, function func_comparar)

Esta función ordenará una matriz por sus valores utilizando una función suministrada por el usuario. Si la matriz que desea ordenar necesita utilizar un criterio poco trivial, esta es la función que deberá usar.

La función de comparación deberá devolver un entero menor, igual, o mayor que cero, si el primer argumento se considera respectivamente menor que, igual que, o mayor que el segundo. Si dos miembros resultan ser iguales, su orden en la matriz ordenada será cualquiera.

Ejemplo 1. Ejemplo de usort()

function cmp ($a, $b) {
    if ($a == $b) return 0;
    return ($a > $b) ? -1 : 1;
}
$a = array (3, 2, 5, 6, 1);
usort ($a, cmp);
while (list ($clave, $valor) = each ($a)) {
    echo "$clave: $valor\n";
}
Este ejemplo mostrará: 0: 6 1: 5 2: 3 3: 2 4: 1

Nota: Obviamente en este caso trivial la función rsort() habría sido más apropiada.

Aviso

La función quicksort subyacente en ciertas librerías de C (tales como las de Solaris) pueden hacer que el PHP falle si la función de comparación no devuelve valores consistentes.

Vea también: arsort(),
asort(), ksort(),
rsort() y sort().

Anterior | Inicio | Siguiente
uksort | Subir | Funciones Aspell [deprecated]


Funciones Aspell [deprecated]

Manual de PHP
Anterior Siguiente

III. Funciones Aspell [deprecated]

Introducción

La función aspell() permite comprobar la ortografía de una palabra y ofrece alternativas a la misma.

Nota: Esta extensión ha sido removida de PHP y no se encuentra disponible a partir de PHP 4.3.0. Si quereis utilizar capacidades de comprobación ortográfica en php, usar pspell. Utiliza la biblioteca pspell y funciona con versiones recientes de aspell.

Requerimientos

aspell funciona solamente con versiones muy antiguas (hasta la .27.* mas ó menos) de la biblioteca aspell. Ni este módulo ni las versiones de la biblioteca aspell se soportan actualmente. Necesitais la biblioteca aspell, disponible en : http://aspell.sourceforge.net/.

Instalación

En PHP 4, estas funciones se encuentran disponibles únicamente si PHP fue configurado con --with-aspell=[DIR].

Ver también

Ver tambien pspell.

Tabla de contenidos
aspell_check-raw -- Comprueba una palabra sin cambiarla ó intentar arreglarla [deprecated]
aspell_check -- Comprueba una palabra[deprecated]
aspell_new -- Lee un nuevo diccionario [deprecated]
aspell_suggest -- Sugiere la ortografía para una palabra [deprecated]

Anterior | Inicio | Siguiente
usort | Subir | aspell_check-raw


aspell_check-raw

(PHP 3>= 3.0.7, PHP 4 <= 4.2.3)

aspell_check-raw -- Comprueba una palabra sin cambiarla ó intentar arreglarla [deprecated]

Descripción

boolean aspell_check_raw ( int dictionary_link, string word)

aspell_check_raw() comprueba la ortografía de una palabra,sin cambiarla ni intentar arreglarla esté bien o mal. Si está bien, devuelve cierto (TRUE), si no lo está, devuelve falso(FALSE).

Ejemplo 1. aspell_check_raw

$aspell_link = aspell_new("english");

if (aspell_check_raw($aspell_link, "test")) {
    echo "This is a valid spelling";
} else {
    echo "Sorry, wrong spelling";
}

Anterior | Inicio | Siguiente
Funciones Aspell [deprecated] | Subir | aspell_check


aspell_check

(PHP 3>= 3.0.7, PHP 4 <= 4.2.3)

aspell_check -- Comprueba una palabra[deprecated]

Descripción

boolean aspell_check ( int dictionary_link, string word)

aspell_check() comprueba la ortografía de una palabra, y devuelve cierto(TRUE) si la ortografía es correcta ,falso (FALSE) si no lo es .

Ejemplo 1. aspell_check

$aspell_link = aspell_new("english");

if (aspell_check($aspell_link, "testt")) {
    echo "This is a valid spelling";
} else {
    echo "Sorry, wrong spelling";
}

Anterior | Inicio | Siguiente
aspell_check-raw | Subir | aspell_new


aspell_new

(PHP 3>= 3.0.7, PHP 4 <= 4.2.3)

aspell_new -- Lee un nuevo diccionario [deprecated]

Descripción

int aspell_new ( string master, string personal)

aspell_new() Abre un nuevo diccionario devolviendo el identificador de este para ser utilizado en otras funciones ortográficas.

Ejemplo 1. Nuevo_diccionario

$aspell_link = aspell_new("english");

Anterior | Inicio | Siguiente
aspell_check | Subir | aspell_suggest


aspell_suggest

(PHP 3>= 3.0.7, PHP 4 <= 4.2.3)

aspell_suggest -- Sugiere la ortografía para una palabra [deprecated]

Descripción

array aspell_suggest ( int dictionary_link, string word)

aspell_suggest() devuelve una matriz con posibles correciones ortográficas para la palabra dada.

Ejemplo 1. aspell_suggest

$aspell_link = aspell_new("english");

if (!aspell_check($aspell_link, "test")) {
    $suggestions = aspell_suggest($aspell_link, "test");

    foreach ($suggestions as $suggestion) {
        echo "Possible spelling: $suggestion<br>\n";
    }
}

Anterior | Inicio | Siguiente
aspell_new | Subir | Funciones matemáticas de precisión arbitraria BCMath


Funciones matemáticas de precisión arbitraria BCMath

Manual de PHP
Anterior Siguiente

IV. Funciones matemáticas de precisión arbitraria BCMath

Introducción

Para operaciones matemáticas de precisión arbitraria, PHP tiene disponible la Calculadora Binaria que soporta números de cualquier tamaño y precisión, representados como cadenas de texto.

Requerimientos

Desde PHP 4.0.4, libbcmath se encuentra incorporada en PHP. No se necesitan bibliotecas externas para esta extensión.

Instalación

En PHP 4, estas funciones solo están disponibles si PHP fue configurado con --enable-bcmath. En PHP 3, estas funciones sólo están disponibles si PHP NO fue configurado con --disable-bcmath.

La versión para Windows de PHP tiene soporte nativo para esta extensión. No se necesita cargar ninguna extensión adicional para usar estas funciones.

Configuración en tiempo de ejecución

El comportamiento de estas funciones está afectado por los valores definidos en php.ini.

Tabla 1. Opciones de configuración de BCMath

Nombre | Por defecto | Modificable
bcmath.scale | 0 | PHP_INI_ALL
Para más detalles y la definición de las constantes PHP_INI_*, consulte ini_set().

A continuación se presenta una corta explicación de las directivas de configuración

bcmath.scale integer

Número de dígitos decimales para todas las funciones de bcmath.

Tipos de recursos

Esta extensión no tiene ningún tipo de recurso definido.

Constantes predefinidas

Esta extensión no tiene ninguna constante definida.

Tabla de contenidos
bcadd -- Suma dos números de precisión arbitriaria.
bccomp -- Compara dos números de precisión arbitraria.
bcdiv -- Divide dos números de precisión arbitraria.
bcmod -- Obtiene el módulo de un número de precisión arbitraria.
bcmul -- Multiplica dos números de precisión arbitraria.
bcpow -- Eleva un número de precisión arbitraria a otro.
bcpowmod -- Eleva un número de precisión arbitraria a otro, reducido por un módulo especificado.
bcscale -- Fija el parámetro de escala por defecto para todas las funciones matemáticas bc.
bcsqrt -- Obtiene la raíz cuadrada de un número de precisión arbitraria.
bcsub -- Resta un número de precisión arbitraria de otro.

Anterior | Inicio | Siguiente
aspell_suggest | Subir | bcadd


bcadd

(PHP 3, PHP 4 )

bcadd -- Suma dos números de precisión arbitriaria.

Descripción

string bcadd ( string operando izq, string operando der [, int escala])

Suma el operando izq con el operando der y devuelve la suma en una cadena de texto. El parámetro opcional escala se usa para fijar el número de dígitos tras el punto decimal que aparecerán en el resultado.

Vea también bcsub().

Anterior | Inicio | Siguiente
Funciones matemáticas de precisión arbitraria BCMath | Subir | bccomp


bccomp

(PHP 3, PHP 4 )

bccomp -- Compara dos números de precisión arbitraria.

Descripción

int bccomp ( string operando izq, string operando der [, int escala])

Compara el operando izq con el operando der y devuelve el resultado como un entero. El parámetro opcional escala se usa para fijar el número de dígitos tras el punto decimal que se utilizarán en la comparación. El valor devuelto es 0 si los dos operandos son iguales. Si el operando izq es mayor que el operando der el valor devuelto es +1 y si el operando izq es menor que el operando der el valor devuelto es -1.

Anterior | Inicio | Siguiente
bcadd | Subir | bcdiv


bcdiv

(PHP 3, PHP 4 )

bcdiv -- Divide dos números de precisión arbitraria.

Descripción

string bcdiv ( string operando izq, string operando der [, int escala])

Divide el operando izq por el operando der y devuelve el resultado. El parámetro opcional escala fija el número de dígitos tras el punto decimal a usar en el resultado.

Ver también bcmul().

Anterior | Inicio | Siguiente
bccomp | Subir | bcmod


bcmod

(PHP 3, PHP 4 )

bcmod -- Obtiene el módulo de un número de precisión arbitraria.

Descripción

string bcmod ( string operando izq, string modulo)

Obtiene el módulo del operando izq usando modulo.

Ver también bcdiv().

Anterior | Inicio | Siguiente
bcdiv | Subir | bcmul


bcmul

(PHP 3, PHP 4 )

bcmul -- Multiplica dos números de precisión arbitraria.

Descripción

string bcmul ( string operando izq, string operando der [, int escala])

Multiplica el operando izq por el operando der y devuelve el resultado. El parámetro opcional escala fija el número de dígitos tras el punto decimal del resultado.

Ver también bcdiv().

Anterior | Inicio | Siguiente
bcmod | Subir | bcpow


bcpow

(PHP 3, PHP 4 )

bcpow -- Eleva un número de precisión arbitraria a otro.

Descripción

string bcpow ( string x, int y [, int escala])

Eleva x a la potencia de y. El parámetro opcional escala se puede usar para fijar el número de dígitos tras el punto decimal del resultado.

Ver también bcpowmod() y bcsqrt()

Anterior | Inicio | Siguiente
bcmul | Subir | bcpowmod


bcpowmod

(PHP 5 CVS only)

bcpowmod -- Eleva un número de precisión arbitraria a otro, reducido por un módulo especificado.

Descripción

string bcpowmod ( string x, string y, string módulo [, int escala])

Utiliza el método de exponenciación-rápida para elevar x a la potencia y con respecto al módulo módulo. La escala opcional puede ser usada para establecer el número de dígitos después de la coma decimal en el resultado.

Las siguientes dos declaraciones son idénticas funcionalmente. Sin embargo, la versión que usa bcpowmod() se ejecuta en menos tiempo y puede aceptar parámetros más grandes.

<?php
$a = bcpowmod($x,$y,$mod);

$b = bcmod(bcpow($x,$y),$mod);

/* $a y $b poseen valores iguales. */
?>

Nota: Debido a que este método usa el módulo de la operación, los números no-naturales pueden arrojar resultados inesperados. Un número natural es cualquier entero positivo diferente de cero.

Vea también bcpow() y bcmod().

Anterior | Inicio | Siguiente
bcpow | Subir | bcscale


bcscale

(PHP 3, PHP 4 )

bcscale -- Fija el parámetro de escala por defecto para todas las funciones matemáticas bc.

Descripción

string bcscale ( int escala)

Esta función fija el parámetro de escala por defecto para las subsiguientes funciones matemáticas bc que no especifican dicho parámetro explícitamente.

Anterior | Inicio | Siguiente
bcpowmod | Subir | bcsqrt


bcsqrt

(PHP 3, PHP 4 )

bcsqrt -- Obtiene la raíz cuadrada de un número de precisión arbitraria.

Descripción

string bcsqrt ( string operando, int escala)

Devuelve la raíz cuadrada del operando. El parámetro opcional escala fija el número de dígitos tras el punto decimal del resultado.

Ver también bcpow().

Anterior | Inicio | Siguiente
bcscale | Subir | bcsub


bcsub

(PHP 3, PHP 4 )

bcsub -- Resta un número de precisión arbitraria de otro.

Descripción

string bcsub ( string operando izq, string operando der [, int escala])

Resta el operando der del operando izq y devuelve el resultado en una cadena. El parámetro opcional escala se utiliza para fijar el número de dígitos tras el punto decimal del resultado.

Ver también bcadd().

Anterior | Inicio | Siguiente
bcsqrt | Subir | Funciones de compresión Bzip2


Funciones de compresión Bzip2

Manual de PHP
Anterior Siguiente

V. Funciones de compresión Bzip2

Introducción

Las funciones bzip2 son usadas para leer y escribir de forma transparente, ficheros comprimidos bzip2 (.bz2)

Requerimientos

Este módulo usa las funciones de la biblioteca bzip2 de Julian Seward. este módulo requiere bzip2/libbzip2 version >= 1.0.x.

Instalación

El soporte para bzip2 en PHP no está habilitado por defecto. Necesita usar el parámetro de configuración --with-bz2[=DIR] a la hora de compilar PHP para habilitar el soporte para bzip2.

Configuración en tiempo de ejecución

Esta extensión no tiene directivas de configuración en php.ini.

Tipos de recursos

Esta extensión define un tipo de recurso: un puntero de fichero que identifica el fichero bz2 con el que se va a trabajar.

Constantes predefinidas

Esta extensión no tiene ninguna constante definida.

Ejemplos

Este ejemplo abre un fichero temporal, escribe una cadena literal en el y presenta el contenido de dicho fichero.

Ejemplo 1. Ejemplo simple de bzip2

<?php

$filename = "/tmp/testfile.bz2";
$str = "This is a test string.\n";

// open file for writing
$bz = bzopen($filename, "w");

// write string to file
bzwrite($bz, $str);

// close file
bzclose($bz);

// open file for reading
$bz = bzopen($filename, "r");

// read 10 characters
print bzread($bz, 10);

// output until end of the file (or the next 1024 char) and close it.
print bzread($bz);

bzclose($bz);

?>
Tabla de contenidos
bzclose -- Close a bzip2 file pointer
bzcompress -- Compress a string into bzip2 encoded data
bzdecompress -- Decompresses bzip2 encoded data
bzerrno -- Returns a bzip2 error number
bzerror -- Returns the bzip2 error number and error string in an array
bzerrstr -- Returns a bzip2 error string
bzflush -- Force a write of all buffered data
bzopen -- Open a bzip2 compressed file
bzread -- Binary safe bzip2 file read
bzwrite -- Binary safe bzip2 file write

Anterior | Inicio | Siguiente
bcsub | Subir | bzclose


bzclose

(4.0.4 - 4.3.2 only)

bzclose -- Close a bzip2 file pointer

Description

int bzclose ( resource bz)

Closes the bzip2 file referenced by the pointer bz.

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

The file pointer must be valid, and must point to a file successfully opened by bzopen().

See also bzopen().

Anterior | Inicio | Siguiente
Funciones de compresión Bzip2 | Subir | bzcompress


bzcompress

(4.0.4 - 4.3.2 only)

bzcompress -- Compress a string into bzip2 encoded data

Description

string bzcompress ( string source [, int blocksize [, int workfactor]])

bzcompress() compresses the source string and returns it as bzip2 encoded data.

The optional parameter blocksize specifies the blocksize used during compression and should be a number from 1 to 9 with 9 giving the best compression, but using more resources to do so. blocksize defaults to 4.

The optional parameter workfactor controls how the compression phase behaves when presented with worst case, highly repetitive, input data. The value can be between 0 and 250 with 0 being a special case and 30 being the default value. Regardless of the workfactor, the generated output is the same.

Ejemplo 1. bzcompress() Example

<?php
$str = "sample data";
$bzstr = bzcompress($str, 9);
echo $bzstr;
?>

See also bzdecompress().

Anterior | Inicio | Siguiente
bzclose | Subir | bzdecompress


bzdecompress

(4.0.4 - 4.3.2 only)

bzdecompress -- Decompresses bzip2 encoded data

Description

string bzdecompress ( string source [, int small])

bzdecompress() decompresses the source string containing bzip2 encoded data and returns it. If the optional parameter small is TRUE, an alternative decompression algorithm will be used which uses less memory (the maximum memory requirement drops to around 2300K) but works at roughly half the speed. See the bzip2 documentation for more information about this feature.

Ejemplo 1. bzdecompress()

<?php
$start_str = "This is not an honest face?";
$bzstr = bzcompress($start_str);

echo "Compressed String: ";
echo $bzstr;
echo "\n<br>\n";

$str = bzdecompress($bzstr);
echo "Decompressed String: ";
echo $str;
echo "\n<br>\n";
?>

See also bzcompress().

Anterior | Inicio | Siguiente
bzcompress | Subir | bzerrno


bzerrno

(4.0.4 - 4.3.2 only)

bzerrno -- Returns a bzip2 error number

Description

int bzerrno ( resource bz)

Returns the error number of any bzip2 error returned by the file pointer bz.

See also bzerror() and bzerrstr().

Anterior | Inicio | Siguiente
bzdecompress | Subir | bzerror


bzerror

(4.0.4 - 4.3.2 only)

bzerror -- Returns the bzip2 error number and error string in an array

Description

array bzerror ( resource bz)

Returns the error number and error string, in an associative array, of any bzip2 error returned by the file pointer bz.

Ejemplo 1. bzerror() Example

<?php
$error = bzerror($bz);

echo $error["errno"];
echo $error["errstr"];
?>

See also bzerrno() and bzerrstr().

Anterior | Inicio | Siguiente
bzerrno | Subir | bzerrstr


bzerrstr

(4.0.4 - 4.3.2 only)

bzerrstr -- Returns a bzip2 error string

Description

string bzerrstr ( resource bz)

Returns the error string of any bzip2 error returned by the file pointer bz.

See also bzerrno() and bzerror().

Anterior | Inicio | Siguiente
bzerror | Subir | bzflush


bzflush

(4.0.4 - 4.3.2 only)

bzflush -- Force a write of all buffered data

Description

int bzflush ( resource bz)

Forces a write of all buffered bzip2 data for the file pointer bz.

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

See also bzread() and bzwrite().

Anterior | Inicio | Siguiente
bzerrstr | Subir | bzopen


bzopen

(4.0.4 - 4.3.2 only)

bzopen -- Open a bzip2 compressed file

Description

resource bzopen ( string filename, string mode)

Opens a bzip2 (.bz2) file for reading or writing. filename is the name of the file to open. mode is similar to the fopen() function (`r' for read, `w' for write, etc.).

If the open fails, the function returns FALSE, otherwise it returns a pointer to the newly opened file.

Ejemplo 1. bzopen() Example

<?php
$bz = bzopen("/tmp/foo.bz2", "r");

$decompressed_file = '';
while (!feof($bz)) {
    $decompressed_file .= bzread($bz, 4096);
}
bzclose($bz);

echo "The contents of /tmp/foo.bz2 are: ";
echo "\n<br>\n";
echo $decompressed_file;
?>

See also bzclose().

Anterior | Inicio | Siguiente
bzflush | Subir | bzread


bzread

(4.0.4 - 4.3.2 only)

bzread -- Binary safe bzip2 file read

Description

string bzread ( resource bz [, int length])

bzread() reads up to length bytes from the bzip2 file pointer referenced by bz. Reading stops when length (uncompressed) bytes have been read or EOF is reached, whichever comes first. If the optional parameter length is not specified, bzread() will read 1024 (uncompressed) bytes at a time.

Ejemplo 1. bzread() Example

<?php
$bz = bzopen("/tmp/foo.bz2", "r");
$str = bzread($bz, 2048);
echo $str;
?>

See also bzwrite() and bzopen().

Anterior | Inicio | Siguiente
bzopen | Subir | bzwrite


bzwrite

(4.0.4 - 4.3.2 only)

bzwrite -- Binary safe bzip2 file write

Description

int bzwrite ( resource bz, string data [, int length])

bzwrite() writes the contents of the string data to the bzip2 file stream pointed to by bz. If the optional length argument is given, writing will stop after length (uncompressed) bytes have been written or the end of string is reached, whichever comes first.

Ejemplo 1. bzwrite() Example

<?php
$str = "uncompressed data";
$bz = bzopen("/tmp/foo.bz2", "w");
bzwrite($bz, $str, strlen($str));
bzclose($bz);
?>

See also bzread() and bzopen().

Anterior | Inicio | Siguiente
bzread | Subir | Funciones de calendario


Funciones de calendario

Manual de PHP
Anterior Siguiente

VI. Funciones de calendario

Introducción

La extensión calendar pone a disposición una serie de funciones para simplificar la conversión entre los distintos formatos de calendario. El intermediario ó estándar en que se basa es la Cuenta de Días Juliana. La Cuenta de Días Juliana es una cuenta que comienza mucho antes que lo que mucha gente podría necesitar contar (como alrededor del 4000 AC). Para convertir entre sistemas de calendario, primero deberá convertir a la Cuenta de Días Juliana y luego al sistema de su elección. ¡La Cuenta de Días es muy diferente del Calendario Juliano! Para más información sobre la Cuenta de Días Juliana visitar http://www.hermetic.ch/cal_stud/jdn.htm. Para más información sobre sistemas de calendario, visitar http://www.boogle.com/info/cal-overview.html. En estas instrucciones se han incluído extractos entrecomillados de dicha página.

Instalación

To get these functions to work, you have to compile PHP with --enable-calendar.

La versión para Windows de PHP tiene soporte nativo para esta extensión. No se necesita cargar ninguna extensión adicional para usar estas funciones.

Configuración en tiempo de ejecución

Esta extensión no tiene directivas de configuración en php.ini.

Tipos de recursos

Esta extensión no tiene ningún tipo de recurso definido.

Constantes predefinidas

Estas constantes están definidas por esta extensión y estarán disponibles solamente cuando la extensión ha sido o bien compilada dentro de PHP o grabada dinámicamente en tiempo de ejecución.

CAL_GREGORIAN (entero)

CAL_JULIAN (entero)

CAL_JEWISH (entero)

CAL_FRENCH (entero)

CAL_NUM_CALS (entero)

CAL_DOW_DAYNO (entero)

CAL_DOW_SHORT (entero)

CAL_DOW_LONG (entero)

CAL_MONTH_GREGORIAN_SHORT (entero)

CAL_MONTH_GREGORIAN_LONG (entero)

CAL_MONTH_JULIAN_SHORT (entero)

CAL_MONTH_JULIAN_LONG (entero)

CAL_MONTH_JEWISH (entero)

CAL_MONTH_FRENCH (entero)

Las siguientes constantes se pueden utilizar desde PHP 4.3.0 :

CAL_EASTER_DEFAULT (entero)

CAL_EASTER_ROMAN (entero)

CAL_EASTER_ALWAYS_GREGORIAN (entero)

CAL_EASTER_ALWAYS_JULIAN (entero)

Estas constantes están disponibles a partir de PHP 5.0.0 :

CAL_JEWISH_ADD_ALAFIM_GERESH (entero)

CAL_JEWISH_ADD_ALAFIM (entero)

CAL_JEWISH_ADD_GERESHAYIM (entero)

Tabla de contenidos
cal_days_in_month -- Devuelve el número de dias en un mes para un determinado año y calendario
cal_from_jd -- Convierte de Cuenta de Días Juliana a un calendario soportado.
cal_info -- Devuelve información sobre un calendario en particular.
cal_to_jd -- Convierte un calendario soportado a Cuenta de Días Juliana.
easter_date -- devuelve la marca de tiempo UNIX para la medianoche de Pascua de un año dado
easter_days -- Obtiene el número de días tras el 21 de marzo en que cae la Pascua en un año dado
FrenchToJD -- Convierte del Calendario Republicano Francés a la Cuenta de Días Juliana
GregorianToJD -- Convierte de fecha Gregoriana a la Cuenta de Días Juliana
JDDayOfWeek -- Devuelve el día de la semana
JDMonthName -- Devuelve el nombre de un mes
JDToFrench -- Convierte de Cuenta de Días al Calendario Republicano Francés
JDToGregorian -- Convierte de Cuenta de Días a fecha Gregoriana
jdtojewish -- Convierte de cuenta de días juliana a calendario judío
JDToJulian -- Convierte de Cuenta de Días Juliana a Calendario Juliano
jdtounix -- Convierte un dia Juliano a UNIX timestamp
JewishToJD -- Convierte del Calendario Judío a la Cuenta de Días Juliana
JulianToJD -- Convierte de Calendario Juliano a Cuenta de Días Juliana
unixtojd -- Convierte de UNIX timestamp a dia Juliano

Anterior | Inicio | Siguiente
bzwrite | Subir | cal_days_in_month


cal_days_in_month

(PHP 4 >= 4.1.0)

cal_days_in_month -- Devuelve el número de dias en un mes para un determinado año y calendario

Descripción

int cal_days_in_month ( int calendario, int mes, int año)

Esta función devuelve el numero de dias en el mes del año para el calendario especificado calendario.

Ver también jdtounix().

Anterior | Inicio | Siguiente
Funciones de calendario | Subir | cal_from_jd


cal_from_jd

(PHP 4 >= 4.1.0)

cal_from_jd -- Convierte de Cuenta de Días Juliana a un calendario soportado.

Descripción

array cal_from_jd ( int jd, int calendario)

cal_from_jd() convierte el dia de Cuenta Juliana definido en jd a un dia del calendario especificado. Los valores de calendario soportados son CAL_GREGORIAN, CAL_JULIAN, CAL_JEWISH and CAL_FRENCH.

Ver también cal_to_jd().

Anterior | Inicio | Siguiente
cal_days_in_month | Subir | cal_info


cal_info

(PHP 4 >= 4.1.0)

cal_info -- Devuelve información sobre un calendario en particular.

Descripción

array cal_info ( [int calendario])

cal_info() devuelve información sobre el calendario especificado ó sobre todos los calendarios soportados si no se especifica el parametro calendario.

La información del calendario es devuelta en una matriz conteniendo los elementos calname, calsymbol, month, abbrevmonth y maxdaysinmonth.

Si no se especifica calendario, se devuelve una matriz con informacion sobre todos los calendarios soportados. Esta funcionalidad estará disponible en PHP 5.

Anterior | Inicio | Siguiente
cal_from_jd | Subir | cal_to_jd


cal_to_jd

(PHP 4 >= 4.1.0)

cal_to_jd -- Convierte un calendario soportado a Cuenta de Días Juliana.

Descripción

int cal_to_jd ( int calendario, int mes, int dia, int año)

cal_to_jd() Calcula la Cuenta de Días Juliana para un dia en el calendario especificado por calendar. Los calendarios soportados son CAL_GREGORIAN, CAL_JULIAN, CAL_JEWISH y CAL_FRENCH.

Ver también cal_to_jd().

Anterior | Inicio | Siguiente
cal_info | Subir | easter_date


easter_date

(PHP 3>= 3.0.9, PHP 4 )

easter_date -- devuelve la marca de tiempo UNIX para la medianoche de Pascua de un año dado

Descripción

int easter_date ( [int anno])

Devuelve la marca de tiempo UNIX que corresponde a la medianoche de Pascua del año dado.

A partir de PHP 4.3.0, el parametro anno es opcional y si se omite, usa por defecto el año en curso según "localtime".

Aviso: Esta función generará un aviso si el año está fuera del rango para las marcas de tiempo del UNIX (es decir, antes de 1970 o después del 2037).

Ejemplo 1. ejemplo de easter_date()

echo date ("M-d-Y", easter_date(1999));        /* "Apr-04-1999" */
echo date ("M-d-Y", easter_date(2000));        /* "Apr-23-2000" */
echo date ("M-d-Y", easter_date(2001));        /* "Apr-15-2001" */

La fecha del Día de Pascua fue definida por el Concilio de Nicea en el 325 D.C. como el domingo tras la primera luna llena que cayera en ó después del equinoccio de Primavera. El equinoccio se supone que siempre cae en el 21 de marzo, de modo que el cálculo se reduce a determinar la fecha de la luna llena y la del domingo siguiente. El algoritmo usado aquí fue introducido en el año 532 por Dionisio Exiguo. Bajo el Calendario Juliano (para años anteriores al 1753), se usa un ciclo simple de 19 años para calcular las fases de la luna. Bajo el Calendario Gregoriano (años posteriores al 1753, diseñado por Clavio y Lilio, e introducido por el Papa Gregorio XIII en Octubre de 1582, y en Gran Bretaña y sus colonias en septiembre de 1752) se añaden dos factores de corrección para hacer el ciclo más preciso.

(El código se basa en un programa en C de Simon Kershaw, <webmaster@ely.anglican.org>)

Ver easter_days() para calcular la Pascua antes del 1970 o después del 2037.

Anterior | Inicio | Siguiente
cal_to_jd | Subir | easter_days


easter_days

(PHP 3>= 3.0.9, PHP 4 )

easter_days -- Obtiene el número de días tras el 21 de marzo en que cae la Pascua en un año dado

Descripción

int easter_days ( [int anno [, int metodo]])

Devuelve el número de días tras el 21 de marzo en que cae la Pascua en un año dado. Si no se especifica año, se asume el actual.

A partir de PHP 4.3.0, el parametro anno es opcional y si se omite, usa por defecto el año en curso según "localtime".

El parámetro metodo fue introducido en la version PHP 4.3.0 y permite calcular fechas de pascua basadas en el Calendario Gregoriano durante los años 1582 - 1752 si se le da el valor CAL_EASTER_ROMAN. Ver las constantes de calendario para más información sobre estas constantes.

Esta función se puede usar en lugar de easter_date() para calcular la Pascua para años que se salen del rango de las marcas de fecha del UNIX (o sea, antes del 1970 o después del 2037).

Ejemplo 1. ejemplo de easter_date()

echo easter_days (1999);        /* 14, i.e. April 4   */
echo easter_days (1492);        /* 32, i.e. April 22  */
echo easter_days (1913);        /*  2, i.e. March 23  */

La fecha del Día de Pascua fue definida por el Concilio de Nicea en el 325 D.C. como el domingo tras la primera luna llena que cayera en o después del equinoccio de Primavera. El equinoccio se supone que siempre cae en el 21 de marzo, de modo que el cálculo se reduce a determinar la fecha de la luna llena y la del domingo siguiente. El algoritmo usado aquí fue introducido en el año 532 por Dionisio Exiguo. Bajo el Calendario Juliano (para años anteriores al 1753), se usa un ciclo simple de 19 años para calcular las fases de la luna. Bajo el Calendario Gregoriano (años posteriores al 1753, diseñado por Clavio y Lilio, e introducido por el Papa Gregorio XIII en Octubre de 1582, y en Gran Bretaña y sus colonias en septiembre de 1752) se añaden dos factores de corrección para hacer el ciclo más preciso.

(El código se basa en un programa en C de Simon Kershaw, <webmaster@ely.anglican.org>)

Vea también easter_date().

Anterior | Inicio | Siguiente
easter_date | Subir | FrenchToJD


FrenchToJD

(PHP 3, PHP 4 )

FrenchToJD -- Convierte del Calendario Republicano Francés a la Cuenta de Días Juliana

Descripción

int frenchtojd ( int mes, int dia, int anno)

Convierte una fecha del Calendario Republicano Francés a la Cuenta de Días Juliana.

Estas rutinas sólo convierten fechas entre los años 1 y 14 (fechas Gregorianas del 22 de septiembre de 1792 al 22 de septiembre de 1806). Esto cubre ampliamente el periodo en el que estuvo en uso este calendario.

Anterior | Inicio | Siguiente
easter_days | Subir | GregorianToJD


GregorianToJD

(PHP 3, PHP 4 )

GregorianToJD -- Convierte de fecha Gregoriana a la Cuenta de Días Juliana

Descripción

int gregoriantojd ( int mes, int dia, int anno)

El rango válido para el Calendario Gregoriano es desde el 4714 A.C. hasta el 9999 D.C.

Aunque este programa puede manejar fechas tan lejanas como el 4714 A.C., usarlo no tendría sentido. El calendario Gregoriano fue instituído el 15 de octubre de 1582 (o el 5 de octubre de 1582 en el calendario Juliano). Algunos países no lo aceptaron hasta mucho después. Por ejemplo, Gran Bretaña se convirtió en 1752, la URSS en 1918 y Grecia en 1923. Muchos países europeos usaron el calendario Juliano antes que el Gregoriano.

Ejemplo 1. Funciones de calendario

<?php
$jd = GregorianToJD (10,11,1970);
echo "$jd\n";
$gregorian = JDToGregorian ($jd);
echo "$gregorian\n";
?>

Anterior | Inicio | Siguiente
FrenchToJD | Subir | JDDayOfWeek


JDDayOfWeek

(PHP 3, PHP 4 )

JDDayOfWeek -- Devuelve el día de la semana

Descripción

mixed jddayofweek ( int diajuliano, int modo)

Devuelve el día de la semana. Dependiendo del modo, devuelve un entero ó una cadena.

Tabla 1. Modos para el día de la semana

Modo | Significado
0 | devuelve el día de la semana como entero (0=domingo, 1=lunes, etc)
1 | devuelve una cadena con el día de la semana (inglés, gregoriano)
2 | devuelve una cadena con el día de la semana abreviado (inglés, gregoriano)

Anterior | Inicio | Siguiente
GregorianToJD | Subir | JDMonthName


JDMonthName

(PHP 3, PHP 4 )

JDMonthName -- Devuelve el nombre de un mes

Descripción

string jdmonthname ( int diajuliano, int modo)

Devuelve una cadena que contiene el nombre del mes. modo le dice a esta función a qué calendario debe convertir la Cuenta de Días Juliana, y qué tipo de nombres de mes debe devolver.

Tabla 1. Modos de calendario

Modo | Significado | Valores
0 | Gregoriano - abreviado | Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
1 | Gregoriano | January, February, March, April, May, June, July, August, September, October, Novemb er, December
2 | Juliano - abreviado | Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
3 | Juliano | January, February, March, April, May, June, July, August, September, October, Novemb er, December
4 | Judío | Tishri, Heshvan, Kislev, Tevet, Shevat, AdarI, AdarII, Nisan, Iyyar, Sivan, Tammuz, Av, Elul
5 | Republicano Francés | Vendemiaire, Brumaire, Frimaire, Nivose, Pluviose, Ventose, Germinal, Floreal, Prair ial, Messidor, Thermidor, Fructidor, Extra

Anterior | Inicio | Siguiente
JDDayOfWeek | Subir | JDToFrench


JDToFrench

(PHP 3, PHP 4 )

JDToFrench -- Convierte de Cuenta de Días al Calendario Republicano Francés

Descripción

string jdtofrench ( int diajuliano)

Convierte una Cuenta de Días Juliana al Calendario Republicano Francés.

Anterior | Inicio | Siguiente
JDMonthName | Subir | JDToGregorian


JDToGregorian

(PHP 3, PHP 4 )

JDToGregorian -- Convierte de Cuenta de Días a fecha Gregoriana

Descripción

string jdtogregorian ( int diajuliano)

Convierte de Cuenta de Días Juliana a una cadena que contiene la fecha Gregoriana en formato "mes/día/año"

Anterior | Inicio | Siguiente
JDToFrench | Subir | jdtojewish


jdtojewish

(PHP 3, PHP 4 )

jdtojewish -- Convierte de cuenta de días juliana a calendario judío

Descripción

string jdtojewish ( int diajuliano [, bool hebreo [, int fl]])

Convierte una cuenta de días juliana al calendario judío.

Los parámetros opcionales hebreo y fl está disponibles a partir de PHP 5.0.0

Si al parámetro hebreo se le asigna el valor TRUE, el parámetro fl se usa para el formato de salida hebreo. Los formatos disponibles son: CAL_JEWISH_ADD_ALAFIM_GERESH, CAL_JEWISH_ADD_ALAFIM, CAL_JEWISH_ADD_GERESHAYIM.

Ejemplo 1. Ejemplo jdtojewish()

<?php
echo jdtojewish(gregoriantojd(10,8,2002), true,
       CAL_JEWISH_ADD_GERESHAYIM + CAL_JEWISH_ADD_ALAFIM + CAL_JEWISH_ADD_ALAFIM_GERESH);
?>

Anterior | Inicio | Siguiente
JDToGregorian | Subir | JDToJulian


JDToJulian

(PHP 3, PHP 4 )

JDToJulian -- Convierte de Cuenta de Días Juliana a Calendario Juliano

Descripción

string jdtojulian ( int diajuliano)

Convierte una Cuenta de Días Juliana a una cadena que contiene la fecha del Calendario Juliano en formato "mes/día/año".

Anterior | Inicio | Siguiente
jdtojewish | Subir | jdtounix


jdtounix

(PHP 4 )

jdtounix -- Convierte un dia Juliano a UNIX timestamp

Descripción

int jdtounix ( int jday)

Esta funció devuelve el "UNIX timestamp" correspondiante a el dia Juliano definido en jday ó falso (FALSE) si jday no se encuentra en la época UNIX (años entre 1970 y 2037 ó 2440588 <= jday <= 2465342 ). El tiempo devuelto es localtime (y no GMT).

Ver también unixtojd().

Anterior | Inicio | Siguiente
JDToJulian | Subir | JewishToJD


JewishToJD

(PHP 3, PHP 4 )

JewishToJD -- Convierte del Calendario Judío a la Cuenta de Días Juliana

Descripción

int jewishtojd ( int mes, int dia, int anno)

Aunque este programa puede manejar fechas tan lejanas como el año 1 (3761 A.C.), usarlo no tendría sentido. El Calendario Judío ha estado en uso miles de años, pero en los días primeros no había una fórmula que calculara el comienzo de un mes. Un mes comenzaba cuando se veía por primera vez la luna nueva.

Anterior | Inicio | Siguiente
jdtounix | Subir | JulianToJD


JulianToJD

(PHP 3, PHP 4 )

JulianToJD -- Convierte de Calendario Juliano a Cuenta de Días Juliana

Descripción

int juliantojd ( int mes, int dia, int anno)

Rango válido para el Calendario Juliano: del 4713 A.C al 9999 D.C.

Aunque este programa puede manejar fechas tan lejanas como el 4713 A.C., usarlo no tendría sentido. El calendario se creó en el 46 A.C., pero sus detalles no se estabilizaron hasta al menos el 8 D.C., y quizás no lo hiciera hasta el siglo IV. Además, el comienzo de un año variaba de una a otra cultura: no todas aceptaban enero como el primer mes.

Atención

Recordar que el actual sistema de calendario en uso en todo el mundo es el calendario Gregoriano. gregoriantojd() puede ser usada para convertir los dias del calendario Gregoriano a Cuenta de Días Juliana.

Anterior | Inicio | Siguiente
JewishToJD | Subir | unixtojd


unixtojd

(PHP 4 )

unixtojd -- Convierte de UNIX timestamp a dia Juliano

Descripción

int unixtojd ( [int timestamp])

Devuelve el dia Juliano correspondiente a un UNIX timestamp (segundos desde 01.01.1970), ó al dia actual si no se especifica timestamp

Ver tambienjdtounix().

Anterior | Inicio | Siguiente
JulianToJD | Subir | Funciones del API de CCVS


Funciones del API de CCVS

Manual de PHP
Anterior Siguiente

VII. Funciones del API de CCVS

Introducción

Estas funciones interaccionan con el API de CCVS, permitiendo trabajar con CCVS directamente desde un script PHP. CCVS es la solución de RedHat para el intermediario en el procesamiento de tarjetas de crédito. Permite conectar directamente con las centrales de las tarjetas desde una máquina *nix con un módem. Usando el módulo para PHP de CCVS, se pueden procesar tarjetas de crédito directamente desde vuestros scripts en PHP.

Nota: CCVS ha sido discontinuado por Red Hat y no existen planes de ofrecer nuevas funcionalidades ó contratos de ayuda. Los que necesiten usar esta funcionalidad pueden probar MCVE by Main Street Softworks. Es similar en diseño y tiene documentación para su uso con PHP.

Esta extensión ha sido removida de PHP y no se encuentra disponible a partir de PHP 4.3.0. Si quereis utilizar la capacidad de procesar tarjetas de crédito, usar MCVE.

Instalación

To enable CCVS Support in PHP, first verify your CCVS installation directory. You will then need to configure PHP with the --with-ccvs option. If you use this option without specifying the path to your CCVS installation, PHP will attempt to look in the default CCVS Install location (/usr/local/ccvs). If CCVS is in a non-standard location, run configure with: --with-ccvs=[DIR], where DIR is the path to your CCVS installation. Please note that CCVS support requires that DIR/lib and DIR/include exist, and include cv_api.h under the include directory and libccvs.a under the lib directory.

Additionally, a ccvsd process will need to be running for the configurations you intend to use in your PHP scripts. You will also need to make sure the PHP Processes are running under the same user as your CCVS was installed as (e.g. if you installed CCVS as user 'ccvs', your PHP processes must run as 'ccvs' as well.)

Ver también

RedHat ha dejado de soportar CCVS; De todas maneras un manual un poco anticuado está todavía disponible en http://redhat.com/docs/manuals/ccvs/.

Tabla de contenidos
ccvs_add -- Añadir datos a una transacción
ccvs_auth -- Realiza un test de una autorización a crédito en una transacción
ccvs_command -- Ejecuta un comando que es peculiar para un protocolo concreto, y que no está disponible en el API general de CCVS
ccvs_count -- Encuentra cuantas transacciones de un tipo dado están almacenadas en el sistema
ccvs_delete -- Borra una transacción
ccvs_done -- Finaliza el motor de CCVS y hace una limpieza
ccvs_init -- Inicializa un CCVS para usarlo
ccvs_lookup -- Busca un item de un tipo en particular en la base de datos #
ccvs_new -- Crea una nueva, transacción en blanco
ccvs_report -- Devuelve el estado del proceso de comunicación en background
ccvs_return -- Transfiere fondos del comerciante al titular de la tarjeta
ccvs_reverse -- Realiza una revocación completa en una autorización ya procesada
ccvs_sale -- Transfiere fondos del titular de la tarjeta al comerciante
ccvs_status -- Chequear el estado de una factura
ccvs_textvalue -- Obtiene el valor de retorno de texto para una llamada anterior a una función
ccvs_void -- Realizar una revocación completa en una transacción completada

Anterior | Inicio | Siguiente
unixtojd | Subir | ccvs_add


ccvs_add

(4.0.2 - 4.2.3 only)

ccvs_add -- Añadir datos a una transacción

Descripción

cadena ccvs_add ( cadena sesión, cadena factura, cadena argtype, cadena argval)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
Funciones del API de CCVS | Subir | ccvs_auth


ccvs_auth

(4.0.2 - 4.2.3 only)

ccvs_auth -- Realiza un test de una autorización a crédito en una transacción

Descripcion

cadena ccvs_auth ( cadena sesión, cadena factura)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ccvs_add | Subir | ccvs_command


ccvs_command

(4.0.2 - 4.2.3 only)

ccvs_command -- Ejecuta un comando que es peculiar para un protocolo concreto, y que no está disponible en el API general de CCVS

Descripcion

cadena ccvs_command ( cadena sesión, cadena tipo, cadena argval)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ccvs_auth | Subir | ccvs_count


ccvs_count

(4.0.2 - 4.2.3 only)

ccvs_count -- Encuentra cuantas transacciones de un tipo dado están almacenadas en el sistema

Descripción

entero ccvs_count ( cadena sesión, cadena tipo)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ccvs_command | Subir | ccvs_delete


ccvs_delete

(4.0.2 - 4.2.3 only)

ccvs_delete -- Borra una transacción

Descripción

cadena ccvs_delete ( cadena sesión, cadena factura)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ccvs_count | Subir | ccvs_done


ccvs_done

(4.0.2 - 4.2.3 only)

ccvs_done -- Finaliza el motor de CCVS y hace una limpieza

Descripcion

cadena ccvs_done ( cadena sesió)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ccvs_delete | Subir | ccvs_init


ccvs_init

(4.0.2 - 4.2.3 only)

ccvs_init -- Inicializa un CCVS para usarlo

Descripción

cadena ccvs_init ( cadena nombre)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ccvs_done | Subir | ccvs_lookup


ccvs_lookup

(4.0.2 - 4.2.3 only)

ccvs_lookup -- Busca un item de un tipo en particular en la base de datos #

Descripción

cadena ccvs_lookup ( cadena sesión, cadena factura, entero inum)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ccvs_init | Subir | ccvs_new


ccvs_new

(4.0.2 - 4.2.3 only)

ccvs_new -- Crea una nueva, transacción en blanco

Descripcion

cadena ccvs_new ( cadena sesión, cadena cadena)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ccvs_lookup | Subir | ccvs_report


ccvs_report

(4.0.2 - 4.2.3 only)

ccvs_report -- Devuelve el estado del proceso de comunicación en background

Descripcion

cadena ccvs_report ( cadena sesión, cadena tipo)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ccvs_new | Subir | ccvs_return


ccvs_return

(4.0.2 - 4.2.3 only)

ccvs_return -- Transfiere fondos del comerciante al titular de la tarjeta

Descripción

cadena ccvs_return ( cadena sesión, cadena factura)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ccvs_report | Subir | ccvs_reverse


ccvs_reverse

(4.0.2 - 4.2.3 only)

ccvs_reverse -- Realiza una revocación completa en una autorización ya procesada

Descripcion

cadena ccvs_reverse ( cadena sesión, cadena factura)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ccvs_return | Subir | ccvs_sale


ccvs_sale

(4.0.2 - 4.2.3 only)

ccvs_sale -- Transfiere fondos del titular de la tarjeta al comerciante

Descripción

cadena ccvs_sale ( cadena sesión, cadena factura)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ccvs_reverse | Subir | ccvs_status


ccvs_status

(4.0.2 - 4.2.3 only)

ccvs_status -- Chequear el estado de una factura

Descripción

cadena ccvs_status ( cadena sesión, cadena factura)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ccvs_sale | Subir | ccvs_textvalue


ccvs_textvalue

(4.0.2 - 4.2.3 only)

ccvs_textvalue -- Obtiene el valor de retorno de texto para una llamada anterior a una función

Descripción

cadena ccvs_textvalue ( cadena sesión)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ccvs_status | Subir | ccvs_void


ccvs_void

(4.0.2 - 4.2.3 only)

ccvs_void -- Realizar una revocación completa en una transacción completada

Descripción

cadena ccvs_void ( cadena sesión, cadena factura)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ccvs_textvalue | Subir | soporte de las funciones COM para Windows


soporte de las funciones COM para Windows

Manual de PHP
Anterior Siguiente

VIII. soporte de las funciones COM para Windows

Estas funciones solo están disponibles en la versión para Windows de PHP. Estas funciones han sido añadidas en PHP4.

Tabla de contenidos
COM -- COM class
VARIANT -- VARIANT class
com_addref -- Increases the components reference counter.
com_get -- ???
com_invoke -- ???
com_isenum -- Grabs an IEnumVariant
com_load_typelib -- Loads a Typelib
com_load -- ???
com_propget -- ???
com_propput -- ???
com_propset -- ???
com_release -- Decreases the components reference counter.
com_set -- ???

Anterior | Inicio | Siguiente
ccvs_void | Subir | COM


COM

(no version information, might be only in CVS)

COM -- COM class

Synopsis

$obj = new COM("server.object")

Description

The COM class provides a framework to integrate (D)COM components into your php scripts.

Methods

string COM::COM ( string module_name [, string server_name [, int codepage]])

COM class constructor. Parameters:

module_name

name or class-id of the requested component.

server_name

name of the DCOM server from which the component should be fetched. If NULL, localhost is assumed. To allow DCOM com.allow_dcom has to be set to TRUE in php.ini.

codepage

specifies the codepage that is used to convert php-strings to unicode-strings and vice versa. Possible values are CP_ACP, CP_MACCP, CP_OEMCP, CP_SYMBOL, CP_THREAD_ACP, CP_UTF7 and CP_UTF8.

Ejemplo 1. COM example (1)

<?php
// starting word
$word = new COM("word.application") or die("Unable to instanciate Word");
print "Loaded Word, version {$word->Version}\n";

//bring it to front
$word->Visible = 1;

//open an empty document
$word->Documents->Add();

//do some weird stuff
$word->Selection->TypeText("This is a test...");
$word->Documents[1]->SaveAs("Useless test.doc");

//closing word
$word->Quit();

//free the object
$word->Release();
$word = null;
?>

Ejemplo 2. COM example (2)

<?php

$conn = new COM("ADODB.Connection") or die("Cannot start ADO");
$conn->Open("Provider=SQLOLEDB; Data Source=localhost;
Initial Catalog=database; User ID=user; Password=password");

$rs = $conn->Execute("SELECT * FROM sometable");    // Recordset

$num_columns = $rs->Fields->Count();
echo $num_columns . "\n";

for ($i=0; $i < $num_columns; $i++)
{
    $fld[$i] = $rs->Fields($i);
}

$rowcount = 0;
while (!$rs->EOF)
{
    for ($i=0; $i < $num_columns; $i++)
    {
        echo $fld[$i]->value . "\t";
    }
    echo "\n";
    $rowcount++;            // increments rowcount
    $rs->MoveNext();
}

$rs->Close();
$conn->Close();

$rs->Release();
$conn->Release();

$rs = null;
$conn = null;

?>

Anterior | Inicio | Siguiente
soporte de las funciones COM para Windows | Subir | VARIANT


VARIANT

(no version information, might be only in CVS)

VARIANT -- VARIANT class

Synopsis

$vVar = new VARIANT($var)

Description

A simple container to wrap variables into VARIANT structures.

Methods

string VARIANT::VARIANT ( [mixed value [, int type [, int codepage]]])

VARIANT class constructor. Parameters:

value

initial value. if omitted an VT_EMPTY object is created.

type

specifies the content type of the VARIANT object. Possible values are VT_UI1, VT_UI2, VT_UI4, VT_I1, VT_I2, VT_I4, VT_R4, VT_R8, VT_INT, VT_UINT, VT_BOOL, VT_ERROR, VT_CY, VT_DATE, VT_BSTR, VT_DECIMAL, VT_UNKNOWN, VT_DISPATCH and VT_VARIANT. These values are mutual exclusive, but they can be combined with VT_BYREF to specify being a value. If omitted, the type of value is used. Consult the MSDN library for additional information.

codepage

specifies the codepage that is used to convert php-strings to unicode-strings and vice versa. Possible values are CP_ACP, CP_MACCP, CP_OEMCP, CP_SYMBOL, CP_THREAD_ACP, CP_UTF7 and CP_UTF8.

Anterior | Inicio | Siguiente
COM | Subir | com_addref


com_addref

(4.1.0 - 4.3.2 only)

com_addref -- Increases the components reference counter.

Description

void com_addref ( void )

Increases the components reference counter.

Anterior | Inicio | Siguiente
VARIANT | Subir | com_get


com_get

(PHP 3>= 3.0.3, 4.0.5 - 4.3.2 only)

com_get -- ???

Descripción

mixed com_get ( resource object, string property)

Anterior | Inicio | Siguiente
com_addref | Subir | com_invoke


com_invoke

(PHP 3>= 3.0.3)

com_invoke -- ???

Descripción

mixed com_invoke ( resource object, string function_name [, mixed function parameters, ...])

Anterior | Inicio | Siguiente
com_get | Subir | com_isenum


com_isenum

(4.1.0 - 4.3.2 only)

com_isenum -- Grabs an IEnumVariant

Description

void com_isenum ( object com_module)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
com_invoke | Subir | com_load_typelib


com_load_typelib

(4.1.0 - 4.3.2 only)

com_load_typelib -- Loads a Typelib

Description

void com_load_typelib ( string typelib_name [, int case_insensitive])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
com_isenum | Subir | com_load


com_load

(PHP 3>= 3.0.3)

com_load -- ???

Descripción

string com_load ( string module name [, string server name])

Anterior | Inicio | Siguiente
com_load_typelib | Subir | com_propget


com_propget

(PHP 3>= 3.0.3, 4.0.5 - 4.3.2 only)

com_propget -- ???

Descripción

mixed com_propget ( resource object, string property)

Anterior | Inicio | Siguiente
com_load | Subir | com_propput


com_propput

(PHP 3>= 3.0.3, 4.0.5 - 4.3.2 only)

com_propput -- ???

Descripción

void com_propput ( resource object, string property, mixed value)

Anterior | Inicio | Siguiente
com_propget | Subir | com_propset


com_propset

(PHP 3>= 3.0.3, 4.0.5 - 4.3.2 only)

com_propset -- ???

Descripción

void com_propset ( resource object, string property, mixed value)

Esta función es un alias para com_propput().

Anterior | Inicio | Siguiente
com_propput | Subir | com_release


com_release

(4.1.0 - 4.3.2 only)

com_release -- Decreases the components reference counter.

Description

void com_release ( void )

Decreases the components reference counter.

Anterior | Inicio | Siguiente
com_propset | Subir | com_set


com_set

(PHP 3>= 3.0.3, 4.0.5 - 4.3.2 only)

com_set -- ???

Descripción

void com_set ( resource object, string property, mixed value)

Esta función es un alias para com_set().

Anterior | Inicio | Siguiente
com_release | Subir | Funciones de Clases/Objectos


Funciones de Clases/Objectos

Manual de PHP
Anterior Siguiente

IX. Funciones de Clases/Objectos

Introducción

Estas funciones permiten obtener informacion sobre clases y objetos. Se puede obtener el nombre de la clase a la que pertenece un objeto, asi como las propiedades de sus miembros y métodos. Usando estas funciones se puede obtener no solo lo comentado en la frase anterior, tambien se puede obtener la familia del objeto (p.ej. que clase está extendiendo la clase a la que pertenece el objeto)

Requerimientos

No se necesitan bibliotecas externas para construir esta extensión

Instalación

No se necesita ninguna instalación para usar estas funciones, son parte del núcleo de PHP.

Configuración en tiempo de ejecución

Esta extensión no tiene directivas de configuración en php.ini.

Tipos de recursos

Esta extensión no tiene ningún tipo de recurso definido.

Constantes predefinidas

Esta extensión no tiene ninguna constante definida.

Ejemplos

En este ejemplo, definimos primero una clase base y una extensión de esta clase. La clase base define un vegetal genérico, si es comestible y su color. La subclase Spinach añade un metodo para cocinarlo y otro para saber si esta cocinado.

Ejemplo 1. classes.inc

<?php

// base class with member properties and methods
class Vegetable {

    var $edible;
    var $color;

    function Vegetable( $edible, $color="green" ) {
        $this->edible = $edible;
        $this->color = $color;
    }

    function is_edible() {
        return $this->edible;
    }

    function what_color() {
        return $this->color;
    }

} // end of class Vegetable

// extends the base class
class Spinach extends Vegetable {

    var $cooked = false;

    function Spinach() {
        $this->Vegetable( true, "green" );
    }

    function cook_it() {
        $this->cooked = true;
    }

    function is_cooked() {
        return $this->cooked;
    }

} // end of class Spinach

?>

Creamos 2 objetos de estas clases e imprimimos información sobre ellos, incluyendo la jerarquia de clases a la que pertenecen. También definimos algunas funciones, especialmente para imprimir las variables de una manera ordenada.

Ejemplo 2. test_script.php

<pre>
<?php

include "classes.inc";

// utility functions

function print_vars($obj) {
    $arr = get_object_vars($obj);
    while (list($prop, $val) = each($arr))
        echo "\t$prop = $val\n";
}

function print_methods($obj) {
    $arr = get_class_methods(get_class($obj));
    foreach ($arr as $method)
        echo "\tfunction $method()\n";
}

function class_parentage($obj, $class) {
    global $$obj;
    if (is_subclass_of($$obj, $class)) {
        echo "Object $obj belongs to class ".get_class($$obj);
        echo " a subclass of $class\n";
    } else {
        echo "Object $obj does not belong to a subclass of $class\n";
    }
}

// instantiate 2 objects

$veggie = new Vegetable(true,"blue");
$leafy = new Spinach();

// print out information about objects
echo "veggie: CLASS ".get_class($veggie)."\n";
echo "leafy: CLASS ".get_class($leafy);
echo ", PARENT ".get_parent_class($leafy)."\n";

// show veggie properties
echo "\nveggie: Properties\n";
print_vars($veggie);

// and leafy methods
echo "\nleafy: Methods\n";
print_methods($leafy);

echo "\nParentage:\n";
class_parentage("leafy", "Spinach");
class_parentage("leafy", "Vegetable");
?>
</pre>

One important thing to note in the example above is that the object $leafy is an instance of the class Spinach which is a subclass of Vegetable, therefore the last part of the script above will output:

[...]
Parentage:
Object leafy does not belong to a subclass of Spinach
Object leafy belongs to class spinach a subclass of Vegetable

Tabla de contenidos
call_user_method_array -- Call a user method given with an array of parameters [deprecated]
call_user_method -- Call a user method on an specific object [deprecated]
class_exists -- Checks if the class has been defined
get_class_methods -- Devuelve un vector (matriz unidimensional) con los nombres de los métodos de la clase en question.
get_class_vars -- Devuelve una matriz con las propiedades (inicializadas por defecto) de la clase
get_class -- Returns the name of the class of an object
get_declared_classes -- Returns an array with the name of the defined classes
get_object_vars -- Devuelve un vector de propiedades del objecto
get_parent_class -- Retrieves the parent class name for object or class
is_a -- Returns TRUE if the object is of this class or has this class as one of its parents
is_subclass_of -- Returns TRUE if the object has this class as one of its parents
method_exists -- Comprueba que el metódo de clase existe

Anterior | Inicio | Siguiente
com_set | Subir | call_user_method_array


call_user_method_array

(PHP 4 >= 4.0.5)

call_user_method_array -- Call a user method given with an array of parameters [deprecated]

Description

mixed call_user_method_array ( string method_name, object obj [, array paramarr])

Aviso

The call_user_method_array() function is deprecated as of PHP 4.1.0, use the call_user_func_array() variety with the array(&$obj, "method_name") syntax instead.

Calls the method referred by method_name from the user defined obj object, using the parameters in paramarr.

See also:
call_user_func_array(),
call_user_func(),
call_user_method().

Nota: This function was added to the CVS code after release of PHP 4.0.4pl1

Anterior | Inicio | Siguiente
Funciones de Clases/Objectos | Subir | call_user_method


call_user_method

(PHP 3>= 3.0.3, PHP 4 )

call_user_method -- Call a user method on an specific object [deprecated]

Description

mixed call_user_method ( string method_name, object obj [, mixed parameter [, mixed ...]])

Aviso

The call_user_method() function is deprecated as of PHP 4.1.0, use the call_user_func() variety with the array(&$obj, "method_name") syntax instead.

Calls the method referred by method_name from the user defined obj object. An example of usage is below, where we define a class, instantiate an object and use call_user_method() to call indirectly its print_info method.

<?php
class Country {
    var $NAME;
    var $TLD;

    function Country($name, $tld) {
        $this->NAME = $name;
        $this->TLD = $tld;
    }

    function print_info($prestr="") {
        echo $prestr."Country: ".$this->NAME."\n";
        echo $prestr."Top Level Domain: ".$this->TLD."\n";
    }
}

$cntry = new Country("Peru","pe");

echo "* Calling the object method directly\n";
$cntry->print_info();

echo "\n* Calling the same method indirectly\n";
call_user_method ("print_info", $cntry, "\t");
?>

See also call_user_func_array(),
call_user_func(), and
call_user_method_array().

Anterior | Inicio | Siguiente
call_user_method_array | Subir | class_exists


class_exists

(PHP 4 )

class_exists -- Checks if the class has been defined

Description

bool class_exists ( string class_name)

This function returns TRUE if the class given by class_name has been defined, FALSE otherwise.

See also get_declared_classes().

Anterior | Inicio | Siguiente
call_user_method | Subir | get_class_methods


get_class_methods

(PHP 4 )

get_class_methods -- Devuelve un vector (matriz unidimensional) con los nombres de los métodos de la clase en question.

Descripción

vector get_class_methods ( string class_name)

Esta función devuelve un vector con los nombres de los métodos definidos en la clase especificada como class_name.

Nota: A partir de PHP 4.0.6, se puede especificar el objeto a sí mismo en vez de class_name. Por ejemplo:

$class_methods = get_class_methods($my_class); // see below the full example

Ejemplo 1. get_class_methods() ejemplo

<?php

class myclass {
    // constructor
    function myclass() {
        return(TRUE);
    }

    // method 1
    function myfunc1() {
        return(TRUE);
    }

    // method 2
    function myfunc2() {
        return(TRUE);
    }
}

$my_object = new myclass();

$class_methods = get_class_methods(get_class($my_object));

foreach ($class_methods as $method_name) {
    echo "$method_name\n";
}

?>

Producira:

myclass
myfunc1
myfunc2

Ver también get_class_vars() y get_object_vars().

Anterior | Inicio | Siguiente
class_exists | Subir | get_class_vars


get_class_vars

(PHP 4 )

get_class_vars -- Devuelve una matriz con las propiedades (inicializadas por defecto) de la clase

Descripción

array get_class_vars ( string class_name)

Esta función devuelve un vector con las propiedades que han sido inicializadas por defecto en la clase. Los elementos de este vector están estan organizados de la forma varname => value.

Nota: Con anterioridad a PHP 4.2.0, las variables de la clase que no estén inicializadas, no será presentadas por get_class_vars().

Ejemplo 1. get_class_vars() ejemplo

<?php

class myclass {

    var $var1; // this has no default value...
    var $var2 = "xyz";
    var $var3 = 100;

    // constructor
    function myclass() {
        return(TRUE);
    }
}

$my_class = new myclass();

$class_vars = get_class_vars(get_class($my_class));

foreach ($class_vars as $name => $value) {
    echo "$name : $value\n";
}

?>

Producira:

// Before PHP 4.2.0
var2 : xyz
var3 : 100

// As of PHP 4.2.0
var1 :
var2 : xyz
var3 : 100

Ver también get_class_methods(), get_object_vars()

Anterior | Inicio | Siguiente
get_class_methods | Subir | get_class


get_class

(PHP 4 )

get_class -- Returns the name of the class of an object

Description

string get_class ( object obj)

This function returns the name of the class of which the object obj is an instance. Returns FALSE if obj is not an object.

Nota: get_class() returns a user defined class name in lowercase. A class defined in a PHP extension is returned in its original notation.

Ejemplo 1. Using get_class()

<?php

class foo {
    function foo() {
    // implements some logic
    }

    function name() {
        echo "My name is " , get_class($this) , "\n";
    }
}

// create an object
$bar = new foo();

// external call
echo "Its name is " , get_class($bar) , "\n";

// internal call
$bar->name();

?>

The output is:

Its name is foo
My name is foo

See also get_parent_class(),
gettype(), and
is_subclass_of().

Anterior | Inicio | Siguiente
get_class_vars | Subir | get_declared_classes


get_declared_classes

(PHP 4 )

get_declared_classes -- Returns an array with the name of the defined classes

Description

array get_declared_classes ( void )

This function returns an array of the names of the declared classes in the current script.

Nota: In PHP 4.0.1pl2, three extra classes are returned at the beginning of the array: stdClass (defined in Zend/zend.c), OverloadedTestClass (defined in ext/standard/basic_functions.c) and Directory (defined in ext/standard/dir.c).

Also note that depending on what libraries you have compiled into PHP, additional classes could be present. This means that you will not be able to define your own classes using these names. There is a list of predefined classes in the Predefined Classes section of the appendices.

See also class_exists().

Anterior | Inicio | Siguiente
get_class | Subir | get_object_vars


get_object_vars

(PHP 4 )

get_object_vars -- Devuelve un vector de propiedades del objecto

Descripción

array get_class_vars ( object obj)

Esta función devuelve una matriz con las propiedades definidas en el objecto especificado como obj.

Nota: Con anterioridad a PHP 4.2.0, si las variables declaradas en la clase a la que pertenece obj, no les ha sido asignado un valor, no serán devueltas en el vector. En versiones posteriores a PHP 4.2.0 se les asignará un valor NULL.

Ejemplo 1. Uso de get_object_vars()

<?php
class Point2D {
    var $x, $y;
    var $label;

    function Point2D($x, $y) {
        $this->x = $x;
        $this->y = $y;
    }

    function setLabel($label) {
        $this->label = $label;
    }

    function getPoint() {
        return array("x" => $this->x,
                     "y" => $this->y,
                     "label" => $this->label);
    }
}

// "$label" is declared but not defined
$p1 = new Point2D(1.233, 3.445);
print_r(get_object_vars($p1));

$p1->setLabel("point #1");
print_r(get_object_vars($p1));

?>

El resultado de este programa es:

Array
 (
     [x] => 1.233
     [y] => 3.445
     [label] =>
 )

 Array
 (
     [x] => 1.233
     [y] => 3.445
     [label] => point #1
 )

Ver tambien get_class_methods() y get_class_vars()

Anterior | Inicio | Siguiente
get_declared_classes | Subir | get_parent_class


get_parent_class

(PHP 4 )

get_parent_class -- Retrieves the parent class name for object or class

Description

string get_parent_class ( mixed obj)

If obj is an object, returns the name of the parent class of the class of which obj is an instance.

If obj is a string, returns the name of the parent class of the class with that name. This functionality was added in PHP 4.0.5.

Ejemplo 1. Using get_parent_class()

<?php

class dad {
    function dad() {
    // implements some logic
    }
}

class child extends dad {
    function child() {
        echo "I'm " , get_parent_class($this) , "'s son\n";
    }
}

class child2 extends dad {
    function child2() {
        echo "I'm " , get_parent_class('child2') , "'s son too\n";
    }
}

$foo = new child();
$bar = new child2();

?>

The output is:

I'm dad's son
I'm dad's son too

See also get_class() and is_subclass_of().

Anterior | Inicio | Siguiente
get_object_vars | Subir | is_a


is_a

(PHP 4 >= 4.2.0)

is_a -- Returns TRUE if the object is of this class or has this class as one of its parents

Description

bool is_a ( object object, string class_name)

This function returns TRUE if the object is of this class or has this class as one of its parents, FALSE otherwise.

See also get_class(),
get_parent_class(), and
is_subclass_of().

Anterior | Inicio | Siguiente
get_parent_class | Subir | is_subclass_of


is_subclass_of

(PHP 4 )

is_subclass_of -- Returns TRUE if the object has this class as one of its parents

Description

bool is_subclass_of ( object object, string class_name)

This function returns TRUE if the object object, belongs to a class which is a subclass of class_name, FALSE otherwise.

See also get_class(),
get_parent_class() and
is_a().

Anterior | Inicio | Siguiente
is_a | Subir | method_exists


method_exists

(PHP 4 )

method_exists -- Comprueba que el metódo de clase existe

Descripción

bool method_exists ( object object, string method_name)

Esta función devuelve verdadero (TRUE) si el metódo referido por method_name ha sido definido en el objecto object, en cualquier otro caso devuelve falso (FALSE)

Anterior | Inicio | Siguiente
is_subclass_of | Subir | Funciones de ClibPDF


Funciones de ClibPDF

Manual de PHP
Anterior Siguiente

X. Funciones de ClibPDF

ClibPDF Le permite crear documentos PDF con PHP. Está disponible en FastIO pero no es software libre. Debería leer la licencia antes de comenzar a utilizar ClibPDF. Si usted no puede cumplir el acuerdo de la licencia considere el utilizar la pdflib de Thomas Merz, que tambien es muy potente. La funcionalidad y la API de ClibPDF son similares a la pdflib de Thomas Merz pero, de acuerdo con FastIO, ClibPDF es mas rápida y crea documentos mas pequeños. Esto puede haber cambiado con la nueva versión 2.0 de pdflib. Un simple banco de pruebas (el ejemplo pdfclock.c de pdflib 2.0 trasformado en un script php) en realidad no muestra ninguna diferencia en velocidad. Por tanto, pruebe las dos y vea cual hace el mejor trabajo para usted.

Esta documentación debería ser leída junto con el manual de ClibPDF ya que este explica la librería con mucho mas detalle.

Muchas funciones en le ClibPDF nativa y el módulo PHP, así como en pdflib, tienen el mismo nombre. Todas las funciones excepto cpdf_open() toman el manejador del documento com el primer parámetro. Actualmente este manejador no se usa internamente desde que ClibPDF no soporta la creación de varios documentos PDF al mismo tiempo. Realmente, ni debería intentarlo, los resultados son impredecibles. No puedo supervisar cuales son las consecuencias en un sistema multihilo. De acuerdo con el autor de ClibPDF, esto cambiará en alguno de las próximas veriones (la versión actual, cuando eto fue escrito es 1.10). Si usted necesita esta capacidad, use el módulo pdflib.

Nota: La función cpdf_set_font() ha cambiado desde que PHP3 soporta fuentes asiáticas. El parámetro que codifica ya no es un entero sino una cadena.

Una gran ventaja de ClibPDF sobre pdflib es la posibilidad de crear el documento PDF completamente en memoria sin usar ficheros temporales. Esto también proporciona la capaciad de pasar coordenadas en una unidad de longitud predefinida. Esta es una cualidad útil pero puede ser simulada con pdf_translate().

La mayoría de las funciones son fáciles de usar. La parte mas difícil es, probablemente, crear un documento PDF muy simple. El siguiente ejemplo debería ayudarle a comenzar. En él se crea un documento con una página. La página contiene el texto "Times-Roman" con una fuente de 30pt. El texto está subrayado.

Ejemplo 1. Ejemplo simple de ClibPDF

<?php
$cpdf = cpdf_open(0);
cpdf_page_init($cpdf, 1, 0, 595, 842);
cpdf_add_outline($cpdf, 0, 0, 0, 1, "Page 1");
cpdf_set_font($cpdf, "Times-Roman", 30, "WinAnsiEncoding");
cpdf_set_text_rendering($cpdf, 1);
cpdf_text($cpdf, "Times Roman outlined", 50, 750);
cpdf_moveto($cpdf, 50, 740);
cpdf_lineto($cpdf, 330, 740);
cpdf_stroke($cpdf);
cpdf_finalize($cpdf);
Header("Content-type: application/pdf");
cpdf_output_buffer($cpdf);
cpdf_close($cpdf);
?>

La distribución de pdflib contiene un ejemplo mas comlejo que crea una serie de páginas con un reloj analógico. Aquí está ese ejemplo convertido en PHP usando la extensión ClibPDF:

Ejemplo 2. Ejemplo con pdfclock de la distribución pdflib 2.0

<?php
$radius = 200;
$margin = 20;
$pagecount = 40;

$pdf = cpdf_open(0);
cpdf_set_creator($pdf, "pdf_clock.php3");
cpdf_set_title($pdf, "Reloj Analigico");

while($pagecount-- > 0) {
  cpdf_page_init($pdf, $pagecount+1, 0, 2 * ($radius + $margin), 2 * ($radius + $margin), 1.0);

  cpdf_set_page_animation($pdf, 4, 0.5, 0, 0, 0);  /* limpiar */

  cpdf_translate($pdf, $radius + $margin, $radius + $margin);
  cpdf_save($pdf);
  cpdf_setrgbcolor($pdf, 0.0, 0.0, 1.0);

  /*  cambio de minuto */
  cpdf_setlinewidth($pdf, 2.0);
  for ($alpha = 0; $alpha < 360; $alpha += 6)
    {
    cpdf_rotate($pdf, 6.0);
    cpdf_moveto($pdf, $radius, 0.0);
    cpdf_lineto($pdf, $radius-$margin/3, 0.0);
    cpdf_stroke($pdf);
    }

  cpdf_restore($pdf);
  cpdf_save($pdf);

  /* cambios de 5 minutos */
  cpdf_setlinewidth($pdf, 3.0);
  for ($alpha = 0; $alpha < 360; $alpha += 30)
  {
    cpdf_rotate($pdf, 30.0);
    cpdf_moveto($pdf, $radius, 0.0);
    cpdf_lineto($pdf, $radius-$margin, 0.0);
    cpdf_stroke($pdf);
  }

  $ltime = getdate();

  /* dibujar la aguja de las horas */
  cpdf_save($pdf);
  cpdf_rotate($pdf, -(($ltime['minutos']/60.0) + $ltime['horas'] - 3.0) * 30.0);
  cpdf_moveto($pdf, -$radius/10, -$radius/20);
  cpdf_lineto($pdf, $radius/2, 0.0);
  cpdf_lineto($pdf, -$radius/10, $radius/20);
  cpdf_closepath($pdf);
  cpdf_fill($pdf);
  cpdf_restore($pdf);

  /* dibujar el minutero */
  cpdf_save($pdf);
  cpdf_rotate($pdf, -(($ltime['segundos']/60.0) + $ltime['minutos'] - 15.0) * 6.0);
  cpdf_moveto($pdf, -$radius/10, -$radius/20);
  cpdf_lineto($pdf, $radius * 0.8, 0.0);
  cpdf_lineto($pdf, -$radius/10, $radius/20);
  cpdf_closepath($pdf);
  cpdf_fill($pdf);
  cpdf_restore($pdf);

  /* dibujar la seguna mano */
  cpdf_setrgbcolor($pdf, 1.0, 0.0, 0.0);
  cpdf_setlinewidth($pdf, 2);
  cpdf_save($pdf);
  cpdf_rotate($pdf, -(($ltime['segundos'] - 15.0) * 6.0));
  cpdf_moveto($pdf, -$radius/5, 0.0);
  cpdf_lineto($pdf, $radius, 0.0);
  cpdf_stroke($pdf);
  cpdf_restore($pdf);

  /* dibujar un pequeno circulo en el centro */
  cpdf_circle($pdf, 0, 0, $radius/30);
  cpdf_fill($pdf);

  cpdf_restore($pdf);

  cpdf_finalize_page($pdf, $pagecount+1);
}

cpdf_finalize($pdf);
Header("Content-type: application/pdf");
cpdf_output_buffer($pdf);
cpdf_close($pdf);
?>
Tabla de contenidos
cpdf_add_annotation -- Añade una anotación
cpdf_add_outline -- Añade una marca en la página actual
cpdf_arc -- Dibuja un arco
cpdf_begin_text -- Inicializa una sección de texto
cpdf_circle -- Dibuja un círculo
cpdf_clip -- Ajusta al camino actual
cpdf_close -- Cierra un documento PDF
cpdf_closepath_fill_stroke -- Cierra, llena y traza el camino actual
cpdf_closepath_stroke -- Cierra el camino y dibuja una línea a lo largo del camino
cpdf_closepath -- Cierra el camino
cpdf_continue_text -- Pone texto en la línea siguiente
cpdf_curveto -- Dibuja una curva
cpdf_end_text -- Finaliza una sección de texto
cpdf_fill_stroke -- LLena y traza el camino actual
cpdf_fill -- LLena el camino actual
cpdf_finalize_page -- Finaliza una página
cpdf_finalize -- Finaliza un documento
cpdf_global_set_document_limits -- Sets document limits for any pdf document
cpdf_import_jpeg -- Abre una imagen JPEG
cpdf_lineto -- Dibuja una línea
cpdf_moveto -- Define el punto actual
cpdf_newpath -- Starts a new path
cpdf_open -- Abre un nuevo documento PDF
cpdf_output_buffer -- Pone el documento PDF en el buffer de memoria
cpdf_page_init -- Comienza una nueva página
cpdf_place_inline_image -- Situa una imagen en la página
cpdf_rect -- Dibuja un rectángulo
cpdf_restore -- Restaura un entorno formalmente salvado
cpdf_rlineto -- Dibuja una línea
cpdf_rmoveto -- Define el punto actual
cpdf_rotate_text -- Sets text rotation angle
cpdf_rotate -- Define la rotación
cpdf_save_to_file -- Escribe el documento PDF en un fichero
cpdf_save -- Salva el entorno actual
cpdf_scale -- Define la escala
cpdf_set_action_url -- Sets hyperlink
cpdf_set_char_spacing -- Determina el espacio entre caracteres
cpdf_set_creator -- Define el campo creator en el documento PDF
cpdf_set_current_page -- Define la página actual
cpdf_set_font_directories -- Sets directories to search when using external fonts
cpdf_set_font_map_file -- Sets fontname to filename translation map when using external fonts
cpdf_set_font -- Selecciona la fuente y el tamaño actual
cpdf_set_horiz_scaling -- Define la escala horizontal del texto
cpdf_set_keywords -- Pone el valor del campo 'keywords'(palabras clave) de un documento PDF
cpdf_set_leading -- Define la distancias entre las líneas de texto
cpdf_set_page_animation -- Define la separación entre páginas
cpdf_set_subject -- Define el valor del campo subjet de un documento PDF
cpdf_set_text_matrix -- Define la matriz de texto
cpdf_set_text_pos -- Define la posición del texto
cpdf_set_text_rendering -- Determina cómo es presentado el texto
cpdf_set_text_rise -- Define la elevación del texto
cpdf_set_title -- Define el campo title de un documento PDF
cpdf_set_viewer_preferences -- How to show the document in the viewer
cpdf_set_word_spacing -- Define el espacio entre palabras
cpdf_setdash -- Defina el patrón de la raya
cpdf_setflat -- Define la monotonía
cpdf_setgray_fill -- Pone el color de relleno al valor gris
cpdf_setgray_stroke -- Define el color para dibujar al valor gris
cpdf_setgray -- Pone el color de relleno y dibujo a gris
cpdf_setlinecap -- Define el parámetro linecap
cpdf_setlinejoin -- Define el parámetro linejoin
cpdf_setlinewidth -- Define la profundidad de la línea
cpdf_setmiterlimit -- Define el límite del inglete
cpdf_setrgbcolor_fill -- Pone el color de relleno a l valor de clor rgb
cpdf_setrgbcolor_stroke -- Pone el color de dibujo al valor de color rgb
cpdf_setrgbcolor -- Pone el color de relleno y dibujo al valor de color rgb
cpdf_show_xy -- Muestra texto en la posición
cpdf_show -- Muestra el texto en la posición actual
cpdf_stringwidth -- Devuelve la anchura del texto en la fuente actual
cpdf_stroke -- Dibuja una línea a lo largo del camino
cpdf_text -- Muestra texto conparámetros
cpdf_translate -- Define el sistema de origen de coordenadas

Anterior | Inicio | Siguiente
method_exists | Subir | cpdf_add_annotation


cpdf_add_annotation

(PHP 3>= 3.0.12, PHP 4 )

cpdf_add_annotation -- Añade una anotación

Descripción

void cpdf_add_annotation ( int pdf document, double llx, double lly, double urx, double ury, string title, string content, int mode)

La función cpdf_add_annotation() añade una nota con la esquina inferior izquierda en (llx, lly) y la esquina superior derecha en (urx, ury).

El últomo parámetro opcional determina el tamaño de la unidad. Si es 0 o se omite, se usa la unidad por defecto especificada para la página. De otro modo las coordenadas se miden en puntos postscript, despreciando la unidad actual.

Anterior | Inicio | Siguiente
Funciones de ClibPDF | Subir | cpdf_add_outline


cpdf_add_outline

(PHP 3>= 3.0.9, PHP 4 )

cpdf_add_outline -- Añade una marca en la página actual

Descripción

void cpdf_add_outline ( int pdf document, string text)

La función cpdf_add_outline() añade una marca con el texto text que apunta a la página actual.

Ejemplo 1. Añadiendo un contorno de página

<?php
$cpdf = cpdf_open(0);
cpdf_page_init($cpdf, 1, 0, 595, 842);
cpdf_add_outline($cpdf, 0, 0, 0, 1, "Página 1");
// ...
// Algún dibujo
// ...
cpdf_finalize($cpdf);
Header("Content-type: application/pdf");
cpdf_output_buffer($cpdf);
cpdf_close($cpdf);
?>

Anterior | Inicio | Siguiente
cpdf_add_annotation | Subir | cpdf_arc


cpdf_arc

(PHP 3>= 3.0.8, PHP 4 )

cpdf_arc -- Dibuja un arco

Descripión

void cpdf_arc ( int pdf document, double x-koor, double y-koor, double radius, double start, double end, int mode)

La función cpdf_arc() dibuja un arco con el centro rn el punto (x-koor, y-koor) y radio radius, empezando en el ángulo start y terminando en el ángulo end.

El último parámetro opcional especifica el tamaño de la unidad. Si es 0 o se omite, se usa la unidad especificada por defecto. De otro modo las coordenadas son medidas en puntos postscript,despreciando la unidad actual.

Vea también cpdf_circle().

Anterior | Inicio | Siguiente
cpdf_add_outline | Subir | cpdf_begin_text


cpdf_begin_text

(PHP 3>= 3.0.8, PHP 4 )

cpdf_begin_text -- Inicializa una sección de texto

Descripción

void cpdf_begin_text ( int pdf document)

La función cpdf_begin_text() comienza una sección de texto. Debe ser terminada con cpdf_end_text().

Ejemplo 1. Salida de texto

<?php cpdf_begin_text($pdf);
cpdf_set_font($pdf, 16, "Helvetica", "WinAnsiEncoding");
cpdf_text($pdf, 100, 100, "Algún texto");
cpdf_end_text($pdf) ?>

Vea también cpdf_end_text().

Anterior | Inicio | Siguiente
cpdf_arc | Subir | cpdf_circle


cpdf_circle

(PHP 3>= 3.0.8, PHP 4 )

cpdf_circle -- Dibuja un círculo

Descripción

void cpdf_circle ( int pdf document, double x-koor, double y-koor, double radius, int mode)

La función cpdf_circle() dibuja un círculo con centro en el punto (x-koor, y-koor) y radio radius.

El último parámetro opcional define el tamaño de la unidad. Si es 0 o se omite, se usa el valor por defecto para la página. De otro modo las coordenadas se miden en puntos postscript, despreciando la unidad actual.

Vea también cpdf_arc().

Anterior | Inicio | Siguiente
cpdf_begin_text | Subir | cpdf_clip


cpdf_clip

(PHP 3>= 3.0.8, PHP 4 )

cpdf_clip -- Ajusta al camino actual

Descripción

void cpdf_clip ( int pdf document)

La función cpdf_clip() ajusta todos los dibujos al camino actual.

Anterior | Inicio | Siguiente
cpdf_circle | Subir | cpdf_close


cpdf_close

(PHP 3>= 3.0.8, PHP 4 )

cpdf_close -- Cierra un documento PDF

Descripción

void cpdf_close ( int pdf document)

La función cpdf_close() cierra un documento PDF. Esta debería ser la última operación incluso después de cpdf_finalize(), cpdf_output_buffer() y cpdf_save_to_file().

Vea también cpdf_open().

Anterior | Inicio | Siguiente
cpdf_clip | Subir | cpdf_closepath_fill_stroke


cpdf_closepath_fill_stroke

(PHP 3>= 3.0.8, PHP 4 )

cpdf_closepath_fill_stroke -- Cierra, llena y traza el camino actual

Descripción

void cpdf_closepath_fill_stroke ( int pdf document)

La función cpdf_closepath_fill_stroke() cierra, llena el interior del caminoa catual con el color actual de relleno y dibuja el camino actual.

Vea también cpdf_closepath(),
            cpdf_stroke(),
            cpdf_fill(),
            cpdf_setgray_fill(),
            cpdf_setgray(),
            cpdf_setrgbcolor_fill(),
            cpdf_setrgbcolor().

Anterior | Inicio | Siguiente
cpdf_close | Subir | cpdf_closepath_stroke


cpdf_closepath_stroke

(PHP 3>= 3.0.8, PHP 4 )

cpdf_closepath_stroke -- Cierra el camino y dibuja una línea a lo largo del camino

Descripción

void cpdf_closepath_stroke ( int pdf document)

La función cpdf_closepath_stroke() es una
combinación de cpdf_closepath() y
cpdf_stroke(). Después limpia el camino.

Vea también cpdf_closepath(), cpdf_stroke().

Anterior | Inicio | Siguiente
cpdf_closepath_fill_stroke | Subir | cpdf_closepath


cpdf_closepath

(PHP 3>= 3.0.8, PHP 4 )

cpdf_closepath -- Cierra el camino

Descripción

void cpdf_closepath ( int pdf document)

La función cpdf_closepath() cierra el camino actual.

Anterior | Inicio | Siguiente
cpdf_closepath_stroke | Subir | cpdf_continue_text


cpdf_continue_text

(PHP 3>= 3.0.8, PHP 4 )

cpdf_continue_text -- Pone texto en la línea siguiente

Descripción

void cpdf_continue_text ( int pdf document, string text)

La función cpdf_continue_text() pone la cadena text en la línea siguiente.

Vea también cpdf_show_xy(),
            cpdf_text(),
            cpdf_set_leading(),
            cpdf_set_text_pos().

Anterior | Inicio | Siguiente
cpdf_closepath | Subir | cpdf_curveto


cpdf_curveto

(PHP 3>= 3.0.8, PHP 4 )

cpdf_curveto -- Dibuja una curva

Descripción

void cpdf_curveto ( int pdf document, double x1, double y1, double x2, double y2, double x3, double y3, int mode)

La función cpdf_curveto() dibuja una curva Bezier desde el punto actual al punto (x3, y3) usando (x1, y1) y (x2, y2) como puntos de control.

El último parámetro opcional especifica el tamaño de la unidad. Si es 0 o se omite, se usa la unidad especificada para la página. De otro modo las coordenadas se miden en puntos postscript, despreciando la unidad en curso.

Vea también cpdf_moveto(),
            cpdf_rmoveto(),
            cpdf_rlineto(),
            cpdf_lineto().

Anterior | Inicio | Siguiente
cpdf_continue_text | Subir | cpdf_end_text


cpdf_end_text

(PHP 3>= 3.0.8, PHP 4 )

cpdf_end_text -- Finaliza una sección de texto

Descripción

void cpdf_end_text ( int pdf document)

La función cpdf_end_text() finaliza unasección de texto que fue inicializada con cpdf_begin_text().

Ejemplo 1. Salida de texto

<?php cpdf_begin_text($pdf);
cpdf_set_font($pdf, 16, "Helvetica", "WinAnsiEncoding");
cpdf_text($pdf, 100, 100, "Algún texto");
cpdf_end_text($pdf) ?>

Vea también cpdf_begin_text().

Anterior | Inicio | Siguiente
cpdf_curveto | Subir | cpdf_fill_stroke


cpdf_fill_stroke

(PHP 3>= 3.0.8, PHP 4 )

cpdf_fill_stroke -- LLena y traza el camino actual

Descripción

void cpdf_fill_stroke ( int pdf document)

La función cpdf_fill_stroke() llena el interior del camino actual con el color de relleno actual y dibuja el camino actual.

Vea también cpdf_closepath(),
            cpdf_stroke(),
            cpdf_fill(),
            cpdf_setgray_fill(),
            cpdf_setgray(),
            cpdf_setrgbcolor_fill(),
            cpdf_setrgbcolor().

Anterior | Inicio | Siguiente
cpdf_end_text | Subir | cpdf_fill


cpdf_fill

(PHP 3>= 3.0.8, PHP 4 )

cpdf_fill -- LLena el camino actual

Descripción

void cpdf_fill ( int pdf document)

La función cpdf_fill() llena el interior del camino actual con el color alctual de relleno.

Vea también cpdf_closepath(),
            cpdf_stroke(),
            cpdf_setgray_fill(),
            cpdf_setgray(),
            cpdf_setrgbcolor_fill(),
            cpdf_setrgbcolor().

Anterior | Inicio | Siguiente
cpdf_fill_stroke | Subir | cpdf_finalize_page


cpdf_finalize_page

(PHP 3>= 3.0.10, PHP 4 )

cpdf_finalize_page -- Finaliza una página

Descripción

void cpdf_finalize_page ( int pdf document, int page number)

La función cpdf_finalize_page() finaliza una página con número de página page number. Esta función es sólo para ahorrar memoria. Una página terminada ocupa menos memoria pero no puede volver a ser modificada.

Vea también cpdf_page_init().

Anterior | Inicio | Siguiente
cpdf_fill | Subir | cpdf_finalize


cpdf_finalize

(PHP 3>= 3.0.8, PHP 4 )

cpdf_finalize -- Finaliza un documento

Descripción

void cpdf_finalize ( int pdf document)

La función cpdf_finalize() finaliza un documento. Aún se tiene que llamar a cpdf_close().

Vea también cpdf_close().

Anterior | Inicio | Siguiente
cpdf_finalize_page | Subir | cpdf_global_set_document_limits


cpdf_global_set_document_limits

(PHP 4 )

cpdf_global_set_document_limits -- Sets document limits for any pdf document

Description

void cpdf_global_set_document_limits ( int maxpages, int maxfonts, int maximages, int maxannotations, int maxobjects)

La función cpdf_global_set_document_limits() define varios límites del documento. Esta función debe ser llamada antes de cpdf_open() para que haga efecto. Ello define los límites de cualquier documento abierto con anterioridad.

Vea también cpdf_open().

Anterior | Inicio | Siguiente
cpdf_finalize | Subir | cpdf_import_jpeg


cpdf_import_jpeg

(PHP 3>= 3.0.9, PHP 4 )

cpdf_import_jpeg -- Abre una imagen JPEG

Descripción

int cpdf_open_jpeg ( int pdf document, string file name, double x-koor, double y-koor, double angle, double width, double height, double x-scale, double y-scale, int mode)

La función cpdf_import_jpeg() abre una imagen almacenada en el fichero de nombre file name. El formato de la imagen debe ser JPEG. La imagen es situada en la página actual en la posición (x-koor, y-koor). La imagen es rotada angle grados.

El último parámetro opcional determina el tamaño de la unidad. Si es 0 o se omite, se usa la unidad por defecto especificada para la página. De otro modo las coordenadas se miden en puntos postscript, despreciando la unidad actual.

Vea también cpdf_place_inline_image(),

Anterior | Inicio | Siguiente
cpdf_global_set_document_limits | Subir | cpdf_lineto


cpdf_lineto

(PHP 3>= 3.0.8, PHP 4 )

cpdf_lineto -- Dibuja una línea

Descripción

void cpdf_lineto ( int pdf document, double x-koor, double y-koor, int mode)

La función cpdf_lineto() dibuja una línea desde el punto actual al punto con coordenadas (x-koor, y-koor).

El último parámetro opcional determina el tamaño de la unidad. Si es 0 o se omite, se usa el valor especificado para la página por defecto. De otro modo las coordenadas se miden en puntos postscript, despreciando la unidad actual.

Vea también cpdf_moveto(),
            cpdf_rmoveto(),
            cpdf_curveto().

Anterior | Inicio | Siguiente
cpdf_import_jpeg | Subir | cpdf_moveto


cpdf_moveto

(PHP 3>= 3.0.8, PHP 4 )

cpdf_moveto -- Define el punto actual

Descripción

void cpdf_moveto ( int pdf document, double x-koor, double y-koor, int mode)

La funcióncpdf_moveto() pone el punto actual en las coordenadas x-koor y y-koor.

El último parámetro opcional determina la longitud de la unidad. Si es 0 o se omite, la unidad por defecto será la especificada para la página. De otro modo las coordenadas se medirán en puntos postscript despreciando la unidad en curso.

Anterior | Inicio | Siguiente
cpdf_lineto | Subir | cpdf_newpath


cpdf_newpath

(PHP 3>= 3.0.9, PHP 4 )

cpdf_newpath -- Starts a new path

Description

bool cpdf_newpath ( int pdf_document)

The cpdf_newpath() starts a new path on the document given by the pdf_document parameter. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Anterior | Inicio | Siguiente
cpdf_moveto | Subir | cpdf_open


cpdf_open

(PHP 3>= 3.0.8, PHP 4 )

cpdf_open -- Abre un nuevo documento PDF

Descripción

int cpdf_open ( int compression, string filename)

LA función cpdf_open() abre un documento PDF nuevo. El primer parámetro activa la compresión del documento si no es igual a 0. El segundo parámetro, opcional, es el fichero en el que el documento es escrito. Si es omitido, el documento es creado en memoria y puede ser escrito en un fichero mediante la función cpdf_save_to_file() o escrito por la salida estándar con cpdf_output_buffer().

Nota: El valor de retorno será necesario en nuevas versiones de ClibPDF como el primer parámetro en todas las demás funciones que escriben en el documento PDF.

La librería ClibPDF toma el nombre de fichero "-" como sinónimo de stdout (salida estándar). Si se compila PHP como módulo de apache esto no funcionará porque la manera en que ClibPDF direcciona a la salida estándar no funciona con apache. Usted puede solucionar este problema evitando el enobre de fichero y usando cpdf_output_buffer() para la salida de documentos PDF.

Vea también cpdf_close(), cpdf_output_buffer().

Anterior | Inicio | Siguiente
cpdf_newpath | Subir | cpdf_output_buffer


cpdf_output_buffer

(PHP 3>= 3.0.9, PHP 4 )

cpdf_output_buffer -- Pone el documento PDF en el buffer de memoria

Descripción

void cpdf_output_buffer ( int pdf document)

La función cpdf_output_buffer() muestra el documento PDF por la salida estándar. El documento debe ser creado en memoria, que es el caso de la función cpdf_open() cuando ha sido llamada sin parámetros.

Vea también cpdf_open().

Anterior | Inicio | Siguiente
cpdf_open | Subir | cpdf_page_init


cpdf_page_init

(PHP 3>= 3.0.8, PHP 4 )

cpdf_page_init -- Comienza una nueva página

Descripción

void cpdf_page_init ( int pdf document, int page number, int orientation, double height, double width, double unit)

La función cpdf_page_init() crea una nueva página de altura height y profundidad width. La página tiene el número page number y orientación orientation. orientation puede ser 0 para retrato y 1 para paisaje. El último parámetro opcional unit define la unidad del sistema de coordenadas. El valor debería ser el número de puntos postscript por unidad. Como el valor de una pulgada el igual a 72 puntos, un valor de 72 sería la unidad para una pulgada. Por defecto es 72.

Vea también cpdf_set_current_page().

Anterior | Inicio | Siguiente
cpdf_output_buffer | Subir | cpdf_place_inline_image


cpdf_place_inline_image

(PHP 3>= 3.0.9, PHP 4 )

cpdf_place_inline_image -- Situa una imagen en la página

Descripción

void cpdf_place_inline_image ( int pdf document, int image, double x-koor, double y-koor, double angle, double width, double height, int mode)

La función cpdf_place_inline_image() situa una imagen creada con las funciones de imagenes de PHP en la posición de la página (x-koor, y-koor). La imagen puede ser escalada al mismo tiempo.

El último parámetro opcional determina el tamaño de la unidad. Si es 0 o se omite, se usa la unidad por defecto especificada para la página. De otro modo las coordenadas son medidas en puntos postscript, descartando la unidad actual.

Vea también cpdf_import_jpeg(),

Anterior | Inicio | Siguiente
cpdf_page_init | Subir | cpdf_rect


cpdf_rect

(PHP 3>= 3.0.8, PHP 4 )

cpdf_rect -- Dibuja un rectángulo

Descripción

void cpdf_rect ( int pdf document, double x-koor, double y-koor, double width, double height, int mode)

La función cpdf_rect() dibuja un rectángulo con su esquina inferior izquierda en el punto (x-koor, y-koor). La anchura es widgth. La altura es height.

El último parámetro opcional define el tamaño de la unidad. Si es 0 o se omite, se usa la unidad por defecto especificada para la página. De otro modo las coordenadas se miden en puntos postscript, despreciando la unidad actual.

Anterior | Inicio | Siguiente
cpdf_place_inline_image | Subir | cpdf_restore


cpdf_restore

(PHP 3>= 3.0.8, PHP 4 )

cpdf_restore -- Restaura un entorno formalmente salvado

Descripción

void cpdf_restore ( int pdf document)

La función cpdf_restore() restaura el entorno salvado con cpdf_save(). Funciona como el comando grestore de postscript. Muy útil si se quiere trasladar o rotar un objeto sin afectar ortros objetos.

Ejemplo 1. Salvar/Restaurar

<?php cpdf_save($pdf);
// hacer todo tipo de rotaciones, transformaciones, ...
cpdf_restore($pdf) ?>

Vea también cpdf_save().

Anterior | Inicio | Siguiente
cpdf_rect | Subir | cpdf_rlineto


cpdf_rlineto

(PHP 3>= 3.0.9, PHP 4 )

cpdf_rlineto -- Dibuja una línea

Descripción

void cpdf_rlineto ( int pdf document, double x-koor, double y-koor, int mode)

La función cpdf_rlineto() dibuja una línea desde el punto actual al punto relativo con coordenadas (x-koor, y-koor).

El último parámetro opcional determina la longitud de la unidad. Si es 0 o se omite, se usa el valor por defecto para la página. De otro modo las coordenadas se miden en puntos postscript, despreciando la unidad actual.

Vea también cpdf_moveto(),
            cpdf_rmoveto(),
            cpdf_curveto().

Anterior | Inicio | Siguiente
cpdf_restore | Subir | cpdf_rmoveto


cpdf_rmoveto

(PHP 3>= 3.0.9, PHP 4 )

cpdf_rmoveto -- Define el punto actual

Descripción

void cpdf_rmoveto ( int pdf document, double x-koor, double y-koor, int mode)

La función cpdf_rmoveto() pone el punto actual relativo a las coordenadas x-koor y y-koor.

El último parámetro opciona determina la loingitud de la unidad. Si es 0 o se omite, la unidad por defecto será la especificada para la página. De otro modo las coordenadas se medirán en puntos postscript, despreciando la unidad en curso.

Vea también cpdf_moveto().

Anterior | Inicio | Siguiente
cpdf_rlineto | Subir | cpdf_rotate_text


cpdf_rotate_text

(PHP 3>= 3.0.9, PHP 4 )

cpdf_rotate_text -- Sets text rotation angle

Description

bool cpdf_rotate_text ( int pdfdoc, float angle)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
cpdf_rmoveto | Subir | cpdf_rotate


cpdf_rotate

(PHP 3>= 3.0.8, PHP 4 )

cpdf_rotate -- Define la rotación

Descripción

void cpdf_rotate ( int pdf document, double angle)

La función cpdf_rotate() define la rotación en angle grados.

Anterior | Inicio | Siguiente
cpdf_rotate_text | Subir | cpdf_save_to_file


cpdf_save_to_file

(PHP 3>= 3.0.8, PHP 4 )

cpdf_save_to_file -- Escribe el documento PDF en un fichero

Descripción

void cpdf_save_to_file ( int pdf document, string filename)

La función cpdf_save_to_file() guarda el documento PDF en un fichero si este documeto ha sido creado en memoria. Esta función no es necesaria si el documento PDF ha sido abierto mediante la especificación de un nombre de fichero en la función cpdf_open().

Vea también cpdf_output_buffer(), cpdf_open().

Anterior | Inicio | Siguiente
cpdf_rotate | Subir | cpdf_save


cpdf_save

(PHP 3>= 3.0.8, PHP 4 )

cpdf_save -- Salva el entorno actual

Descripción

void cpdf_save ( int pdf document)

La función cpdf_save() salva el entorno actual. Funciona como el comando gsave de postscript. Muy útil si se quiere trasladar o trotar un objeto sin afetar a los demás.

Vea también cpdf_restore().

Anterior | Inicio | Siguiente
cpdf_save_to_file | Subir | cpdf_scale


cpdf_scale

(PHP 3>= 3.0.8, PHP 4 )

cpdf_scale -- Define la escala

Descripción

void cpdf_scale ( int pdf document, double x-scale, double y-scale)

La función cpdf_scale() define el factor de escala en los dos sentidos.

Anterior | Inicio | Siguiente
cpdf_save | Subir | cpdf_set_action_url


cpdf_set_action_url

(PHP 3>= 3.0.9, PHP 4 )

cpdf_set_action_url -- Sets hyperlink

Description

bool cpdf_set_action_url ( int pdfdoc, float xll, float yll, float xur, float xur, string url [, int mode])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
cpdf_scale | Subir | cpdf_set_char_spacing


cpdf_set_char_spacing

(PHP 3>= 3.0.8, PHP 4 )

cpdf_set_char_spacing -- Determina el espacio entre caracteres

Descripción

void cpdf_set_char_spacing ( int pdf document, double space)

LA función cpdf_set_char_spacing() define el espacio entre caracteres.

Vea también cpdf_set_word_spacing(), cpdf_set_leading().

Anterior | Inicio | Siguiente
cpdf_set_action_url | Subir | cpdf_set_creator


cpdf_set_creator

(PHP 3>= 3.0.8, PHP 4 )

cpdf_set_creator -- Define el campo creator en el documento PDF

Descripción

void cpdf_set_creator ( string creator)

La función cpdf_set_creator() define el creador de un documento PDF.

Vea también cpdf_set_subject(),
            cpdf_set_title(),
            cpdf_set_keywords().

Anterior | Inicio | Siguiente
cpdf_set_char_spacing | Subir | cpdf_set_current_page


cpdf_set_current_page

(PHP 3>= 3.0.9, PHP 4 )

cpdf_set_current_page -- Define la página actual

Descripción

void cpdf_set_current_page ( int pdf document, int page number)

La función cpdf_set_current_page() define la página en la que se van a realizar todas las operaciones. Uno puede cambiar entre páginas a menos que una página ha sido finalizada con cpdf_finalize_page().

Vea también cpdf_finalize_page().

Anterior | Inicio | Siguiente
cpdf_set_creator | Subir | cpdf_set_font_directories


cpdf_set_font_directories

(PHP 4 >= 4.0.6)

cpdf_set_font_directories -- Sets directories to search when using external fonts

Description

bool cpdf_set_font_directories ( int pdfdoc, string pfmdir, string pfbdir)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
cpdf_set_current_page | Subir | cpdf_set_font_map_file


cpdf_set_font_map_file

(PHP 4 >= 4.0.6)

cpdf_set_font_map_file -- Sets fontname to filename translation map when using external fonts

Description

bool cpdf_set_font_map_file ( int pdfdoc, string filename)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
cpdf_set_font_directories | Subir | cpdf_set_font


cpdf_set_font

(PHP 3>= 3.0.8, PHP 4 )

cpdf_set_font -- Selecciona la fuente y el tamaño actual

Descripción

void cpdf_set_font ( int pdf document, string font name, double size, string encoding)

La función cpdf_set_font() define la fuente actual, el tamaño y la codificación. Actualmente solo son soportadas las fuentes estándar de postscript. El último parámetro encoding puede tomar los siguientes valores: "MacRomanEncoding", "MacExpertEncoding", "WinAnsiEncoding", y "NULL". "NULL" es para el cifrado incluído en la fuente. Para mas información vea el manual de ClibPDF, especialmente para cómo soportar las fuentes asiáticas.

Anterior | Inicio | Siguiente
cpdf_set_font_map_file | Subir | cpdf_set_horiz_scaling


cpdf_set_horiz_scaling

(PHP 3>= 3.0.8, PHP 4 )

cpdf_set_horiz_scaling -- Define la escala horizontal del texto

Descripción

void cpdf_set_horiz_scaling ( int pdf document, double scale)

La función cpdf_set_horiz_scaling() define la escala horizontal al scale por ciento.

Anterior | Inicio | Siguiente
cpdf_set_font | Subir | cpdf_set_keywords


cpdf_set_keywords

(PHP 3>= 3.0.8, PHP 4 )

cpdf_set_keywords -- Pone el valor del campo 'keywords'(palabras clave) de un documento PDF

Descripción

void cpdf_set_keywords ( string keywords)

La función cpdf_set_keywords() define las palabras clave de un documento PDF.

Vea también cpdf_set_title(),
         cpdf_set_creator(),
         cpdf_set_subject().

Anterior | Inicio | Siguiente
cpdf_set_horiz_scaling | Subir | cpdf_set_leading


cpdf_set_leading

(PHP 3>= 3.0.8, PHP 4 )

cpdf_set_leading -- Define la distancias entre las líneas de texto

Descripción

void cpdf_set leading ( int pdf document, double distance)

La función cpdf_set_leading() define la distancia entre las líneas de texto. Esto se usará si el texto es la salida de cpdf_continue_text().

Vea también cpdf_continue_text().

Anterior | Inicio | Siguiente
cpdf_set_keywords | Subir | cpdf_set_page_animation


cpdf_set_page_animation

(PHP 3>= 3.0.9, PHP 4 )

cpdf_set_page_animation -- Define la separación entre páginas

Descripción

void cpdf_set_page_animation ( int pdf document, int transition, double duration)

La función cpdf_set_page_animation() define la transición entre páginas que se siguen.

El valor de transition puede ser

0 para ninguno,
1 para dos líneas que se barren a través de la pantalla, revelen la página,
2 para múltiples líneas,
3 para que una caja revele la página,
4 para una única línea,
5 para que la página naterior se disipe para revelar la pagina,
6 para que el efecto de disolución se mueva de un extremop de la página al otro,
7 para que la página antígua simplemente sea reemplazada por la nueva página (default)

El valor de duration es el número de segundos entre las páginas que se pasan.

Anterior | Inicio | Siguiente
cpdf_set_leading | Subir | cpdf_set_subject


cpdf_set_subject

(PHP 3>= 3.0.8, PHP 4 )

cpdf_set_subject -- Define el valor del campo subjet de un documento PDF

Descripción

void cpdf_set_subject ( string subject)

La función cpdf_set_subject() define el asunto de un documento PDF

Vea también cpdf_set_title(),
            cpdf_set_creator(),
            cpdf_set_keywords().

Anterior | Inicio | Siguiente
cpdf_set_page_animation | Subir | cpdf_set_text_matrix


cpdf_set_text_matrix

(PHP 3>= 3.0.8, PHP 4 )

cpdf_set_text_matrix -- Define la matriz de texto

Descripción

void cpdf_set_text_matrix ( int pdf document, array matrix)

La función cpdf_set_text_matrix() define una matriz que describe una transformación aplicada a la fuente actual de texto.

Anterior | Inicio | Siguiente
cpdf_set_subject | Subir | cpdf_set_text_pos


cpdf_set_text_pos

(PHP 3>= 3.0.8, PHP 4 )

cpdf_set_text_pos -- Define la posición del texto

Descripción

void cpdf_set_text_pos ( int pdf document, double x-koor, double y-koor, int mode)

La función cpdf_set_text_pos() define la posición del texto para la siguiente llamada a cpdf_show().

El último parámetro opcional mode determina la longitud de la unidad. Si es 0 o se omite, se usa el valor por defecto para la página. De otro modo, las coordenadas son medidas en puntos postscript, despreciando la unidad actual.

Vea también cpdf_show(), cpdf_text().

Anterior | Inicio | Siguiente
cpdf_set_text_matrix | Subir | cpdf_set_text_rendering


cpdf_set_text_rendering

(PHP 3>= 3.0.8, PHP 4 )

cpdf_set_text_rendering -- Determina cómo es presentado el texto

Descripción

void cpdf_set_text_rendering ( int pdf document, int mode)

La función cpdf_set_text_rendering() determina cómo es presentado el texto. Los posibles valores para mode son 0=llenar texto, 1=poner texto, 2=llenar y poner texto, 3=invisible, 4=llenar texto y añadirlo al camino de corte, 5=poner texto y añadirlo al camino de corte, 6=llenar y poner texto y añadirlo al camino de corte, 7=añadirlo al camino de corte

Anterior | Inicio | Siguiente
cpdf_set_text_pos | Subir | cpdf_set_text_rise


cpdf_set_text_rise

(PHP 3>= 3.0.8, PHP 4 )

cpdf_set_text_rise -- Define la elevación del texto

Descripción

void cpdf_set_text_rise ( int pdf document, double value)

La función cpdf_set_text_rise() define la elevación del texto a value unidades.

Anterior | Inicio | Siguiente
cpdf_set_text_rendering | Subir | cpdf_set_title


cpdf_set_title

(PHP 3>= 3.0.8, PHP 4 )

cpdf_set_title -- Define el campo title de un documento PDF

Descripción

void cpdf_set_title ( string title)

La función cpdf_set_title() define el título de un documento PDF

Vea también cpdf_set_subject(),
            cpdf_set_creator(),
            cpdf_set_keywords().

Anterior | Inicio | Siguiente
cpdf_set_text_rise | Subir | cpdf_set_viewer_preferences


cpdf_set_viewer_preferences

(PHP 3>= 3.0.9, PHP 4 )

cpdf_set_viewer_preferences -- How to show the document in the viewer

Description

bool cpdf_set_viewer_preferences ( int pdfdoc, array preferences)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
cpdf_set_title | Subir | cpdf_set_word_spacing


cpdf_set_word_spacing

(PHP 3>= 3.0.8, PHP 4 )

cpdf_set_word_spacing -- Define el espacio entre palabras

Descripción

void cpdf_set_word_spacing ( int pdf document, double space)

La función cpdf_set_word_spacing() especifica el espacio entre palabras.

Vea también cpdf_set_char_spacing(), cpdf_set_leading().

Anterior | Inicio | Siguiente
cpdf_set_viewer_preferences | Subir | cpdf_setdash


cpdf_setdash

(PHP 3>= 3.0.8, PHP 4 )

cpdf_setdash -- Defina el patrón de la raya

Descripción

void cpdf_setdash ( int pdf document, double white, double black)

La función cpdf_setdash() define el patrón de la raya white unidades blancas y black unidades negras. Si los dos son 0 se pone una línea sólida.

Anterior | Inicio | Siguiente
cpdf_set_word_spacing | Subir | cpdf_setflat


cpdf_setflat

(PHP 3>= 3.0.8, PHP 4 )

cpdf_setflat -- Define la monotonía

Descripción

void cpdf_setflat ( int pdf document, double value)

La función cpdf_setflat() pone la monotonía a un valor de entre 0 y 100.

Anterior | Inicio | Siguiente
cpdf_setdash | Subir | cpdf_setgray_fill


cpdf_setgray_fill

(PHP 3>= 3.0.8, PHP 4 )

cpdf_setgray_fill -- Pone el color de relleno al valor gris

Descripción

void cpdf_setgray_fill ( int pdf document, double value)

La función cpdf_setgray_fill() define el valor de gris actual para rellelanr un camino.

Vea también cpdf_setrgbcolor_fill().

Anterior | Inicio | Siguiente
cpdf_setflat | Subir | cpdf_setgray_stroke


cpdf_setgray_stroke

(PHP 3>= 3.0.8, PHP 4 )

cpdf_setgray_stroke -- Define el color para dibujar al valor gris

Descripción

void cpdf_setgray_stroke ( int pdf document, double gray value)

La función cpdf_setgray_stroke() pone el color de dibujo actual al valor de gris dado.

Vea también cpdf_setrgbcolor_stroke().

Anterior | Inicio | Siguiente
cpdf_setgray_fill | Subir | cpdf_setgray


cpdf_setgray

(PHP 3>= 3.0.8, PHP 4 )

cpdf_setgray -- Pone el color de relleno y dibujo a gris

Descripción

void cpdf_setgray ( int pdf document, double gray value)

La función cpdf_setgray_stroke() pone el color de relleno y dibujo al color gris dado.

Vea también cpdf_setrgbcolor_stroke(), cpdf_setrgbcolor_fill().

Anterior | Inicio | Siguiente
cpdf_setgray_stroke | Subir | cpdf_setlinecap


cpdf_setlinecap

(PHP 3>= 3.0.8, PHP 4 )

cpdf_setlinecap -- Define el parámetro linecap

Description

void cpdf_setlinecap ( int pdf document, int value)

La función cpdf_setlinecap() define el parámetro linecap entre los valores 0 y 2. 0 = empalmar al final, 1 = redondear, 2 = esquina proyectada

Anterior | Inicio | Siguiente
cpdf_setgray | Subir | cpdf_setlinejoin


cpdf_setlinejoin

(PHP 3>= 3.0.8, PHP 4 )

cpdf_setlinejoin -- Define el parámetro linejoin

Descripción

void cpdf_setlinejoin ( int pdf document, long value)

La función cpdf_setlinejoin() define el parámetro entre un valor de 0 y 2. 0 = ingletes, 1 = redondear, 2 = ángulo oblícuo

Anterior | Inicio | Siguiente
cpdf_setlinecap | Subir | cpdf_setlinewidth


cpdf_setlinewidth

(PHP 3>= 3.0.8, PHP 4 )

cpdf_setlinewidth -- Define la profundidad de la línea

Descripción

void cpdf_setlinewidth ( int pdf document, double width)

La función cpdf_setlinewidth() define la preofundidad de la línea a width.

Anterior | Inicio | Siguiente
cpdf_setlinejoin | Subir | cpdf_setmiterlimit


cpdf_setmiterlimit

(PHP 3>= 3.0.8, PHP 4 )

cpdf_setmiterlimit -- Define el límite del inglete

Descripción

void cpdf_setmiterlimit ( int pdf document, double value)

La función cpdf_setmiterlimit() define el límite del inglete a un valor mayor o igual a 1.

Anterior | Inicio | Siguiente
cpdf_setlinewidth | Subir | cpdf_setrgbcolor_fill


cpdf_setrgbcolor_fill

(PHP 3>= 3.0.8, PHP 4 )

cpdf_setrgbcolor_fill -- Pone el color de relleno a l valor de clor rgb

Descripción

void cpdf_setrgbcolor_fill ( int pdf document, double red value, double green value, double blue value)

La función cpdf_setrgbcolor_fill() pone el color rgb actual para rellenar un camino.

Vea también cpdf_setrgbcolor_stroke(), cpdf_setrgbcolor().

Anterior | Inicio | Siguiente
cpdf_setmiterlimit | Subir | cpdf_setrgbcolor_stroke


cpdf_setrgbcolor_stroke

(PHP 3>= 3.0.8, PHP 4 )

cpdf_setrgbcolor_stroke -- Pone el color de dibujo al valor de color rgb

Descripción

void cpdf_setrgbcolor_stroke ( int pdf document, double red value, double green value, double blue value)

La función cpdf_setrgbcolor_stroke() pone el color de dibujo actual al valor de color rgb dado.

Vea también cpdf_setrgbcolor_fill(), cpdf_setrgbcolor().

Anterior | Inicio | Siguiente
cpdf_setrgbcolor_fill | Subir | cpdf_setrgbcolor


cpdf_setrgbcolor

(PHP 3>= 3.0.8, PHP 4 )

cpdf_setrgbcolor -- Pone el color de relleno y dibujo al valor de color rgb

Descripción

void cpdf_setrgbcolor ( int pdf document, double red value, double green value, double blue value)

La función cpdf_setrgbcolor_stroke() pone el color de relleno y dibujo actual al color rgb dado.

Vea también cpdf_setrgbcolor_stroke(), cpdf_setrgbcolor_fill().

Anterior | Inicio | Siguiente
cpdf_setrgbcolor_stroke | Subir | cpdf_show_xy


cpdf_show_xy

(PHP 3>= 3.0.8, PHP 4 )

cpdf_show_xy -- Muestra texto en la posición

Descripción

void cpdf_show_xy ( int pdf document, string text, double x-koor, double y-koor, int mode)

La función cpdf_show_xy() muestra la cadena text en la posición con coordenadas (x-coor, y-coor). El último parámetro opcional determina la longitud de la unidad. Si es 0 o se omite, se usa la unidad por defecto especificada para la página. De otro modo las coordenadas son medidas en puntos postscript, despreciando la unidad actual.

Nota: La función cpdf_show_xy() es idéntica a cpdf_text() sin el parámetro opcional.

Vea también cpdf_text().

Anterior | Inicio | Siguiente
cpdf_setrgbcolor | Subir | cpdf_show


cpdf_show

(PHP 3>= 3.0.8, PHP 4 )

cpdf_show -- Muestra el texto en la posición actual

Descripción

void cpdf_show ( int pdf document, string text)

La función cpdf_show() muestra la cadena text en la posixción actual.

Vea también cpdf_text(),
            cpdf_begin_text(),
            cpdf_end_text().

Anterior | Inicio | Siguiente
cpdf_show_xy | Subir | cpdf_stringwidth


cpdf_stringwidth

(PHP 3>= 3.0.8, PHP 4 )

cpdf_stringwidth -- Devuelve la anchura del texto en la fuente actual

Descripción

double cpdf_stringwidth ( int pdf document, string text)

La función cpdf_stringwidth() devuelve la anchura de la cadena text. Requiere haber definido antes una fuente.

Vea también cpdf_set_font().

Anterior | Inicio | Siguiente
cpdf_show | Subir | cpdf_stroke


cpdf_stroke

(PHP 3>= 3.0.8, PHP 4 )

cpdf_stroke -- Dibuja una línea a lo largo del camino

Descripción

void cpdf_stroke ( int pdf document)

La función cpdf_stroke() dibuja una línea a lo largo del camino actual.

Vea también cpdf_closepath(), cpdf_closepath_stroke().

Anterior | Inicio | Siguiente
cpdf_stringwidth | Subir | cpdf_text


cpdf_text

(PHP 3>= 3.0.8, PHP 4 )

cpdf_text -- Muestra texto conparámetros

Descripción

void cpdf_text ( int pdf document, string text, double x-koor, double y-koor, int mode, double orientation, int alignmode)

La función cpdf_text() muestra la cadena text en la posición de coordenadas (x-coor, y-coor). El parámero opcional determina la longitud de la unidad. Si es 0 o se omite, se usa la unidad por defecto especificada para la página. De otro modo las coordenadas son medidas en puntos postscript despreciando la unidad actual. El parámetro opcional orientation es la rotación del texto en grados. El parámetro opcional alignmode determina cómo está alineado el texto. Vea la documentación de ClibPDF para los posibles valores.

Vea también cpdf_show_xy().

Anterior | Inicio | Siguiente
cpdf_stroke | Subir | cpdf_translate


cpdf_translate

(PHP 3>= 3.0.8, PHP 4 )

cpdf_translate -- Define el sistema de origen de coordenadas

Descripción

void cpdf_translate ( int pdf document, double x-koor, double y-koor, int mode)

La función cpdf_translate() define el sistema origen de coordenadas en el punto (x-coor, y-coor).

El último parámetro opcional determina la longitud de la unidad. Si es 0 o se omite, se usa la unidad por defecto especificada en la página. De otro modo las coordenadas son medidas en puntos postscript, depreciando la unidad actual.

Anterior | Inicio | Siguiente
cpdf_text | Subir | Crack functions


Crack functions

Manual de PHP
Anterior Siguiente

XI. Crack functions

Introducción

These functions allow you to use the CrackLib library to test the 'strength' of a password. The 'strength' of a password is tested by that checks length, use of upper and lower case and checked against the specified CrackLib dictionary. CrackLib will also give helpful diagnostic messages that will help 'strengthen' the password.

Requerimientos

More information regarding CrackLib along with the library can be found at http://www.crypticide.org/users/alecm/.

Instalación

In order to use these functions, you must compile PHP with Crack support by using the --with-crack[=DIR] option.

Configuración en tiempo de ejecución

El comportamiento de estas funciones está afectado por los valores definidos en php.ini.

Tabla 1. Crack configuration options

Name | Default | Changeable
crack.default_dictionary | NULL | PHP_INI_SYSTEM
For further details and definition of the PHP_INI_* constants see ini_set().

Tipos de recursos

Esta extensión no tiene ningún tipo de recurso definido.

Constantes predefinidas

Esta extensión no tiene ninguna constante definida.

Ejemplos

This example shows how to open a CrackLib dictionary, test a given password, retrieve any diagnostic messages, and close the dictionary.

Ejemplo 1. CrackLib example

<?php
// Open CrackLib Dictionary
$dictionary = crack_opendict('/usr/local/lib/pw_dict')
     or die('Unable to open CrackLib dictionary');

// Perform password check
$check = crack_check($dictionary, 'gx9A2s0x');

// Retrieve messages
$diag = crack_getlastmessage();
echo $diag; // 'strong password'

// Close dictionary
crack_closedict($dictionary);
?>

Nota: If crack_check() returns TRUE, crack_getlastmessage() will return 'strong password'.

Tabla de contenidos
crack_check -- Performs an obscure check with the given password
crack_closedict -- Closes an open CrackLib dictionary
crack_getlastmessage -- Returns the message from the last obscure check
crack_opendict -- Opens a new CrackLib dictionary

Anterior | Inicio | Siguiente
cpdf_translate | Subir | crack_check


crack_check

(PHP 4 >= 4.0.5)

crack_check -- Performs an obscure check with the given password

Description

bool crack_check ( [resource dictionary, string password])

Returns TRUE if password is strong, or FALSE otherwise.

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

crack_check() performs an obscure check with the given password on the specified dictionary . If dictionary is not specified, the last opened dictionary is used.

Anterior | Inicio | Siguiente
Crack functions | Subir | crack_closedict


crack_closedict

(PHP 4 >= 4.0.5)

crack_closedict -- Closes an open CrackLib dictionary

Description

bool crack_closedict ( [resource dictionary])

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

crack_closedict() closes the specified dictionary identifier. If dictionary is not specified, the current dictionary is closed.

Anterior | Inicio | Siguiente
crack_check | Subir | crack_getlastmessage


crack_getlastmessage

(PHP 4 >= 4.0.5)

crack_getlastmessage -- Returns the message from the last obscure check

Description

string crack_getlastmessage ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

crack_getlastmessage() returns the message from the last obscure check.

Anterior | Inicio | Siguiente
crack_closedict | Subir | crack_opendict


crack_opendict

(PHP 4 >= 4.0.5)

crack_opendict -- Opens a new CrackLib dictionary

Description

resource crack_opendict ( string dictionary)

Returns a dictionary resource identifier on success, or FALSE on failure.

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

crack_opendict() opens the specified CrackLib dictionary for use with crack_check().

Nota: Only one dictionary may be open at a time.

See also: crack_check(), and crack_closedict().

Anterior | Inicio | Siguiente
crack_getlastmessage | Subir | Funciones CURL (Client URL Library)


Funciones CURL (Client URL Library)

Manual de PHP
Anterior Siguiente

XII. Funciones CURL (Client URL Library)

Introducción

PHP soporta libcurl, una librería creada por Danile Stenberg, que permite conexión y comunicación con varios tipos de servidores diferentes con varios tipos de protocolos diferentes. libcurl actualmente soporta los portocolos http, https, ftp, gopher, telnet, dict, file y ldap. libcurl también soporta certificados HTTPS, HTTP POST, HTTP PUT, envío por FTP (esto también puede ser realizado con la extensión ftp de PHP), envío de archivos tipo formulario HTTP, servidores proxy, cookies y autenticación usuario+contraseña.

Estas funciones fueron agregadas en 4.0.2.

Requerimientos

Para poder usar las funciones CURL deberá instalar el paquete CURL. PHP requiere que use CURL 7.0.2-beta o superior. PHP no funcionará con una versión de CURL menor a 7.0.2-beta. Desde la versión 4.2.3 de PHP se necesita, al menos, CURL 7.9.0 o superior.

Instalación

To use PHP's CURL support you must also compile PHP --with-curl[=DIR] where DIR is the location of the directory containing the lib and include directories. In the "include" directory there should be a folder named "curl" which should contain the easy.h and curl.h files. There should be a file named libcurl.a located in the "lib" directory. Beginning with PHP 4.3.0 you can configure PHP to use CURL for url streams --with-curlwrappers.

Note to Win32 Users: In order to enable this module on a Windows environment, you must copy libeay32.dll and ssleay32.dll from the DLL folder of the PHP/Win32 binary package to the SYSTEM folder of your Windows machine. (Ex: C:\WINNT\SYSTEM32 or C:\WINDOWS\SYSTEM)

Constantes predefinidas

Estas constantes están definidas por esta extensión y estarán disponibles solamente cuando la extensión ha sido o bien compilada dentro de PHP o grabada dinámicamente en tiempo de ejecución.

CURLOPT_PORT (integer)

CURLOPT_FILE (integer)

CURLOPT_INFILE (integer)

CURLOPT_INFILESIZE (integer)

CURLOPT_URL (integer)

CURLOPT_PROXY (integer)

CURLOPT_VERBOSE (integer)

CURLOPT_HEADER (integer)

CURLOPT_HTTPHEADER (integer)

CURLOPT_NOPROGRESS (integer)

CURLOPT_NOBODY (integer)

CURLOPT_FAILONERROR (integer)

CURLOPT_UPLOAD (integer)

CURLOPT_POST (integer)

CURLOPT_FTPLISTONLY (integer)

CURLOPT_FTPAPPEND (integer)

CURLOPT_NETRC (integer)

CURLOPT_FOLLOWLOCATION (integer)

CURLOPT_FTPASCII (integer)

CURLOPT_PUT (integer)

CURLOPT_MUTE (integer)

CURLOPT_USERPWD (integer)

CURLOPT_PROXYUSERPWD (integer)

CURLOPT_RANGE (integer)

CURLOPT_TIMEOUT (integer)

CURLOPT_POSTFIELDS (integer)

CURLOPT_REFERER (integer)

CURLOPT_USERAGENT (integer)

CURLOPT_FTPPORT (integer)

CURLOPT_LOW_SPEED_LIMIT (integer)

CURLOPT_LOW_SPEED_TIME (integer)

CURLOPT_RESUME_FROM (integer)

CURLOPT_COOKIE (integer)

CURLOPT_SSLCERT (integer)

CURLOPT_SSLCERTPASSWD (integer)

CURLOPT_WRITEHEADER (integer)

CURLOPT_SSL_VERIFYHOST (integer)

CURLOPT_COOKIEFILE (integer)

CURLOPT_SSLVERSION (integer)

CURLOPT_TIMECONDITION (integer)

CURLOPT_TIMEVALUE (integer)

CURLOPT_CUSTOMREQUEST (integer)

CURLOPT_STDERR (integer)

CURLOPT_TRANSFERTEXT (integer)

CURLOPT_RETURNTRANSFER (integer)

CURLOPT_QUOTE (integer)

CURLOPT_POSTQUOTE (integer)

CURLOPT_INTERFACE (integer)

CURLOPT_KRB4LEVEL (integer)

CURLOPT_HTTPPROXYTUNNEL (integer)

CURLOPT_FILETIME (integer)

CURLOPT_WRITEFUNCTION (integer)

CURLOPT_READFUNCTION (integer)

CURLOPT_PASSWDFUNCTION (integer)

CURLOPT_HEADERFUNCTION (integer)

CURLOPT_MAXREDIRS (integer)

CURLOPT_MAXCONNECTS (integer)

CURLOPT_CLOSEPOLICY (integer)

CURLOPT_FRESH_CONNECT (integer)

CURLOPT_FORBID_REUSE (integer)

CURLOPT_RANDOM_FILE (integer)

CURLOPT_EGDSOCKET (integer)

CURLOPT_CONNECTTIMEOUT (integer)

CURLOPT_SSL_VERIFYPEER (integer)

CURLOPT_CAINFO (integer)

CURLOPT_COOKIEJAR (integer)

CURLOPT_SSL_CIPHER_LIST (integer)

CURLOPT_BINARYTRANSFER (integer)

CURLCLOSEPOLICY_LEAST_RECENTLY_USED (integer)

CURLCLOSEPOLICY_LEAST_TRAFFIC (integer)

CURLCLOSEPOLICY_SLOWEST (integer)

CURLCLOSEPOLICY_CALLBACK (integer)

CURLCLOSEPOLICY_OLDEST (integer)

CURLINFO_EFFECTIVE_URL (integer)

CURLINFO_HTTP_CODE (integer)

CURLINFO_HEADER_SIZE (integer)

CURLINFO_REQUEST_SIZE (integer)

CURLINFO_TOTAL_TIME (integer)

CURLINFO_NAMELOOKUP_TIME (integer)

CURLINFO_CONNECT_TIME (integer)

CURLINFO_PRETRANSFER_TIME (integer)

CURLINFO_SIZE_UPLOAD (integer)

CURLINFO_SIZE_DOWNLOAD (integer)

CURLINFO_SPEED_DOWNLOAD (integer)

CURLINFO_SPEED_UPLOAD (integer)

CURLINFO_FILETIME (integer)

CURLINFO_SSL_VERIFYRESULT (integer)

CURLINFO_CONTENT_LENGTH_DOWNLOAD (integer)

CURLINFO_CONTENT_LENGTH_UPLOAD (integer)

CURLE_OK (integer)

CURLE_UNSUPPORTED_PROTOCOL (integer)

CURLE_FAILED_INIT (integer)

CURLE_URL_MALFORMAT (integer)

CURLE_URL_MALFORMAT_USER (integer)

CURLE_COULDNT_RESOLVE_PROXY (integer)

CURLE_COULDNT_RESOLVE_HOST (integer)

CURLE_COULDNT_CONNECT (integer)

CURLE_FTP_WEIRD_SERVER_REPLY (integer)

CURLE_FTP_ACCESS_DENIED (integer)

CURLE_FTP_USER_PASSWORD_INCORRECT (integer)

CURLE_FTP_WEIRD_PASS_REPLY (integer)

CURLE_FTP_WEIRD_USER_REPLY (integer)

CURLE_FTP_WEIRD_PASV_REPLY (integer)

CURLE_FTP_WEIRD_227_FORMAT (integer)

CURLE_FTP_CANT_GET_HOST (integer)

CURLE_FTP_CANT_RECONNECT (integer)

CURLE_FTP_COULDNT_SET_BINARY (integer)

CURLE_PARTIAL_FILE (integer)

CURLE_FTP_COULDNT_RETR_FILE (integer)

CURLE_FTP_WRITE_ERROR (integer)

CURLE_FTP_QUOTE_ERROR (integer)

CURLE_HTTP_NOT_FOUND (integer)

CURLE_WRITE_ERROR (integer)

CURLE_MALFORMAT_USER (integer)

CURLE_FTP_COULDNT_STOR_FILE (integer)

CURLE_READ_ERROR (integer)

CURLE_OUT_OF_MEMORY (integer)

CURLE_OPERATION_TIMEOUTED (integer)

CURLE_FTP_COULDNT_SET_ASCII (integer)

CURLE_FTP_PORT_FAILED (integer)

CURLE_FTP_COULDNT_USE_REST (integer)

CURLE_FTP_COULDNT_GET_SIZE (integer)

CURLE_HTTP_RANGE_ERROR (integer)

CURLE_HTTP_POST_ERROR (integer)

CURLE_SSL_CONNECT_ERROR (integer)

CURLE_FTP_BAD_DOWNLOAD_RESUME (integer)

CURLE_FILE_COULDNT_READ_FILE (integer)

CURLE_LDAP_CANNOT_BIND (integer)

CURLE_LDAP_SEARCH_FAILED (integer)

CURLE_LIBRARY_NOT_FOUND (integer)

CURLE_FUNCTION_NOT_FOUND (integer)

CURLE_ABORTED_BY_CALLBACK (integer)

CURLE_BAD_FUNCTION_ARGUMENT (integer)

CURLE_BAD_CALLING_ORDER (integer)

CURLE_HTTP_PORT_FAILED (integer)

CURLE_BAD_PASSWORD_ENTERED (integer)

CURLE_TOO_MANY_REDIRECTS (integer)

CURLE_UNKNOWN_TELNET_OPTION (integer)

CURLE_TELNET_OPTION_SYNTAX (integer)

CURLE_OBSOLETE (integer)

CURLE_SSL_PEER_CERTIFICATE (integer)

Ejemplos

Una vez que hemos compilado PHP con soporte para CURL, podemos comenzar a usar las funciones CURL. La idea básica tras las funciones CURL es que inicialicemos una sesión CURL usando la función curl_init(), luego podemos establecer las opciones para la transferencia a través de la función curl_setopt(), y finalmente podemos ejecutar la sesión con la función curl_exec() para luego cerrarla con curl_close(). Aqui hay un ejemplo que usa funciones CURL para traer el contenido de la página de inicio de example.com y guardarlo en un archivo:

Ejemplo 1. Usando el modulo CURL de PHP para traer la página de inicio de example.com

<?php

$ch = curl_init ("http://www.example.com/");
$fp = fopen ("pagina_de_inicio.txt", "w");

curl_setopt ($ch, CURLOPT_FILE, $fp);
curl_setopt ($ch, CURLOPT_HEADER, 0);

curl_exec ($ch);
curl_close ($ch);
fclose ($fp);
?>

Tabla de contenidos
curl_close -- Cierra una sesión CURL
curl_errno -- Devuelve el último número de error
curl_error -- Devuelve una cadena conteniendo el último error para la sesión actual.
curl_exec -- Ejecuta una sesión CURL
curl_getinfo -- Obtiene información respecto a una transferencia específica
curl_init -- Inicializa una sesión CURL
curl_multi_add_handle -- Add a normal cURL handle to a cURL multi handle
curl_multi_close -- Close a set of cURL handles
curl_multi_exec -- Run the sub-connections of the current cURL handle
curl_multi_getcontent -- Return the content of a cURL handle if CURLOPT_RETURNTRANSFER is set
curl_multi_info_read -- Get information about the current transfers
curl_multi_init -- Returns a new cURL multi handle
curl_multi_remove_handle -- Remove a multi handle from a set of cURL handles
curl_multi_select -- Get all the sockets associated with the cURL extension, which can then be "selected"
curl_setopt -- Asigna un valor a una opción de una sesión CURL
curl_version -- Devuelve la versión actual de CURL

Anterior | Inicio | Siguiente
crack_opendict | Subir | curl_close


curl_close

(PHP 4 >= 4.0.2)

curl_close -- Cierra una sesión CURL

Descripción

void curl_close ( int ch)

Esta función cierra una sesión CURL y libera todos sus recursos. El recurso CURL, ch, también es eliminado.

Anterior | Inicio | Siguiente
Funciones CURL (Client URL Library) | Subir | curl_errno


curl_errno

(PHP 4 >= 4.0.3)

curl_errno -- Devuelve el último número de error

Descripción

int curl_errno ( resource ch)

Devuelve el número de error de la última operación cURL realizada con el recurso ch, o 0 (cero) si no ocurrieron errores.

Vea también curl_error().

Anterior | Inicio | Siguiente
curl_close | Subir | curl_error


curl_error

(PHP 4 >= 4.0.3)

curl_error -- Devuelve una cadena conteniendo el último error para la sesión actual.

Descripción

string curl_error ( resource ch)

Devuelve un mensaje de error para la última operación cURL realizada con el recurso ch, o '' (una cadena vacía) si no hay error.

Vea también: curl_errno().

Anterior | Inicio | Siguiente
curl_errno | Subir | curl_exec


curl_exec

(PHP 4 >= 4.0.2)

curl_exec -- Ejecuta una sesión CURL

Descripción

bool curl_exec ( int ch)

Esta función debe ser llamada luego de inicializar una sesión CURL y fijar todas las opciones para la misma. Su propósito es simplemente el de ejecutar la sesión CURL predefinida (dada por ch).

Anterior | Inicio | Siguiente
curl_error | Subir | curl_getinfo


curl_getinfo

(PHP 4 >= 4.0.4)

curl_getinfo -- Obtiene información respecto a una transferencia específica

Descripción

string curl_getinfo ( resource ch [, int opt])

Devuelve intormación sobre la última transferencia, opt puede ser uno de los siguientes:

  • "CURLINFO_EFFECTIVE_URL" - La última URL efectiva

  • "CURLINFO_HTTP_CODE" - El último código HTTP recibido

  • "CURLINFO_FILETIME" - La fecha remota del documento recibido, si el valor devuelto es -1 la fecha del documento es desconocida

  • "CURLINFO_TOTAL_TIME" - El tiempo total de transacción en segundos para la última transferencia

  • "CURLINFO_NAMELOOKUP_TIME" - El tiempo en segundos transcurrido hasta que la resolución de nombres fue completada

  • "CURLINFO_CONNECT_TIME" - El tiempo en segundos que tomó establecer la conexión

  • "CURLINFO_PRETRANSFER_TIME" - El tiempo en segundos transcurrido desde el comienzo hasta antes de comenzar la transferencia

  • "CURLINFO_STARTTRANSFER_TIME" - El tiempo en segundos transucrrido hasta que el primer byte está listo para ser transferido

  • "CURLINFO_REDIRECT_TIME" - El tiempo en segundos de todos los redireccionamientos previos a la transacción final

  • "CURLINFO_SIZE_UPLOAD" - Número total de bytes enviados

  • "CURLINFO_SIZE_DOWNLOAD" - Número total de bytes recibidos

  • "CURLINFO_SPEED_DOWNLOAD" - Velocidad promedio de recepción

  • "CURLINFO_SPEED_UPLOAD" - Velocidad promedio de envío

  • "CURLINFO_HEADER_SIZE" - Tamaño total de todos los encabezados recibidos

  • "CURLINFO_REQUEST_SIZE" - Tamaño total de los requerimientos efectuados, actualmente solo para requerimientos HTTP

  • "CURLINFO_SSL_VERIFYRESULT" - Resultado de la verificación de certificado SSL requerida al indicar CURLOPT_SSL_VERIFYPEER

  • "CURLINFO_CONTENT_LENGTH_DOWNLOAD" - El tamaño del contenido recibido, tomado del encabezado Content-Length

  • "CURLINFO_CONTENT_LENGTH_UPLOAD" - Tamaño indicado de la información enviada

  • "CURLINFO_CONTENT_TYPE" - Tipo de contenido del objeto recibido, NULL indica que el servidor no envío un encabezado Content-Type válido

Si es llamado sin el parámetro opcional opt un array asociativo es devuelto con los siguientes elementos, que se corresponden con las opciones del parámetro opt:

  • "url"

  • "content_type"

  • "http_encode"

  • "header_size"

  • "request_size"

  • "filetime"

  • "ssl_verify_result"

  • "redirect_count"

  • "total_time"

  • "namelookup_time"

  • "connect_time"

  • "pretransfer_time"

  • "size_upload"

  • "size_download"

  • "speed_download"

  • "speed_upload"

  • "download_content_length"

  • "upload_content_length"

  • "starttransfer_time"

  • "redirect_time"

Anterior | Inicio | Siguiente
curl_exec | Subir | curl_init


curl_init

(PHP 4 >= 4.0.2)

curl_init -- Inicializa una sesión CURL

Descripción

resource curl_init ( [string url])

curl_init() inicializa una nueva sesión y devuelve un recurso CURL para ser usado con las funciones curl_setopt(), curl_exec(), y curl_close(). Si el parametro opcional url es indicado el valor del mismo será asignado a la opción CURLOPT_URL. Esto puede ser asignado manualmente usando la función curl_setopt().

Ejemplo 1. Inicializando una nueva sesión CURL y traer una página web

<?php
$ch = curl_init();

curl_setopt ($ch, CURLOPT_URL, "http://www.zend.com/");
curl_setopt ($ch, CURLOPT_HEADER, 0);

curl_exec ($ch);

curl_close ($ch);
?>

Vea también: curl_close(), curl_setopt()

Anterior | Inicio | Siguiente
curl_getinfo | Subir | curl_multi_add_handle


curl_multi_add_handle

(PHP 5 CVS only)

curl_multi_add_handle -- Add a normal cURL handle to a cURL multi handle

Description

int curl_multi_add_handle ( resource mh, resource ch)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

See also
curl_multi_init(),
curl_init(), and
curl_multi_remove_handle().

Anterior | Inicio | Siguiente
curl_init | Subir | curl_multi_close


curl_multi_close

(PHP 5 CVS only)

curl_multi_close -- Close a set of cURL handles

Description

void curl_multi_close ( resource mh)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

See also curl_multi_init() and curl_close().

Anterior | Inicio | Siguiente
curl_multi_add_handle | Subir | curl_multi_exec


curl_multi_exec

(PHP 5 CVS only)

curl_multi_exec -- Run the sub-connections of the current cURL handle

Description

int curl_multi_exec ( resource mh)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

See also curl_multi_init() and curl_exec().

Anterior | Inicio | Siguiente
curl_multi_close | Subir | curl_multi_getcontent


curl_multi_getcontent

(PHP 5 CVS only)

curl_multi_getcontent -- Return the content of a cURL handle if CURLOPT_RETURNTRANSFER is set

Description

string curl_multi_getcontent ( resource ch)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

See also curl_multi_init().

Anterior | Inicio | Siguiente
curl_multi_exec | Subir | curl_multi_info_read


curl_multi_info_read

(PHP 5 CVS only)

curl_multi_info_read -- Get information about the current transfers

Description

array curl_multi_info_read ( resource mh)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

See also curl_multi_init().

Anterior | Inicio | Siguiente
curl_multi_getcontent | Subir | curl_multi_init


curl_multi_init

(PHP 5 CVS only)

curl_multi_init -- Returns a new cURL multi handle

Description

resource curl_multi_init ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

See also curl_init() and curl_multi_close().

Anterior | Inicio | Siguiente
curl_multi_info_read | Subir | curl_multi_remove_handle


curl_multi_remove_handle

(PHP 5 CVS only)

curl_multi_remove_handle -- Remove a multi handle from a set of cURL handles

Description

int curl_multi_remove_handle ( resource mh, resource ch)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

See also
curl_multi_init(),
curl_init(), and
curl_multi_add_handle().

Anterior | Inicio | Siguiente
curl_multi_init | Subir | curl_multi_select


curl_multi_select

(PHP 5 CVS only)

curl_multi_select -- Get all the sockets associated with the cURL extension, which can then be "selected"

Description

int curl_multi_select ( resource mh [, float timeout])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

See also curl_multi_init().

Anterior | Inicio | Siguiente
curl_multi_remove_handle | Subir | curl_setopt


curl_setopt

(PHP 4 >= 4.0.2)

curl_setopt -- Asigna un valor a una opción de una sesión CURL

Descripción

bool curl_setopt ( int ch, string option, mixed value)

La función curl_setopt() asigna valores para opciones de una sesión CURL identificada por el parámetro ch. El parámetro option es la opción a la que se desea asignar el valor indicado en el parámetro value.

value debe ser un entero para las siguientes opciones (especificada en el parámetro option);

  • CURLOPT_INFILESIZE: Cuando subimos un archivo a un sitio remoto, esta opción debe ser usada para decirle a PHP cuál será el tamaño del archivo de entrada.

  • CURLOPT_VERBOSE: Asigne un valor distinto de cero a esta opción si desea que CURL reporte todo lo que acontece.

  • CURLOPT_HEADER: Asigne un valor distinto de cero a esta opción si desea que el encabezado sea incluido en la salida.

  • CURLOPT_NOPROGRESS: Asigne un valor distinto de cero a esta opción si no desea que PHP muestre una barra de progreso para las transferencias de CURL.

    Nota: PHP automáticamente asigna un valor distinto de cero a esta opción, esto sólo debe ser cambiado para operaciones de depuración.

  • CURLOPT_NOBODY: Asigne un valor distinto de cero a esta opción si no desea que el cuerpo sea incluido en la salida.

  • CURLOPT_FAILONERROR: Asigne un valor distinto de cero a esta opción si desea que PHP falle silenciosamente si el código HTTP devuelto es mayor que 300. El comportamiento por defecto es devolver la página normalmente, ignorando el código.

  • CURLOPT_UPLOAD: Asigne un valor distinto de cero a esta opción si desea que PHP se prepare para subir un archivo.

  • CURLOPT_POST: Asigne un valor distinto de cero a esta opción si desea que PHP realize un pedido HTTP POST regular. Este post normalmente es del tipo application/x-www-from-urlencoded, normalmente utilizado por los formularios HTML.

  • CURLOPT_FTPLISTONLY: Asigne un valor distinto de cero a esta opción y PHP simplemente listará los nombres de un directorio FTP.

  • CURLOPT_FTPAPPEND: Asigne un valor distinto de cero a esta opción y PHP escribirá al final del archivo remoto en lugar de sobreescribirlo.

  • CURLOPT_NETRC: Asigne un valor distinto de cero a esta opción y PHP registrará su archivo ~./netrc para buscar el nombre de usuario y la clave del sitio remoto con el que está estableciendo una conexión.

  • CURLOPT_FOLLOWLOCATION: Asigne un valor distinto de cero a esta opción para seguir algún encabezado del tipo "Location: " que el servidor envíe como parte de los encabezados HTTP (esto es recursivo, PHP seguirá tantos encabezados "Location: " como le sean enviados).

  • CURLOPT_PUT: Asigne un valor distinto de cero a esta opción para enviar un archivo utilizando el método HTTP PUT. El archivo a enviar debe ser especificado con las opciones CURLOPT_INFILE y CURLOPT_INFILESIZE.

  • CURLOPT_MUTE: Asigne un valor distinto de cero a esta opción para que PHP no genere ningúna salida para las funciones CURL.

  • CURLOPT_TIMEOUT: Asigna un valor que contiene el tiempo máximo de ejecución, en segundos, para las funciones CURL.

  • CURLOPT_LOW_SPEED_LIMIT: Asigna un valor a la velocidad mínima de transferencia en bytes por segundo. Si la transferencia se mantiene por debajo de ese valor durante la cantidad de segundos indicados en la opción CURLOPT_LOW_SPEED_TIME, será considerada demasiado lenta y abortada por PHP.

  • CURLOPT_LOW_SPEED_TIME: Asigna un valor a la cantidad de segundos que la transferencia debe permanecer debajo de la velocidad indicada en CURLOPT_LOW_SPEED_LIMIT para que PHP la considere demasiado lenta y aborte.

  • CURLOPT_RESUME_FROM: Asigna un valor al desplazamiento, en bytes, desde el cual desea que comience la transferencia.

  • CURLOPT_SSLVERSION: Asigna un valor que contiene la versión de SSL (2 o 3) a usar. Por defecto PHP trata de detectar la versión automáticamente, pero en algúnos casos este valor deberá ser fijado manualmente.

  • CURLOPT_TIMECONDITION: Asigna un valor que define cómo será tratado CURLOPT_TIMEVALUE. Puede fijar este parametro a TIMECOND_IFMODSINCE o a TIMECOND_ISUNMODSINCE. Esta característica es sólo para HTTP.

  • CURLOPT_TIMEVALUE: Asigna un valor en segundos al tiempo transcurrido desde el 1 de Enero de 1970. El tiempo será utilizado como sea especificado por la opción CURLOPT_TIMEVALUE, o en su defecto se utilizará TIMECOND_IFMODSINCE.

El parámetro value debe ser una cadena para los siguientes valores del parámetro option:

  • CURLOPT_URL: Esta es la URL que se desea traer. Ud. también puede fijar esta opción cuando se inicializa una sesión con la función curl_init().

  • CURLOPT_USERPWD: Asigna un valor de cadena del tipo [usuario]:[clave], para ser usado por PHP en la conexión.

  • CURLOPT_PROXYUSERPWD: Asigna un valor de cadena del tipo [usuario]:[clave], para ser usado en la conexión al servidor proxy HTTP.

  • CURLOPT_RANGE: Asigna un rango en el formato "X-Y", donde X o Y pueden ser dejados de lado. Las transferencias HTTP también soportan varios intervalos, separados por comas como en X-Y,N-M.

  • CURLOPT_POSTFIELDS: Asigna una cadena que contiene todos los datos a ser enviados en una operación HTTP "POST".

  • CURLOPT_REFERER: Asigna una cadena que contiene el encabezado "referer" para ser usado en un requerimiento HTTP.

  • CURLOPT_USERAGENT: Asigna una cadena que contiene el encabezado "user-agent" para ser usado en un requerimiento HTTP.

  • CURLOPT_FTPPORT: Pasa una cadena que contiene el valor que será usado para obtener la dirección IP a usar en la instrucción "PORT" de ftp. La instrucción "POST" le indica al servidor remoto que se conecte a la dirección IP que le especificamos. La cadena puede ser una dirección IP, un nombre de Host, una interface de red (en UNIX), o simplemente un caracter '-' para usar la dirección IP por defecto del sistema.

  • CURLOPT_COOKIE: Asigna una cadena con el contenido de la cookie para ser incluida en el encabezado HTTP.

  • CURLOPT_SSLCERT: Asigna una cadena que contiene el nombre del archivo que guarda el certificado con formato PEM.

  • CURLOPT_SSLCERTPASSWD: Asigna una cadena que contiene la clave requerida para usar el certificado indicado en la opción CURLOPT_SSLCERT.

  • CURLOPT_COOKIEFILE: Asigna una cadena que contiene el nombre del archivo que guarda la información de las cookies. Este archivo puede estar en formato Netscape, o simplemente contener encabezados estilo HTTP.

  • CURLOPT_CUSTOMREQUEST: Asigna una cadena para ser usada en lugar de GET o HEAD cuando se realiza un requerimiento HTTP. Esto es útil para realizar DELETE ú otros requerimientos HTTP más oscuros.

    Nota: No haga esto sin estar seguro de que su servidor soporta el comando especificado.

Las siguientes opciones esperan un descriptor de archivo que es obtenido por medio de la función fopen():

  • CURLOPT_FILE: El archivo donde debe ser grabada la salida generada por la transferencia. Por defecto es STDOUT.

  • CURLOPT_INFILE: El archivo desde el que se leen los datos para la transferencia.

  • CURLOPT_WRITEHEADER: El archivo donde deben ser grabados los encabezados de la salida de la transferencia.

  • CURLOPT_STDERR: El archivo donde deben ser grabados los errores, en lugar de stderr.

Anterior | Inicio | Siguiente
curl_multi_select | Subir | curl_version


curl_version

(PHP 4 >= 4.0.2)

curl_version -- Devuelve la versión actual de CURL

Descripción

string curl_version ( void )

La función curl_version() devuelve una cadena que contiene la versión actual de CURL.

Anterior | Inicio | Siguiente
curl_setopt | Subir | Funciones de pago electrónico


Funciones de pago electrónico

Manual de PHP
Anterior Siguiente

XIII. Funciones de pago electrónico

Estas funciones solo están disponibles si el intérprete ha sido compilado con --with-cybercash=[DIR]. Estas funciones han sido añadidas en PHP4.

Tabla de contenidos
cybercash_base64_decode --
cybercash_base64_encode -- ???
cybercash_decr -- ???
cybercash_encr -- ???

Anterior | Inicio | Siguiente
curl_version | Subir | cybercash_base64_decode


cybercash_base64_decode

(PHP 4 <= 4.2.3)

cybercash_base64_decode --

Descripción

string cybercash_base64_decode ( string inbuff)

Anterior | Inicio | Siguiente
Funciones de pago electrónico | Subir | cybercash_base64_encode


cybercash_base64_encode

(PHP 4 <= 4.2.3)

cybercash_base64_encode -- ???

Descripción

string cybercash_base64_encode ( string inbuff)

Anterior | Inicio | Siguiente
cybercash_base64_decode | Subir | cybercash_decr


cybercash_decr

(PHP 4 <= 4.2.3)

cybercash_decr -- ???

Descripción

array cybercash_decr ( string wmk, string sk, string inbuff)

La función devuelve un array asociativo con los elementos "errcode" y, si "errcode" es FALSE, "outbuff" (string), "outLth" (long) y "macbuff" (string).

Anterior | Inicio | Siguiente
cybercash_base64_encode | Subir | cybercash_encr


cybercash_encr

(PHP 4 <= 4.2.3)

cybercash_encr -- ???

Descripción

array cybercash_encr ( string wmk, string sk, string inbuff)

La función devuelve un array asociativo con los elementos "errcode" y, si "errcode" es FALSE, "outbuff" (string), "outLth" (long) y "macbuff" (string).

Anterior | Inicio | Siguiente
cybercash_decr | Subir | Cyrus IMAP administration functions


Cyrus IMAP administration functions

Manual de PHP
Anterior Siguiente

XIV. Cyrus IMAP administration functions

Introducción

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Nota: Esta extensión no está disponible en plataformas Windows

Instalación

To enable Cyrus IMAP support and to use these functions you have to compile PHP with the --with-cyrus option.

Constantes predefinidas

Estas constantes están definidas por esta extensión y estarán disponibles solamente cuando la extensión ha sido o bien compilada dentro de PHP o grabada dinámicamente en tiempo de ejecución.

CYRUS_CONN_NONSYNCLITERAL (integer)

CYRUS_CONN_INITIALRESPONSE (integer)

CYRUS_CALLBACK_NUMBERED (integer)

CYRUS_CALLBACK_NOLITERAL (integer)

Tabla de contenidos
cyrus_authenticate -- Authenticate against a Cyrus IMAP server
cyrus_bind -- Bind callbacks to a Cyrus IMAP connection
cyrus_close -- Close connection to a Cyrus IMAP server
cyrus_connect -- Connect to a Cyrus IMAP server
cyrus_query -- Send a query to a Cyrus IMAP server
cyrus_unbind -- Unbind ...

Anterior | Inicio | Siguiente
cybercash_encr | Subir | cyrus_authenticate


cyrus_authenticate

(4.1.0 - 4.3.2 only)

cyrus_authenticate -- Authenticate against a Cyrus IMAP server

Description

bool cyrus_authenticate ( resource connection [, string mechlist [, string service [, string user [, int minssf [, int maxssf]]]]])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
Cyrus IMAP administration functions | Subir | cyrus_bind


cyrus_bind

(4.1.0 - 4.3.2 only)

cyrus_bind -- Bind callbacks to a Cyrus IMAP connection

Description

bool cyrus_bind ( resource connection, array callbacks)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
cyrus_authenticate | Subir | cyrus_close


cyrus_close

(4.1.0 - 4.3.2 only)

cyrus_close -- Close connection to a Cyrus IMAP server

Description

bool cyrus_close ( resource connection)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
cyrus_bind | Subir | cyrus_connect


cyrus_connect

(4.1.0 - 4.3.2 only)

cyrus_connect -- Connect to a Cyrus IMAP server

Description

resource cyrus_connect ( [string host [, string port [, int flags]]])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
cyrus_close | Subir | cyrus_query


cyrus_query

(4.1.0 - 4.3.2 only)

cyrus_query -- Send a query to a Cyrus IMAP server

Description

bool cyrus_query ( resource connection, string query)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
cyrus_connect | Subir | cyrus_unbind


cyrus_unbind

(4.1.0 - 4.3.2 only)

cyrus_unbind -- Unbind ...

Description

bool cyrus_unbind ( resource connection, string trigger_name)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
cyrus_query | Subir | Funciones de tipo de caracter


Funciones de tipo de caracter

Manual de PHP
Anterior Siguiente

XV. Funciones de tipo de caracter

Introducción

Las funciones que ofrece esta extensión chequean si un caracter o cadena se ubica dentro de una determinada clase de caracteres, de acuerdo a la localidad actual (vea también setlocale()).

Cuando son llamadas con un argumento entero, estas funciones se comportan exactamente como sus homólogos de C provenientes de ctype.h.

Cuando son llamadas con un argumento de tipo cadena, chequearán cada caracter de la cadena y solo devolverán TRUE si cada caracter de la cadena coincide con el criterio solicitado. Cuando son llamadas con una cadena vacía, el resultado será siempre TRUE.

Al pasar cualquier cosa diferente a una cadena o un entero, se devolverá FALSE inmediatamente.

Requerimientos

Ninguno aparte de las funciones de la librería de C estándar, la cual se encuentra disponible siempre.

Instalación

A partir de PHP 4.2.0 estas funciones están habilitadas por defecto. En versiones anteriores es necesario configurar y compilar PHP con el parámetro --enable-ctype. Es posible deshabilitar el soporte para ctype con --disable-ctype.

La versión para Windows de PHP tiene soporte nativo para esta extensión. No se necesita cargar ninguna extensión adicional para usar estas funciones.

Nota: A partir de PHP 4.3.0 el soporte para ctype es nativo.

Configuración en tiempo de ejecución

Esta extensión no tiene directivas de configuración en php.ini.

Tipos de recursos

Esta extensión no tiene ningún tipo de recurso definido.

Constantes predefinidas

Esta extensión no tiene ninguna constante definida.

Tabla de contenidos
ctype_alnum -- Chequear posibles caracteres alfanuméricos
ctype_alpha -- Chequear posibles caracteres alfabéticos
ctype_cntrl -- Chequear posibles caracteres de control
ctype_digit -- Chequear posibles caracteres numéricos
ctype_graph -- Chequear posibles caracteres imprimibles, con excepción de los espacios
ctype_lower -- Chequear posibles caracteres en minúscula
ctype_print -- Chequear posibles caracteres imprimibles
ctype_punct -- Chequear posibles caracteres imprimibles que no son ni espacios en blanco ni caracteres alfanuméricos
ctype_space -- Chequear posibles caracteres de espacio en blanco
ctype_upper -- Chequear posibles caracteres en mayúscula
ctype_xdigit -- Chequear posibles caracteres que representen un dígito hexadecimal

Anterior | Inicio | Siguiente
cyrus_unbind | Subir | ctype_alnum


ctype_alnum

(PHP 4 >= 4.0.4)

ctype_alnum -- Chequear posibles caracteres alfanuméricos

Descripción

bool ctype_alnum ( string texto)

Devuelve TRUE si cada caracter del texto es o bien una letra o un dígito, o FALSE de lo contrario. En la localidad C estándar las letras se limitan a [A-Za-z] y la función es equivalente a preg_match('/^[a-z0-9]*$/i', $texto).

Vea también ctype_alpha(),
 ctype_digit(), y
 setlocale().

Anterior | Inicio | Siguiente
Funciones de tipo de caracter | Subir | ctype_alpha


ctype_alpha

(PHP 4 >= 4.0.4)

ctype_alpha -- Chequear posibles caracteres alfabéticos

Descripción

bool ctype_alpha ( string texto)

Devuelve TRUE si cada caracter del texto es una letra de la localidad actual, o FALSE de lo contrario. En la localidad C estándar las letras se limitan a [A-Za-z] y ctype_alpha() es equivalente a (ctype_upper($texto) || ctype_lower($texto)) si $texto es un caracter sencillo, aunque otros idiomas usan letras que no son consideradas como mayúsculas ni minúsculas.

Vea también ctype_upper(),
ctype_lower(), y
setlocale().

Anterior | Inicio | Siguiente
ctype_alnum | Subir | ctype_cntrl


ctype_cntrl

(PHP 4 >= 4.0.4)

ctype_cntrl -- Chequear posibles caracteres de control

Descripción

bool ctype_cntrl ( string texto)

Devuelve TRUE si cada caracter del texto tiene una función especial de control, o FALSE de lo contrario. Los caracteres de control son, por ejemplo, la alimentación de línea, el tabulador, esc, etc.

Anterior | Inicio | Siguiente
ctype_alpha | Subir | ctype_digit


ctype_digit

(PHP 4 >= 4.0.4)

ctype_digit -- Chequear posibles caracteres numéricos

Descripción

bool ctype_digit ( string texto)

Devuelve TRUE si cada caracter del texto es un dígito decimal, o FALSE de lo contrario.

Vea también ctype_alnum() y ctype_xdigit().

Anterior | Inicio | Siguiente
ctype_cntrl | Subir | ctype_graph


ctype_graph

(PHP 4 >= 4.0.4)

ctype_graph -- Chequear posibles caracteres imprimibles, con excepción de los espacios

Descripción

bool ctype_graph ( string texto)

Devuelve TRUE si cada caracter del texto es imprimible y genera alguna salida visible (no incluye los espacios), o FALSE de lo contrario.

Vea también ctype_alnum(),
ctype_print(), y
ctype_punct().

Anterior | Inicio | Siguiente
ctype_digit | Subir | ctype_lower


ctype_lower

(PHP 4 >= 4.0.4)

ctype_lower -- Chequear posibles caracteres en minúscula

Descripción

bool ctype_lower ( string texto)

Devuelve TRUE si cada caracter del texto es una letra minúscula en la localidad actual.

Vea también ctype_alpha() y ctype_upper().

Anterior | Inicio | Siguiente
ctype_graph | Subir | ctype_print


ctype_print

(PHP 4 >= 4.0.4)

ctype_print -- Chequear posibles caracteres imprimibles

Descripción

bool ctype_print ( string texto)

Devuelve TRUE si cada caracter del texto genera realmente alguna salida (incluyendo los espacios). Devuelve FALSE si el texto incluye caracteres de control o caracteres que no producen ninguna salida ni realizan función de control alguna después de todo.

Vea también ctype_cntrl(),
ctype_graph(), y
ctype_punct().

Anterior | Inicio | Siguiente
ctype_lower | Subir | ctype_punct


ctype_punct

(PHP 4 >= 4.0.4)

ctype_punct -- Chequear posibles caracteres imprimibles que no son ni espacios en blanco ni caracteres alfanuméricos

Descripción

bool ctype_punct ( string texto)

Devuelve TRUE si cada caracter del texto es imprimible, pero no es una letra, dígito o espacio en blanco; o FALSE de lo contrario.

Vea también ctype_cntrl(),
ctype_graph(), y
ctype_punct().

Anterior | Inicio | Siguiente
ctype_print | Subir | ctype_space


ctype_space

(PHP 4 >= 4.0.4)

ctype_space -- Chequear posibles caracteres de espacio en blanco

Descripción

bool ctype_space ( string texto)

Devuelve TRUE si cada caracter del texto genera cierto tipo de espacio en blanco, o FALSE de lo contrario. Junto con el caracter regular de espacio en blanco, también se consideran espacios a los caracteres de tabulación, tabulación vertical, alimentación de línea, retorno de carro y alimentación de formato.

Anterior | Inicio | Siguiente
ctype_punct | Subir | ctype_upper


ctype_upper

(PHP 4 >= 4.0.4)

ctype_upper -- Chequear posibles caracteres en mayúscula

Descripción

bool ctype_upper ( string texto)

Devuelve TRUE si cada caracter del texto es una letra mayúscula en la localidad actual.

Vea también ctype_alpha() y ctype_lower().

Anterior | Inicio | Siguiente
ctype_space | Subir | ctype_xdigit


ctype_xdigit

(PHP 4 >= 4.0.4)

ctype_xdigit -- Chequear posibles caracteres que representen un dígito hexadecimal

Descripción

bool ctype_xdigit ( string texto)

Devuelve TRUE si cada caracter del texto es un 'dígito' hexadecimal, lo que quiere decir un dígito decimal o un caracter del rango [A-Fa-f]; FALSE de lo contrario.

Vea también ctype_digit().

Anterior | Inicio | Siguiente
ctype_upper | Subir | Funciones de la capa de abstraccion de bases de datos (dbm-style)


Funciones de la capa de abstraccion de bases de datos (dbm-style)

Manual de PHP
Anterior Siguiente

XVI. Funciones de la capa de abstraccion de bases de datos (dbm-style)

Estas funciones son la base para el acceso a bases de datos del estilo Berkeley DB.

Este es un nivel de abstraccion general para varias bases de datos. Como tal su funcionalidad esta limitada a un grupo de modernas bases de datos como Sleepycat Software's DB2. (Esta no debe confundirse con IBM DB2 software, la cual es soportada mediante las funciones ODBC.)

El comportamiento de varios aspectos depende de la implementacion de la base de datos. Funciones como dba_optimize() y dba_sync() cumpliran su funcionalidad con unas bases de datos pero no con otras.

Los siguientes manejadores (handlers) estan soportados:

  • dbm es el mas antiguo (original) tipo de base de datos de la familia de Berkeley DB. Se debe evitar su uso, si es posible. Nosotros no soportamos las funciones de compatibilidad de DB2 y gdbm, porque ellas solo son compatibles a nivel de codigo fuente, pero no pueden manejar el formato original dbm.

  • ndbm es un tipo mas nuevo y mas flexible que dbm. Todavia tiene la mayoria de las limitaciones de dbm (Por lo tanto es descartado).

  • gdbm es el gestor de bases de datos de GNU (database manager).

  • db2 es Sleepycat Software's DB2. Es descrito como "un conjunto de herramientas de programacion que proveen acceso de alto nivel a bases de datos en aplicaciones standalone o en el modelo cliente/servidor. "

  • cdb es "una rapida, de confianza, sencilla herramienta para la creacion y lectura de bases de datos constantes." Fue creada por el autor de qmail y puede encontrarse en here. Como la base es constante solo se soportan las operaciones de lectura.

Ejemplo 1. Ejemplo de DBA

<?php

$id = dba_open("/tmp/test.db", "n", "db2");

if(!$id) {
    echo "dba_open failed\n";
    exit;
}

dba_replace("key", "This is an example!", $id);

if(dba_exists("key", $id)) {
    echo dba_fetch("key", $id);
    dba_delete("key", $id);
}

dba_close($id);
?>

DBA es "binary safe" y no tiene ningun limite arbitrario. Hereda todas sus limitaciones de la implementacion de base de datos que tenga.

Todos las bases de datos basadas en ficheros deben proveer un mecanismo para establecer el modo a la hora de crear nuevas bases de datos, si ello es posible. Habitualmente este modo es pasado como el cuarto argumento en dba_open() o en dba_popen().

Se puede acceder a todas las entradas de una base de datos de modo secuencial (lineal) usando las funciones dba_firstkey() y dba_nextkey(). No se puede cambiar la base de datos mientras se recorre (traversing) por ella.

Ejemplo 2. Recorriendo una base de datos

<?php

# ...open database...

$key = dba_firstkey($id);

while($key != false) {
    if(...) { # remember the key to perform some action later
        $handle_later[] = $key;
    }
    $key = dba_nextkey($id);
}

for($i = 0; $i < count($handle_later); $i++)
    dba_delete($handle_later[$i], $id);

?>

Tabla de contenidos
dba_close -- Cerrar uba base de datos
dba_delete -- Borra una entrada especificada por la clave key
dba_exists -- Comprueba si la clave key existe
dba_fetch -- Extrae los datos especificados por la clave key
dba_firstkey -- Conseguir la primera clave
dba_handlers -- List handlers available
dba_insert -- Insertar una entrada
dba_key_split -- Splits a key in string representation into array representation
dba_list -- List all open database files
dba_nextkey -- Extraer la siguiente clave
dba_open -- Abrir una base de datos
dba_optimize -- Optimiza la base de datos
dba_popen -- Apertura persistente de una base de datos
dba_replace -- Reemplaza o inserta una entrada
dba_sync -- Sincroniza la base de datos

Anterior | Inicio | Siguiente
ctype_xdigit | Subir | dba_close


dba_close

(PHP 3>= 3.0.8, PHP 4 )

dba_close -- Cerrar uba base de datos

Descripcion

void dba_close ( int handle)

dba_close() cierra la conexion con una base de datos previamente abierta y libera todos los recursos especificados por handle.

handle es un manejador (handle) de la base de datos devuelto por dba_open().

dba_close() no devuelve ningun valor.

Ver tambien: dba_open() dba_popen()

Anterior | Inicio | Siguiente
Funciones de la capa de abstraccion de bases de datos (dbm-style) | Subir | dba_delete


dba_delete

(PHP 3>= 3.0.8, PHP 4 )

dba_delete -- Borra una entrada especificada por la clave key

Descripcion

bool dba_delete ( string key, int handle)

dba_delete() borra la entrada especificada por key de la base de datos especificada por handle.

key es la clave de la entrada que es borrada.

handle es un manejador (handle) de la base de datos devuelto por dba_open().

dba_delete() devuelve TRUE o FALSE, si la entrada es borrada o no, respectivamente.

Ver tambien:
dba_exists()
dba_fetch()
dba_insert()
dba_replace()

Anterior | Inicio | Siguiente
dba_close | Subir | dba_exists


dba_exists

(PHP 3>= 3.0.8, PHP 4 )

dba_exists -- Comprueba si la clave key existe

Descripcion

bool dba_exists ( string key, int handle)

dba_exists() comprueba si la clave key existe en la base de datos especificada por handle.

key es la clave para la que se realiza la comprobacion.

handle es un manejador (handle) de la base de datos devuelto por dba_open().

dba_exists() devuelve TRUE o FALSE, si la clave es hallada o no, respectivamente.

Ver tambien:
dba_fetch()
dba_delete()
dba_insert()
dba_replace()

Anterior | Inicio | Siguiente
dba_delete | Subir | dba_fetch


dba_fetch

(PHP 3>= 3.0.8, PHP 4 )

dba_fetch -- Extrae los datos especificados por la clave key

Descripcion

string dba_fetch ( string key, int handle)

dba_fetch() extrae los datos especificados por la clave key de la base de datos determinada por handle.

key es la clave de la entrada de los datos que queremos extraer.

handle es un manejador (handle) de la base de datos devuelto por dba_open().

dba_fetch() devuelve la cadena asociada o FALSE, si el par key/data es hallado o no, respectivamente.

Ver tambien:
dba_exists()
dba_delete()
dba_insert()
dba_replace()

Anterior | Inicio | Siguiente
dba_exists | Subir | dba_firstkey


dba_firstkey

(PHP 3>= 3.0.8, PHP 4 )

dba_firstkey -- Conseguir la primera clave

Descripcion

string dba_firstkey ( int handle)

dba_firstkey() devuelve la primera clave de la base de datos especificada por handle y resetea el puntero interno de claves. Esto permite una busqueda lineal por toda la base de datos.

handle es un manejador (handle) de la base de datos devuelto por dba_open().

dba_firstkey() devuelve la clave o FALSE en funcion de si tiene exito o falla, respectivamente.

Ver tambien: dba_nextkey()

Anterior | Inicio | Siguiente
dba_fetch | Subir | dba_handlers


dba_handlers

(PHP 4 >= 4.3.0)

dba_handlers -- List handlers available

Description

array dba_handlers ( void )

dba_handlers() returns an array with all handlers supported by this extension.

When the internal cdb library is used you will see 'cdb' and 'cdb_make'.

Anterior | Inicio | Siguiente
dba_firstkey | Subir | dba_insert


dba_insert

(PHP 3>= 3.0.8, PHP 4 )

dba_insert -- Insertar una entrada

Descripcion

bool dba_insert ( string key, string value, int handle)

dba_insert() inserta la entrada descrita con key y value dentro de la base de datos especificada por handle. Fallara si ya existe una entrada con el mismo parametro key.

key es la clave de la entrada a ser insertada.

value es el valor a ser insertado.

handle es un manejador (handle) de la base de datos devuelto por dba_open().

dba_insert() devuelve TRUE o FALSE, en funcion de si tiene exito o falla, respectivamente.

Ver tambien:
dba_exists()
dba_delete()
dba_fetch()
dba_replace()

Anterior | Inicio | Siguiente
dba_handlers | Subir | dba_key_split


dba_key_split

(no version information, might be only in CVS)

dba_key_split -- Splits a key in string representation into array representation

Description

mixed dba_key_split ( mixed key)

dba_key_split() returns an array of the form array(0=>group,1=>value_name). This function will return FALSE if key is NULL or FALSE.

key is the key in string representation.

See also
dba_firstkey(),
dba_nextkey() and
dba_fetch().

Anterior | Inicio | Siguiente
dba_insert | Subir | dba_list


dba_list

(PHP 4 >= 4.3.0)

dba_list -- List all open database files

Description

array dba_list ( void )

dba_list() returns an associative array with all open database files. This array is in the form: resourceid=>filename.

Anterior | Inicio | Siguiente
dba_key_split | Subir | dba_nextkey


dba_nextkey

(PHP 3>= 3.0.8, PHP 4 )

dba_nextkey -- Extraer la siguiente clave

Descripcion

string dba_nextkey ( int handle)

dba_nextkey() devuelve la siguiente clave de la base de datos especificada por handle e incrementa el puntero de claves interno.

handle es un manejador (handle) de la base de datos devuelto por dba_open().

dba_nextkey() devuelve la clave o FALSE dependiendo de si tiene exito o falla, respectivamente.

Ver tambien: dba_firstkey()

Anterior | Inicio | Siguiente
dba_list | Subir | dba_open


dba_open

(PHP 3>= 3.0.8, PHP 4 )

dba_open -- Abrir una base de datos

Descripcion

int dba_open ( string path, string mode, string handler [, ...])

dba_open() establece una instancia para path con mode usando handler.

path normalmente es el "path" en el sistema de ficheros.

mode es "r" para acceso de lectura, "w" para lectura/escritura de una base de datos ya existente, "c" para lectura/escritura y creacion de una base datos si esta no existe, y "n" para crear, truncar y lectura/escritura.

handler es el nombre de el manejador (handler) que sera usado para el acceso al path. Es pasado como un parametro opcional a dba_open() y puede usarse en lugar de ella.

dba_open() devuelve un valor positivo de handler o FALSE, en el caso de que la apertura de la base de datos se realice o si falla, respectivamente.

Ver tambien: dba_popen() dba_close()

Anterior | Inicio | Siguiente
dba_nextkey | Subir | dba_optimize


dba_optimize

(PHP 3>= 3.0.8, PHP 4 )

dba_optimize -- Optimiza la base de datos

Descripcion

bool dba_optimize ( int handle)

dba_optimize() optimiza la base de datos especificada por handle.

handle es un manejador (handle) de la base de datos devuelto por dba_open().

dba_optimize() devuelve TRUE o FALSE, si la optimizacion tiene exito o falla, respectivamente.

Ver tambien: dba_sync()

Anterior | Inicio | Siguiente
dba_open | Subir | dba_popen


dba_popen

(PHP 3>= 3.0.8, PHP 4 )

dba_popen -- Apertura persistente de una base de datos

Descripcion

int dba_popen ( string path, string mode, string handler [, ...])

dba_popen() establece una instancia persistente para path con mode usando handler.

path normalmente es el "path" en el sistema de ficheros.

mode es "r" para acceso de lectura, "w" para lectura/escritura de una base de datos ya existente, "c" para lectura/escritura y creacion de una base datos si esta no existe, y "n" para crear, truncar y lectura/escritura.

handler es el nombre del manejador (handler) que sera usado para el acceso al path. Es pasado como un parametro opcional a dba_popen() y puede usarse en lugar de ella.

dba_popen() devuelve un valor positivo de handler o FALSE, en el caso de que la apertura de la base de datos se realice o si falla, respectivamente.

Ver tambien: dba_open() dba_close()

Anterior | Inicio | Siguiente
dba_optimize | Subir | dba_replace


dba_replace

(PHP 3>= 3.0.8, PHP 4 )

dba_replace -- Reemplaza o inserta una entrada

Descripcion

bool dba_replace ( string key, string value, int handle)

dba_replace() reemplaza o inserta la entrada descrita con key y value dentro de la base de datos especificada por handle.

key es la clave de la entrada a insertar.

value es el valor a ser insertado.

handle es un manejador (handle) de la base de datos devuelto por dba_open().

dba_replace() devuelve TRUE o FALSE, dependiendo de si tiene exito o falla respectivamente.

Ver tambien:
dba_exists()
dba_delete()
dba_fetch()
dba_insert()

Anterior | Inicio | Siguiente
dba_popen | Subir | dba_sync


dba_sync

(PHP 3>= 3.0.8, PHP 4 )

dba_sync -- Sincroniza la base de datos

Descripcion

bool dba_sync ( int handle)

dba_sync() sincroniza la base de datos especificada por handle. Esto probablemente realice una escritura fisica en el disco, si es soportado.

handle es un manejador (handle) de la base de datos devuelto por dba_open().

dba_sync() devuelve TRUE o FALSE, si la sincronizacion tiene exito o falla, respectivamente.

Ver tambien: dba_optimize()

Anterior | Inicio | Siguiente
dba_replace | Subir | Funciones de Fecha y Hora


Funciones de Fecha y Hora

Manual de PHP
Anterior Siguiente

XVII. Funciones de Fecha y Hora

Introducción

Estas funciones le permiten obtener la fecha y hora del servidor en donde están siendo ejecutados sus scripts PHP. Puede usar estas funciones para dar formato a las fechas y horas en muchas maneras diferentes.

Nota: Por favor tenga en cuenta que éstas funciones dependen de los parámetros de localidad de su servidor. Asegúrese de tener en cuenta el tiempo de preservación de luz del día y los años bisiestos cuando trabaje con éstas funciones.

Requerimientos

No se necesitan bibliotecas externas para construir esta extensión

Instalación

No se necesita ninguna instalación para usar estas funciones, son parte del núcleo de PHP.

Configuración en tiempo de ejecución

Esta extensión no tiene directivas de configuración en php.ini.

Tipos de recursos

Esta extensión no tiene ningún tipo de recurso definido.

Constantes predefinidas

Esta extensión no tiene ninguna constante definida.

Tabla de contenidos
checkdate -- valida una fecha u hora
date -- da formato a la fecha/hora local
getdate -- obtiene información de fecha y hora
gettimeofday -- obtiene la hora actual
gmdate -- da formato a una fecha/hora GMT/CUT
gmmktime -- obtiene el valor timestamp UNIX de una fecha GMT
gmstrftime -- da formato a una fecha/hora GMT/CUT según las convenciones locales
localtime -- Obtener la hora local
microtime -- devuelve el valor timestamp UNIX actual con microsegundos
mktime -- obtiene el timestamp UNIX de una fecha
strftime -- da formato a la hora o fecha local de acuerdo con las convenciones locales
strtotime -- Procesar cualquier descripción textual de fecha/hora en Inglés convirtiéndola en una timestamp de UNIX.
time -- devuelve el timestamp UNIX actual

Anterior | Inicio | Siguiente
dba_sync | Subir | checkdate


checkdate

(PHP 3, PHP 4 )

checkdate -- valida una fecha u hora

Descripción

int checkdate ( int month, int day, int year)

Devuelve un valor verdadero si la fecha dada es válida; en caso contrario, devuelve un valor falso. Comprueba la validez de la fecha formada por los argumentos. Se considera válida una fecha si:

  • el año está entre 0 y 32767, ambos incluidos

  • el mes está entre 1 y 12, ambos incluidos

  • el día está en el rango permitido para el mes dado. Se tienen en consideración los años bisiestos.

Anterior | Inicio | Siguiente
Funciones de Fecha y Hora | Subir | date


date

(PHP 3, PHP 4 )

date -- da formato a la fecha/hora local

Descripción

string date ( string format [, int timestamp])

Devuelve una cadena formateada de acuerdo con la cadena de formato dada, utilizando el valor de timestamp dado o la hora local actual si no hay parámetro.

Se reconocen los siguientes caracteres en la cadena de formato:

  • a - "am" o "pm"

  • A - "AM" o "PM"

  • d - día del mes, dos dígitos con cero a la izquierda; es decir, de "01" a "31"

  • D - día de la semana, en texto, con tres letras; por ejemplo, "Fri"

  • F - mes, en texto, completo; por ejemplo, "January"

  • h - hora, de "01" a "12"

  • H - hora, de "00" a "23"

  • g - hour, sin ceros, de "1" a "12"

  • G - hour, sin ceros; de "0" a "23"

  • i - minutos; de "00" a "59"

  • j - día del mes sin cero inicial; de "1" a "31"

  • l ('L' minúscula) - día de la semana, en texto, completo; por ejemplo, "Friday"

  • L - "1" or "0", según si el año es bisiesto o no

  • m - mes; de "01" a "12"

  • n - mes sin cero inicial; de "1" a "12"

  • M - mes, en texto, 3 letras; por ejemplo, "Jan"

  • s - segundos; de "00" a "59"

  • S - sufijo ordinal en inglés, en texto, 2 caracteres; por ejemplo, "th", "nd"

  • t - número de días del mes dado; de "28" a "31"

  • U - segundos desde el valor de 'epoch'

  • w - día de la semana, en número, de "0" (domingo) a "6" (sábado)

  • Y - año, cuatro cifras; por ejemplo, "1999"

  • y - año, dos cifras; por ejemplo, "99"

  • z - día del año; de "0" a "365"

  • Z - diferencia horaria en segundos (de "-43200" a "43200")

Los caracteres no reconocidos se imprimen tal cual. El formato "Z" siempre devuelve "0" en la función gmdate()()

Ejemplo 1. Ejemplo de date()

print (date("l dS of F Y h:i:s A"));
print ("July 1, 2000 is on a " . date("l", mktime(0,0,0,7,1,2000)));

Es posible usar date() y mktime() juntas para obtener fechas futuras o pasadas.

Ejemplo 2. Ejemplo de date() y mktime()

$tomorrow  = mktime(0,0,0,date("m")  ,date("d")+1,date("Y"));
$lastmonth = mktime(0,0,0,date("m")-1,date("d"),  date("Y"));
$nextyear  = mktime(0,0,0,date("m"),  date("d"),  date("Y")+1);

Para dar formato a fechas en otros idiomas, se deben usar las funciones setlocale() y strftime().

Ver también gmdate() y mktime().

Anterior | Inicio | Siguiente
checkdate | Subir | getdate


getdate

(PHP 3, PHP 4 )

getdate -- obtiene información de fecha y hora

Descripción

array getdate ( int timestamp)

Devuelve un array asociativo que contiene la información de fecha del valor timestamp como los siguientes elementos:

  • "seconds" - segundos

  • "minutes" - minutos

  • "hours" - horas

  • "mday" - día del mes

  • "wday" - día de la semana, en número

  • "mon" - mes, en número

  • "year" - año, en número

  • "yday" - día del año, en número; por ejemplo, "299"

  • "weekday" - día de la semana, en texto, completo; por ejemplo, "Friday"

  • "month" - mes, en texto, completo; por ejemplo, "January"

Anterior | Inicio | Siguiente
date | Subir | gettimeofday


gettimeofday

(PHP 3>= 3.0.7, PHP 4 )

gettimeofday -- obtiene la hora actual

Descripción

array gettimeofday ( void )

Es un interfaz para gettimeofday(2). Devuelve un array asociativo que contiene los datos devueltos por esta llamada al sistema.

  • "sec" - segundos

  • "usec" - microsegundos

  • "minuteswest" - minutos al oeste de Greenwich

  • "dsttime" - tipo de corrección dst

Anterior | Inicio | Siguiente
getdate | Subir | gmdate


gmdate

(PHP 3, PHP 4 )

gmdate -- da formato a una fecha/hora GMT/CUT

Descripción

string gmdate ( string format, int timestamp)

Idéntica a la función data() excepto en que la hora devuelta es la de Greenwich (GMT). Por ejemplo, si se utiliza en Finlandia (GMT +0200), la primera línea del ejemplo devuelve "Jan 01 1998 00:00:00", mientras la segunda imprime "Dec 31 1997 22:00:00".

Ejemplo 1. Ejemplo de gmdate()

echo date( "M d Y H:i:s",mktime(0,0,0,1,1,1998) );
echo gmdate( "M d Y H:i:s",mktime(0,0,0,1,1,1998) );

Ver también date(), mktime() y gmmktime().

Anterior | Inicio | Siguiente
gettimeofday | Subir | gmmktime


gmmktime

(PHP 3, PHP 4 )

gmmktime -- obtiene el valor timestamp UNIX de una fecha GMT

Descripción

int gmmktime ( int hour, int minute, int second, int month, int day, int year [, int is_dst])

Idéntica a mktime(), excepto en que los parámetros representan una fecha GMT.

Anterior | Inicio | Siguiente
gmdate | Subir | gmstrftime


gmstrftime

(PHP 3>= 3.0.12, PHP 4 )

gmstrftime -- da formato a una fecha/hora GMT/CUT según las convenciones locales

Descripción

string gmstrftime ( string format, int timestamp)

Se comporta como strftime(), excepto en que la hora devuelta es la de Greenwich (GMT). Por ejemplo, si se utiliza en la zona horaria EST (GMT -0500), la primera línea del ejemplo imprime "Dec 31 1998 20:00:00", mientras la segunda imprime "Jan 01 1999 01:00:00".

Ejemplo 1. Ejemplo de gmstrftime()

setlocale ('LC_TIME','en_US');
echo strftime ("%b %d %Y %H:%M:%S",mktime(20,0,0,12,31,98))."\n";
echo gmstrftime ("%b %d %Y %H:%M:%S",mktime(20,0,0,12,31,98))."\n";

Ver también strftime().

Anterior | Inicio | Siguiente
gmmktime | Subir | localtime


localtime

(PHP 4 )

localtime -- Obtener la hora local

Descripción

array localtime ( [int muestra_de_tiempo [, bool es_asociativo]])

La función localtime() devuelve un vector idético al de la estructura devuelta en C por la llamada a la misma función. El primer parámetro que se le pasa a localtime() es el timestamp, una representació de una fecha/hora concretas. Si no se proporciona, se utilizará la hora actual. El segundo argumento de localtime() es es_asociativo. Si está a 0 o no es proporcionado, el vector se devuelve como un vector normal, indizado numéricamente. Si el argumento está a 1, el vector devuelto es un vector asociativo conteniendo los diferentes elementos de la estructura devuelta por C al llamar a la función localtime. Los nombres de las diferentes claves del vector asociativo se encuentran a continuación:

  • "tm_sec" - segundos

  • "tm_min" - minutos

  • "tm_hour" - horas

  • "tm_mday" - día del mes

  • "tm_mon" - mes del año, empezando en 0 que es Enero

  • "tm_year" - Años que hacen desde 1900

  • "tm_wday" - Día de la semana

  • "tm_yday" - Día del año

  • "tm_isdst" - Si el cambio de hora para el ahorro energético tiene efecto o no

Anterior | Inicio | Siguiente
gmstrftime | Subir | microtime


microtime

(PHP 3, PHP 4 )

microtime -- devuelve el valor timestamp UNIX actual con microsegundos

Descripción

string microtime ( void )

Devuelve la cadena "msec sec", donde sec es la hora actual en número de segundos desde el valor Unix Epoch (0:00:00 del 1 de enero de 1970, hora GMT), y msec es la parte de microsegundos. Esta función sólo está disponible en sistemas operativos con admiten la llamada al sistema gettimeofday().

Ver también time().

Anterior | Inicio | Siguiente
localtime | Subir | mktime


mktime

(PHP 3, PHP 4 )

mktime -- obtiene el timestamp UNIX de una fecha

Descripción

int mktime ( int hour, int minute, int second, int month, int day, int year [, int is_dst])

Advertencia: Véase el extraño orden de los argumentos, que se diferencia del orden de argumentos en una llamada mktime() de UNIX y que no permite eliminar parámetros de derecha a izquierda (ver abajo). Es un error común mezclar estos valores en un script.

Devuelve el valor timestamp Unix correspondiente a los argumentos dados. El timestamp es un entero de tipo long que contiene el número de segundos entre el valor Unix Epoch (1 de enero de 1970) y la hora especificada.

Se pueden eliminar argumentos en orden de derecha a izquierda; en los argumentos omitidos se toma el valor de la fecha y hora locales.

is_dst puede ponerse a 1 si la hora corresponde a horario de verano, 0 si no, o -1 (valor por omisión) si no se sabe.

Nota: is_dst se añadió en la versión 3.0.10.

mktime() es útil para realizar cálculos y validaciones con fechas, ya que calcula automáticamente el valor correcto para una entrada fuera de rango. Por ejemplo, cada una de las líneas siguientes produce la cadena "Jan-01-1998".

Ejemplo 1. Ejemplo de mktime()

echo date( "M-d-Y", mktime(0,0,0,12,32,1997) );
echo date( "M-d-Y", mktime(0,0,0,13,1,1997) );
echo date( "M-d-Y", mktime(0,0,0,1,1,1998) );

El último día de cada mes se puede expresar como el día "0" del mes siguiente, no el día -1. Los dos ejemplos siguientes producen la cadena "The last day in Feb 2000 is: 29".

Ejemplo 2. El último día del próximo mes

$lastday=mktime(0,0,0,3,0,2000);
echo strftime("Last day in Feb 2000 is: %d",$lastday);

$lastday=mktime(0,0,0,4,-31,2000);
echo strftime("Last day in Feb 2000 is: %d",$lastday);

Ver también date() y time().

Anterior | Inicio | Siguiente
microtime | Subir | strftime


strftime

(PHP 3, PHP 4 )

strftime -- da formato a la hora o fecha local de acuerdo con las convenciones locales

Descripción

string strftime ( string format, int timestamp)

Devuelve una cadena formateada según la cadena de formato dada utilizando el valor timestamp o la hora local actual. Los nombres del mes y el día de la semana y otras cadenas dependientes del idioma respetan lo establecido con setlocale().

Se reconocen los siguientes especificadores de conversión en la cadena de formato:

  • %a - nombre del día de la semana abreviado

  • %A - nombre del día de la semana completo

  • %b - nombre del mes abreviado

  • %B - nombre del mes completo

  • %c - representación de fecha y hora preferidas en el idioma actual

  • %d - día del mes en número (de 00 a 31)

  • %H - hora como un número de 00 a 23

  • %I - hora como un número de 01 a 12

  • %j - día del año como un número de 001 a 366

  • %m - mes como un número de 01 a 12

  • %M - minuto en número

  • %p - `am' o `pm', según la hora dada, o las cadenas correspondientes en el idioma actual

  • %S - segundos en número

  • %U - número de la semana en el año, empezando con el primer domingo como el primer día de la primera semana

  • %W - número de la semana en el año, empezando con el primer lunes como el primer día de la primera semana

  • %w - día de la semana en número (el domingo es el 0)

  • %x - representación preferida de la fecha sin la hora

  • %X - representación preferida de la hora sin la fecha

  • %y - año en número de 00 a 99

  • %Y - año en número de cuatro cifras

  • %Z - nombre o abreviatura de la zona horaria

  • %% - carácter `%'

Ejemplo 1. Ejemplo de strftime()

setlocale ("LC_TIME", "C");
print(strftime("%A in Finnish is "));
setlocale ("LC_TIME", "fi_FI");
print(strftime("%A, in French "));
setlocale ("LC_TIME", "fr_CA");
print(strftime("%A and in German "));
setlocale ("LC_TIME", "de_DE");
print(strftime("%A.\n"));
Este ejemplo funciona si se tienen los respectivos `locales' instalados en el sistema.

Ver también setlocale() y mktime().

Anterior | Inicio | Siguiente
mktime | Subir | strtotime


strtotime

(PHP 3>= 3.0.12, PHP 4 )

strtotime -- Procesar cualquier descripción textual de fecha/hora en Inglés convirtiéndola en una timestamp de UNIX.

Descripción

int strtotime ( string hora [, int ahora])

La función espera que se le pase una cadena conteniendo una fecha en formato Inglés e intentará procesarla y convertirla a una timestamp (muestra de tiempo) de UNIX relativa a la timestamp proporcionada en ahora, o la hora actual si no se indica ninguna. Si falla, devolverá -1.

Dado que strtotime() obra de acuerdo con la sintaxis de fechas de GNU, puede echar un vistazo a la página del manual GNU titulada Date Input Formats (Formatos de entrada de fechas). La sintaxis descrita ahí es válida para el parátro hora.

Ejemplo 1. Ejemplos con strtotime()

echo strtotime ("now"), "\n";
echo strtotime ("10 September 2000"), "\n";
echo strtotime ("+1 day"), "\n";
echo strtotime ("+1 week"), "\n";
echo strtotime ("+1 week 2 days 4 hours 2 seconds"), "\n";
echo strtotime ("next Thursday"), "\n";
echo strtotime ("last Monday"), "\n";

Ejemplo 2. Comprobando si falla

$str = 'No v&aacute;lida';
if (($timestamp = strtotime($str)) === -1) {
    echo "La cadena ($str) no es v&aacute;lida.";
} else {
    echo "$str == ". date('l dS of F Y h:i:s A',$timestamp);
}

Nota: El rango válido de una timestamp suele ser desde Fri, 13 Dec 1901 20:45:54 GMT (Viernes, 13 de diciembre) a Tue, 19 Jan 2038 03:14:07 GMT (Martes, 19 de enero). (Estas son las fechas que corresponden a los valores mínimo y máximo de un entero con signo de 32 bits.)

Anterior | Inicio | Siguiente
strftime | Subir | time


time

(PHP 3, PHP 4 )

time -- devuelve el timestamp UNIX actual

Descripción

int time ( void )

Devuelve la hora actual como número de segundos transcurridos desde las 00:00:00 del 1 de enero de 1970 GMT (Unix Epoch).

Ver también date().

Anterior | Inicio | Siguiente
strtotime | Subir | Funciones para dBase


Funciones para dBase

Manual de PHP
Anterior Siguiente

XVIII. Funciones para dBase

Estas funciones permiten el acceso a datos almacenados en formato dBase (dbf).

No hay soporte para índices o campos Memo. Tampoco hay soporte para bloqueo: si dos procesos concurrentes en el servidor modifican el mismo fichero dBase, probablemente se destruirán los datos.

A diferencia de las bases de datos SQL, las "bases de datos" dBase no pueden cambiar su definición. Una vez creado el fichero, la definición de la base de datos es fija. No hay índices que aceleren la búsqueda u organicen los datos de distinto modo. Los ficheros dBase son simples ficheros secuenciales con registros de longitud fija. Los nuevos registros se añaden al final del fichero y los registros borrados se conservan hasta que se llama a la función dbase_pack()().

Se recomienda no utilizar ficheros dBase como bases de datos, sino elegir cualquier servidor SQL; MySQL o Postgres son opciones habituales con PHP. El soporte para dBase se proporciona para permitir importar y exportar datos a y desde la base de datos web, ya que este formato de ficheros es aceptado habitualmente por las hojas de datos y los organizadores de Windows. La importación y exportación de datos es lo único para lo que sirve el soporte dBase.

Tabla de contenidos
dbase_add_record -- añade un registro a un fichero dBase
dbase_close -- cierra un fichero dBase
dbase_create -- crea una base de datos dBase
dbase_delete_record -- borra un registro del fichero dBase
dbase_get_header_info -- Get the header info of a dBase database
dbase_get_record_with_names -- lee un registro de un fichero dBase como array asociativo
dbase_get_record -- lee un registro de un fichero dBase
dbase_numfields -- cuenta el número de campos en un fichero dBase
dbase_numrecords -- cuenta el número de registros en un fichero dBase
dbase_open -- abre un fichero dBase
dbase_pack -- "empaqueta" un fichero dBase
dbase_replace_record -- reemplaza un registro en un fichero dBase

Anterior | Inicio | Siguiente
time | Subir | dbase_add_record


dbase_add_record

(PHP 3, PHP 4 )

dbase_add_record -- añade un registro a un fichero dBase

Descripción

bool dbase_add_record ( int dbase_identifier, array record)

Añade los datos de record a la base de datos. Si el número de elementos del registro proporcionado no es igual al número de campos de la base de datos, la operación fallará y la función devolverá FALSE.

Anterior | Inicio | Siguiente
Funciones para dBase | Subir | dbase_close


dbase_close

(PHP 3, PHP 4 )

dbase_close -- cierra un fichero dBase

Descripción

bool dbase_close ( int dbase_identifier)

Cierra el fichero asociado con dbase_identifier.

Anterior | Inicio | Siguiente
dbase_add_record | Subir | dbase_create


dbase_create

(PHP 3, PHP 4 )

dbase_create -- crea una base de datos dBase

Descripción

int dbase_create ( string filename, array fields)

El parámetro fields es un array de arrays, cada uno de los cuales describe el formato de un campo de la base de datos. Cada campo consiste de un nombre, un carácter que indica el tipo de campo, una longitud, y una precisión.

Los tipos de campos disponibles son:

L

Lógico. No tienen longitud ni precisión.

M

Memo. (Sin soporte en PHP.) No tienen longitud ni precisión.

D

Fecha (almacenada como AAAAMMDD). No tienen longitud ni precisión.

N

Número. Tienen longitud y precisión (número de cifras tras el punto decimal).

C

Cadena.

Si la base de datos se crea con éxito, se devuelve un dbase_identifier; en caso contrario, devuelve FALSE.

Ejemplo 1. Crear un fichero dBase

// "database" name
$dbname = "/tmp/test.dbf";

// database "definition"
$def =
    array(
        array("date",     "D"),
        array("name",     "C",  50),
        array("age",      "N",   3, 0),
        array("email",    "C", 128),
        array("ismember", "L")
    );

// creation
if (!dbase_create($dbname, $def))
    print "<strong>Error!</strong>";

Anterior | Inicio | Siguiente
dbase_close | Subir | dbase_delete_record


dbase_delete_record

(PHP 3, PHP 4 )

dbase_delete_record -- borra un registro del fichero dBase

Descripción

bool dbase_delete_record ( int dbase_identifier, int record)

Marca el registro record para ser borrado del fichero de datos. Para eliminar realmente el registro del fichero, debe llamarse a la función dbase_pack().

Anterior | Inicio | Siguiente
dbase_create | Subir | dbase_get_header_info


dbase_get_header_info

(no version information, might be only in CVS)

dbase_get_header_info -- Get the header info of a dBase database

Description

array dbase_get_header_info ( int dbase_identifier)

Returns information on the column structure of the database referenced by dbase_identifier. For each column in the database, there is an entry in a numerically-indexed array. The array index starts at 0. Each array element contains an associative array of column information. If the database header information cannot be read, FALSE is returned.

The array elements are:

name

The name of the column

type

The human-readable name for the dbase type of the column (i.e. date, boolean, etc)

length

The number of bytes this column can hold

precision

The number of digits of decimal precision for the column

format

A suggested printf() format specifier for the column

offset

The byte offset of the column from the start of the row

Ejemplo 1. Showing header information for a dBase database file

<?php
// Path to dbase file
$db_path = "/tmp/test.dbf";

// Open dbase file
$dbh = dbase_open($db_path)
    or die("Error! Could not open dbase database file '$db_path'.");

// Get column information
$column_info = dbase_get_header_info($dbh);

// Display information
print_r($column_info);
?>

Anterior | Inicio | Siguiente
dbase_delete_record | Subir | dbase_get_record_with_names


dbase_get_record_with_names

(PHP 3>= 3.0.4, PHP 4 )

dbase_get_record_with_names -- lee un registro de un fichero dBase como array asociativo

Descripción

array dbase_get_record_with_names ( int dbase_identifier, int record)

Devuelve los datos del registro record en un array asociativo. El array incluye también un elemento con índice 'deleted' que vale 1 si el registro ha sido marcado para borrar (ver dbase_delete_record().

Cada campo se convierte al tipo PHP apropiado. (Las fechas se transforman en cadenas.)

Anterior | Inicio | Siguiente
dbase_get_header_info | Subir | dbase_get_record


dbase_get_record

(PHP 3, PHP 4 )

dbase_get_record -- lee un registro de un fichero dBase

Descripción

array dbase_get_record ( int dbase_identifier, int record)

Devuelve los datos del registro record en un array. El array se indexa a partir de 0, e incluye un elemento con el índice asociativo 'deleted', que vale 1 si el registro ha sido marcado para borrar (ver dbase_delete_record().

Cada campo se convierte al tipo PHP apropiado. (Las fechas se guardan como cadenas.)

Anterior | Inicio | Siguiente
dbase_get_record_with_names | Subir | dbase_numfields


dbase_numfields

(PHP 3, PHP 4 )

dbase_numfields -- cuenta el número de campos en un fichero dBase

Descripción

int dbase_numfields ( int dbase_identifier)

Devuelve el número de campos (columnas) en el fichero especificado. Los números de campo va de 0 a dbase_numfields($db)-1, mientras los números de registros van de 1 a dbase_numrecords($db).

Ejemplo 1. Uso de dbase_numfields()

$rec = dbase_get_record($db, $recno);
$nf  = dbase_numfields($db);
for ($i=0; $i < $nf; $i++) {
    print $rec[$i]."<br>\n";
}

Anterior | Inicio | Siguiente
dbase_get_record | Subir | dbase_numrecords


dbase_numrecords

(PHP 3, PHP 4 )

dbase_numrecords -- cuenta el número de registros en un fichero dBase

Descripción

int dbase_numrecords ( int dbase_identifier)

Devuelve el número de registros (filas) en el fichero especificado. Los números de registro van de 1 a dbase_numrecords($db), mientras los números de campo van de 0 a dbase_numfields($db)-1.

Anterior | Inicio | Siguiente
dbase_numfields | Subir | dbase_open


dbase_open

(PHP 3, PHP 4 )

dbase_open -- abre un fichero dBase

Descripción

int dbase_open ( string filename, int flags)

Los "flags" son los que utiliza la llamada al sistema open(). Normalmente, 0 significa sólo lectura, 1 sólo escritura y 2 lectura y escritura.

Devuelve un dbase_identifier del fichero abierto, o FALSE si no pudo abrirse el fichero.

Anterior | Inicio | Siguiente
dbase_numrecords | Subir | dbase_pack


dbase_pack

(PHP 3, PHP 4 )

dbase_pack -- "empaqueta" un fichero dBase

Descripción

bool dbase_pack ( int dbase_identifier)

Empaqueta el fichero especificado, borrando definitivamente todos los registros marcados con la función dbase_delete_record().

Anterior | Inicio | Siguiente
dbase_open | Subir | dbase_replace_record


dbase_replace_record

(PHP 3>= 3.0.11, PHP 4 )

dbase_replace_record -- reemplaza un registro en un fichero dBase

Descripción

bool dbase_replace_record ( int dbase_identifier, array record, int dbase_record_number)

Reemplaza los datos asociados con el registro record_number con los datos de record en el fichero de datos. Si el número de elementos del registro proporcionado no es igual al número de campos de la base de datos, la operación fallará y la función devolverá FALSE.

dbase_record_number es un entero en el rango de 1 al número de registros en el fichero de datos (devuelto por la función dbase_numrecords()).

Anterior | Inicio | Siguiente
dbase_pack | Subir | Funciones dbm


Funciones dbm

Manual de PHP
Anterior Siguiente

XIX. Funciones dbm

Estas funcione le permiten almacenar registros en una base de datos estilo dbm. Este tipo de base de datos (soportadas por las librerías db y gdbm de Berkeley, así como por algunas librerías del sistema y por una librería incluída para acceso a archivos de texto) guarda pares clave/valor (en oposición a los registros completos soportados por las bases de datos relacionales).

Ejemplo 1. ejemplo de dbm

$dbm = dbmopen("vistoya", "w");
if (dbmexists($dbm, $idusuario)) {
  $visto_ya = dbmfetch($dbm, $idusuario);
} else {
  dbminsert($dbm, $idusuario, time());
}
do_stuff();
dbmreplace($dbm, $idusuario, time());
dbmclose($dbm);

Tabla de contenidos
dblist -- describe la librería compatible dbm que se está usando
dbmclose -- cierra una base de datos dbm
dbmdelete -- borra el valor de una clave de una base de datos dbm
dbmexists -- dice si existe un valor para una clave dada en la base de datos dbm
dbmfetch -- obtiene un valor para una clave desde la base de datos dbm
dbmfirstkey -- obtiene la primera clave de una base de datos dbm
dbminsert -- inserta un valor para una clave en la base de datos dbm
dbmnextkey -- obtiene la siguiente clave de una base de datos dbm
dbmopen -- abre una base de datos dbm
dbmreplace -- sustituye el valor de una clave en la base de datos dbm

Anterior | Inicio | Siguiente
dbase_replace_record | Subir | dblist


dblist

(PHP 3, PHP 4 )

dblist -- describe la librería compatible dbm que se está usando

Descripción

string dblist ( void )

Anterior | Inicio | Siguiente
Funciones dbm | Subir | dbmclose


dbmclose

(PHP 3, PHP 4 )

dbmclose -- cierra una base de datos dbm

Descripción

bool dbmclose ( int identif_dbm)

Desbloquea y cierra la base de datos especificada.

Anterior | Inicio | Siguiente
dblist | Subir | dbmdelete


dbmdelete

(PHP 3, PHP 4 )

dbmdelete -- borra el valor de una clave de una base de datos dbm

Descripción

bool dbmdelete ( int identif_dbm, string clave)

Borra el valor para la clave en la base de datos.

Devuelve FALSE si la clave no existía en la base de datos.

Anterior | Inicio | Siguiente
dbmclose | Subir | dbmexists


dbmexists

(PHP 3, PHP 4 )

dbmexists -- dice si existe un valor para una clave dada en la base de datos dbm

Descripción

bool dbmexists ( int identif_dbm, string clave)

Devuelve TRUE si hay un valor asociado con la clave.

Anterior | Inicio | Siguiente
dbmdelete | Subir | dbmfetch


dbmfetch

(PHP 3, PHP 4 )

dbmfetch -- obtiene un valor para una clave desde la base de datos dbm

Descripción

string dbmfetch ( int identif_dbm, string clave)

Devuelve el valor asociado con la clave.

Anterior | Inicio | Siguiente
dbmexists | Subir | dbmfirstkey


dbmfirstkey

(PHP 3, PHP 4 )

dbmfirstkey -- obtiene la primera clave de una base de datos dbm

Descripción

string dbmfirstkey ( int identif_dbm)

Devuelve la primera clave de la base de datos. Nótese que no se garantiza ningún orden en particular, pues la base de datos se crea utilizando una tabla hash, que no garantiza ordenación alguna.

Anterior | Inicio | Siguiente
dbmfetch | Subir | dbminsert


dbminsert

(PHP 3, PHP 4 )

dbminsert -- inserta un valor para una clave en la base de datos dbm

Descripción

int dbminsert ( int identif_dbm, string clave, string valor)

Añade el valor a la base de datos con la clave especificada.

Devuelve -1 si la base de datos se abrío en modo sólo lectura, 0 si la inserción tuvo éxito y 1 si la clave ya existía (para sustituir el valor, utilice dbmreplace().)

Anterior | Inicio | Siguiente
dbmfirstkey | Subir | dbmnextkey


dbmnextkey

(PHP 3, PHP 4 )

dbmnextkey -- obtiene la siguiente clave de una base de datos dbm

Descripción

string dbmnextkey ( int identif_dbm, string clave)

Devuelve la clave que sigue a clave. Llamando a dbmfirstkey() seguida de llamadas sucesivas a dbmnextkey() se pueden visitar todos los pares clave/valor de la base de datos dbm. Por ejemplo:

Ejemplo 1. Visitanco cada par clave/valor en una base de datos dbm.

$clave = dbmfirstkey($id_dbm);
while ($clave) {
    echo "$clave = " . dbmfetch($id_dbm, $clave) . "\n";
    $clave = dbmnextkey($id_dbm, $clave);
}

Anterior | Inicio | Siguiente
dbminsert | Subir | dbmopen


dbmopen

(PHP 3, PHP 4 )

dbmopen -- abre una base de datos dbm

Descripción

int dbmopen ( string fichero, string indicadores)

El primer argumento es el nombre con sendero completo del archivo dbm que se va a abrir y el segundo es el modo de apertura, que puede ser "r", "n", "c" o "w", que significan sólo lectura, nuevo (implica lectura/escritura y suele truncar una base de datos si ya existía con ese nombre), crear (implica lectura/escritura, pero sin truncar la base de datos) y abrir para lectura/escritura, respectivamente.

Devuelve un identificador que se pasa al resto de funciones dbm si tiene éxito, o FALSE si falla.

Si se utiliza el soporte de ndbm, este creará los archivos fichero.dir y fichero.pag. gdbm sólo utiliza un archivo y lo mismo hace el soporte interno de archivos de texto, mientras que el db de Berkeley crea un archivo fichero.db. Nótese que el PHP hace su propio bloqueo de archivo sobre el que pudiera realizar la propia librería dbm. El PHP no borra los archivos .lck que crea. Los utiliza simplemente como i-nodos fijos en los que hacer el bloqueo. Para más información sobre archivos dbm, vea las páginas man de su Unix o obtenga el gdbm de GNU desde ftp://prep.ai.mit.edu/pub/gnu.

Anterior | Inicio | Siguiente
dbmnextkey | Subir | dbmreplace


dbmreplace

(PHP 3, PHP 4 )

dbmreplace -- sustituye el valor de una clave en la base de datos dbm

Descripción

bool dbmreplace ( int identif_dbm, string clave, string valor)

Sustituye el valor para la clave especificada de la base de datos.

También añadirá la clave a la base de datos si no existía antes.

Anterior | Inicio | Siguiente
dbmopen | Subir | dbx functions


dbx functions

Manual de PHP
Anterior Siguiente

XX. dbx functions

Introducción

The dbx module is a database abstraction layer (db 'X', where 'X' is a supported database). The dbx functions allow you to access all supported databases using a single calling convention. The dbx-functions themselves do not interface directly to the databases, but interface to the modules that are used to support these databases.

Requerimientos

To be able to use a database with the dbx-module, the module must be either linked or loaded into PHP, and the database module must be supported by the dbx-module. Currently, the following databases are supported, but others will follow:

  • FrontBase (available from PHP 4.1.0).

  • Microsoft SQL Server

  • MySQL

  • ODBC

  • PostgreSQL

  • Sybase-CT (available from PHP 4.2.0).

  • Oracle (oci8) (available from PHP 4.3.0).

  • SQLite (cvs only).

Documentation for adding additional database support to dbx can be found at http://www.guidance.nl/php/dbx/doc/.

Instalación

In order to have these functions available, you must compile PHP with dbx support by using the --enable-dbx option and all options for the databases that will be used, e.g. for MySQL you must also specify --with-mysql=[DIR]. To get other supported databases to work with the dbx-module refer to their specific documentation.

Configuración en tiempo de ejecución

El comportamiento de estas funciones está afectado por los valores definidos en php.ini.

Tabla 1. DBX Configuration Options

Name | Default | Changeable
dbx.colnames_case | "unchanged" | PHP_INI_SYSTEM
For further details and definition of the PHP_INI_* constants see ini_set().

Nota: This ini-option is available available from PHP 4.3.0.

A continuación se presenta una corta explicación de las directivas de configuración

dbx.colnames_case string

Columns names can be returned "unchanged" or converted to "uppercase" or "lowercase". This directive can be overridden with a flag to dbx_query().

Tipos de recursos

There are two resource types used in the dbx module. The first one is the link-object for a database connection, the second a result-object which holds the result of a query.

Constantes predefinidas

Estas constantes están definidas por esta extensión y estarán disponibles solamente cuando la extensión ha sido o bien compilada dentro de PHP o grabada dinámicamente en tiempo de ejecución.

DBX_MYSQL (integer)

DBX_ODBC (integer)

DBX_PGSQL (integer)

DBX_MSSQL (integer)

DBX_FBSQL (integer)

DBX_OCI8 (integer) (available from PHP 4.3.0)

DBX_SYBASECT (integer)

DBX_SQLITE (integer) (cvs only)

DBX_PERSISTENT (integer)

DBX_RESULT_INFO (integer)

DBX_RESULT_INDEX (integer)

DBX_RESULT_ASSOC (integer)

DBX_RESULT_UNBUFFERED (integer) (CVS only)

DBX_COLNAMES_UNCHANGED (integer) (available from PHP 4.3.0)

DBX_COLNAMES_UPPERCASE (integer) (available from PHP 4.3.0)

DBX_COLNAMES_LOWERCASE (integer) (available from PHP 4.3.0)

DBX_CMP_NATIVE (integer)

DBX_CMP_TEXT (integer)

DBX_CMP_NUMBER (integer)

DBX_CMP_ASC (integer)

DBX_CMP_DESC (integer)

Tabla de contenidos
dbx_close -- Close an open connection/database
dbx_compare -- Compare two rows for sorting purposes
dbx_connect -- Open a connection/database
dbx_error -- Report the error message of the latest function call in the module (not just in the connection)
dbx_escape_string -- Escape a string so it can safely be used in an sql-statement.
dbx_fetch_row -- Fetches rows from a query-result that had the DBX_RESULT_UNBUFFERED flag set
dbx_query -- Send a query and fetch all results (if any)
dbx_sort -- Sort a result from a dbx_query by a custom sort function

Anterior | Inicio | Siguiente
dbmreplace | Subir | dbx_close


dbx_close

(PHP 4 >= 4.0.6)

dbx_close -- Close an open connection/database

Description

bool dbx_close ( object link_identifier)

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Ejemplo 1. dbx_close() example

<?php
$link = dbx_connect(DBX_MYSQL, "localhost", "db", "username", "password")
    or die ("Could not connect");

echo "Connected successfully";
dbx_close($link);
?>

Nota: Always refer to the module-specific documentation as well.

See also dbx_connect().

Anterior | Inicio | Siguiente
dbx functions | Subir | dbx_compare


dbx_compare

(PHP 4 >= 4.1.0)

dbx_compare -- Compare two rows for sorting purposes

Description

int dbx_compare ( array row_a, array row_b, string column_key [, int flags])

dbx_compare() returns 0 if the row_a[$column_key] is equal to row_b[$column_key], and 1 or -1 if the former is greater or is smaller than the latter one, respectively, or vice versa if the flag is set to DBX_CMP_DESC. dbx_compare() is a helper function for dbx_sort() to ease the make and use of the custom sorting function.

The flags can be set to specify comparison direction:

  • DBX_CMP_ASC - ascending order

  • DBX_CMP_DESC - descending order

and the preferred comparison type:

  • DBX_CMP_NATIVE - no type conversion

  • DBX_CMP_TEXT - compare items as strings

  • DBX_CMP_NUMBER - compare items numerically

One of the direction and one of the type constant can be combined with bitwise OR operator (|). The default value for the flags parameter is DBX_CMP_ASC | DBX_CMP_NATIVE.

Ejemplo 1. dbx_compare() example

<?php
function user_re_order ($a, $b) {
    $rv = dbx_compare ($a, $b, "parentid", DBX_CMP_DESC);
    if ( !$rv ) {
        $rv = dbx_compare ($a, $b, "id", DBX_CMP_NUMBER);
    }
    return $rv;
}

$link   = dbx_connect (DBX_ODBC, "", "db", "username", "password")
    or die ("Could not connect");

$result = dbx_query ($link, "SELECT id, parentid, description FROM table ORDER BY id");
    // data in $result is now ordered by id

dbx_sort ($result, "user_re_order");
    // date in $result is now ordered by parentid (descending), then by id

dbx_close ($link);
?>

See also dbx_sort().

Anterior | Inicio | Siguiente
dbx_close | Subir | dbx_connect


dbx_connect

(PHP 4 >= 4.0.6)

dbx_connect -- Open a connection/database

Description

object dbx_connect ( mixed module, string host, string database, string username, string password [, int persistent])

dbx_connect() returns an object on success, FALSE on error. If a connection has been made but the database could not be selected, the connection is closed and FALSE is returned. The persistent parameter can be set to DBX_PERSISTENT, if so, a persistent connection will be created.

The module parameter can be either a string or a constant, though the latter form is preferred. The possible values are given below, but keep in mind that they only work if the module is actually loaded.

  • DBX_MYSQL or "mysql"

  • DBX_ODBC or "odbc"

  • DBX_PGSQL or "pgsql"

  • DBX_MSSQL or "mssql"

  • DBX_FBSQL or "fbsql" (available from PHP 4.1.0)

  • DBX_SYBASECT or "sybase_ct" (available from PHP 4.2.0)

  • DBX_OCI8 or "oci8" (available from PHP 4.3.0)

  • DBX_SQLITE or "sqlite" (cvs only)

The host, database, username and password parameters are expected, but not always used depending on the connect functions for the abstracted module.

The returned object has three properties:

database

It is the name of the currently selected database.

handle

It is a valid handle for the connected database, and as such it can be used in module-specific functions (if required).

<?php
$link = dbx_connect (DBX_MYSQL, "localhost", "db", "username", "password");
mysql_close ($link->handle); // dbx_close($link) would be better here
?>

module

It is used internally by dbx only, and is actually the module number mentioned above.

Ejemplo 1. dbx_connect() example

<?php
$link = dbx_connect (DBX_ODBC, "", "db", "username", "password", DBX_PERSISTENT)
    or die ("Could not connect");

print ("Connected successfully");
dbx_close ($link);
?>

Nota: Always refer to the module-specific documentation as well.

See also dbx_close().

Anterior | Inicio | Siguiente
dbx_compare | Subir | dbx_error


dbx_error

(PHP 4 >= 4.0.6)

dbx_error -- Report the error message of the latest function call in the module (not just in the connection)

Description

string dbx_error ( object link_identifier)

dbx_error() returns a string containing the error message from the last function call of the abstracted module (e.g. mysql module). If there are multiple connections in the same module, just the last error is given. If there are connections on different modules, the latest error is returned for the module specified by the link_identifier parameter.

Ejemplo 1. dbx_error() example

<?php
$link   = dbx_connect(DBX_MYSQL, "localhost", "db", "username", "password")
    or die ("Could not connect");

$result = dbx_query($link, "select id from non_existing_table");
if ( $result == 0 ) {
    echo dbx_error ($link);
}
dbx_close ($link);
?>

Nota: Always refer to the module-specific documentation as well.

The error message for Microsoft SQL Server is actually the result of the mssql_get_last_message() function.

The error message for Oracle (oci8) is not implemented (yet).

Anterior | Inicio | Siguiente
dbx_connect | Subir | dbx_escape_string


dbx_escape_string

(PHP 4 >= 4.3.0)

dbx_escape_string -- Escape a string so it can safely be used in an sql-statement.

Description

string dbx_escape_string ( object link_identifier, string text)

dbx_escape_string() returns the text, escaped where necessary (such as quotes, backslashes etc). It returns NULL on error.

Ejemplo 1. dbx_escape_string() example

<?php
$link   = dbx_connect(DBX_MYSQL, "localhost", "db", "username", "password")
    or die ("Could not connect");

$text = dbx_escape_string($link, "It\'s quoted and backslashed (\\).");
$result = dbx_query($link, "insert into tbl (txt) values ('".$text."')");
if ( $result == 0 ) {
    echo dbx_error ($link);
}
dbx_close ($link);
?>

See also dbx_query().

Anterior | Inicio | Siguiente
dbx_error | Subir | dbx_fetch_row


dbx_fetch_row

(no version information, might be only in CVS)

dbx_fetch_row -- Fetches rows from a query-result that had the DBX_RESULT_UNBUFFERED flag set

Description

object dbx_fetch_row ( object result_identifier)

dbx_fetch_row() returns a row on success, and 0 on failure (e.g. when no more rows are available). When the DBX_RESULT_UNBUFFERED is not set in the query, dbx_fetch_row() will fail as all rows have already been fetched into the results data property.

As a side effect, the rows property of the query-result object is incremented for each successful call to dbx_fetch_row().

Ejemplo 1. How to handle the returned value

<?php
$result = dbx_query ($link, 'SELECT id, parentid, description FROM table', DBX_RESULT_UNBUFFERED);

echo "<table>\n";
while ( $row = dbx_fetch_row($result) ) {
    echo "<tr>\n";
    foreach ( $row as $field ) {
        echo "<td>$field</td>";
    }
    echo "</tr>\n";
}
echo "</table>\n";
?>

The result_identifier parameter is the result object returned by a call to dbx_query().

The returned array contains the same information as any row would have in the dbx_query result data property, including columns accessible by index or fieldname when the flags for dbx_guery were set that way.

See also dbx_query().

Anterior | Inicio | Siguiente
dbx_escape_string | Subir | dbx_query


dbx_query

(PHP 4 >= 4.0.6)

dbx_query -- Send a query and fetch all results (if any)

Description

object dbx_query ( object link_identifier, string sql_statement [, int flags])

dbx_query() returns an object or 1 on success, and 0 on failure. The result object is returned only if the query given in sql_statement produces a result set (i.e. a SELECT query, even if the result set is empty).

Ejemplo 1. How to handle the returned value

<?php
$link   = dbx_connect(DBX_ODBC, "", "db", "username", "password")
    or die("Could not connect");

$result = dbx_query($link, 'SELECT id, parentid, description FROM table');

if ( is_object($result) ) {
    // ... do some stuff here, see detailed examples below ...
    // first, print out field names and types
    // then, draw a table filled with the returned field values
}
else {
    exit("Query failed");
}

dbx_close($link);
?>

The flags parameter is used to control the amount of information that is returned. It may be any combination of the following constants with the bitwise OR operator (|). The DBX_COLNAMES_* flags override the dbx.colnames_case setting from php.ini.

DBX_RESULT_INDEX

It is always set, that is, the returned object has a data property which is a 2 dimensional array indexed numerically. For example, in the expression data[2][3] 2 stands for the row (or record) number and 3 stands for the column (or field) number. The first row and column are indexed at 0.

If DBX_RESULT_ASSOC is also specified, the returning object contains the information related to DBX_RESULT_INFO too, even if it was not specified.

DBX_RESULT_INFO

It provides info about columns, such as field names and field types.

DBX_RESULT_ASSOC

It effects that the field values can be accessed with the respective column names used as keys to the returned object's data property.

Associated results are actually references to the numerically indexed data, so modifying data[0][0] causes that data[0]['field_name_for_first_column'] is modified as well.

DBX_RESULT_UNBUFFERED (CVS only)

This flag will not create the data property, and the rows property will initially be 0. Use this flag for large datasets, and use dbx_fetch_row() to retrieve the results row by row.

The dbx_fetch_row() function will return rows that are conformant to the flags set with this query. Incidentally, it will also update the rows each time it is called.

DBX_COLNAMES_UNCHANGED (available from PHP 4.3.0)

The case of the returned column names will not be changed.

DBX_COLNAMES_UPPERCASE (available from PHP 4.3.0)

The case of the returned column names will be changed to uppercase.

DBX_COLNAMES_LOWERCASE (available from PHP 4.3.0)

The case of the returned column names will be changed to lowercase.

Note that DBX_RESULT_INDEX is always used, regardless of the actual value of flags parameter. This means that only the following combinations are effective:

  • DBX_RESULT_INDEX

  • DBX_RESULT_INDEX | DBX_RESULT_INFO

  • DBX_RESULT_INDEX | DBX_RESULT_INFO | DBX_RESULT_ASSOC - this is the default, if flags is not specified.

The returned object has four or five properties depending on flags:

handle

It is a valid handle for the connected database, and as such it can be used in module specific functions (if required).

<?php
$result = dbx_query ($link, "SELECT id FROM table");
mysql_field_len ($result->handle, 0);
?>

cols and rows

These contain the number of columns (or fields) and rows (or records) respectively.

<?php
$result = dbx_query ($link, 'SELECT id FROM table');
echo $result->rows; // number of records
echo $result->cols; // number of fields
?>

info (optional)

It is returned only if either DBX_RESULT_INFO or DBX_RESULT_ASSOC is specified in the flags parameter. It is a 2 dimensional array, that has two named rows (name and type) to retrieve column information.

Ejemplo 2. lists each field's name and type

<?php
$result = dbx_query ($link, 'SELECT id FROM table',
                     DBX_RESULT_INDEX | DBX_RESULT_INFO);

for ($i = 0; $i < $result->cols; $i++ ) {
    echo $result->info['name'][$i] . "\n";
    echo $result->info['type'][$i] . "\n";
}
?>
data

This property contains the actual resulting data, possibly associated with column names as well depending on flags. If DBX_RESULT_ASSOC is set, it is possible to use $result->data[2]["field_name"].

Ejemplo 3. outputs the content of data property into HTML table

<?php
$result = dbx_query ($link, 'SELECT id, parentid, description FROM table');

echo "<table>\n";
foreach ( $result->data as $row ) {
    echo "<tr>\n";
    foreach ( $row as $field ) {
        echo "<td>$field</td>";
    }
    echo "</tr>\n";
}
echo "</table>\n";
?>

Ejemplo 4. How to handle UNBUFFERED queries

$result = dbx_query ($link, 'SELECT id, parentid, description FROM table', DBX_RESULT_UNBUFFERED);

echo "<table>\n";
while ( $row = dbx_fetch_row($result) ) {
    echo "<tr>\n";
    foreach ( $row as $field ) {
        echo "<td>$field</td>";
    }
    echo "</tr>\n";
}
echo "</table>\n";

Nota: Always refer to the module-specific documentation as well.

Column names for queries on an Oracle database are returned in lowercase.

See also dbx_escape_string(),
dbx_fetch_row() and
dbx_connect().

Anterior | Inicio | Siguiente
dbx_fetch_row | Subir | dbx_sort


dbx_sort

(PHP 4 >= 4.0.6)

dbx_sort -- Sort a result from a dbx_query by a custom sort function

Description

bool dbx_sort ( object result, string user_compare_function)

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Nota: It is always better to use ORDER BY SQL clause instead of dbx_sort(), if possible.

Ejemplo 1. dbx_sort() example

<?php
function user_re_order ($a, $b) {
    $rv = dbx_compare ($a, $b, "parentid", DBX_CMP_DESC);
    if ( !$rv ) {
        $rv = dbx_compare ($a, $b, "id", DBX_CMP_NUMBER);
    }
    return $rv;
}

$link   = dbx_connect (DBX_ODBC, "", "db", "username", "password")
    or die ("Could not connect");

$result = dbx_query ($link, "SELECT id, parentid, description FROM tbl ORDER BY id");
    // data in $result is now ordered by id

dbx_sort ($result, "user_re_order");
    // data in $result is now ordered by parentid (descending), then by id

dbx_close ($link);
?>

See also dbx_compare().

Anterior | Inicio | Siguiente
dbx_query | Subir | DB++ Functions


DB++ Functions

Manual de PHP
Anterior Siguiente

XXI. DB++ Functions

Aviso

Esta extensión es EXPERIMENTAL. Esto significa que el comportamiento de esta extensión, los nombre de sus funciones y en definitiva TODO lo documentado sobre esta extensión, puede cambiar en una futura versión de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Introducción

db++, made by the German company Concept asa, is a relational database system with high performance and low memory and disk usage in mind. While providing SQL as an additional language interface, it is not really a SQL database in the first place but provides its own AQL query language which is much more influenced by the relational algebra then SQL is.

Concept asa always had an interest in supporting open source languages, db++ has had Perl and Tcl call interfaces for years now and uses Tcl as its internal stored procedure language.

Requerimientos

This extension relies on external client libraries so you have to have a db++ client installed on the system you want to use this extension on.

Concept asa provides db++ Demo versions and documentation for Linux, some other UNIX versions. There is also a Windows version of db++, but this extension doesn't support it (yet).

Instalación

In order to build this extension yourself you need the db++ client libraries and header files to be installed on your system (these are included in the db++ installation archives by default). You have to run configure with option --with-dbplus to build this extension.

configure looks for the client libraries and header files under the default paths /usr/dbplus, /usr/local/dbplus and /opt/dblus. If you have installed db++ in a different place you have add the installation path to the configure option like this: --with-dbplus=/your/installation/path.

Configuración en tiempo de ejecución

Esta extensión no tiene directivas de configuración en php.ini.

Tipos de recursos

dbplus_relation

Most db++ functions operate on or return dbplus_relation resources. A dbplus_relation is a handle to a stored relation or a relation generated as the result of a query.

Constantes predefinidas

Estas constantes están definidas por esta extensión y estarán disponibles solamente cuando la extensión ha sido o bien compilada dentro de PHP o grabada dinámicamente en tiempo de ejecución.

db++ error codes

Tabla 1. DB++ Error Codes

PHP Constant | db++ constant | meaning
DBPLUS_ERR_NOERR (integer) | ERR_NOERR | Null error condition
DBPLUS_ERR_DUPLICATE (integer) | ERR_DUPLICATE | Tried to insert a duplicate tuple
DBPLUS_ERR_EOSCAN (integer) | ERR_EOSCAN | End of scan from rget()
DBPLUS_ERR_EMPTY (integer) | ERR_EMPTY | Relation is empty (server)
DBPLUS_ERR_CLOSE (integer) | ERR_CLOSE | The server can't close
DBPLUS_ERR_WLOCKED (integer) | ERR_WLOCKED | The record is write locked
DBPLUS_ERR_LOCKED (integer) | ERR_LOCKED | Relation was already locked
DBPLUS_ERR_NOLOCK (integer) | ERR_NOLOCK | Relation cannot be locked
DBPLUS_ERR_READ (integer) | ERR_READ | Read error on relation
DBPLUS_ERR_WRITE (integer) | ERR_WRITE | Write error on relation
DBPLUS_ERR_CREATE (integer) | ERR_CREATE | Create() system call failed
DBPLUS_ERR_LSEEK (integer) | ERR_LSEEK | Lseek() system call failed
DBPLUS_ERR_LENGTH (integer) | ERR_LENGTH | Tuple exceeds maximum length
DBPLUS_ERR_OPEN (integer) | ERR_OPEN | Open() system call failed
DBPLUS_ERR_WOPEN (integer) | ERR_WOPEN | Relation already opened for writing
DBPLUS_ERR_MAGIC (integer) | ERR_MAGIC | File is not a relation
DBPLUS_ERR_VERSION (integer) | ERR_VERSION | File is a very old relation
DBPLUS_ERR_PGSIZE (integer) | ERR_PGSIZE | Relation uses a different page size
DBPLUS_ERR_CRC (integer) | ERR_CRC | Invalid crc in the superpage
DBPLUS_ERR_PIPE (integer) | ERR_PIPE | Piped relation requires lseek()
DBPLUS_ERR_NIDX (integer) | ERR_NIDX | Too many secondary indices
DBPLUS_ERR_MALLOC (integer) | ERR_MALLOC | Malloc() call failed
DBPLUS_ERR_NUSERS (integer) | ERR_NUSERS | Error use of max users
DBPLUS_ERR_PREEXIT (integer) | ERR_PREEXIT | Caused by invalid usage
DBPLUS_ERR_ONTRAP (integer) | ERR_ONTRAP | Caused by a signal
DBPLUS_ERR_PREPROC (integer) | ERR_PREPROC | Error in the preprocessor
DBPLUS_ERR_DBPARSE (integer) | ERR_DBPARSE | Error in the parser
DBPLUS_ERR_DBRUNERR (integer) | ERR_DBRUNERR | Run error in db
DBPLUS_ERR_DBPREEXIT (integer) | ERR_DBPREEXIT | Exit condition caused by prexit() * procedure
DBPLUS_ERR_WAIT (integer) | ERR_WAIT | Wait a little (Simple only)
DBPLUS_ERR_CORRUPT_TUPLE (integer) | ERR_CORRUPT_TUPLE | A client sent a corrupt tuple
DBPLUS_ERR_WARNING0 (integer) | ERR_WARNING0 | The Simple routines encountered a non fatal error which was corrected
DBPLUS_ERR_PANIC (integer) | ERR_PANIC | The server should not really die but after a disaster send ERR_PANIC to all its clients
DBPLUS_ERR_FIFO (integer) | ERR_FIFO | Can't create a fifo
DBPLUS_ERR_PERM (integer) | ERR_PERM | Permission denied
DBPLUS_ERR_TCL (integer) | ERR_TCL | TCL_error
DBPLUS_ERR_RESTRICTED (integer) | ERR_RESTRICTED | Only two users
DBPLUS_ERR_USER (integer) | ERR_USER | An error in the use of the library by an application programmer
DBPLUS_ERR_UNKNOWN (integer) | ERR_UNKNOWN |

Tabla de contenidos
dbplus_add -- Add a tuple to a relation
dbplus_aql -- Perform AQL query
dbplus_chdir -- Get/Set database virtual current directory
dbplus_close -- Close a relation
dbplus_curr -- Get current tuple from relation
dbplus_errcode -- Get error string for given errorcode or last error
dbplus_errno -- Get error code for last operation
dbplus_find -- Set a constraint on a relation
dbplus_first -- Get first tuple from relation
dbplus_flush -- Flush all changes made on a relation
dbplus_freealllocks -- Free all locks held by this client
dbplus_freelock -- Release write lock on tuple
dbplus_freerlocks -- Free all tuple locks on given relation
dbplus_getlock -- Get a write lock on a tuple
dbplus_getunique -- Get an id number unique to a relation
dbplus_info -- ???
dbplus_last -- Get last tuple from relation
dbplus_lockrel -- Request write lock on relation
dbplus_next -- Get next tuple from relation
dbplus_open -- Open relation file
dbplus_prev -- Get previous tuple from relation
dbplus_rchperm -- Change relation permissions
dbplus_rcreate -- Creates a new DB++ relation
dbplus_rcrtexact -- Creates an exact but empty copy of a relation including indices
dbplus_rcrtlike -- Creates an empty copy of a relation with default indices
dbplus_resolve -- Resolve host information for relation
dbplus_restorepos -- ???
dbplus_rkeys -- Specify new primary key for a relation
dbplus_ropen -- Open relation file local
dbplus_rquery -- Perform local (raw) AQL query
dbplus_rrename -- Rename a relation
dbplus_rsecindex -- Create a new secondary index for a relation
dbplus_runlink -- Remove relation from filesystem
dbplus_rzap -- Remove all tuples from relation
dbplus_savepos -- ???
dbplus_setindex -- ???
dbplus_setindexbynumber -- ???
dbplus_sql -- Perform SQL query
dbplus_tcl -- Execute TCL code on server side
dbplus_tremove -- Remove tuple and return new current tuple
dbplus_undo -- ???
dbplus_undoprepare -- ???
dbplus_unlockrel -- Give up write lock on relation
dbplus_unselect -- Remove a constraint from relation
dbplus_update -- Update specified tuple in relation
dbplus_xlockrel -- Request exclusive lock on relation
dbplus_xunlockrel -- Free exclusive lock on relation

Anterior | Inicio | Siguiente
dbx_sort | Subir | dbplus_add


dbplus_add

(4.1.0 - 4.2.3 only)

dbplus_add -- Add a tuple to a relation

Description

int dbplus_add ( resource relation, array tuple)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

This function will add a tuple to a relation. The tuple data is an array of attribute/value pairs to be inserted into the given relation. After successful execution the tuple array will contain the complete data of the newly created tuple, including all implicitly set domain fields like sequences.

The function will return zero (aka. DBPLUS_ERR_NOERR) on success or a db++ error code on failure. See dbplus_errcode() or the introduction to this chapter for more information on db++ error codes.

Anterior | Inicio | Siguiente
DB++ Functions | Subir | dbplus_aql


dbplus_aql

(4.1.0 - 4.2.3 only)

dbplus_aql -- Perform AQL query

Description

resource dbplus_aql ( string query [, string server [, string dbpath]])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

dbplus_aql() will execute an AQL query on the given server and dbpath.

On success it will return a relation handle. The result data may be fetched from this relation by calling dbplus_next() and dbplus_current(). Other relation access functions will not work on a result relation.

Further information on the AQL A... Query Language is provided in the original db++ manual.

Anterior | Inicio | Siguiente
dbplus_add | Subir | dbplus_chdir


dbplus_chdir

(4.1.0 - 4.2.3 only)

dbplus_chdir -- Get/Set database virtual current directory

Description

string dbplus_chdir ( [string newdir])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

dbplus_chdir() will change the virtual current directory where relation files will be looked for by dbplus_open(). dbplus_chdir() will return the absolute path of the current directory. Calling dbplus_chdir() without giving any newdir may be used to query the current working directory.

Anterior | Inicio | Siguiente
dbplus_aql | Subir | dbplus_close


dbplus_close

(4.1.0 - 4.2.3 only)

dbplus_close -- Close a relation

Description

int dbplus_close ( resource relation)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Calling dbplus_close() will close a relation previously opened by dbplus_open().

Anterior | Inicio | Siguiente
dbplus_chdir | Subir | dbplus_curr


dbplus_curr

(4.1.0 - 4.2.3 only)

dbplus_curr -- Get current tuple from relation

Description

int dbplus_curr ( resource relation, array tuple)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

dbplus_curr() will read the data for the current tuple for the given relation and will pass it back as an associative array in tuple.

The function will return zero (aka. DBPLUS_ERR_NOERR) on success or a db++ error code on failure. See dbplus_errcode() or the introduction to this chapter for more information on db++ error codes.

See also dbplus_first(),
dbplus_prev(),
dbplus_next(), and
dbplus_last().

Anterior | Inicio | Siguiente
dbplus_close | Subir | dbplus_errcode


dbplus_errcode

(4.1.0 - 4.2.3 only)

dbplus_errcode -- Get error string for given errorcode or last error

Description

string dbplus_errcode ( int errno)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

dbplus_errcode() returns a cleartext error string for the error code passed as errno of for the result code of the last db++ operation if no parameter is given.

Anterior | Inicio | Siguiente
dbplus_curr | Subir | dbplus_errno


dbplus_errno

(4.1.0 - 4.2.3 only)

dbplus_errno -- Get error code for last operation

Description

int dbplus_errno ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

dbplus_errno() will return the error code returned by the last db++ operation.

See also dbplus_errcode().

Anterior | Inicio | Siguiente
dbplus_errcode | Subir | dbplus_find


dbplus_find

(4.1.0 - 4.2.3 only)

dbplus_find -- Set a constraint on a relation

Description

int dbplus_find ( resource relation, array constraints, mixed tuple)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

dbplus_find() will place a constraint on the given relation. Further calls to functions like dbplus_curr() or dbplus_next() will only return tuples matching the given constraints.

Constraints are triplets of strings containing of a domain name, a comparison operator and a comparison value. The constraints parameter array may consist of a collection of string arrays, each of which contains a domain, an operator and a value, or of a single string array containing a multiple of three elements.

The comparison operator may be one of the following strings: '==', '>', '>=', '<', '<=', '!=', '~' for a regular expression match and 'BAND' or 'BOR' for bitwise operations.

See also dbplus_unselect().

Anterior | Inicio | Siguiente
dbplus_errno | Subir | dbplus_first


dbplus_first

(4.1.0 - 4.2.3 only)

dbplus_first -- Get first tuple from relation

Description

int dbplus_first ( resource relation, array tuple)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

dbplus_curr() will read the data for the first tuple for the given relation, make it the current tuple and pass it back as an associative array in tuple.

The function will return zero (aka. DBPLUS_ERR_NOERR) on success or a db++ error code on failure. See dbplus_errcode() or the introduction to this chapter for more information on db++ error codes.

See also dbplus_curr(),
dbplus_prev(),
dbplus_next(), and
dbplus_last().

Anterior | Inicio | Siguiente
dbplus_find | Subir | dbplus_flush


dbplus_flush

(4.1.0 - 4.2.3 only)

dbplus_flush -- Flush all changes made on a relation

Description

int dbplus_flush ( resource relation)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

dbplus_flush() will write all changes applied to relation since the last flush to disk.

The function will return zero (aka. DBPLUS_ERR_NOERR) on success or a db++ error code on failure. See dbplus_errcode() or the introduction to this chapter for more information on db++ error codes.

Anterior | Inicio | Siguiente
dbplus_first | Subir | dbplus_freealllocks


dbplus_freealllocks

(4.1.0 - 4.2.3 only)

dbplus_freealllocks -- Free all locks held by this client

Description

int dbplus_freealllocks ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

dbplus_freealllocks() will free all tuple locks held by this client.

See also dbplus_getlock(),
dbplus_freelock(), and
dbplus_freerlocks().

Anterior | Inicio | Siguiente
dbplus_flush | Subir | dbplus_freelock


dbplus_freelock

(4.1.0 - 4.2.3 only)

dbplus_freelock -- Release write lock on tuple

Description

int dbplus_freelock ( resource relation, string tname)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

dbplus_freelock() will release a write lock on the given tuple previously obtained by dbplus_getlock().

See also dbplus_getlock(),
dbplus_freerlocks(), and
dbplus_freealllocks().

Anterior | Inicio | Siguiente
dbplus_freealllocks | Subir | dbplus_freerlocks


dbplus_freerlocks

(4.1.0 - 4.2.3 only)

dbplus_freerlocks -- Free all tuple locks on given relation

Description

int dbplus_freerlocks ( resource relation)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

dbplus_freerlocks() will free all tuple locks held on the given relation.

See also dbplus_getlock(),
dbplus_freelock(), and
dbplus_freealllocks().

Anterior | Inicio | Siguiente
dbplus_freelock | Subir | dbplus_getlock


dbplus_getlock

(4.1.0 - 4.2.3 only)

dbplus_getlock -- Get a write lock on a tuple

Description

int dbplus_getlock ( resource relation, string tname)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

dbplus_getlock() will request a write lock on the specified tuple. It will return zero on success or a non-zero error code, especially DBPLUS_ERR_WLOCKED, on failure.

See also dbplus_freelock(),
dbplus_freerlocks(), and
dbplus_freealllocks().

Anterior | Inicio | Siguiente
dbplus_freerlocks | Subir | dbplus_getunique


dbplus_getunique

(4.1.0 - 4.2.3 only)

dbplus_getunique -- Get an id number unique to a relation

Description

int dbplus_getunique ( resource relation, int uniqueid)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

dbplus_getunique() will obtain a number guaranteed to be unique for the given relation and will pass it back in the variable given as uniqueid.

The function will return zero (aka. DBPLUS_ERR_NOERR) on success or a db++ error code on failure. See dbplus_errcode() or the introduction to this chapter for more information on db++ error codes.

Anterior | Inicio | Siguiente
dbplus_getlock | Subir | dbplus_info


dbplus_info

(4.1.0 - 4.2.3 only)

dbplus_info -- ???

Description

int dbplus_info ( resource relation, string key, array )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Not implemented yet.

Anterior | Inicio | Siguiente
dbplus_getunique | Subir | dbplus_last


dbplus_last

(4.1.0 - 4.2.3 only)

dbplus_last -- Get last tuple from relation

Description

int dbplus_last ( resource relation, array tuple)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

dbplus_curr() will read the data for the last tuple for the given relation, make it the current tuple and pass it back as an associative array in tuple.

The function will return zero (aka. DBPLUS_ERR_NOERR) on success or a db++ error code on failure. See dbplus_errcode() or the introduction to this chapter for more information on db++ error codes.

See also dbplus_first(),
dbplus_curr(),
dbplus_prev(), and
dbplus_next().

Anterior | Inicio | Siguiente
dbplus_info | Subir | dbplus_lockrel


dbplus_lockrel

(no version information, might be only in CVS)

dbplus_lockrel -- Request write lock on relation

Description

int dbplus_lockrel ( resource relation)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

dbplus_lockrel() will request a write lock on the given relation. Other clients may still query the relation, but can't alter it while it is locked.

Anterior | Inicio | Siguiente
dbplus_last | Subir | dbplus_next


dbplus_next

(4.1.0 - 4.2.3 only)

dbplus_next -- Get next tuple from relation

Description

int dbplus_next ( resource relation, array )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

dbplus_curr() will read the data for the next tuple for the given relation, will make it the current tuple and will pass it back as an associative array in tuple.

The function will return zero (aka. DBPLUS_ERR_NOERR) on success or a db++ error code on failure. See dbplus_errcode() or the introduction to this chapter for more information on db++ error codes.

See also dbplus_first(),
dbplus_curr(),
dbplus_prev(), and
dbplus_last().

Anterior | Inicio | Siguiente
dbplus_lockrel | Subir | dbplus_open


dbplus_open

(4.1.0 - 4.2.3 only)

dbplus_open -- Open relation file

Description

resource dbplus_open ( string name)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

The relation file name will be opened. name can be either a file name or a relative or absolute path name. This will be mapped in any case to an absolute relation file path on a specific host machine and server.

On success a relation file resource (cursor) is returned which must be used in any subsequent commands referencing the relation. Failure leads to a zero return value, the actual error code may be asked for by calling dbplus_errno().

Anterior | Inicio | Siguiente
dbplus_next | Subir | dbplus_prev


dbplus_prev

(4.1.0 - 4.2.3 only)

dbplus_prev -- Get previous tuple from relation

Description

int dbplus_prev ( resource relation, array tuple)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

dbplus_curr() will read the data for the next tuple for the given relation, will make it the current tuple and will pass it back as an associative array in tuple.

The function will return zero (aka. DBPLUS_ERR_NOERR) on success or a db++ error code on failure. See dbplus_errcode() or the introduction to this chapter for more information on db++ error codes.

See also dbplus_first(),
dbplus_curr(),
dbplus_next(), and
dbplus_last().

Anterior | Inicio | Siguiente
dbplus_open | Subir | dbplus_rchperm


dbplus_rchperm

(4.1.0 - 4.2.3 only)

dbplus_rchperm -- Change relation permissions

Description

int dbplus_rchperm ( resource relation, int mask, string user, string group)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

dbplus_rchperm() will change access permissions as specified by mask, user and group. The values for these are operating system specific.

Anterior | Inicio | Siguiente
dbplus_prev | Subir | dbplus_rcreate


dbplus_rcreate

(4.1.0 - 4.2.3 only)

dbplus_rcreate -- Creates a new DB++ relation

Description

resource dbplus_rcreate ( string name, mixed domlist [, bool overwrite])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

dbplus_rcreate() will create a new relation named name. An existing relation by the same name will only be overwritten if the relation is currently not in use and overwrite is set to TRUE.

domlist should contain the domain specification for the new relation within an array of domain description strings. ( dbplus_rcreate() will also accept a string with space delimited domain description strings, but it is recommended to use an array). A domain description string consists of a domain name unique to this relation, a slash and a type specification character. See the db++ documentation, especially the dbcreate(1) manpage, for a description of available type specifiers and their meanings.

Anterior | Inicio | Siguiente
dbplus_rchperm | Subir | dbplus_rcrtexact


dbplus_rcrtexact

(4.1.0 - 4.2.3 only)

dbplus_rcrtexact -- Creates an exact but empty copy of a relation including indices

Description

resource dbplus_rcrtexact ( string name, resource relation, bool overwrite)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

dbplus_rcrtexact() will create an exact but empty copy of the given relation under a new name. An existing relation by the same name will only be overwritten if overwrite is TRUE and no other process is currently using the relation.

Anterior | Inicio | Siguiente
dbplus_rcreate | Subir | dbplus_rcrtlike


dbplus_rcrtlike

(4.1.0 - 4.2.3 only)

dbplus_rcrtlike -- Creates an empty copy of a relation with default indices

Description

resource dbplus_rcrtlike ( string name, resource relation, int flag)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

dbplus_rcrtexact() will create an empty copy of the given relation under a new name, but with default indices. An existing relation by the same name will only be overwritten if overwrite is TRUE and no other process is currently using the relation.

Anterior | Inicio | Siguiente
dbplus_rcrtexact | Subir | dbplus_resolve


dbplus_resolve

(4.1.0 - 4.2.3 only)

dbplus_resolve -- Resolve host information for relation

Description

int dbplus_resolve ( string relation_name)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

dbplus_resolve() will try to resolve the given relation_name and find out internal server id, real hostname and the database path on this host. The function will return an array containing these values under the keys 'sid', 'host' and 'host_path' or FALSE on error.

See also dbplus_tcl().

Anterior | Inicio | Siguiente
dbplus_rcrtlike | Subir | dbplus_restorepos


dbplus_restorepos

(4.1.0 - 4.2.3 only)

dbplus_restorepos -- ???

Description

int dbplus_restorepos ( resource relation, array tuple)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Not implemented yet.

Anterior | Inicio | Siguiente
dbplus_resolve | Subir | dbplus_rkeys


dbplus_rkeys

(4.1.0 - 4.2.3 only)

dbplus_rkeys -- Specify new primary key for a relation

Description

resource dbplus_rkeys ( resource relation, mixed domlist)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

dbplus_rkeys() will replace the current primary key for relation with the combination of domains specified by domlist.

domlist may be passed as a single domain name string or as an array of domain names.

Anterior | Inicio | Siguiente
dbplus_restorepos | Subir | dbplus_ropen


dbplus_ropen

(4.1.0 - 4.2.3 only)

dbplus_ropen -- Open relation file local

Description

resource dbplus_ropen ( string name)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

dbplus_ropen() will open the relation file locally for quick access without any client/server overhead. Access is read only and only dbplus_current() and dbplus_next() may be applied to the returned relation.

Anterior | Inicio | Siguiente
dbplus_rkeys | Subir | dbplus_rquery


dbplus_rquery

(4.1.0 - 4.2.3 only)

dbplus_rquery -- Perform local (raw) AQL query

Description

int dbplus_rquery ( string query, string dbpath)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

dbplus_rquery() performs a local (raw) AQL query using an AQL interpreter embedded into the db++ client library. dbplus_rquery() is faster than dbplus_aql() but will work on local data only.

Anterior | Inicio | Siguiente
dbplus_ropen | Subir | dbplus_rrename


dbplus_rrename

(4.1.0 - 4.2.3 only)

dbplus_rrename -- Rename a relation

Description

int dbplus_rrename ( resource relation, string name)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

dbplus_rrename() will change the name of relation to name.

Anterior | Inicio | Siguiente
dbplus_rquery | Subir | dbplus_rsecindex


dbplus_rsecindex

(4.1.0 - 4.2.3 only)

dbplus_rsecindex -- Create a new secondary index for a relation

Description

resource dbplus_rsecindex ( resource relation, mixed domlist, int type)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

dbplus_rsecindex() will create a new secondary index for relation with consists of the domains specified by domlist and is of type type

domlist may be passed as a single domain name string or as an array of domain names.

Anterior | Inicio | Siguiente
dbplus_rrename | Subir | dbplus_runlink


dbplus_runlink

(4.1.0 - 4.2.3 only)

dbplus_runlink -- Remove relation from filesystem

Description

int dbplus_runlink ( resource relation)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

dbplus_unlink() will close and remove the relation.

Anterior | Inicio | Siguiente
dbplus_rsecindex | Subir | dbplus_rzap


dbplus_rzap

(4.1.0 - 4.2.3 only)

dbplus_rzap -- Remove all tuples from relation

Description

int dbplus_rzap ( resource relation)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

dbplus_rzap() will remove all tuples from relation.

Anterior | Inicio | Siguiente
dbplus_runlink | Subir | dbplus_savepos


dbplus_savepos

(4.1.0 - 4.2.3 only)

dbplus_savepos -- ???

Description

int dbplus_savepos ( resource relation)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Not implemented yet.

Anterior | Inicio | Siguiente
dbplus_rzap | Subir | dbplus_setindex


dbplus_setindex

(4.1.0 - 4.2.3 only)

dbplus_setindex -- ???

Description

int dbplus_setindex ( resource relation, string idx_name)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Not implemented yet.

Anterior | Inicio | Siguiente
dbplus_savepos | Subir | dbplus_setindexbynumber


dbplus_setindexbynumber

(4.1.0 - 4.2.3 only)

dbplus_setindexbynumber -- ???

Description

int dbplus_setindexbynumber ( resource relation, int idx_number)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Not implemented yet.

Anterior | Inicio | Siguiente
dbplus_setindex | Subir | dbplus_sql


dbplus_sql

(4.1.0 - 4.2.3 only)

dbplus_sql -- Perform SQL query

Description

resource dbplus_sql ( string query, string server, string dbpath)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Not implemented yet.

Anterior | Inicio | Siguiente
dbplus_setindexbynumber | Subir | dbplus_tcl


dbplus_tcl

(4.1.0 - 4.2.3 only)

dbplus_tcl -- Execute TCL code on server side

Description

int dbplus_tcl ( int sid, string script)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

A db++ server will prepare a TCL interpreter for each client connection. This interpreter will enable the server to execute TCL code provided by the client as a sort of stored procedures to improve the performance of database operations by avoiding client/server data transfers and context switches.

dbplus_tcl() needs to pass the client connection id the TCL script code should be executed by. dbplus_resolve() will provide this connection id. The function will return whatever the TCL code returns or a TCL error message if the TCL code fails.

See also dbplus_resolve().

Anterior | Inicio | Siguiente
dbplus_sql | Subir | dbplus_tremove


dbplus_tremove

(4.1.0 - 4.2.3 only)

dbplus_tremove -- Remove tuple and return new current tuple

Description

int dbplus_tremove ( resource relation, array tuple [, array current])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

dbplus_tremove() removes tuple from relation if it perfectly matches a tuple within the relation. current, if given, will contain the data of the new current tuple after calling dbplus_tremove().

Anterior | Inicio | Siguiente
dbplus_tcl | Subir | dbplus_undo


dbplus_undo

(4.1.0 - 4.2.3 only)

dbplus_undo -- ???

Description

int dbplus_undo ( resource relation)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Not implemented yet.

Anterior | Inicio | Siguiente
dbplus_tremove | Subir | dbplus_undoprepare


dbplus_undoprepare

(4.1.0 - 4.2.3 only)

dbplus_undoprepare -- ???

Description

int dbplus_undoprepare ( resource relation)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Not implemented yet.

Anterior | Inicio | Siguiente
dbplus_undo | Subir | dbplus_unlockrel


dbplus_unlockrel

(4.1.0 - 4.2.3 only)

dbplus_unlockrel -- Give up write lock on relation

Description

int dbplus_unlockrel ( resource relation)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

dbplus_unlockrel() will release a write lock previously obtained by dbplus_lockrel().

Anterior | Inicio | Siguiente
dbplus_undoprepare | Subir | dbplus_unselect


dbplus_unselect

(4.1.0 - 4.2.3 only)

dbplus_unselect -- Remove a constraint from relation

Description

int dbplus_unselect ( resource relation)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Calling dbplus_unselect() will remove a constraint previously set by dbplus_find() on relation.

Anterior | Inicio | Siguiente
dbplus_unlockrel | Subir | dbplus_update


dbplus_update

(4.1.0 - 4.2.3 only)

dbplus_update -- Update specified tuple in relation

Description

int dbplus_update ( resource relation, array old, array new)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

dbplus_update() replaces the tuple given by old with the data from new if and only if old completely matches a tuple within relation.

Anterior | Inicio | Siguiente
dbplus_unselect | Subir | dbplus_xlockrel


dbplus_xlockrel

(4.1.0 - 4.2.3 only)

dbplus_xlockrel -- Request exclusive lock on relation

Description

int dbplus_xlockrel ( resource relation)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

dbplus_xlockrel() will request an exclusive lock on relation preventing even read access from other clients.

See also dbplus_xunlockrel().

Anterior | Inicio | Siguiente
dbplus_update | Subir | dbplus_xunlockrel


dbplus_xunlockrel

(4.1.0 - 4.2.3 only)

dbplus_xunlockrel -- Free exclusive lock on relation

Description

int dbplus_xunlockrel ( resource relation)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

dbplus_xunlockrel() will release an exclusive lock on relation previously obtained by dbplus_xlockrel().

Anterior | Inicio | Siguiente
dbplus_xlockrel | Subir | Funciones de acceso directo a E/S


Funciones de acceso directo a E/S

Manual de PHP
Anterior Siguiente

XXII. Funciones de acceso directo a E/S

Introducción

PHP incluye soporte para funciones de acceso directo a E/S tal y como se especifican en la sección sexta del estandar de Posix. Estas funciones permiten realizar operaciones de E/S a un nivel inferior al de las funciones genericas de C como fopen() y fread(). Las funciones de acceso directo a E/S solo deberían emplearse cuando se requiere un control directo de un determinado dispositivo. En todos los demas casos, es mas adecuado el empleo de las funciones estandar del sistema de ficheros.

Nota: Esta extensión no está disponible en plataformas Windows

Requerimientos

No se necesitan bibliotecas externas para construir esta extensión

Instalación

Para usar las funciones de acceso directo a E/S, se debe añadir el parámetro --enable-dio a las opciones de configuración de PHP.

Configuración en tiempo de ejecución

Esta extensión no tiene directivas de configuración en php.ini.

Tipos de recursos

La extensión de las funciones de acceso directo a E/S define un nuevo tipo de recurso: un descriptor de archivo devuelto por la función dio_open().

Constantes predefinidas

Esta extensión no tiene ninguna constante definida.

Tabla de contenidos
dio_close -- Cierra el descriptor de archivo indicado por el parámetro fd
dio_fcntl -- Realiza una operación del tipo fcntl de la libería de C sobre el descriptor de archivo indicado por el parámetro fd
dio_open -- Abre un archivo cuyo nombre indica el parámetro "nombre_archivo" con las opciones indicadas por "flags" y los permisos establecidos con "modo"
dio_read -- Lee hasta n bytes del archivo cuyo descriptor es fd y los devuelve. Si no se le indica el valor de n, se leen hasta 1024 bytes.
dio_seek -- Cambia el posicionamiento en el archivo cuyo descriptor es fd a traves de los parámetros pos y whence
dio_stat -- Obtiene la información sobre el archivo cuyo descriptor es fd
dio_tcsetattr -- Configura las opciones de un terminal y la velocidad de un puerto serie
dio_truncate -- Trunca el tamaño del archivo cuyo descriptor es fd hasta un valor de offset bytes
dio_write -- Escribe datos en el archivo cuyo descriptor es fd

Anterior | Inicio | Siguiente
dbplus_xunlockrel | Subir | dio_close


dio_close

(PHP 4 >= 4.2.0)

dio_close -- Cierra el descriptor de archivo indicado por el parámetro fd

Descripción

void dio_close ( resource fd)

La función dio_close() cierra el descriptor de archivo indicado por el parámetro fd.

Anterior | Inicio | Siguiente
Funciones de acceso directo a E/S | Subir | dio_fcntl


dio_fcntl

(PHP 4 >= 4.2.0)

dio_fcntl -- Realiza una operación del tipo fcntl de la libería de C sobre el descriptor de archivo indicado por el parámetro fd

Descripción

mixed dio_fcntl ( resource fd, int cmd [, mixed arg])

La función dio_fcntl() realiza la operación indicada por el parámetro cmd sobre el descriptor de archivo fd. Algunas operaciones requieren argumentos adicionales introducidos a traves del parámetro args.

arg es un array de tipo asociativo siempre que cmd es F_SETLK o F_SETLLW. En ese caso, las claves del array son las siguientes:

  • "start" - lugar donde comienza el bloqueo (lock)

  • "length" - tamaño del area bloqueada. Un valor igual a 0 (cero) indica un bloqueo hasta el final del archivo

  • "wenth" - Lugar desde donde se empieza a contar el tamaño l_start. Puede ser SEEK_SET, SEEK_END y SEEK_CUR

  • "type" - tipo de bloqueo. Puede ser F_RDLCK (bloqueo de lectura), F_WRLCK (bloqueo de escritura) o F_UNLCK (desbloqueo)

cmd puede ser cualquiera de las siguientes operaciones:

  • F_SETLK - Activa o desactiva el bloqueo. Si alguien lo ha bloqueado anteriormente, la función dio_fcntl() devuelve -1.

  • F_SETLKW - Es similar a F_SETLK, salvo que en esta ocasión la función dio_fcntl() espera a que se libere el bloqueo en caso de que alguien lo haya bloqueado anteriormente.

  • F_GETLK - La función dio_fcntl() devuelve un array asociativo como el descrito previamente si existe alguien que impide realizar un bloqueo. Si no existe un bloqueo anterior, la clave "type" se pondra a F_UNLCK.

  • F_DUPFD - Busca el descriptor de archivo disponible con el número mas bajo y que sea mayor o igual que arg y lo convierte en una copia de fd y devuelve los dos descriptores.

  • F_SETFL - Establece el valor de las opciones de los descriptores de archivos a los valores especificados en el parámetro arg. Las opciones pueden ser O_APPEND,O_NONBLOCK o O_ASYNC. Para poder utilizar la opción O_ASYNC es necesario utilizar la extensión PCNTL.

Anterior | Inicio | Siguiente
dio_close | Subir | dio_open


dio_open

(PHP 4 >= 4.2.0)

dio_open -- Abre un archivo cuyo nombre indica el parámetro "nombre_archivo" con las opciones indicadas por "flags" y los permisos establecidos con "modo"

Descripción

resource dio_open ( string nombre_archivo, int flags [, int modo])

La función dio_open() abre un archivo y devuelve un descriptor para su manejo o FALSE si ha ocurrido algun error. Si el valor de flags es O_CREAT, el tercer parámetro modo establecerá los permisos de creación del archivo. El parámetro flags puede tener uno de los siguientes valores:

  • O_RDONLY - abre el archivo para acceso de solo lectura.

  • O_WRONLY - abre el archivo para acceso de solo escritura.

  • O_RDWR - abre el archivo para acceso tanto de lectura como de escritura.

El parámetro flags puede incluir tambien cualquier combinación de los siguientes valores:

  • O_CREAT - crea el archivo si no existía previamente.

  • O_EXCL - si se indican de forma simultanea los valores O_CREAT y O_EXCL, la función dio_open() falla si el archivo existía previamente.

  • O_TRUNC - si el archivo existe y se permiten las operaciones de escritura sobre el, se elimina todo el contenido anterior del archivo y su tamaño se pone a cero.

  • O_APPEND - las operaciones de escritura sobre el archivo escriben los datos al final del archivo.

  • O_NONBLOCK - el archivo se pone en modo no-bloqueante.

Anterior | Inicio | Siguiente
dio_fcntl | Subir | dio_read


dio_read

(PHP 4 >= 4.2.0)

dio_read -- Lee hasta n bytes del archivo cuyo descriptor es fd y los devuelve. Si no se le indica el valor de n, se leen hasta 1024 bytes.

Descripción

string dio_read ( resource fd [, int n])

La función dio_read() lee y devuelve n bytes del archivo cuyo descriptor es fd. Si no se especifica el valor del parámetro n, dio_read() lee hasta 1024 bytes y los devuelve.

Anterior | Inicio | Siguiente
dio_open | Subir | dio_seek


dio_seek

(PHP 4 >= 4.2.0)

dio_seek -- Cambia el posicionamiento en el archivo cuyo descriptor es fd a traves de los parámetros pos y whence

Descripción

int dio_seek ( resource fd, int pos, int whence)

La función dio_seek() se utiliza para cambiar el posicionamiento en el archivo cuyo descriptor es fd. El parámetro whence indica la forma en que debe ser interpretado el parámetro pos:

  • SEEK_SET - indica que se deben avanzar pos bytes desde el comienzo del archivo.

  • SEEK_CUR - indica que se deben avanzar pos bytes a partir de la posición actual. El avance puede ser tanto positivo como negativo.

  • SEEK_END - indica que se deben avanzar pos bytes desde el final del archivo. Un avance negativo implica una posición dentro de la longitud original del archivo y un avance positivo implica una posición más alla de la longitud original del archivo. En este último caso en el que la posición se encuentra fuera de los limites del archivo original, si se realiza una operación de escritura, las posiciones comprendidas entre el final del archivo original y la posición de comienzo de los nuevos datos, se rellenarán con ceros.

Anterior | Inicio | Siguiente
dio_read | Subir | dio_stat


dio_stat

(PHP 4 >= 4.2.0)

dio_stat -- Obtiene la información sobre el archivo cuyo descriptor es fd

Descripción

array dio_stat ( resource fd)

La función dio_stat() devuelve la información sobre el archivo cuyo descriptor es fd. El valor devuelto por dio_stat() es un array asociativo con las siguientes claves:

  • "device" - dispositivo

  • "inode" - inodo

  • "mode" - modo

  • "nlink" - numero de "hard links"

  • "uid" - identificador de usuario

  • "gid" - identificador de grupo

  • "device_type" - tipo de dispositivo (si es un dispositivo con inodos)

  • "size" - tamaño total en bytes

  • "blocksize" - tamaño de bloque

  • "blocks" - numero de bloques ocupados

  • "atime" - hora del ultimo acceso

  • "mtime" - hora de la ultima modificacion

  • "ctime" - hora del ultimo cambio

Si se produce un error, la función dio_stat() devuelve un valor NULL.

Anterior | Inicio | Siguiente
dio_seek | Subir | dio_tcsetattr


dio_tcsetattr

(PHP 4 >= 4.3.0)

dio_tcsetattr -- Configura las opciones de un terminal y la velocidad de un puerto serie

Descripción

dio_tcsetattr ( resource fd, array options)

La función dio_tcsetattr() configura las opciones de un terminal y la velocidad en baudios del recurso resource abierto previamente. Las opciones actualmente disponibles son las siguientes:

  • 'baud' - velocidad en baudios del puerto serie - puede tomar los valores 38400, 19200, 9600, 4800, 2400, 1800, 1200, 600, 300, 200, 150, 134, 110, 75 o 50. Por defecto se establece una velocidad de 9600 baudios.

  • 'bits' - número de bits de los datos - puede ser 8, 7, 6 o 5. Por defecto se establece un valor de 8 bits.

  • 'stop' - bits de stop - pueden ser 1 o 2. Por defecto se establece un valor de 1 bit de stop.

  • 'parity' - bits de paridad - pueden ser 0, 1 o 2. Por defecto se establece un valor de 0 bits de paridad.

Ejemplo 1. Configurar la velocidad de un puerto serie

<?php

$fd = dio_open('/dev/ttyS0', O_RDWR | O_NOCTTY | O_NONBLOCK);

dio_fcntl($fd,F_SETFL, O_SYNC );

dio_tcsetattr($fd, array(
  'baud' => 9600,
  'bits' => 8,
  'stop'  =>1,
  'parity' => 0
));

while (1) {

  $data = dio_read($fd,256);

  if ($data) {
      echo $data;
  }
}

?>

Anterior | Inicio | Siguiente
dio_stat | Subir | dio_truncate


dio_truncate

(PHP 4 >= 4.2.0)

dio_truncate -- Trunca el tamaño del archivo cuyo descriptor es fd hasta un valor de offset bytes

Descripción

bool dio_truncate ( resource fd, int offset)

La función dio_truncate() trunca el archivo cuyo descriptor es fd y cambia su tamaño hasta un valor de offset bytes. Si la longitud del archivo original era mayor que el valor indicado, el archivo se trunca y se pierde toda la información restante. Si el valor indicado es mayor que la longitud original del archivo, no se especifica si el archivo permanece igual o se extiende su longitud hasta llegar al valor indicado por offset rellenando con ceros los nuevos bytes del archivo. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo..

Anterior | Inicio | Siguiente
dio_tcsetattr | Subir | dio_write


dio_write

(PHP 4 >= 4.2.0)

dio_write -- Escribe datos en el archivo cuyo descriptor es fd

Descripción

int dio_write ( resource fd, string data [, int len])

La función dio_write() escribe hasta len bytes de los datos indicados por el parámetro data en el archivo cuyo descriptor es fd. Si no se especifica el valor de len, la función dio_write() escribe todos los datos del parámetro data en el archivo indicado. La función dio_write() devuelve el numero de bytes escritos en el archivo cuyo descriptor es fd.

Anterior | Inicio | Siguiente
dio_truncate | Subir | Funciones de directorio


Funciones de directorio

Manual de PHP
Anterior Siguiente

XXIII. Funciones de directorio

Introducción

Requerimientos

No se necesitan bibliotecas externas para construir esta extensión

Instalación

No se necesita ninguna instalación para usar estas funciones, son parte del núcleo de PHP.

Configuración en tiempo de ejecución

Esta extensión no tiene directivas de configuración en php.ini.

Tipos de recursos

Constantes predefinidas

Estas constantes están definidas por esta extensión y estarán disponibles solamente cuando la extensión ha sido o bien compilada dentro de PHP o grabada dinámicamente en tiempo de ejecución.

DIRECTORY_SEPARATOR (string)

PATH_SEPARATOR (string)

Ver también

Para consultar sobre funciones relacionadas
como dirname(),
is_dir(), mkdir(), y
rmdir(), vea la sección
Sistema de archivos.

Tabla de contenidos
chdir -- cambia de directorio
chroot -- Cambiar el directorio raíz
dir -- clase directorio
closedir -- cierra el manejador de directorios
getcwd -- Obtiene el directorio de trabajo actual
opendir -- abre el manejador de directorios
readdir -- lee las entradas del manejador de directorios
rewinddir -- rebobinar el manejador de directorios
scandir -- Lista los archivos y directorios ubicados en la ruta especificada

Anterior | Inicio | Siguiente
dio_write | Subir | chdir


chdir

(PHP 3, PHP 4 )

chdir -- cambia de directorio

Description

int chdir ( string directory)

Cambia el directorio PHP actual a directory. Devuelve FALSE si no puede cambiar al directorio, TRUE si todo va bien.

Anterior | Inicio | Siguiente
Funciones de directorio | Subir | chroot


chroot

(PHP 4 >= 4.0.5)

chroot -- Cambiar el directorio raíz

Descripción

bool chroot ( string directorio)

Cambia el directorio raíz del proceso actual a directorio. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo..

Esta función sólo se encuentra disponible si su sistema la soporta y se encuentra usando un entorno CLI, CGI o SAPI embebido.

Nota: Esta función no está implementada en plataformas Windows.

Anterior | Inicio | Siguiente
chdir | Subir | dir


dir

(PHP 3, PHP 4 )

dir -- clase directorio

Descripcion

new dir ( string directory)

Un mecanismo semi-orientado a objetos para leer directorios. El parametro directory abre el directorio. Dos propiedades estan disponibles cuando el directorio ha sido abierto. La propiedad de manejo puede ser usada con otras funciones de directorios tal como readdir(), rewinddir() y closedir(). La propiedad de trayectoria (path) es fijada para encaminar el directorio que ha sido abierto. Tres metodos estan disponibles: leer, rebobinar y cerrar.

Ejemplo 1. dir() Ejemplo

$d = dir("/etc");
      echo "Handle: ".$d->handle."<br>\n";
      echo "Path: ".$d->path."<br>\n";
      while($entry=$d->read()) {
      echo $entry."<br>\n";
      }
      $d->close();

Anterior | Inicio | Siguiente
chroot | Subir | closedir


closedir

(PHP 3, PHP 4 )

closedir -- cierra el manejador de directorios

Descripcion

void closedir ( int dir_handle)

Cierra la secuencia de directorio determinada por dir_handle. La secuencia debe de haber sido abierta previamente con opendir().

Anterior | Inicio | Siguiente
dir | Subir | getcwd


getcwd

(PHP 4 )

getcwd -- Obtiene el directorio de trabajo actual

Descripción

string getcwd ( void )

Devuelve el directorio de trabajo actual.

Vea también chdir().

Anterior | Inicio | Siguiente
closedir | Subir | opendir


opendir

(PHP 3, PHP 4 )

opendir -- abre el manejador de directorios

Descripcion

int opendir ( string path)

Devuelve un manejador de directorio para ser usado con las llamadas closedir(), readdir() y rewinddir().

Anterior | Inicio | Siguiente
getcwd | Subir | readdir


readdir

(PHP 3, PHP 4 )

readdir -- lee las entradas del manejador de directorios

Descripcion

string readdir ( int dir_handle)

Devuelve el nombre del siguiente fichero en el directorio. Los nombres de ficheros no son devueltos en ningun orden especial .

Ejemplo 1. Listar todos los ficheros en un directorio

<?php
      $handle=opendir('.');
      echo "Directory handle: $handle\n";
      echo "Files:\n";
      while ($file = readdir($handle)) {
       echo "$file\n";
       }
       closedir($handle);
       ?>

Tener en cuenta que readdir() devolvera tambien . y .. Si no quereis estas entradas podeis borrarlas:

Ejemplo 2. Listar todos los ficheros en un directorio excepto . y ..

<?php
if ($handle = opendir('.')) {
    while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != "..") {
        echo "$file\n";
        }
    }
    closedir($handle);
}
?>

Anterior | Inicio | Siguiente
opendir | Subir | rewinddir


rewinddir

(PHP 3, PHP 4 )

rewinddir -- rebobinar el manejador de directorios

Descripcion

void rewinddir ( int dir_handle)

Inizializa la secuencia de directorio determinada por dir_handle al principio del directorio.

Anterior | Inicio | Siguiente
readdir | Subir | scandir


scandir

(PHP 5 CVS only)

scandir -- Lista los archivos y directorios ubicados en la ruta especificada

Descripción

array scandir ( string directorio [, int sentido_de_ordenamiento])

Devuelve un array de archivos y directorios que se encuentran bajo directorio. Si directorio no es un directorio, entonces el valor booleano FALSE es retornado, y se genera un error de nivel E_WARNING.

Por defecto, el sentido del ordenamiento es ascendente. Si es usado el parámetro opcional sentido_de_ordenamiento (definido como 1), entonces el sentido será descendente.

Ejemplo 1. Un ejemplo simple de scandir()

<?php
$dir    = '/tmp';
$archivos1 = scandir($dir);
$archivos2 = scandir($dir, 1);

print_r($archivos1);
print_r($archivos2);

/* Genera una salida como:
Array
(
    [0] => .
    [1] => ..
    [2] => bar.php
    [3] => directorio_cualquiera
    [4] => foo.txt
)
Array
(
    [0] => foo.txt
    [1] => directorio_cualquiera
    [2] => bar.php
    [3] => ..
    [4] => .
)
*/
?>

Ejemplo 2. Alternativas a scandir() con PHP 4

<?php
$dir = "/tmp";
$dh  = opendir($dir);
while (false !== ($nombre_archivo = readdir($dh))) {
    $archivos[] = $nombre_archivo;
}

sort($archivos);

print_r($archivos);

rsort($archivos);

print_r($archivos);

/* Genera una salida como:
Array
(
    [0] => .
    [1] => ..
    [2] => bar.php
    [3] => directorio_cualquiera
    [4] => foo.txt
)
Array
(
    [0] => foo.txt
    [1] => directorio_cualquiera
    [2] => bar.php
    [3] => ..
    [4] => .
)
*/
?>

Vea también opendir(),
readdir(),
glob(),
is_dir(), y
sort().

Anterior | Inicio | Siguiente
rewinddir | Subir | Funciones de DOM XML


Funciones de DOM XML

Manual de PHP
Anterior Siguiente

XXIV. Funciones de DOM XML

Aviso

Esta extensión es EXPERIMENTAL. Esto significa que el comportamiento de esta extensión, los nombre de sus funciones y en definitiva TODO lo documentado sobre esta extensión, puede cambiar en una futura versión de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Estas funciones son disponibles solamente si PHP fué configurado con --with-dom=[DIR], usando al libreria de XML de GNOME. Usted va a necesitar como mínimo libxml-2.0.0 (la versión beta no trabajará). Estas functiones fueron añadidas en PHP4.

Este module define las siguientes constantes:

Tabla 1. Constantes de XML

Constante | Valor | Descripción
XML_ELEMENT_NODE | 1 |
XML_ATTRIBUTE_NODE | 2 |
XML_TEXT_NODE | 3 |
XML_CDATA_SECTION_NODE | 4 |
XML_ENTITY_REF_NODE | 5 |
XML_ENTITY_NODE | 6 |
XML_PI_NODE | 7 |
XML_COMMENT_NODE | 8 |
XML_DOCUMENT_NODE | 9 |
XML_DOCUMENT_TYPE_NODE | 10 |
XML_DOCUMENT_FRAG_NODE | 11 |
XML_NOTATION_NODE | 12 |
XML_GLOBAL_NAMESPACE | 1 |
XML_LOCAL_NAMESPACE | 2 |

Este modulo define un número de clases. Las funciones de DOM XML devuelven un árbol conteniendo la structura del documento XML, en el cual cada nodo es un objecto perteneciente a una de estas clases.

Tabla de contenidos
DomAttribute->name -- Returns name of attribute
DomAttribute->specified -- Checks if attribute is specified
DomAttribute->value -- Returns value of attribute
DomDocument->add_root [deprecated] -- Adds a root node
DomDocument->create_attribute -- Create new attribute
DomDocument->create_cdata_section -- Create new cdata node
DomDocument->create_comment -- Create new comment node
DomDocument->create_element_ns -- Create new element node with an associated namespace
DomDocument->create_element -- Create new element node
DomDocument->create_entity_reference --
DomDocument->create_processing_instruction -- Creates new PI node
DomDocument->create_text_node -- Create new text node
DomDocument->doctype -- Returns the document type
DomDocument->document_element -- Returns root element node
DomDocument->dump_file -- Dumps the internal XML tree back into a file
DomDocument->dump_mem -- Dumps the internal XML tree back into a string
DomDocument->get_element_by_id -- Searches for an element with a certain id
DomDocument->get_elements_by_tagname --
DomDocument->html_dump_mem -- Dumps the internal XML tree back into a string as HTML
DomDocument->xinclude -- Substitutes XIncludes in a DomDocument Object.
DomDocumentType->entities -- Returns list of entities
DomDocumentType->internal_subset -- Returns internal subset
DomDocumentType->name -- Returns name of document type
DomDocumentType->notations -- Returns list of notations
DomDocumentType->public_id -- Returns public id of document type
DomDocumentType->system_id -- Returns system id of document type
DomElement->get_attribute_node -- Returns value of attribute
DomElement->get_attribute -- Returns value of attribute
DomElement->get_elements_by_tagname -- Gets elements by tagname
DomElement->has_attribute -- Checks to see if attribute exists
DomElement->remove_attribute -- Removes attribute
DomElement->set_attribute -- Adds new attribute
DomElement->tagname -- Returns name of element
DomNode->add_namespace -- Adds a namespace declaration to a node.
DomNode->append_child -- Adds new child at the end of the children
DomNode->append_sibling -- Adds new sibling to a node
DomNode->attributes -- Returns list of attributes
DomNode->child_nodes -- Returns children of node
DomNode->clone_node -- Clones a node
DomNode->dump_node -- Dumps a single node
DomNode->first_child -- Returns first child of node
DomNode->get_content -- Gets content of node
DomNode->has_attributes -- Checks if node has attributes
DomNode->has_child_nodes -- Checks if node has children
DomNode->insert_before -- Inserts new node as child
DomNode->is_blank_node -- Checks if node is blank
DomNode->last_child -- Returns last child of node
DomNode->next_sibling -- Returns the next sibling of node
DomNode->node_name -- Returns name of node
DomNode->node_type -- Returns type of node
DomNode->node_value -- Returns value of a node
DomNode->owner_document -- Returns the document this node belongs to
DomNode->parent_node -- Returns the parent of the node
DomNode->prefix -- Returns name space prefix of node
DomNode->previous_sibling -- Returns the previous sibling of node
DomNode->remove_child -- Removes child from list of children
DomNode->replace_child -- Replaces a child
DomNode->replace_node -- Replaces node
DomNode->set_content -- Sets content of node
DomNode->set_name -- Sets name of node
DomNode->set_namespace -- Sets namespace of a node.
DomNode->unlink_node -- Deletes node
DomProcessingInstruction->data -- Returns data of pi node
DomProcessingInstruction->target -- Returns target of pi node
DomXsltStylesheet->process -- Applies the XSLT-Transformation on a DomDocument Object.
DomXsltStylesheet->result_dump_file -- Dumps the result from a XSLT-Transformation into a file
DomXsltStylesheet->result_dump_mem -- Dumps the result from a XSLT-Transformation back into a string
domxml_new_doc -- Creates new empty XML document
domxml_open_file -- Creates a DOM object from XML file
domxml_open_mem -- Creates a DOM object of an XML document
domxml_version -- Get XML library version
domxml_xmltree -- Creates a tree of PHP objects from an XML document
domxml_xslt_stylesheet_doc -- Creates a DomXsltStylesheet Object from a DomDocument Object.
domxml_xslt_stylesheet_file -- Creates a DomXsltStylesheet Object from a xsl document in a file.
domxml_xslt_stylesheet -- Creates a DomXsltStylesheet Object from a xml document in a string.
xpath_eval_expression -- Evaluates the XPath Location Path in the given string
xpath_eval -- Evaluates the XPath Location Path in the given string
xpath_new_context -- Creates new xpath context
xptr_eval -- Evaluate the XPtr Location Path in the given string
xptr_new_context -- Create new XPath Context

Anterior | Inicio | Siguiente
scandir | Subir | DomAttribute->name


DomAttribute->name

(no version information, might be only in CVS)

DomAttribute->name -- Returns name of attribute

Description

bool DomAttribute->name ( void )

This function returns the name of the attribute.

See also domattribute_value().

Anterior | Inicio | Siguiente
Funciones de DOM XML | Subir | DomAttribute->specified


DomAttribute->specified

(no version information, might be only in CVS)

DomAttribute->specified -- Checks if attribute is specified

Description

bool DomAttribute->specified ( void )

Check DOM standard for a detailed explanation.

Anterior | Inicio | Siguiente
DomAttribute->name | Subir | DomAttribute->value


DomAttribute->value

(no version information, might be only in CVS)

DomAttribute->value -- Returns value of attribute

Description

bool DomAttribute->value ( void )

This function returns the value of the attribute.

See also domattribute_name().

Anterior | Inicio | Siguiente
DomAttribute->specified | Subir | DomDocument->add_root [deprecated]


DomDocument->add_root [deprecated]

(no version information, might be only in CVS)

DomDocument->add_root [deprecated] -- Adds a root node

Description

resource DomDocument->add_root ( string name)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Adds a root element node to a dom document and returns the new node. The element name is given in the passed parameter.

Ejemplo 1. Creating a simple HTML document header

<?php
$doc = domxml_new_doc("1.0");
$root = $doc->add_root("HTML");
$head = $root->new_child("HEAD", "");
$head->new_child("TITLE", "Hier der Titel");
echo htmlentities($doc->dump_mem());
?>

Anterior | Inicio | Siguiente
DomAttribute->value | Subir | DomDocument->create_attribute


DomDocument->create_attribute

(no version information, might be only in CVS)

DomDocument->create_attribute -- Create new attribute

Description

object DomDocument->create_attribute ( string name, string value)

This function returns a new instance of class DomAttribute. The name of the attribute is the value of the first parameter. The value of the attribute is the value of the second parameter. This node will not show up in the document unless it is inserted with e.g. domnode_append_child().

The return value is FALSE if an error occured.

See also domnode_append_child(),
         domdocument_create_element(),
         domdocument_create_text(),
         domdocument_create_cdata_section(),
         domdocument_create_processing_instruction(),
         domdocument_create_entity_reference(), and
         domnode_insert_before().

Anterior | Inicio | Siguiente
DomDocument->add_root [deprecated] | Subir | DomDocument->create_cdata_section


DomDocument->create_cdata_section

(no version information, might be only in CVS)

DomDocument->create_cdata_section -- Create new cdata node

Description

string DomDocument->create_cdata_section ( string content)

This function returns a new instance of class DomCData. The content of the cdata is the value of the passed parameter. This node will not show up in the document unless it is inserted with e.g. domnode_append_child().

The return value is FALSE if an error occured.

See also domnode_append_child(),
         domdocument_create_element(),
         domdocument_create_text(),
         domdocument_create_attribute(),
         domdocument_create_processing_instruction(),
         domdocument_create_entity_reference(), and
         domnode_insert_before().

Anterior | Inicio | Siguiente
DomDocument->create_attribute | Subir | DomDocument->create_comment


DomDocument->create_comment

(no version information, might be only in CVS)

DomDocument->create_comment -- Create new comment node

Description

object DomDocument->create_comment ( string content)

This function returns a new instance of class DomComment. The content of the comment is the value of the passed parameter. This node will not show up in the document unless it is inserted with e.g. domnode_append_child().

The return value is FALSE if an error occured.

See also domnode_append_child(),
         domdocument_create_element(),
         domdocument_create_text(),
         domdocument_create_attribute(),
         domdocument_create_processing_instruction(),
         domdocument_create_entity_reference() and
         domnode_insert_before().

Anterior | Inicio | Siguiente
DomDocument->create_cdata_section | Subir | DomDocument->create_element_ns


DomDocument->create_element_ns

(no version information, might be only in CVS)

DomDocument->create_element_ns -- Create new element node with an associated namespace

Description

object DomDocument->create_element_ns ( string uri, string name [, string prefix])

This function returns a new instance of class DomElement. The tag name of the element is the value of the passed parameter name. The URI of the namespace is the value of the passed parameter uri. If there is already a namespace declaration with the same uri in the root-node of the document, the prefix of this is taken, otherwise it will take the one provided in the optional parameter prefix or generate a random one. This node will not show up in the document unless it is inserted with e.g. domnode_append_child().

The return value is FALSE if an error occured.

See also domdocument_create_element_ns(),
         domnode_add_namespace(),
         domnode_set_namespace(),
         domnode_append_child(),
         domdocument_create_text(),
         domdocument_create_comment(),
         domdocument_create_attribute(),
         domdocument_create_processing_instruction(),
         domdocument_create_entity_reference(), and
         domnode_insert_before().

Anterior | Inicio | Siguiente
DomDocument->create_comment | Subir | DomDocument->create_element


DomDocument->create_element

(no version information, might be only in CVS)

DomDocument->create_element -- Create new element node

Description

object DomDocument->create_element ( string name)

This function returns a new instance of class DomElement. The tag name of the element is the value of the passed parameter. This node will not show up in the document unless it is inserted with e.g. domnode_append_child().

The return value is FALSE if an error occured.

See also domdocument_create_element_ns(),
         domnode_append_child(),
         domdocument_create_text(),
         domdocument_create_comment(),
         domdocument_create_attribute(),
         domdocument_create_processing_instruction(),
         domdocument_create_entity_reference(), and
         domnode_insert_before().

Anterior | Inicio | Siguiente
DomDocument->create_element_ns | Subir | DomDocument->create_entity_reference


DomDocument->create_entity_reference

(no version information, might be only in CVS)

DomDocument->create_entity_reference --

Description

object DomDocument->create_entity_reference ( string content)

This function returns a new instance of class DomEntityReference. The content of the entity reference is the value of the passed parameter. This node will not show up in the document unless it is inserted with e.g. domnode_append_child().

The return value is FALSE if an error occured.

See also domnode_append_child(),
         domdocument_create_element(),
         domdocument_create_text(),
         domdocument_create_cdata_section(),
         domdocument_create_processing_instruction(),
         domdocument_create_attribute(), and
         domnode_insert_before().

Anterior | Inicio | Siguiente
DomDocument->create_element | Subir | DomDocument->create_processing_instruction


DomDocument->create_processing_instruction

(no version information, might be only in CVS)

DomDocument->create_processing_instruction -- Creates new PI node

Description

string DomDocument->create_processing_instruction ( string content)

This function returns a new instance of class DomCData. The content of the pi is the value of the passed parameter. This node will not show up in the document unless it is inserted with e.g. domnode_append_child().

The return value is FALSE if an error occured.

See also domnode_append_child(),
         domdocument_create_element(),
         domdocument_create_text(),
         domdocument_create_cdata_section(),
         domdocument_create_attribute(),
         domdocument_create_entity_reference(), and
         domnode_insert_before().

Anterior | Inicio | Siguiente
DomDocument->create_entity_reference | Subir | DomDocument->create_text_node


DomDocument->create_text_node

(no version information, might be only in CVS)

DomDocument->create_text_node -- Create new text node

Description

object DomDocument->create_text_node ( string content)

This function returns a new instance of class DomText. The content of the text is the value of the passed parameter. This node will not show up in the document unless it is inserted with e.g. domnode_append_child().

The return value is FALSE if an error occured.

See also domnode_append_child(),
         domdocument_create_element(),
         domdocument_create_comment(),
         domdocument_create_text(),
         domdocument_create_attribute(),
         domdocument_create_processing_instruction(),
         domdocument_create_entity_reference(), and
         domnode_insert_before().

Anterior | Inicio | Siguiente
DomDocument->create_processing_instruction | Subir | DomDocument->doctype


DomDocument->doctype

(no version information, might be only in CVS)

DomDocument->doctype -- Returns the document type

Description

object DomDocument->doctype ( void )

This function returns an object of class DomDocumentType. In versions of PHP before 4.3 this has been the class Dtd, but the DOM Standard does not know such a class.

See also the methods of class DomDocumentType.

Anterior | Inicio | Siguiente
DomDocument->create_text_node | Subir | DomDocument->document_element


DomDocument->document_element

(no version information, might be only in CVS)

DomDocument->document_element -- Returns root element node

Description

object DomDocument->document_element ( void )

This function returns the root element node of a document.

The following example returns just the element with name CHAPTER and prints it. The other node -- the comment -- is not returned.

Ejemplo 1. Retrieving root element

<?php
include("example.inc");

if(!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$root = $dom->document_element();
print_r($root);
?>

Anterior | Inicio | Siguiente
DomDocument->doctype | Subir | DomDocument->dump_file


DomDocument->dump_file

(no version information, might be only in CVS)

DomDocument->dump_file -- Dumps the internal XML tree back into a file

Description

string DomDocument->dump_file ( string filename [, bool compressionmode [, bool format]])

Creates an XML document from the dom representation. This function usually is called after building a new dom document from scratch as in the example below. The format specifies whether the output should be neatly formatted, or not. The first parameter specifies the name of the filename and the second parameter, whether it should be compressed or not.

Ejemplo 1. Creating a simple HTML document header

<?php
$doc = domxml_new_doc("1.0");
$root = $doc->create_element("HTML");
$root = $doc->append_child($root);
$head = $doc->create_element("HEAD");
$head = $root->append_child($head);
$title = $doc->create_element("TITLE");
$title = $head->append_child($title);
$text = $doc->create_text_node("This is the title");
$text = $title->append_child($text);
$doc->dump_file("/tmp/test.xml", false, true);
?>

See also domdocument_dump_mem() domdocument_html_dump_mem().

Anterior | Inicio | Siguiente
DomDocument->document_element | Subir | DomDocument->dump_mem


DomDocument->dump_mem

(no version information, might be only in CVS)

DomDocument->dump_mem -- Dumps the internal XML tree back into a string

Description

string DomDocument->dump_mem ( [bool format [, string encoding]])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Creates an XML document from the dom representation. This function usually is called after building a new dom document from scratch as in the example below. The format specifies whether the output should be neatly formatted, or not.

Ejemplo 1. Creating a simple HTML document header

<?php
$doc = domxml_new_doc("1.0");
$root = $doc->create_element("HTML");
$root = $doc->append_child($root);
$head = $doc->create_element("HEAD");
$head = $root->append_child($head);
$title = $doc->create_element("TITLE");
$title = $head->append_child($title);
$text = $doc->create_text_node("This is the title");
$text = $title->append_child($text);
echo "<PRE>";
echo htmlentities($doc->dump_mem(true));
echo "</PRE>";
?>

Nota: The first parameter was added in PHP 4.3.0.

See also domdocument_dump_file(), domdocument_html_dump_mem().

Anterior | Inicio | Siguiente
DomDocument->dump_file | Subir | DomDocument->get_element_by_id


DomDocument->get_element_by_id

(no version information, might be only in CVS)

DomDocument->get_element_by_id -- Searches for an element with a certain id

Description

object DomDocument->get_element_by_id ( string id)

This function is similar to domdocument_get_elements_by_tagname() but searches for an element with a given id. According to the DOM standard this requires a DTD which defines the attribute ID to be of type ID, though the current implementation simply does an xpath search for "//*[@ID = '%s']". This does not comply to the DOM standard which requires to return null if it is not known which attribute is of type id. This behaviour is likely to be fixed, so do not rely on the current behaviour.

See also domdocument_get_elements_by_tagname()

Anterior | Inicio | Siguiente
DomDocument->dump_mem | Subir | DomDocument->get_elements_by_tagname


DomDocument->get_elements_by_tagname

(no version information, might be only in CVS)

DomDocument->get_elements_by_tagname --

Description

array DomDocument->get_elements_by_tagname ( string name)

See also domdocument_add_root()

Anterior | Inicio | Siguiente
DomDocument->get_element_by_id | Subir | DomDocument->html_dump_mem


DomDocument->html_dump_mem

(no version information, might be only in CVS)

DomDocument->html_dump_mem -- Dumps the internal XML tree back into a string as HTML

Description

string DomDocument->html_dump_mem ( void )

Creates an HTML document from the dom representation. This function usually is called after building a new dom document from scratch as in the example below.

Ejemplo 1. Creating a simple HTML document header

<?php
$doc = domxml_new_doc("1.0");
$root = $doc->create_element("HTML");
$root = $doc->append_child($root);
$head = $doc->create_element("HEAD");
$head = $root->append_child($head);
$title = $doc->create_element("TITLE");
$title = $head->append_child($title);
$text = $doc->create_text_node("This is the title");
$text = $title->append_child($text);
echo "<PRE>";
echo htmlentities($doc->html_dump_mem());
echo "</PRE>";
?>

See also domdocument_dump_file(), domdocument_html_dump_mem().

Anterior | Inicio | Siguiente
DomDocument->get_elements_by_tagname | Subir | DomDocument->xinclude


DomDocument->xinclude

(no version information, might be only in CVS)

DomDocument->xinclude -- Substitutes XIncludes in a DomDocument Object.

Description

int DomDocument->xinclude ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
DomDocument->html_dump_mem | Subir | DomDocumentType->entities


DomDocumentType->entities

(no version information, might be only in CVS)

DomDocumentType->entities -- Returns list of entities

Description

array DomDocumentType->entities ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
DomDocument->xinclude | Subir | DomDocumentType->internal_subset


DomDocumentType->internal_subset

(no version information, might be only in CVS)

DomDocumentType->internal_subset -- Returns internal subset

Description

bool DomDocumentType->internal_subset ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
DomDocumentType->entities | Subir | DomDocumentType->name


DomDocumentType->name

(no version information, might be only in CVS)

DomDocumentType->name -- Returns name of document type

Description

string DomDocumentType->name ( void )

This function returns the name of the document type.

Anterior | Inicio | Siguiente
DomDocumentType->internal_subset | Subir | DomDocumentType->notations


DomDocumentType->notations

(no version information, might be only in CVS)

DomDocumentType->notations -- Returns list of notations

Description

array DomDocumentType->notations ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
DomDocumentType->name | Subir | DomDocumentType->public_id


DomDocumentType->public_id

(no version information, might be only in CVS)

DomDocumentType->public_id -- Returns public id of document type

Description

string DomDocumentType->public_id ( void )

This function returns the public id of the document type.

The following example echos nothing.

Ejemplo 1. Retrieving the public id

<?php
include("example.inc");

if(!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$doctype = $dom->doctype();
echo $doctype->public_id();
?>

Anterior | Inicio | Siguiente
DomDocumentType->notations | Subir | DomDocumentType->system_id


DomDocumentType->system_id

(no version information, might be only in CVS)

DomDocumentType->system_id -- Returns system id of document type

Description

string DomDocumentType->system_id ( void )

Returns the system id of the document type.

The following example echos '/share/sgml/Norman_Walsh/db3xml10/db3xml10.dtd'.

Ejemplo 1. Retrieving the system id

<?php
include("example.inc");

if(!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$doctype = $dom->doctype();
echo $doctype->system_id();
?>

Anterior | Inicio | Siguiente
DomDocumentType->public_id | Subir | DomElement->get_attribute_node


DomElement->get_attribute_node

(no version information, might be only in CVS)

DomElement->get_attribute_node -- Returns value of attribute

Description

object DomElement->get_attribute_node ( object attr)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
DomDocumentType->system_id | Subir | DomElement->get_attribute


DomElement->get_attribute

(no version information, might be only in CVS)

DomElement->get_attribute -- Returns value of attribute

Description

object DomElement->get_attribute ( string name)

Returns the attribute with name name of the current node.

(PHP >= 4.3 only) If no attribute with given name is found, an empty string is returned.

See also domelement_set_attribute()

Anterior | Inicio | Siguiente
DomElement->get_attribute_node | Subir | DomElement->get_elements_by_tagname


DomElement->get_elements_by_tagname

(no version information, might be only in CVS)

DomElement->get_elements_by_tagname -- Gets elements by tagname

Description

bool DomElement->get_elements_by_tagname ( string name)

This function returns an array with all the elements which has name as his tagname. Every element of the array is an DomElement.

Ejemplo 1. Getting a content

<?php
if(!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$root = $dom->document_element();

$node_array = $root->get_elements_by_tagname("element");

for ($i = 0; $i<count($node_array); $i++)
{
    $node = $node_array[$i];
    print ("The element[$i] is: ".$node->get_content());
}

?>

Anterior | Inicio | Siguiente
DomElement->get_attribute | Subir | DomElement->has_attribute


DomElement->has_attribute

(no version information, might be only in CVS)

DomElement->has_attribute -- Checks to see if attribute exists

Description

bool DomElement->has_attribute ( string name)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
DomElement->get_elements_by_tagname | Subir | DomElement->remove_attribute


DomElement->remove_attribute

(no version information, might be only in CVS)

DomElement->remove_attribute -- Removes attribute

Description

bool DomElement->remove_attribute ( string name)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
DomElement->has_attribute | Subir | DomElement->set_attribute


DomElement->set_attribute

(no version information, might be only in CVS)

DomElement->set_attribute -- Adds new attribute

Description

bool DomElement->set_attribute ( string name, string value)

Sets an attribute with name name ot the given value. If the attribute does not exist, it will be created.

Ejemplo 1. Setting an attribute

<?php
$doc = domxml_new_doc("1.0");
$node = $doc->create_element("para");
$newnode = $doc->append_child($node);
$newnode->set_attribute("align", "left");
?>

See also domelement_get_attribute()

Anterior | Inicio | Siguiente
DomElement->remove_attribute | Subir | DomElement->tagname


DomElement->tagname

(no version information, might be only in CVS)

DomElement->tagname -- Returns name of element

Description

string DomElement->tagname ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
DomElement->set_attribute | Subir | DomNode->add_namespace


DomNode->add_namespace

(no version information, might be only in CVS)

DomNode->add_namespace -- Adds a namespace declaration to a node.

Description

bool DomNode->add_namespace ( string uri, string prefix)

See also domdocument_create_element_ns(), domnode_set_namespace()

Anterior | Inicio | Siguiente
DomElement->tagname | Subir | DomNode->append_child


DomNode->append_child

(no version information, might be only in CVS)

DomNode->append_child -- Adds new child at the end of the children

Description

object DomNode->append_child ( object newnode)

This functions appends a child to an existing list of children or creates a new list of children. The child can be created with e.g. domdocument_create_element(), domdocument_create_text() etc. or simply by using any other node.

(PHP < 4.3) Before a new child is appended it is first duplicated. Therefore the new child is a completely new copy which can be modified without changing the node which was passed to this function. If the node passed has children itself, they will be duplicated as well, which makes it quite easy to duplicate large parts of a xml document. The return value is the appended child. If you plan to do further modifications on the appended child you must use the returned node.

(PHP 4.3.0/4.3.1) The new child newnode is first unlinked from its existing context, if it's already a child of DomNode. Therefore the node is moved and not copies anymore.

(PHP >= 4.3.2) The new child newnode is first unlinked from its existing context, if it's already in the tree. Therefore the node is moved and not copied. This is the behaviour according to the W3C specifications. If you want to duplicate large parts of a xml document, use DomNode->clone_node() before appending.

The following example will add a new element node to a fresh document and sets the attribute "align" to "left".

Ejemplo 1. Adding a child

<?php
$doc = domxml_new_doc("1.0");
$node = $doc->create_element("para");
$newnode = $doc->append_child($node);
$newnode->set_attribute("align", "left");
?>
The above example could also be written as the following:

Ejemplo 2. Adding a child

<?php
$doc = domxml_new_doc("1.0");
$node = $doc->create_element("para");
$node->set_attribute("align", "left");
$newnode = $doc->append_child($node);
?>
A more comples example is the one below. It first searches for a certain element, duplicates it including its children and adds it as a sibling. Finally a new attribute is added to one of the children of the new sibling and the whole document is dumped.

Ejemplo 3. Adding a child

<?php
include("example.inc");

if(!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$elements = $dom->get_elements_by_tagname("informaltable");
print_r($elements);
$element = $elements[0];

$parent = $element->parent_node();
$newnode = $parent->append_child($element);
$children = $newnode->children();
$attr = $children[1]->set_attribute("align", "left");

echo "<PRE>";
$xmlfile = $dom->dump_mem();
echo htmlentities($xmlfile);
echo "</PRE>";
?>
The above example could also be done with domnode_insert_before() instead of domnode_append_child().

See also domnode_insert_before(), domnode_clone_node().

Anterior | Inicio | Siguiente
DomNode->add_namespace | Subir | DomNode->append_sibling


DomNode->append_sibling

(no version information, might be only in CVS)

DomNode->append_sibling -- Adds new sibling to a node

Description

object DomNode->append_sibling ( object newnode)

This functions appends a sibling to an existing node. The child can be created with e.g. domdocument_create_element(), domdocument_create_text() etc. or simply by using any other node.

Before a new sibling is added it is first duplicated. Therefore the new child is a completely new copy which can be modified without changing the node which was passed to this function. If the node passed has children itself, they will be duplicated as well, which makes it quite easy to duplicate large parts of a xml document. The return value is the added sibling. If you plan to do further modifications on the added sibling you must use the returned node.

This function has been added to provide the behaviour of domnode_append_child() as it works till PHP 4.2.

See also domnode_append_before().

Anterior | Inicio | Siguiente
DomNode->append_child | Subir | DomNode->attributes


DomNode->attributes

(no version information, might be only in CVS)

DomNode->attributes -- Returns list of attributes

Description

array DomNode->attributes ( void )

This function only returns an array of attributes if the node is of type XML_ELEMENT_NODE.

(PHP >= 4.3 only) If no attributes are found, NULL is returned.

Anterior | Inicio | Siguiente
DomNode->append_sibling | Subir | DomNode->child_nodes


DomNode->child_nodes

(no version information, might be only in CVS)

DomNode->child_nodes -- Returns children of node

Description

array DomNode->child_nodes ( void )

Returns all children of the node.

See also domnode_next_sibling(), domnode_previous_sibling().

Anterior | Inicio | Siguiente
DomNode->attributes | Subir | DomNode->clone_node


DomNode->clone_node

(no version information, might be only in CVS)

DomNode->clone_node -- Clones a node

Description

object DomNode->clone_node ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
DomNode->child_nodes | Subir | DomNode->dump_node


DomNode->dump_node

(no version information, might be only in CVS)

DomNode->dump_node -- Dumps a single node

Description

string DomNode->dump_node ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

See also domdocument_dump_mem().

Anterior | Inicio | Siguiente
DomNode->clone_node | Subir | DomNode->first_child


DomNode->first_child

(no version information, might be only in CVS)

DomNode->first_child -- Returns first child of node

Description

object DomNode->first_child ( void )

Returns the first child of the node.

(PHP >= 4.3 only) If no first child is found, NULL is returned.

See also domnode_last_child(),
         domnode_next_sibling(),
         domnode_previous_sibling().

Anterior | Inicio | Siguiente
DomNode->dump_node | Subir | DomNode->get_content


DomNode->get_content

(no version information, might be only in CVS)

DomNode->get_content -- Gets content of node

Description

string DomNode->get_content ( void )

This function returns the content of the actual node.

Ejemplo 1. Getting a content

<?php
if(!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$root = $dom->document_element();

$node_array = $root->get_elements_by_tagname("element");

for ($i = 0; $i<count($node_array); $i++)
{
    $node = $node_array[$i];
    print ("The element[$i] is: ".$node->get_content());
}

?>

Anterior | Inicio | Siguiente
DomNode->first_child | Subir | DomNode->has_attributes


DomNode->has_attributes

(no version information, might be only in CVS)

DomNode->has_attributes -- Checks if node has attributes

Description

bool DomNode->has_attributes ( void )

This function checks if the node has attributes.

See also domnode_has_child_nodes().

Anterior | Inicio | Siguiente
DomNode->get_content | Subir | DomNode->has_child_nodes


DomNode->has_child_nodes

(no version information, might be only in CVS)

DomNode->has_child_nodes -- Checks if node has children

Description

bool DomNode->has_child_nodes ( void )

This function checks if the node has children.

See also domnode_child_nodes().

Anterior | Inicio | Siguiente
DomNode->has_attributes | Subir | DomNode->insert_before


DomNode->insert_before

(no version information, might be only in CVS)

DomNode->insert_before -- Inserts new node as child

Description

object DomNode->insert_before ( object newnode, object refnode)

This function inserts the new node newnode right before the node refnode. The return value is the inserted node. If you plan to do further modifications on the appended child you must use the returned node.

(PHP >= 4.3 only) If newnode already is part of a document, it will be first unlinked from its existing context. If refnode is NULL, then newnode will be inserted at the end of the list of children.

domnode_insert_before() is very similar to domnode_append_child() as the following example shows which does the same as the example at domnode_append_child().

Ejemplo 1. Adding a child

<?php
include("example.inc");

if(!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$elements = $dom->get_elements_by_tagname("informaltable");
print_r($elements);
$element = $elements[0];

$newnode = $element->insert_before($element, $element);
$children = $newnode->children();
$attr = $children[1]->set_attribute("align", "left");

echo "<PRE>";
$xmlfile = $dom->dump_mem();
echo htmlentities($xmlfile);
echo "</PRE>";
?>

See also domnode_append_child().

Anterior | Inicio | Siguiente
DomNode->has_child_nodes | Subir | DomNode->is_blank_node


DomNode->is_blank_node

(no version information, might be only in CVS)

DomNode->is_blank_node -- Checks if node is blank

Description

bool DomNode->is_blank_node ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
DomNode->insert_before | Subir | DomNode->last_child


DomNode->last_child

(no version information, might be only in CVS)

DomNode->last_child -- Returns last child of node

Description

object DomNode->last_child ( void )

Returns the last child of the node.

(PHP >= 4.3 only) If no last child is found, NULL is returned.

See also domnode_first_child(),
         domnode_next_sibling(),
         domnode_previous_sibling().

Anterior | Inicio | Siguiente
DomNode->is_blank_node | Subir | DomNode->next_sibling


DomNode->next_sibling

(no version information, might be only in CVS)

DomNode->next_sibling -- Returns the next sibling of node

Description

object DomNode->next_sibling ( void )

This function returns the next sibling of the current node. If there is no next sibling it returns FALSE (< 4.3) or null (>= 4.3). You can use this function to iterate over all children of a node as shown in the example.

Ejemplo 1. Iterate over children

<?php
include("example.inc");

if(!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$elements = $dom->get_elements_by_tagname("tbody");
$element = $elements[0];
$child = $element->first_child();

while($child) {
   print_r($child);
   $child = $child->next_sibling();
}
?>

See also domnode_previous_sibling().

Anterior | Inicio | Siguiente
DomNode->last_child | Subir | DomNode->node_name


DomNode->node_name

(no version information, might be only in CVS)

DomNode->node_name -- Returns name of node

Description

string DomNode->node_name ( void )

Returns name of the node. The name has different meanings for the different types of nodes as illustrated in the following table.

Tabla 1. Meaning of value

Type | Meaning
DomAttribute | value of attribute
DomAttribute |
DomCDataSection | #cdata-section
DomComment | #comment
DomDocument | #document
DomDocumentType | document type name
DomElement | tag name
DomEntity | name of entity
DomEntityReference | name of entity reference
DomNotation | notation name
DomProcessingInstruction | target
DomText | #text

Anterior | Inicio | Siguiente
DomNode->next_sibling | Subir | DomNode->node_type


DomNode->node_type

(no version information, might be only in CVS)

DomNode->node_type -- Returns type of node

Description

int DomNode->node_type ( void )

Returns the type of the node. All possible types are listed in the table in the introduction.

Anterior | Inicio | Siguiente
DomNode->node_name | Subir | DomNode->node_value


DomNode->node_value

(no version information, might be only in CVS)

DomNode->node_value -- Returns value of a node

Description

string DomNode->node_value ( void )

Returns value of the node. The value has different meanings for the different types of nodes as illustrated in the following table.

Tabla 1. Meaning of value

Type | Meaning
DomAttribute | value of attribute
DomAttribute |
DomCDataSection | content
DomComment | content of comment
DomDocument | null
DomDocumentType | null
DomElement | null
DomEntity | null
DomEntityReference | null
DomNotation | null
DomProcessingInstruction | entire content without target
DomText | content of text

Anterior | Inicio | Siguiente
DomNode->node_type | Subir | DomNode->owner_document


DomNode->owner_document

(no version information, might be only in CVS)

DomNode->owner_document -- Returns the document this node belongs to

Description

object DomNode->owner_document ( void )

This function returns the document the current node belongs to.

The following example will create two identical lists of children.

Ejemplo 1. Finding the document of a node

<?php
$doc = domxml_new_doc("1.0");
$node = $doc->create_element("para");
$node = $doc->append_child($node);
$children = $doc->children();
print_r($children);

$doc2 = $node->owner_document();
$children = $doc2->children();
print_r($children);
?>

See also domnode_insert_before().

Anterior | Inicio | Siguiente
DomNode->node_value | Subir | DomNode->parent_node


DomNode->parent_node

(no version information, might be only in CVS)

DomNode->parent_node -- Returns the parent of the node

Description

object DomNode->parent_node ( void )

This function returns the parent node.

(PHP >= 4.3 only) If no parent is found, NULL is returned.

The following example will show two identical lists of children.

Ejemplo 1. Finding the document of a node

<?php
$doc = domxml_new_doc("1.0");
$node = $doc->create_element("para");
$node = $doc->append_child($node);
$children = $doc->children();
print_r($children);

$doc2 = $node->parent_node();
$children = $doc2->children();
print_r($children);
?>

Anterior | Inicio | Siguiente
DomNode->owner_document | Subir | DomNode->prefix


DomNode->prefix

(no version information, might be only in CVS)

DomNode->prefix -- Returns name space prefix of node

Description

string DomNode->prefix ( void )

Returns the name space prefix of the node.

Anterior | Inicio | Siguiente
DomNode->parent_node | Subir | DomNode->previous_sibling


DomNode->previous_sibling

(no version information, might be only in CVS)

DomNode->previous_sibling -- Returns the previous sibling of node

Description

object DomNode->previous_sibling ( void )

This function returns the previous sibling of the current node. If there is no previous sibling it returns FALSE (< 4.3) or NULL (>= 4.3). You can use this function to iterate over all children of a node as shown in the example.

See also domnode_next_sibling().

Anterior | Inicio | Siguiente
DomNode->prefix | Subir | DomNode->remove_child


DomNode->remove_child

(no version information, might be only in CVS)

DomNode->remove_child -- Removes child from list of children

Description

object DomNode->remove_child ( object oldchild)

This functions removes a child from a list of children. If child cannot be removed or is not a child the function will return FALSE. If the child could be removed the functions returns the old child.

Ejemplo 1. Removing a child

<?php
include("example.inc");

if(!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$elements = $dom->get_elements_by_tagname("tbody");
$element = $elements[0];
$children = $element->child_nodes();
$child = $element->remove_child($children[0]);

echo "<PRE>";
$xmlfile = $dom->dump_mem(true);
echo htmlentities($xmlfile);
echo "</PRE>";
?>

See also domnode_append_child().

Anterior | Inicio | Siguiente
DomNode->previous_sibling | Subir | DomNode->replace_child


DomNode->replace_child

(no version information, might be only in CVS)

DomNode->replace_child -- Replaces a child

Description

object DomNode->replace_child ( object oldnode, object newnode)

(PHP 4.2) This function replaces the child oldnode with the passed new node. If the new node is already a child it will not be added a second time. If the old node cannot be found the function returns FALSE. If the replacement succeds the old node is returned.

(PHP 4.3) This function replaces the child oldnode with the passed newnode, even if the new node already is a child of the DomNode. If newnode was already inserted in the document it is first unlinked from its existing context. If the old node cannot be found the function returns FALSE. If the replacement succeds the old node is returned. (This behaviour is according to the W3C specs).

See also domnode_append_child()

Anterior | Inicio | Siguiente
DomNode->remove_child | Subir | DomNode->replace_node


DomNode->replace_node

(no version information, might be only in CVS)

DomNode->replace_node -- Replaces node

Description

object DomNode->replace_node ( object newnode)

(PHP 4.2) This function replaces an existing node with the passed new node. Before the replacement newnode is copied if it has a parent to make sure a node which is already in the document will not be inserted a second time. This behaviour enforces doing all modifications on the node before the replacement or to refetch the inserted node afterwards with functions like domnode_first_child(), domnode_child_nodes() etc..

(PHP 4.3) This function replaces an existing node with the passed new node. It is not copied anymore. If newnode was already inserted in the document it is first unlinked from its existing context. If the replacement succeds the old node is returned.

See also domnode_append_child()

Anterior | Inicio | Siguiente
DomNode->replace_child | Subir | DomNode->set_content


DomNode->set_content

(no version information, might be only in CVS)

DomNode->set_content -- Sets content of node

Description

bool DomNode->set_content ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
DomNode->replace_node | Subir | DomNode->set_name


DomNode->set_name

(no version information, might be only in CVS)

DomNode->set_name -- Sets name of node

Description

bool DomNode->set_name ( void )

Sets name of node.

See also domnode_node_name().

Anterior | Inicio | Siguiente
DomNode->set_content | Subir | DomNode->set_namespace


DomNode->set_namespace

(no version information, might be only in CVS)

DomNode->set_namespace -- Sets namespace of a node.

Description

void DomNode->set_namespace ( string uri [, string prefix])

Sets the namespace of a node to uri. If there is already a namespace declaration with the same uri in one of the parent nodes of the node, the prefix of this is taken, otherwise it will take the one provided in the optional parameter prefix or generate a random one.

See also domdocument_create_element_ns(), domnode_add_namespace()

Anterior | Inicio | Siguiente
DomNode->set_name | Subir | DomNode->unlink_node


DomNode->unlink_node

(no version information, might be only in CVS)

DomNode->unlink_node -- Deletes node

Description

object DomNode->unlink_node ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
DomNode->set_namespace | Subir | DomProcessingInstruction->data


DomProcessingInstruction->data

(no version information, might be only in CVS)

DomProcessingInstruction->data -- Returns data of pi node

Description

string DomProcessingInstruction->data ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
DomNode->unlink_node | Subir | DomProcessingInstruction->target


DomProcessingInstruction->target

(no version information, might be only in CVS)

DomProcessingInstruction->target -- Returns target of pi node

Description

string DomProcessingInstruction->target ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
DomProcessingInstruction->data | Subir | DomXsltStylesheet->process


DomXsltStylesheet->process

(no version information, might be only in CVS)

DomXsltStylesheet->process -- Applies the XSLT-Transformation on a DomDocument Object.

Description

object DomXsltStylesheet->process ( object DomDocument [, array xslt_parameters [, bool param_is_xpath]])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

See also domxml_xslt_stylesheet(), domxml_xslt_stylesheet_file(), domxml_xslt_stylesheet_doc()

Anterior | Inicio | Siguiente
DomProcessingInstruction->target | Subir | DomXsltStylesheet->result_dump_file


DomXsltStylesheet->result_dump_file

(no version information, might be only in CVS)

DomXsltStylesheet->result_dump_file -- Dumps the result from a XSLT-Transformation into a file

Description

string DomXsltStylesheet->result_dump_file ( object DomDocument, string filename)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

This function is only available since PHP 4.3

Since DomXsltStylesheet->process() always returns a well-formed XML DomDocument, no matter what output method was declared in <xsl:output> and similar attributes/elements, it's of not much use, if you want to output HTML 4 or text data. This function on the contrary honors <xsl:output method="html|text"> and other output control directives. See the example for instruction of how to use it.

Ejemplo 1. Saving the result of a XSLT transformation in a file

<?php
$filename = "stylesheet.xsl";
$xmldoc = domxml_open_file("data.xml");
$xsldoc = domxml_xslt_stylesheet_file($filename);
$result =  $xsldoc->process($xmldoc);
print $xsldoc->result_dump_file($result,"filename");
?>

See also domxml_xslt_result_dump_mem(), domxml_xslt_process()

Anterior | Inicio | Siguiente
DomXsltStylesheet->process | Subir | DomXsltStylesheet->result_dump_mem


DomXsltStylesheet->result_dump_mem

(no version information, might be only in CVS)

DomXsltStylesheet->result_dump_mem -- Dumps the result from a XSLT-Transformation back into a string

Description

string DomXsltStylesheet->result_dump_mem ( object DomDocument)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

This function is only available since PHP 4.3

Since DomXsltStylesheet->process() always returns a well-formed XML DomDocument, no matter what output method was declared in <xsl:output> and similar attributes/elements, it's of not much use, if you want to output HTML 4 or text data. This function on the contrary honors <xsl:output method="html|text"> and other output control directives. See the example for instruction of how to use it.

Ejemplo 1. Outputting the result of a XSLT transformation

<?php
$filename = "stylesheet.xsl";
$xmldoc = domxml_open_file("data.xml");
$xsldoc = domxml_xslt_stylesheet_file($filename);
$result =  $xsldoc->process($xmldoc);
print $xsldoc->result_dump_mem($result);
?>

See also domxml_xslt_result_dump_file(), domxml_xslt_process()

Anterior | Inicio | Siguiente
DomXsltStylesheet->result_dump_file | Subir | domxml_new_doc


domxml_new_doc

(PHP 4 >= 4.2.1)

domxml_new_doc -- Creates new empty XML document

Description

object domxml_new_doc ( string version)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Creates a new dom document from scratch and returns it.

See also domdocument_add_root()

Anterior | Inicio | Siguiente
DomXsltStylesheet->result_dump_mem | Subir | domxml_open_file


domxml_open_file

(PHP 4 >= 4.2.1)

domxml_open_file -- Creates a DOM object from XML file

Description

object domxml_open_file ( string filename)

The function parses the XML document in the file named filename and returns an object of class "Dom document", having the properties as listed above. The file is accessed read-only.

Ejemplo 1. Opening a xml document from a file

<?php

if(!$dom = domxml_open_file("example.xml")) {
  echo "Error while parsing the document\n";
  exit;
}

$root = $dom->document_element();
?>

See also domxml_open_mem(), domxml_new_doc().

Anterior | Inicio | Siguiente
domxml_new_doc | Subir | domxml_open_mem


domxml_open_mem

(PHP 4 >= 4.2.1)

domxml_open_mem -- Creates a DOM object of an XML document

Description

object domxml_open_mem ( string str)

The function parses the XML document in str and returns an object of class "Dom document", having the properties as listed above. This function, domxml_open_file() or domxml_new_doc() must be called before any other function calls.

Ejemplo 1. Opening a xml document in a string

<?php
include("example.inc");

if(!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$root = $dom->document_element();
?>

See also domxml_open_file(), domxml_new_doc().

Anterior | Inicio | Siguiente
domxml_open_file | Subir | domxml_version


domxml_version

(PHP 4 >= 4.1.0)

domxml_version -- Get XML library version

Description

string domxml_version ( void )

This function returns the version of the XML library version currently used.

Anterior | Inicio | Siguiente
domxml_open_mem | Subir | domxml_xmltree


domxml_xmltree

(PHP 4 >= 4.2.1)

domxml_xmltree -- Creates a tree of PHP objects from an XML document

Description

object domxml_xmltree ( string str)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

The function parses the XML document in str and returns a tree PHP objects as the parsed document. This function is isolated from the other functions, which means you cannot access the tree with any of the other functions. Modifying it, for example by adding nodes, makes no sense since there is currently no way to dump it as an XML file. However this function may be valuable if you want to read a file and investigate the content.

Anterior | Inicio | Siguiente
domxml_version | Subir | domxml_xslt_stylesheet_doc


domxml_xslt_stylesheet_doc

(PHP 4 >= 4.2.0)

domxml_xslt_stylesheet_doc -- Creates a DomXsltStylesheet Object from a DomDocument Object.

Description

object domxml_xslt_stylesheet_doc ( object DocDocument Object)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

See also domxsltstylesheet->process(), domxml_xslt_stylesheet(), domxml_xslt_stylesheet_file()

Anterior | Inicio | Siguiente
domxml_xmltree | Subir | domxml_xslt_stylesheet_file


domxml_xslt_stylesheet_file

(PHP 4 >= 4.2.0)

domxml_xslt_stylesheet_file -- Creates a DomXsltStylesheet Object from a xsl document in a file.

Description

object domxml_xslt_stylesheet_file ( string xsl file)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

See also domxsltstylesheet->process(), domxml_xslt_stylesheet(), domxml_xslt_stylesheet_doc()

Anterior | Inicio | Siguiente
domxml_xslt_stylesheet_doc | Subir | domxml_xslt_stylesheet


domxml_xslt_stylesheet

(PHP 4 >= 4.2.0)

domxml_xslt_stylesheet -- Creates a DomXsltStylesheet Object from a xml document in a string.

Description

object domxml_xslt_stylesheet ( string xsl document)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

See also domxsltstylesheet->process(), domxml_xslt_stylesheet_file(), domxml_xslt_stylesheet_doc()

Anterior | Inicio | Siguiente
domxml_xslt_stylesheet_file | Subir | xpath_eval_expression


xpath_eval_expression

(PHP 4 >= 4.0.4)

xpath_eval_expression -- Evaluates the XPath Location Path in the given string

Description

array xpath_eval_expression ( object xpath_context)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

See also xpath_eval()

Anterior | Inicio | Siguiente
domxml_xslt_stylesheet | Subir | xpath_eval


xpath_eval

(PHP 4 >= 4.0.4)

xpath_eval -- Evaluates the XPath Location Path in the given string

Description

array xpath_eval ( object xpath context, string xpath expression [, object contextnode])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

The optional contextnode can be specified for doing relative XPath queries.

See also xpath_new_context()

Anterior | Inicio | Siguiente
xpath_eval_expression | Subir | xpath_new_context


xpath_new_context

(PHP 4 >= 4.0.4)

xpath_new_context -- Creates new xpath context

Description

object xpath_new_context ( object dom document)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

See also xpath_eval()

Anterior | Inicio | Siguiente
xpath_eval | Subir | xptr_eval


xptr_eval

(PHP 4 >= 4.0.4)

xptr_eval -- Evaluate the XPtr Location Path in the given string

Description

int xptr_eval ( [object xpath_context, string eval_str])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
xpath_new_context | Subir | xptr_new_context


xptr_new_context

(PHP 4 >= 4.0.4)

xptr_new_context -- Create new XPath Context

Description

string xptr_new_context ( [object doc_handle])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
xptr_eval | Subir | .NET functions


.NET functions

Manual de PHP
Anterior Siguiente

XXV. .NET functions

Introducción

Aviso

Esta extensión es EXPERIMENTAL. Esto significa que el comportamiento de esta extensión, los nombre de sus funciones y en definitiva TODO lo documentado sobre esta extensión, puede cambiar en una futura versión de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Tabla de contenidos
dotnet_load -- Loads a DOTNET module

Anterior | Inicio | Siguiente
xptr_new_context | Subir | dotnet_load


dotnet_load

(no version information, might be only in CVS)

dotnet_load -- Loads a DOTNET module

Description

int dotnet_load ( string assembly_name [, string datatype_name [, int codepage]])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
.NET functions | Subir | Funciones de Gestión de Errores y Registros


Funciones de Gestión de Errores y Registros

Manual de PHP
Anterior Siguiente

XXVI. Funciones de Gestión de Errores y Registros

Introducción

Estas son funciones que operan sobre gestión de errores y registros. Le permiten definir sus propias reglas de gestión de errores, asi como modificar el modo en que los errores son registrados. Esto le permite modificar y mejorar el reporte de errores para que se adapte a sus necesidades.

Con las funciones de registro, puede enviar mensajes directamente a otras máquinas, a un correo electrónico (¡o correo electrónico a una puerta de enlace con un buscapersonas!), a bitácoras del sistema, etc., de modo que puede registrar y monitorear selectivamente las partes más importantes de sus aplicaciones y sitios web.

Las funciones de reporte de errores le permiten personalizar el nivel y tipo de retroalimentación de errores que PHP entrega, desde noticias simples a funciones personalizadas devueltas durante los errores.

Requerimientos

No se necesitan bibliotecas externas para construir esta extensión

Instalación

No se necesita ninguna instalación para usar estas funciones, son parte del núcleo de PHP.

Configuración en tiempo de ejecución

El comportamiento de estas funciones está afectado por los valores definidos en php.ini.

Tabla 1. Opciones de Configuración de Errores y Registro

Nombre | Por defecto | Modificable
error_reporting | E_ALL & ~E_NOTICE | PHP_INI_ALL
display_errors | "1" | PHP_INI_ALL
display_startup_errors | "0" | PHP_INI_ALL
log_errors | "0" | PHP_INI_ALL
log_errors_max_len | "1024" | PHP_INI_ALL
ignore_repeated_errors | "0" | PHP_INI_ALL
ignore_repeated_source | "0" | PHP_INI_ALL
report_memleaks | "1" | PHP_INI_SYSTEM
track_errors | "0" | PHP_INI_ALL
html_errors | "1" | PHP_INI_ALL
docref_root | "" | PHP_INI_ALL
docref_ext | "" | PHP_INI_ALL
error_prepend_string | NULL | PHP_INI_ALL
error_append_string | NULL | PHP_INI_ALL
error_log | NULL | PHP_INI_ALL
warn_plus_overloading | NULL | PHP_INI??
Para más detalles y la definición de las constantes PHP_INI_* consulte ini_set().

A continuación se presenta una corta explicación de las directivas de configuración

error_reporting integer

Establece el nivel de reporte de errores. Este parámetro es ya sea un entero que representa un campo de bit, o constantes con nombre. Los niveles de error_reporting y las constantes están descritas en Constantes Predefinidas, y en php.ini. Para definir este valor en tiempo de ejecución, use la función error_reporting(). Vea también la directiva display_errors.

En PHP 4 y PHP 5, el valor predeterminado es E_ALL & ~E_NOTICE. Este valor no muestra errores de nivel E_NOTICE. Puede que usted quiera mostrarlos durante su actividad de desarrollo.

Nota: Al habilitar E_NOTICE durante el desarrollo de software tiene algunos beneficios. Para propósitos de depuración: los mensajes NOTICE le advertirán sobre posibles fallos en su código. Por ejemplo, se le advertirá sobre el uso de valores no-asignados. Es extremadamente útil para encontrar errores ortográficos y ahorrar tiempo de depuración. Los mensajes NOTICE le advertirán sobre el uso de un estilo incorrecto. Por ejemplo, $matriz[item] está mejor escrito como $matriz['item'] ya que PHP intenta darle a "item" un tratamiento de constante. Si no es una constante, PHP asume que es un índice de tipo cadena para la matriz.

Nota: En PHP 5, un nuevo nivel de error, E_STRICT, se encuentra disponible. Dado que E_STRICT no se incluye en E_ALL, usted debe habilitar explícitamente este tipo de nivel de error. Habilitar E_STRICT durante el desarrollo tiene algunos beneficios. Los mensajes STRICT le ayudarán a usar los últimos y más grandiosos métodos sugeridos para escribir código, por ejemplo, le advertirá sobre el uso de funciones obsoletas.

En PHP 3, el valor por defecto es (E_ERROR | E_WARNING | E_PARSE), lo que en la práctica representa lo mismo. Note, sin embargo, que dado que las constantes en el archivo php3.ini de PHP 3 no son soportadas, el valor de error_reporting allí debe ser numérico; por lo tanto, es 7.

display_errors boolean

Este parámetro determina si los errores deben ser puestos en pantalla como parte de la salida o si deben ser ocultados al usuario.

Nota: Es una característica de apoyo para su proceso de desarrollo y no debería ser usada nunca en sistemas en producción (p.ej. sistemas conectados a internet).

display_startup_errors boolean

Aun cuando display_errors esté encendido, los errores que ocurren durante la secuencia de arranque de PHP no son desplegados. Es muy recomendable mantener display_startup_errors apagado, excepto en tiempos de depuración.

log_errors boolean

Indica si los mensajes de error de un script deben ser registrados en la bitácora de errores del servidor o error_log. Esta opción es por lo tanto espocífica al servidor.

Nota: Es altamente recomendable que use registro de errores en lugar de despliegue de errores en sitios web en producción.

log_errors_max_len integer

Establece la longitud máxima de log_errors en bytes. En error_log se añade información sobre la fuente. El valor por defecto es 1024, y un valor de 0 permite que no se aplique ninguna longitud máxima en absoluto.

ignore_repeated_errors boolean

No registrar mensajes repetidos. Los errores repetidos deben ocurrir en el mismo archivo, en la misma línea hasta que el parámetro ignore_repeated_source sea establecido como true.

ignore_repeated_source boolean

Ignorar la fuente de mensaje cuando se ignoran los mensajes repetidos. Cuando este parámetro está encendido, no se registrará errores con mensajes repetidos desde diferentes fuentes de archivos.

report_memleaks boolean

Si este parámetro está apagado, entonces las fugas de memoria no serán mostradas (en stdout o en el registro). Este valor sólo tiene efecto en una compilación de depuración, y si error_reporting incluye E_WARNING en la lista permitida.

track_errors boolean

Cuando está habilitado, el último mensaje de error estará siempre presente en la variable $php_errormsg.

html_errors boolean

Permite deshabilitar las etiquetas HTML en los mensajes de error. El nuevo formato para los errores en html produce mensajes con enlaces que dirigen al usuario a una página que describe el error o función que ha causado el error. Estas referencias son afectadas por docref_root y docref_ext.

docref_root string

El nuevo formato de error contiene una referencia hacia una página que describe el error o la función que ha causado el error. En el caso de páginas de un manual, usted puede descargar el manual en su idioma y establecer esta directiva ini como la url de su copia local. Si su copia local del manual puede encontrarse bajo '/manual/' entonces puede usar simplemente docref_root=/manual/. Adicionalmente debe establecer un valor de docref_ext que coincida con las extensiones de archivo de su copia; docref_ext=.html. Es posible usar referencias externas. Por ejemplo, puede usar docref_root=http://manual/en/ o docref_root="http://landonize.it/?how=url&theme=classic&filter=Landon &url=http%3A%2F%2Fwww.php.net%2F".

Por lo general usted querrá que el valor de docref_root finalice con una barra '/'. Pero observe el segundo ejemplo mencionado anteriormente, el cual no tiene una barra final, ni la necesita.

Nota: Esta es una característica de apoyo para su desarrollo ya que permite consultar la descripción de una función fácilmente. Sin embargo, nunca debe ser utilizada en sistemas en producción (p.ej. sistema conectados a internet).

docref_ext string

Vea docref_root.

Nota: El valor de docref_ext debe comenzar con un punto '.'.

error_prepend_string string

Cadena a mostrar antes de un mensaje de error.

error_append_string string

Cadena a mostrar después de un mensaje de error.

error_log string

Nombre del archivo en donde deberían registrarse los errores del script. Si se utiliza el valor especial syslog, los errores son enviados al gestor de registros del sistema. En UNIX, esto quiere decir syslog(3) y en Windows NT quiere decir el "event log". El gestor de registro de actividades no está soportado bajo Windows 95. Vea también: syslog().

warn_plus_overloading boolean

Si se habilita, esta opción hace que PHP genere una advertencia cuando se utilice un operador más (+) con cadenas. Esto facilita la labor de encontrar scripts que necesitan ser reescritos para hacer uso del concatenador de cadenas en su lugar (.).

Constantes predefinidas

Las constantes listadas aqui están siempre disponibles a través del "núcleo PHP".

Nota: Es posible usar estos nombres de constantes en php.ini pero no por fuera de PHP, como en httpd.conf, en donde debería usar los valores de máscara de bits en su lugar.

Tabla 2. Errores y Registro

Valor | Constante | Descripción | Nota
1 | E_ERROR (integer) | Errores fatales en tiempo de ejecución. Estos indican errores de los que no es posible recuperarse, tales como problemas de asignación de memoria. Se detiene la ejecución del script. |
2 | E_WARNING (integer) | Advertencias en tiempo de ejecución (errores no-fatales). La ejecución del script no se interrumpe. |
4 | E_PARSE (integer) | Errores de intérprete en tiempo de compilación. Esto tipo de errores deberían ser generados únicamente por el interprete. |
8 | E_NOTICE (integer) | Anotaciones en tiempo de ejecución. Indican que el script se ha topado con algo que puede indicar la presencia de un error, pero que también podría ocurrir en el curso normal de la ejecución de un script. |
16 | E_CORE_ERROR (integer) | Errores fatales que ocurren durante el arranque inicial de PHP. Es como un E_ERROR, excepto que es generado por el núcleo de PHP. | sólo en PHP 4
32 | E_CORE_WARNING (integer) | Advertencias (errores no-fatales) que ocurren durante el arranque inicial de PHP. Es como un E_WARNING, excepto que es generado por el núcleo de PHP. | sólo en PHP 4
64 | E_COMPILE_ERROR (integer) | Errores fatales en tiempo de compilación. Es como un E_ERROR, excepto que es generado por el Motor de Scripting de Zend. | sólo en PHP 4
128 | E_COMPILE_WARNING (integer) | Advertencias en tiempo de compilación (errores no fatales). Es como un E_WARNING, excepto que es generado por el Motor de Scripting de Zend. | sólo en PHP 4
256 | E_USER_ERROR (integer) | Mensaje de error generado por el usuario. Es como un E_ERROR, excepto que es generado desde código PHP usando la función trigger_error(). | sólo en PHP 4
512 | E_USER_WARNING (integer) | Mensaje de advertencia generado por el usuario. Es como un E_WARNING, excepto que es generado desde código PHP usando la función trigger_error(). | sólo en PHP 4
1024 | E_USER_NOTICE (integer) | Anotación generada por el usuario. Es como un E_NOTICE, excepto que es generado desde código PHP usando la función trigger_error(). | sólo en PHP 4
2047 | E_ALL (integer) | Todos los errores y advertencias, en la medida en que sean soportados, excepto por el nivel E_STRICT. |
2048 | E_STRICT (integer) | Noticias de tiempo de ejecución. Habilite este valor para hacer que PHP sugiera cambios en su código que velarán por la mejor interoperabilidad y por mantener la compatibilidad de su código. | sólo en PHP 5

Los valores referidos anteriormente (ya sean numéricos o simbólicos) son usados para construir una máscara de bits que indica cuáles errores reportar. Puede usar los operadores bit a bit para combinar estos valores o excluir explícitamente ciertos tipos de errores. Sin embargo, note que únicamente '|', '~', '!', ^ y '&' serán entendidos desde php.ini, y que ningún operador bit a bit será interpretado correctamente desde php3.ini.

Ejemplos

A continuación podemos apreciar un ejemplo del uso de las capacidades de gestión de errores que vienen con PHP. Definimos una función de manipulación de errores que registra la información en un archivo (usando un formato XML), y envía un correo electrónico al desarrollador en caso de que un error crítico en la lógica del software ocurra.

Ejemplo 1. Uso de gestión de errores en un script

<?php
// haremos nuestra propia manipulaci&oacute;n de errores
error_reporting(0);

// funci&oacute;n de gesti&oacute;n de errores definida por el usuario
function gestorDeErroresDeUsuario ($num_err, $mens_err, $nombre_archivo,
                                   $num_linea, $vars) {

    // marca de fecha/hora para el registro de error
    $dt = date("Y-m-d H:i:s (T)");

    // definir una matriz asociativa de cadenas de error
    // en realidad las &uacute;nicas entradas que deber&iacute;amos
    // considerar son 2, 8, 256, 512 y 1024
    $tipo_error = array (
                1   =>  "Error",
                2   =>  "Advertencia",
                4   =>  "Error de Int&eacute;rprete",
                8   =>  "Anotaci&oacute;n",
                16  =>  "Error de N&uacute;cleo",
                32  =>  "Advertencia de N&uacute;cleo",
                64  =>  "Error de Compilaci&oacute;n",
                128 =>  "Advertencia de Compilaci&oacute;n",
                256 =>  "Error de Usuario",
                512 =>  "Advertencia de Usuario",
                1024=>  "Anotaci&oacute;n de Usuario"
                );
    // conjunto de errores de los cuales se almacenar&aacute; un rastreo
    $errores_de_usuario = array(E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE);

    $err = "<errorentry>\n";
    $err .= "\t<datetime>".$dt."</datetime>\n";
    $err .= "\t<errornum>".$num_err."</errornum>\n";
    $err .= "\t<errortype>".$tipo_error[$num_err]."</errortype>\n";
    $err .= "\t<errormsg>".$mens_err."</errormsg>\n";
    $err .= "\t<scriptname>".$nombre_archivo."</scriptname>\n";
    $err .= "\t<scriptlinenum>".$num_linea."</scriptlinenum>\n";

    if (in_array($num_err, $errores_de_usuario))
        $err .= "\t<vartrace>".wddx_serialize_value($vars,"Variables")."</vartrace>\n";
    $err .= "</errorentry>\n\n";

    // para efectos de debug
    // echo $err;

    // guardar en el registro de errores, y enviar un correo
    // electr&oacute;nico si hay un error cr&iacute;tico de usuario
    error_log($err, 3, "/usr/local/php4/error.log");
    if ($num_err == E_USER_ERROR)
        mail("phpdev@ejemplo.com","Error Cr&iacute;tico de Usuario",$err);
}

function distancia ($vect1, $vect2) {
    if (!is_array($vect1) || !is_array($vect2)) {
        trigger_error("Par&aacute;metros incorrectos, se esperan matrices", E_USER_ERROR);
        return NULL;
    }

    if (count($vect1) != count($vect2)) {
        trigger_error("Los vectores deben ser del mismo tama&ntilde;o", E_USER_ERROR);
        return NULL;
    }

    for ($i=0; $i<count($vect1); $i++) {
        $c1 = $vect1[$i]; $c2 = $vect2[$i];
        $d = 0.0;
        if (!is_numeric($c1)) {
            trigger_error("La coordenada $i en el vector 1 no es un ".
                          "n&uacute;mero, se usar&aacute; cero",
                            E_USER_WARNING);
            $c1 = 0.0;
        }
        if (!is_numeric($c2)) {
            trigger_error("La coordenada $i en el vector 2 no es un".
                          "n&uacute;mero, se usar&aacute; cero",
                            E_USER_WARNING);
            $c2 = 0.0;
        }
        $d += $c2*$c2 - $c1*$c1;
    }
    return sqrt($d);
}

$gestor_de_errores_anterior = set_error_handler("gestorDeErroresDeUsuario");

// constante indefinida, se genera una advertencia
$t = NO_ESTOY_DEFINIDA;

// definir algunos "vectores"
$a = array(2,3,"foo");
$b = array(5.5, 4.3, -1.6);
$c = array (1,-3);

// generar un error de usuario
$t1 = distance($c,$b)."\n";

// generar otro error de usuario
$t2 = distance($b,"no soy una matriz")."\n";

// generar una advertencia
$t3 = distance($a,$b)."\n";

?>

Ver también

Vea también syslog().

Tabla de contenidos
debug_backtrace -- Genera un backtrace
debug_print_backtrace -- Imprime un backtrace
error_log -- envía un mensaje de error a algún lugar
error_reporting -- establece que errores PHP son registrados
restore_error_handler -- Restores the previous error handler function
set_error_handler -- Sets a user-defined error handler function.
trigger_error -- Generates a user-level error/warning/notice message
user_error -- Generates a user-level error/warning/notice message

Anterior | Inicio | Siguiente
dotnet_load | Subir | debug_backtrace


debug_backtrace

(PHP 4 >= 4.3.0)

debug_backtrace -- Genera un backtrace

Descripción

array debug_backtrace ( void )

debug_backtrace() genera un backtrace PHP y devuelve esta información como un array asociativo. Los elementos posiblemente devueltos son referenciados en la siguiente tabla:

Tabla 1. Elementos posiblemente devueltos por debug_backtrace()

Nombre | Tipo | Descripción
function | string | El nombre de la función actual. Vea también __FUNCTION__.
line | integer | El número de línea actual. Vea también __LINE__.
file | string | El nombre del archivo actual. Vea también __FILE__.
class | string | El nombre de la clase actual. Vea también __CLASS__
type | string | El tipo de clase actual.
args | array | Si se encuentra al interior de una función, contiene una lista de los argumentos de la función. Si se encuentra al interior de un archivo de inclusión, contiene una lista de los nombres de archivos incluídos.

El siguiente es un ejemplo sencillo.

Ejemplo 1. Ejemplo de debug_backtrace()

// nombre de archivo: a.php
<?php

function prueba_a($cadena) {

    print "\nHola: $cadena";

    var_dump(debug_backtrace());
}

prueba_a('amigo');
?>

// nombre de archivo: b.php
<?php
include_once '/tmp/a.php';
?>

Resultados de ejecutar /tmp/b.php:

Hola: amigo
array(2) {
  [0]=>
  array(4) {
    ["file"] => string(10) "/tmp/a.php"
    ["line"] => int(10)
    ["function"] => string(8) "prueba_a"
    ["args"]=>
    array(1) {
      [0] => &string(5) "amigo"
    }
  }
  [1]=>
  array(4) {
    ["file"] => string(10) "/tmp/b.php"
    ["line"] => int(2)
    ["args"] =>
    array(1) {
      [0] => string(10) "/tmp/a.php"
    }
    ["function"] => string(12) "include_once"
  }
}

Vea también trigger_error() y debug_print_backtrace().

Anterior | Inicio | Siguiente
Funciones de Gestión de Errores y Registros | Subir | debug_print_backtrace


debug_print_backtrace

(PHP 5 CVS only)

debug_print_backtrace -- Imprime un backtrace

Descripción

void debug_print_backtrace ( void )

debug_print_backtrace() imprime un backtrace PHP.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Vea también debug_backtrace().

Anterior | Inicio | Siguiente
debug_backtrace | Subir | error_log


error_log

(PHP 3, PHP 4 )

error_log -- envía un mensaje de error a algún lugar

Descripción

int error_log ( string message, int message_type [, string destination [, string extra_headers]])

Envía un mensaje de error al log de errores del servidor web, a un puerto TCP o a un fichero. El primer parámetro, message (mensaje), es el mensaje de error que debe ser registrado. El segundo parámetro, message_type (tipo de mensaje) indica el lugar al que debe dirigirse:

Tabla 1. error_log() tipos de log

0 | message es enviado al registro de sistema de PHP, utilizando el mecanismo de registro de sistema del Sistema Operativo, o a un fichero, dependiendo del valor de la directiva de configuración error_log
1 | message es enviado por correo electrónico a la dirección del parámetro destination (destino). Este es el único tipo de mensaje donde se utiliza el cuarto parámetro, extra_headers. Este tipo de mensaje utiliza la misma funcionalidad interna que mail() realiza.
2 | message es enviado a través de la conexión de depuración de PHP. Esta opción está disponible sólo si la depuración remota ha sido activada. En este caso el parámetro destination especifica el nombre de host o dirección IP y, opcionalmente, el número de puerto del socket que recibe la información de depuración.
3 | message es añadido al fichero destination.

Ejemplo 1. error_log() ejemplos

// Send notification through the server log if we can not
// connect to the database.
if (!Ora_Logon($username, $password)) {
    error_log("Oracle database not available!", 0);
}

// Notify administrator by email if we run out of FOO
if (!($foo = allocate_new_foo()) {
    error_log("Big trouble, we're all out of FOOs!", 1,
              "operator@mydomain.com");
}

// other ways of calling error_log():
error_log("You messed up!", 2, "127.0.0.1:7000");
error_log("You messed up!", 2, "loghost");
error_log("You messed up!", 3, "/var/tmp/my-errors.log");

Anterior | Inicio | Siguiente
debug_print_backtrace | Subir | error_reporting


error_reporting

(PHP 3, PHP 4 )

error_reporting -- establece que errores PHP son registrados

Descripción

int error_reporting ( [int level])

Establece el nivel de registro de los errores PHP y devuelve el nivel anterior. El nivel de registro es una máscara de bits de los valores siguientes (siga los enlaces a los valores internos para obtener sus significados):

Tabla 1. error_reporting() valores de bit

valor | nombre interno
1 | E_ERROR
2 | E_WARNING
4 | E_PARSE
8 | E_NOTICE
16 | E_CORE_ERROR
32 | E_CORE_WARNING

Anterior | Inicio | Siguiente
error_log | Subir | restore_error_handler


restore_error_handler

(PHP 4 >= 4.0.1)

restore_error_handler -- Restores the previous error handler function

Description

void restore_error_handler ( void )

Used after changing the error handler function using set_error_handler(), to revert to the previous error handler (which could be the built-in or a user defined function)

See also error_reporting(),
set_error_handler(),
trigger_error(), user_error()

Anterior | Inicio | Siguiente
error_reporting | Subir | set_error_handler


set_error_handler

(PHP 4 >= 4.0.1)

set_error_handler -- Sets a user-defined error handler function.

Description

string set_error_handler ( string error_handler)

Sets a user function (error_handler) to handle errors in a script. Returns the previously defined error handler (if any), or FALSE on error. This function can be used for defining your own way of handling errors during runtime, for example in applications in which you need to do cleanup of data/files when a critical error happens, or when you need to trigger an error under certain conditions (using trigger_error())

The user function needs to accept 2 parameters: the error code, and a string describing the error. The example below shows the handling of internal execptions by triggering errors and handling them with a user defined function:

Ejemplo 1. Error handling with set_error_handler() and trigger_error()

<?php

// redefine the user error constants - PHP4 only
define (FATAL,E_USER_ERROR);
define (ERROR,E_USER_WARNING);
define (WARNING,E_USER_NOTICE);

// set the error reporting level for this script
error_reporting  (FATAL + ERROR + WARNING);

// error handler function
function myErrorHandler ($errno, $errstr) {
    switch ($errno) {
    case FATAL:
    echo "<b>FATAL</b> [$errno] $errstr<br>\n";
    echo "  Fatal error in line ".__LINE__." of file ".__FILE__;
    echo ", PHP ".PHP_VERSION." (".PHP_OS.")<br>\n";
    echo "Aborting...<br>\n";
    exit -1;
    break;
    case ERROR:
    echo "<b>ERROR</b> [$errno] $errstr<br>\n";
    break;
    case WARNING:
    echo "<b>WARNING</b> [$errno] $errstr<br>\n";
    break;
    default:
    echo "Unkown error type: [$errno] $errstr<br>\n";
    break;
    }
}

// function to test the error handling
function scale_by_log ($vect, $scale) {
    if ( !is_numeric($scale) || $scale <= 0 )
    trigger_error("log(x) for x <= 0 is undefined, you used: scale = $scale",
      FATAL);
    if (!is_array($vect)) {
    trigger_error("Incorrect input vector, array of values expected", ERROR);
    return null;
    }
    for ($i=0; $i<count($vect); $i++) {
    if (!is_numeric($vect[$i]))
    trigger_error("Value at position $i is not a number, using 0 (zero)",
      WARNING);
    $temp[$i] = log($scale) * $vect[$i];
    }
    return $temp;
}

// set to the user defined error handler
$old_error_handler = set_error_handler("myErrorHandler");

// trigger some errors, first define a mixed array with a non-numeric item
echo "vector a\n";
$a = array(2,3,"foo",5.5,43.3,21.11);
print_r($a);

// now generate second array, generating a warning
echo "----\nvector b - a warning (b = log(PI) * a)\n";
$b = scale_by_log($a, M_PI);
print_r($b);

// this is trouble, we pass a string instead of an array
echo "----\nvector c - an error\n";
$c = scale_by_log("not array",2.3);
var_dump($c);

// this is a critical error, log of zero or negative number is undefined
echo "----\nvector d - fatal error\n";
$d = scale_by_log($a, -2.5);

?>
And when you run this sample script, the output will be

vector a
Array
(
    [0] => 2
    [1] => 3
    [2] => foo
    [3] => 5.5
    [4] => 43.3
    [5] => 21.11
)
----
vector b - a warning (b = log(PI) * a)
<b>WARNING</b> [1024] Value at position 2 is not a number, using 0 (zero)<br>
Array
(
    [0] => 2.2894597716988
    [1] => 3.4341896575482
    [2] => 0
    [3] => 6.2960143721717
    [4] => 49.566804057279
    [5] => 24.165247890281
)
----
vector c - an error
<b>ERROR</b> [512] Incorrect input vector, array of values expected<br>
NULL
----
vector d - fatal error
<b>FATAL</b> [256] log(x) for x <= 0 is undefined, you used: scale = -2.5<br>
  Fatal error in line 16 of file trigger_error.php, PHP 4.0.1pl2 (Linux)<br>
Aborting...<br>

See also error_reporting(),
restore_error_handler(),
trigger_error(), user_error()

Anterior | Inicio | Siguiente
restore_error_handler | Subir | trigger_error


trigger_error

(PHP 4 >= 4.0.1)

trigger_error -- Generates a user-level error/warning/notice message

Description

void trigger_error ( string error_msg [, int error_type])

Used to trigger a user error condition, it can be used by in conjunction with the built-in error handler, or with a user defined function that has been set as the new error handler (set_error_handler()). This function is useful when you need to generate a particular response to an exception at runtime. For example:

if (assert ($divisor == 0))
   trigger_error ("Cannot divide by zero", E_USER_ERROR);

Nota: See set_error_handler() for a more extensive example.

See also error_reporting(),
set_error_handler(),
restore_error_handler(),
user_error()

Anterior | Inicio | Siguiente
set_error_handler | Subir | user_error


user_error

(PHP 4 )

user_error -- Generates a user-level error/warning/notice message

Description

void user_error ( string error_msg [, int error_type])

This is an alias for the function trigger_error().

See also error_reporting(),
set_error_handler(),
restore_error_handler(), and
trigger_error()

Anterior | Inicio | Siguiente
trigger_error | Subir | File alteration monitor functions


File alteration monitor functions

Manual de PHP
Anterior Siguiente

XXVII. File alteration monitor functions

Introducción

FAM monitors files and directories, notifying interested applications of changes.

A PHP script may specify a list of files for FAM to monitor using the functions provided by this extension.

The FAM process is started when the first connection from any application to it is opened. It exits after all connections to it have been closed.

Requerimientos

This extension requires ... version ... as available on ...

Instalación

Configuración en tiempo de ejecución

Esta extensión no tiene directivas de configuración en php.ini.

Tipos de recursos

FAM resource

Constantes predefinidas

Estas constantes están definidas por esta extensión y estarán disponibles solamente cuando la extensión ha sido o bien compilada dentro de PHP o grabada dinámicamente en tiempo de ejecución.

Tabla 1. FAM constants

Constant | meaning
FAMChanged (integer) | The status of
FAMDeleted (integer) |
FAMStartExecuting (integer) |
FAMStopExecuting (integer) |
FAMCreated (integer) |
FAMMoved (integer) |
FAMAcknowledge (integer) |
FAMExists (integer) |
FAMEndExist (integer) |

Tabla de contenidos
fam_cancel_monitor -- Terminate monitoring
fam_close -- Close FAM connection
fam_monitor_collection -- Monitor a collection of files in a directory for changes
fam_monitor_directory -- Monitor a directory for changes
fam_monitor_file -- Monitor a regular file for changes
fam_next_event -- ...
fam_open -- Open connection to FAM daemon
fam_pending -- Check for pending FAM events
fam_resume_monitor -- Resume suspended monitoring
fam_suspend_monitor -- Temporarily suspend monitoring

Anterior | Inicio | Siguiente
user_error | Subir | fam_cancel_monitor


fam_cancel_monitor

(PHP 5 CVS only)

fam_cancel_monitor -- Terminate monitoring

Description

bool fam_cancel_monitor ( resource fam, resource fam_monitor)

fam_cancel_monitor() terminates monitoring on a resource previously requested using one of the fam_monitor_...().

See also fam_monitor_file(),
fam_monitor_directory(),
fam_monitor_collection(), and
fam_suspend_monitor()

Anterior | Inicio | Siguiente
File alteration monitor functions | Subir | fam_close


fam_close

(PHP 5 CVS only)

fam_close -- Close FAM connection

Description

void fam_close ( resource fam)

fam_close() closes a connection to the FAM service previously opened using fam_open().

Anterior | Inicio | Siguiente
fam_cancel_monitor | Subir | fam_monitor_collection


fam_monitor_collection

(PHP 5 CVS only)

fam_monitor_collection -- Monitor a collection of files in a directory for changes

Description

resource fam_monitor_collection ( resource fam, string dirname, int depth, string mask)

fam_monitor_file() requests monitoring for a collection of files within a directory. The actual files to be monitored are specified by a directory path in dirname, the maximum search depth starting from this directory and a shell pattern restricting the file names to look for.

See also fam_monitor_file(),
fam_monitor_directory(),
fam_cancel_monitor(),
fam_suspend_monitor(), and
fam_resume_monitor().

Anterior | Inicio | Siguiente
fam_close | Subir | fam_monitor_directory


fam_monitor_directory

(PHP 5 CVS only)

fam_monitor_directory -- Monitor a directory for changes

Description

resource fam_monitor_directory ( resource fam, string dirname)

fam_monitor_file() requests monitoring for a directory and all contained files. A FAM event will be generated whenever the status of the directory (i.e. the result of function stat() on that directory) or its content (ie. the results of readdir()) change.

See also fam_monitor_file(),
fam_monitor_collection(),
fam_cancel_monitor(),
fam_suspend_monitor(), and
fam_resume_monitor().

Anterior | Inicio | Siguiente
fam_monitor_collection | Subir | fam_monitor_file


fam_monitor_file

(PHP 5 CVS only)

fam_monitor_file -- Monitor a regular file for changes

Description

resource fam_monitor_file ( resource fam, string filename)

fam_monitor_file() requests monitoring for a single file. A FAM event will be generated whenever the file status (i.e. the result of function stat() on that file) changes.

See also fam_monitor_directory(),
fam_monitor_collection(),
fam_cancel_monitor(),
fam_suspend_monitor(), and
fam_resume_monitor().

Anterior | Inicio | Siguiente
fam_monitor_directory | Subir | fam_next_event


fam_next_event

(PHP 5 CVS only)

fam_next_event -- ...

Description

array fam_next_event ( resource fam)

fam_next_event() returns the next pending FAM event. The function will block until an event is available which can be checked for using fam_pending().

fam_ext_event() will return an array that contains a FAM event code in element 'code', the path of the file this event applies to in element 'filename' and optionaly a hostname in element 'hostname'.

The possible event codes are described in detail in the introduction part of this section.

See also fam_pending().

Anterior | Inicio | Siguiente
fam_monitor_file | Subir | fam_open


fam_open

(PHP 5 CVS only)

fam_open -- Open connection to FAM daemon

Description

resource fam_open ( [string appname])

fam_open() opens a connection to the FAM service daemon. The optional parameter appname should be set to a string identifying the application for logging reasons.

See also fam_close().

Anterior | Inicio | Siguiente
fam_next_event | Subir | fam_pending


fam_pending

(PHP 5 CVS only)

fam_pending -- Check for pending FAM events

Description

bool fam_pending ( resource fam)

fam_pending() returns TRUE if events are available to be fetched using fam_next_event().

See also fam_next_event().

Anterior | Inicio | Siguiente
fam_open | Subir | fam_resume_monitor


fam_resume_monitor

(PHP 5 CVS only)

fam_resume_monitor -- Resume suspended monitoring

Description

bool fam_resume_monitor ( resource fam, resource fam_monitor)

fam_resume_monitor() resumes monitoring of a resource previously suspend using fam_suspend_monitor().

See also fam_suspend_monitor().

Anterior | Inicio | Siguiente
fam_pending | Subir | fam_suspend_monitor


fam_suspend_monitor

(PHP 5 CVS only)

fam_suspend_monitor -- Temporarily suspend monitoring

Description

bool fam_suspend_monitor ( resource fam, resource fam_monitor)

fam_suspend_monitor() temporarily suspend monitoring of a resource previously requested using one of the fam_monitor_...() functions. Monitoring can later be continued using fam_resume_monitor() without the need of requesting a complete new monitor.

See also fam_resume_monitor(), and fam_cancel_monitor().

Anterior | Inicio | Siguiente
fam_resume_monitor | Subir | FrontBase Functions


FrontBase Functions

Manual de PHP
Anterior Siguiente

XXVIII. FrontBase Functions

Introducción

These functions allow you to access FrontBase database servers. More information about FrontBase can be found at http://www.frontbase.com/.

Documentation for FrontBase can be found at http://www.frontbase.com/cgi-bin/WebObjects/FrontBase.woa/wa/productsPage?currentPage=Documentation.

Frontbase support has been added to PHP 4.0.6.

Requerimientos

You must install the FrontBase database server or at least the fbsql client libraries to use this functions. You can get FrontBase from http://www.frontbase.com/.

Instalación

In order to have these functions available, you must compile PHP with fbsql support by using the --with-fbsql[=DIR] option. If you use this option without specifying the path to fbsql, PHP will search for the fbsql client libraries in the default installation location for the platform. Users who installed FrontBase in a non standard directory should always specify the path to fbsql: --with-fbsql=/path/to/fbsql. This will force PHP to use the client libraries installed by FrontBase, avoiding any conflicts.

Configuración en tiempo de ejecución

El comportamiento de estas funciones está afectado por los valores definidos en php.ini.

Tabla 1. FrontBase configuration options

Name | Default | Changeable
fbsql.allow_persistent | "1" | PHP_INI_SYSTEM
fbsql.generate_warnings | "0" | PHP_INI_SYSTEM
fbsql.autocommit | "1" | PHP_INI_SYSTEM
fbsql.max_persistent | "-1" | PHP_INI_SYSTEM
fbsql.max_links | "128" | PHP_INI_SYSTEM
fbsql.max_connections | "128" | PHP_INI_SYSTEM
fbsql.max_results | "128" | PHP_INI_SYSTEM
fbsql.batchSize | "1000" | PHP_INI_SYSTEM
fbsql.default_host | NULL | PHP_INI_SYSTEM
fbsql.default_user | "_SYSTEM" | PHP_INI_SYSTEM
fbsql.default_password | "" | PHP_INI_SYSTEM
fbsql.default_database | "" | PHP_INI_SYSTEM
fbsql.default_database_password | "" | PHP_INI_SYSTEM
For further details and definition of the PHP_INI_* constants see ini_set().

Tipos de recursos

Constantes predefinidas

Estas constantes están definidas por esta extensión y estarán disponibles solamente cuando la extensión ha sido o bien compilada dentro de PHP o grabada dinámicamente en tiempo de ejecución.

FBSQL_ASSOC (integer)

FBSQL_NUM (integer)

FBSQL_BOTH (integer)

FBSQL_LOCK_DEFERRED (integer)

FBSQL_LOCK_OPTIMISTIC (integer)

FBSQL_LOCK_PESSIMISTIC (integer)

FBSQL_ISO_READ_UNCOMMITTED (integer)

FBSQL_ISO_READ_COMMITTED (integer)

FBSQL_ISO_REPEATABLE_READ (integer)

FBSQL_ISO_SERIALIZABLE (integer)

FBSQL_ISO_VERSIONED (integer)

FBSQL_UNKNOWN (integer)

FBSQL_STOPPED (integer)

FBSQL_STARTING (integer)

FBSQL_RUNNING (integer)

FBSQL_STOPPING (integer)

FBSQL_NOEXEC (integer)

FBSQL_LOB_DIRECT (integer)

FBSQL_LOB_HANDLE (integer)

Tabla de contenidos
fbsql_affected_rows -- Get number of affected rows in previous FrontBase operation
fbsql_autocommit -- Enable or disable autocommit
fbsql_change_user -- Change logged in user of the active connection
fbsql_close -- Close FrontBase connection
fbsql_commit -- Commits a transaction to the database
fbsql_connect -- Open a connection to a FrontBase Server
fbsql_create_blob -- Create a BLOB
fbsql_create_clob -- Create a CLOB
fbsql_create_db -- Create a FrontBase database
fbsql_data_seek -- Move internal result pointer
fbsql_database_password -- Sets or retrieves the password for a FrontBase database
fbsql_database -- Get or set the database name used with a connection
fbsql_db_query -- Send a FrontBase query
fbsql_db_status -- Get the status for a given database
fbsql_drop_db -- Drop (delete) a FrontBase database
fbsql_errno -- Returns the numerical value of the error message from previous FrontBase operation
fbsql_error -- Returns the text of the error message from previous FrontBase operation
fbsql_fetch_array -- Fetch a result row as an associative array, a numeric array, or both
fbsql_fetch_assoc -- Fetch a result row as an associative array
fbsql_fetch_field -- Get column information from a result and return as an object
fbsql_fetch_lengths -- Get the length of each output in a result
fbsql_fetch_object -- Fetch a result row as an object
fbsql_fetch_row -- Get a result row as an enumerated array
fbsql_field_flags -- Get the flags associated with the specified field in a result
fbsql_field_len -- Returns the length of the specified field
fbsql_field_name -- Get the name of the specified field in a result
fbsql_field_seek -- Set result pointer to a specified field offset
fbsql_field_table -- Get name of the table the specified field is in
fbsql_field_type -- Get the type of the specified field in a result
fbsql_free_result -- Free result memory
fbsql_get_autostart_info -- No description given yet
fbsql_hostname -- Get or set the host name used with a connection
fbsql_insert_id -- Get the id generated from the previous INSERT operation
fbsql_list_dbs -- List databases available on a FrontBase server
fbsql_list_fields -- List FrontBase result fields
fbsql_list_tables -- List tables in a FrontBase database
fbsql_next_result -- Move the internal result pointer to the next result
fbsql_num_fields -- Get number of fields in result
fbsql_num_rows -- Get number of rows in result
fbsql_password -- Get or set the user password used with a connection
fbsql_pconnect -- Open a persistent connection to a FrontBase Server
fbsql_query -- Send a FrontBase query
fbsql_read_blob -- Read a BLOB from the database
fbsql_read_clob -- Read a CLOB from the database
fbsql_result -- Get result data
fbsql_rollback -- Rollback a transaction to the database
fbsql_select_db -- Select a FrontBase database
fbsql_set_lob_mode -- Set the LOB retrieve mode for a FrontBase result set
fbsql_set_transaction -- Set the transaction locking and isolation
fbsql_start_db -- Start a database on local or remote server
fbsql_stop_db -- Stop a database on local or remote server
fbsql_tablename -- Get table name of field
fbsql_username -- Get or set the host user used with a connection
fbsql_warnings -- Enable or disable FrontBase warnings

Anterior | Inicio | Siguiente
fam_suspend_monitor | Subir | fbsql_affected_rows


fbsql_affected_rows

(PHP 4 >= 4.0.6)

fbsql_affected_rows -- Get number of affected rows in previous FrontBase operation

Description

int fbsql_affected_rows ( [resource link_identifier])

fbsql_affected_rows() returns the number of rows affected by the last INSERT, UPDATE or DELETE query associated with link_identifier. If the link identifier isn't specified, the last link opened by fbsql_connect() is assumed.

Nota: If you are using transactions, you need to call fbsql_affected_rows() after your INSERT, UPDATE, or DELETE query, not after the commit.

If the last query was a DELETE query with no WHERE clause, all of the records will have been deleted from the table but this function will return zero.

Nota: When using UPDATE, FrontBase will not update columns where the new value is the same as the old value. This creates the possibility that fbsql_affected_rows() may not actually equal the number of rows matched, only the number of rows that were literally affected by the query.

If the last query failed, this function will return -1.

See also: fbsql_num_rows().

Anterior | Inicio | Siguiente
FrontBase Functions | Subir | fbsql_autocommit


fbsql_autocommit

(PHP 4 >= 4.0.6)

fbsql_autocommit -- Enable or disable autocommit

Description

bool fbsql_autocommit ( resource link_identifier [, bool OnOff])

fbsql_autocommit() returns the current autocommit status. if the optional OnOff parameter is given the auto commit status will be changed. With OnOff set to TRUE each statement will be committed automatically, if no errors was found. With OnOff set to FALSE the user must commit or rollback the transaction using either fbsql_commit() or fbsql_rollback().

See also: fbsql_commit() and fbsql_rollback()

Anterior | Inicio | Siguiente
fbsql_affected_rows | Subir | fbsql_change_user


fbsql_change_user

(no version information, might be only in CVS)

fbsql_change_user -- Change logged in user of the active connection

Description

resource fbsql_change_user ( string user, string password [, string database [, resource link_identifier]])

fbsql_change_user() changes the logged in user of the current active connection, or the connection given by the optional parameter link_identifier. If a database is specified, this will default or current database after the user has been changed. If the new user and password authorization fails, the current connected user stays active.

Anterior | Inicio | Siguiente
fbsql_autocommit | Subir | fbsql_close


fbsql_close

(PHP 4 >= 4.0.6)

fbsql_close -- Close FrontBase connection

Description

bool fbsql_close ( [resource link_identifier])

Returns: TRUE on success, FALSE on error.

fbsql_close() closes the connection to the FrontBase server that's associated with the specified link identifier. If link_identifier isn't specified, the last opened link is used.

Using fbsql_close() isn't usually necessary, as non-persistent open links are automatically closed at the end of the script's execution.

Ejemplo 1. fbsql_close() example

<?php
    $link = fbsql_connect ("localhost", "_SYSTEM", "secret")
        or die ("Could not connect");
    print ("Connected successfully");
    fbsql_close ($link);
?>

See also: fbsql_connect() and fbsql_pconnect().

Anterior | Inicio | Siguiente
fbsql_change_user | Subir | fbsql_commit


fbsql_commit

(PHP 4 >= 4.0.6)

fbsql_commit -- Commits a transaction to the database

Description

bool fbsql_commit ( [resource link_identifier])

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

fbsql_commit() ends the current transaction by writing all inserts, updates and deletes to the disk and unlocking all row and table locks held by the transaction. This command is only needed if autocommit is set to false.

See also: fbsql_autocommit() and fbsql_rollback()

Anterior | Inicio | Siguiente
fbsql_close | Subir | fbsql_connect


fbsql_connect

(PHP 4 >= 4.0.6)

fbsql_connect -- Open a connection to a FrontBase Server

Description

resource fbsql_connect ( [string hostname [, string username [, string password]]])

Returns a positive FrontBase link identifier on success, or an error message on failure.

fbsql_connect() establishes a connection to a
FrontBase server.  The following defaults are assumed for missing
optional parameters: hostname = 'NULL',
username = '_SYSTEM' and
password = empty password.

If a second call is made to fbsql_connect() with the same arguments, no new link will be established, but instead, the link identifier of the already opened link will be returned.

The link to the server will be closed as soon as the execution of the script ends, unless it's closed earlier by explicitly calling fbsql_close().

Ejemplo 1. fbsql_connect() example

<?php

    $link = fbsql_connect ("localhost", "_SYSTEM", "secret")
        or die ("Could not connect");
    print ("Connected successfully");
    fbsql_close ($link);

?>

See also fbsql_pconnect() and fbsql_close().

Anterior | Inicio | Siguiente
fbsql_commit | Subir | fbsql_create_blob


fbsql_create_blob

(PHP 4 >= 4.2.0)

fbsql_create_blob -- Create a BLOB

Description

string fbsql_create_blob ( string blob_data [, resource link_identifier])

Returns: A resource handle to the newly created blob.

fbsql_create_blob() creates a blob from blob_data. The returned resource handle can be used with insert and update commands to store the blob in the database.

Ejemplo 1. fbsql_create_blob() example

<?php
    $link = fbsql_pconnect ("localhost", "_SYSTEM", "secret")
        or die ("Could not connect");
    $filename = "blobfile.bin";
    $fp = fopen($filename, "rb");
    $blobdata = fread($fp, filesize($filename));
    fclose($fp);

    $blobHandle = fbsql_create_blob($blobdata, $link);

    $sql = "INSERT INTO BLOB_TABLE (BLOB_COLUMN) VALUES ($blobHandle);";
    $rs = fbsql_query($sql, $link);
?>

See also: fbsql_create_clob(),
fbsql_read_blob(),
fbsql_read_clob(), and
fbsql_set_lob_mode().

Anterior | Inicio | Siguiente
fbsql_connect | Subir | fbsql_create_clob


fbsql_create_clob

(PHP 4 >= 4.2.0)

fbsql_create_clob -- Create a CLOB

Description

string fbsql_create_clob ( string clob_data [, resource link_identifier])

Returns: A resource handle to the newly created CLOB.

fbsql_create_clob() creates a clob from clob_data. The returned resource handle can be used with insert and update commands to store the clob in the database.

Ejemplo 1. fbsql_create_clob() example

<?php
    $link = fbsql_pconnect ("localhost", "_SYSTEM", "secret")
        or die ("Could not connect");
    $filename = "clob_file.txt";
    $fp = fopen($filename, "rb");
    $clobdata = fread($fp, filesize($filename));
    fclose($fp);

    $clobHandle = fbsql_create_clob($clobdata, $link);

    $sql = "INSERT INTO CLOB_TABLE (CLOB_COLUMN) VALUES ($clobHandle);";
    $rs = fbsql_query($sql, $link);
?>

See also: fbsql_create_blob(),
fbsql_read_blob(),
fbsql_read_clob(), and
fbsql_set_lob_mode().

Anterior | Inicio | Siguiente
fbsql_create_blob | Subir | fbsql_create_db


fbsql_create_db

(PHP 4 >= 4.0.6)

fbsql_create_db -- Create a FrontBase database

Description

bool fbsql_create_db ( string database_name [, resource link_identifier])

fbsql_create_db() attempts to create a new database named database_name on the server associated with the specified connection link_identifier.

Ejemplo 1. fbsql_create_db() example

<?php
    $link = fbsql_pconnect ("localhost", "_SYSTEM", "secret")
        or die ("Could not connect");
    if (fbsql_create_db ("my_db")) {
        echo "Database created successfully\n";
    } else {
        printf("Error creating database: %s\n", fbsql_error ());
    }
?>

See also: fbsql_drop_db().

Anterior | Inicio | Siguiente
fbsql_create_clob | Subir | fbsql_data_seek


fbsql_data_seek

(PHP 4 >= 4.0.6)

fbsql_data_seek -- Move internal result pointer

Description

bool fbsql_data_seek ( resource result_identifier, int row_number)

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

fbsql_data_seek() moves the internal row pointer of the FrontBase result associated with the specified result identifier to point to the specified row number. The next call to fbsql_fetch_row() would return that row.

Row_number starts at 0.

Ejemplo 1. fbsql_data_seek() example

<?php
    $link = fbsql_pconnect ("localhost", "_SYSTEM", "secret")
        or die ("Could not connect");

    fbsql_select_db ("samp_db")
        or die ("Could not select database");

    $query = "SELECT last_name, first_name FROM friends;";
    $result = fbsql_query ($query)
        or die ("Query failed");

    # fetch rows in reverse order

    for ($i = fbsql_num_rows ($result) - 1; $i >=0; $i--) {
        if (!fbsql_data_seek ($result, $i)) {
            printf ("Cannot seek to row %d\n", $i);
            continue;
        }

        if(!($row = fbsql_fetch_object ($result)))
            continue;

        printf("%s %s<BR>\n", $row->last_name, $row->first_name);
    }

    fbsql_free_result ($result);
?>

Anterior | Inicio | Siguiente
fbsql_create_db | Subir | fbsql_database_password


fbsql_database_password

(PHP 4 >= 4.0.6)

fbsql_database_password -- Sets or retrieves the password for a FrontBase database

Description

string fbsql_database_password ( resource link_identifier [, string database_password])

Returns: The database password associated with the link identifier.

fbsql_database_password() sets and retrieves the database password used by the connection. if a database is protected by a database password, the user must call this function before calling fbsql_select_db(). if the second optional parameter is given the function sets the database password for the specified link identifier. If no link identifier is specified, the last opened link is assumed. If no link is open, the function will try to establish a link as if fbsql_connect() was called, and use it.

This function does not change the database password in the database nor can it be used to retrieve the database password for a database.

Ejemplo 1. fbsql_create_clob() example

<?php
    $link = fbsql_pconnect ("localhost", "_SYSTEM", "secret")
        or die ("Could not connect");
    fbsql_database_password($link, "secret db password");
    fbsql_select_db($database, $link);
?>

See also: fbsql_connect(),
fbsql_pconnect() and
fbsql_select_db().

Anterior | Inicio | Siguiente
fbsql_data_seek | Subir | fbsql_database


fbsql_database

(PHP 4 >= 4.0.6)

fbsql_database -- Get or set the database name used with a connection

Description

string fbsql_database ( resource link_identifier [, string database])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
fbsql_database_password | Subir | fbsql_db_query


fbsql_db_query

(PHP 4 >= 4.0.6)

fbsql_db_query -- Send a FrontBase query

Description

resource fbsql_db_query ( string database, string query [, resource link_identifier])

Returns: A positive FrontBase result identifier to the query result, or FALSE on error.

fbsql_db_query() selects a database and executes a query on it. If the optional link identifier isn't specified, the function will try to find an open link to the FrontBase server and if no such link is found it'll try to create one as if fbsql_connect() was called with no arguments

See also fbsql_connect().

Anterior | Inicio | Siguiente
fbsql_database | Subir | fbsql_db_status


fbsql_db_status

(PHP 4 >= 4.1.0)

fbsql_db_status -- Get the status for a given database

Description

int fbsql_db_status ( string database_name [, resource link_identifier])

Returns: An integer value with the current status.

fbsql_db_status() requests the current status of the database specified by database_name. If the link_identifier is omitted the default link_identifier will be used.

The return value can be one of the following constants:

  • FALSE - The exec handler for the host was invalid. This error will occur when the link_identifier connects directly to a database by using a port number. FBExec can be available on the server but no connection has been made for it.

  • FBSQL_UNKNOWN - The Status is unknown.

  • FBSQL_STOPPED - The database is not running. Use fbsql_start_db() to start the database.

  • FBSQL_STARTING - The database is starting.

  • FBSQL_RUNNING - The database is running and can be used to perform SQL operations.

  • FBSQL_STOPPING - The database is stopping.

  • FBSQL_NOEXEC - FBExec is not running on the server and it is not possible to get the status of the database.

See also: fbsql_start_db() and fbsql_stop_db().

Anterior | Inicio | Siguiente
fbsql_db_query | Subir | fbsql_drop_db


fbsql_drop_db

(PHP 4 >= 4.0.6)

fbsql_drop_db -- Drop (delete) a FrontBase database

Description

bool fbsql_drop_db ( string database_name [, resource link_identifier])

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

fbsql_drop_db() attempts to drop (remove) an entire database from the server associated with the specified link identifier.

Anterior | Inicio | Siguiente
fbsql_db_status | Subir | fbsql_errno


fbsql_errno

(PHP 4 >= 4.0.6)

fbsql_errno -- Returns the numerical value of the error message from previous FrontBase operation

Description

int fbsql_errno ( [resource link_identifier])

Returns the error number from the last fbsql function, or 0 (zero) if no error occurred.

Errors coming back from the fbsql database backend don't issue warnings. Instead, use fbsql_errno() to retrieve the error code. Note that this function only returns the error code from the most recently executed fbsql function (not including fbsql_error() and fbsql_errno()), so if you want to use it, make sure you check the value before calling another fbsql function.

<?php
fbsql_connect("marliesle");
echo fbsql_errno().": ".fbsql_error()."<BR>";
fbsql_select_db("nonexistentdb");
echo fbsql_errno().": ".fbsql_error()."<BR>";
$conn = fbsql_query("SELECT * FROM nonexistenttable;");
echo fbsql_errno().": ".fbsql_error()."<BR>";
?>

See also: fbsql_error() and fbsql_warnings().

Anterior | Inicio | Siguiente
fbsql_drop_db | Subir | fbsql_error


fbsql_error

(PHP 4 >= 4.0.6)

fbsql_error -- Returns the text of the error message from previous FrontBase operation

Description

string fbsql_error ( [resource link_identifier])

Returns the error text from the last fbsql function, or '' (the empty string) if no error occurred.

Errors coming back from the fbsql database backend don't issue warnings. Instead, use fbsql_error() to retrieve the error text. Note that this function only returns the error text from the most recently executed fbsql function (not including fbsql_error() and fbsql_errno()), so if you want to use it, make sure you check the value before calling another fbsql function.

<?php
fbsql_connect("marliesle");
echo fbsql_errno().": ".fbsql_error()."<BR>";
fbsql_select_db("nonexistentdb");
echo fbsql_errno().": ".fbsql_error()."<BR>";
$conn = fbsql_query("SELECT * FROM nonexistenttable;");
echo fbsql_errno().": ".fbsql_error()."<BR>";
?>

See also: fbsql_errno() and fbsql_warnings().

Anterior | Inicio | Siguiente
fbsql_errno | Subir | fbsql_fetch_array


fbsql_fetch_array

(PHP 4 >= 4.0.6)

fbsql_fetch_array -- Fetch a result row as an associative array, a numeric array, or both

Description

array fbsql_fetch_array ( resource result [, int result_type])

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

fbsql_fetch_array() is an extended version of fbsql_fetch_row(). In addition to storing the data in the numeric indices of the result array, it also stores the data in associative indices, using the field names as keys.

If two or more columns of the result have the same field names, the last column will take precedence. To access the other column(s) of the same name, you must the numeric index of the column or make an alias for the column.

select t1.f1 as foo t2.f1 as bar from t1, t2

An important thing to note is that using fbsql_fetch_array() is NOT significantly slower than using fbsql_fetch_row(), while it provides a significant added value.

The optional second argument result_type in fbsql_fetch_array() is a constant and can take the following values: FBSQL_ASSOC, FBSQL_NUM, and FBSQL_BOTH.

For further details, see also fbsql_fetch_row() and fbsql_fetch_assoc().

Ejemplo 1. fbsql_fetch_array() example

<?php
fbsql_connect ($host, $user, $password);
$result = fbsql_db_query ("database","select user_id, fullname from table");
while ($row = fbsql_fetch_array ($result)) {
    echo "user_id: ".$row["user_id"]."<br>\n";
    echo "user_id: ".$row[0]."<br>\n";
    echo "fullname: ".$row["fullname"]."<br>\n";
    echo "fullname: ".$row[1]."<br>\n";
}
fbsql_free_result ($result);
?>

Anterior | Inicio | Siguiente
fbsql_error | Subir | fbsql_fetch_assoc


fbsql_fetch_assoc

(PHP 4 >= 4.0.6)

fbsql_fetch_assoc -- Fetch a result row as an associative array

Description

array fbsql_fetch_assoc ( resource result)

Returns an associative array that corresponds to the fetched row, or FALSE if there are no more rows.

fbsql_fetch_assoc() is equivalent to calling fbsql_fetch_array() with FBSQL_ASSOC for the optional second parameter. It only returns an associative array. This is the way fbsql_fetch_array() originally worked. If you need the numeric indices as well as the associative, use fbsql_fetch_array().

If two or more columns of the result have the same field names, the last column will take precedence. To access the other column(s) of the same name, you must use fbsql_fetch_array() and have it return the numeric indices as well.

An important thing to note is that using fbsql_fetch_assoc() is NOT significantly slower than using fbsql_fetch_row(), while it provides a significant added value.

For further details, see also fbsql_fetch_row() and fbsql_fetch_array().

Ejemplo 1. fbsql_fetch_assoc() example

<?php
fbsql_connect ($host, $user, $password);
$result = fbsql_db_query ("database","select * from table");
while ($row = fbsql_fetch_assoc ($result)) {
    echo $row["user_id"];
    echo $row["fullname"];
}
fbsql_free_result ($result);
?>

Anterior | Inicio | Siguiente
fbsql_fetch_array | Subir | fbsql_fetch_field


fbsql_fetch_field

(PHP 4 >= 4.0.6)

fbsql_fetch_field -- Get column information from a result and return as an object

Description

object fbsql_fetch_field ( resource result [, int field_offset])

Returns an object containing field information.

fbsql_fetch_field() can be used in order to obtain information about fields in a certain query result. If the field offset isn't specified, the next field that wasn't yet retrieved by fbsql_fetch_field() is retrieved.

The properties of the object are:

  • name - column name

  • table - name of the table the column belongs to

  • max_length - maximum length of the column

  • not_null - 1 if the column cannot be NULL

  • type - the type of the column

Ejemplo 1. fbsql_fetch_field() example

<?php
fbsql_connect ($host, $user, $password)
    or die ("Could not connect");
$result = fbsql_db_query ("database", "select * from table")
    or die ("Query failed");
# get column metadata
$i = 0;
while ($i < fbsql_num_fields ($result)) {
    echo "Information for column $i:<BR>\n";
    $meta = fbsql_fetch_field ($result);
    if (!$meta) {
        echo "No information available<BR>\n";
    }
    echo "<PRE>
max_length:   $meta->max_length
name:         $meta->name
not_null:     $meta->not_null
table:        $meta->table
type:         $meta->type
</PRE>";
    $i++;
}
fbsql_free_result ($result);
?>

See also fbsql_field_seek().

Anterior | Inicio | Siguiente
fbsql_fetch_assoc | Subir | fbsql_fetch_lengths


fbsql_fetch_lengths

(PHP 4 >= 4.0.6)

fbsql_fetch_lengths -- Get the length of each output in a result

Description

array fbsql_fetch_lengths ( [resource result])

Returns: An array that corresponds to the lengths of each field in the last row fetched by fbsql_fetch_row(), or FALSE on error.

fbsql_fetch_lengths() stores the lengths of
each result column in the last row returned by
fbsql_fetch_row(),
fbsql_fetch_array() and
fbsql_fetch_object() in an array, starting at
offset 0.

See also: fbsql_fetch_row().

Anterior | Inicio | Siguiente
fbsql_fetch_field | Subir | fbsql_fetch_object


fbsql_fetch_object

(PHP 4 >= 4.0.6)

fbsql_fetch_object -- Fetch a result row as an object

Description

object fbsql_fetch_object ( resource result [, int result_type])

Returns an object with properties that correspond to the fetched row, or FALSE if there are no more rows.

fbsql_fetch_object() is similar to fbsql_fetch_array(), with one difference - an object is returned, instead of an array. Indirectly, that means that you can only access the data by the field names, and not by their offsets (numbers are illegal property names).

The optional argument result_type is a constant and can take the following values: FBSQL_ASSOC, FBSQL_NUM, and FBSQL_BOTH.

Speed-wise, the function is identical to fbsql_fetch_array(), and almost as quick as fbsql_fetch_row() (the difference is insignificant).

Ejemplo 1. fbsql_fetch_object() example

<?php
fbsql_connect ($host, $user, $password);
$result = fbsql_db_query ("database", "select * from table");
while ($row = fbsql_fetch_object ($result)) {
    echo $row->user_id;
    echo $row->fullname;
}
fbsql_free_result ($result);
?>

See also: fbsql_fetch_array() and fbsql_fetch_row().

Anterior | Inicio | Siguiente
fbsql_fetch_lengths | Subir | fbsql_fetch_row


fbsql_fetch_row

(PHP 4 >= 4.0.6)

fbsql_fetch_row -- Get a result row as an enumerated array

Description

array fbsql_fetch_row ( resource result)

Returns: An array that corresponds to the fetched row, or FALSE if there are no more rows.

fbsql_fetch_row() fetches one row of data from the result associated with the specified result identifier. The row is returned as an array. Each result column is stored in an array offset, starting at offset 0.

Subsequent call to fbsql_fetch_row() would return the next row in the result set, or FALSE if there are no more rows.

See also: fbsql_fetch_array(),
fbsql_fetch_object(),
fbsql_data_seek(),
fbsql_fetch_lengths(), and
fbsql_result().

Anterior | Inicio | Siguiente
fbsql_fetch_object | Subir | fbsql_field_flags


fbsql_field_flags

(PHP 4 >= 4.0.6)

fbsql_field_flags -- Get the flags associated with the specified field in a result

Description

string fbsql_field_flags ( resource result, int field_offset)

fbsql_field_flags() returns the field flags of the specified field. The flags are reported as a single word per flag separated by a single space, so that you can split the returned value using explode().

Anterior | Inicio | Siguiente
fbsql_fetch_row | Subir | fbsql_field_len


fbsql_field_len

(PHP 4 >= 4.0.6)

fbsql_field_len -- Returns the length of the specified field

Description

int fbsql_field_len ( resource result, int field_offset)

fbsql_field_len() returns the length of the specified field.

Anterior | Inicio | Siguiente
fbsql_field_flags | Subir | fbsql_field_name


fbsql_field_name

(PHP 4 >= 4.0.6)

fbsql_field_name -- Get the name of the specified field in a result

Description

string fbsql_field_name ( resource result, int field_index)

fbsql_field_name() returns the name of the specified field index. result must be a valid result identifier and field_index is the numerical offset of the field.

Nota: field_index starts at 0.

e.g. The index of the third field would actually be 2, the index of the fourth field would be 3 and so on.

Ejemplo 1. fbsql_field_name() example

<?php
// The users table consists of three fields:
//   user_id
//   username
//   password.

$res = fbsql_db_query("users", "select * from users", $link);

echo fbsql_field_name($res, 0) . "\n";
echo fbsql_field_name($res, 2);
?>

The above example would produce the following output:

user_id
password

Anterior | Inicio | Siguiente
fbsql_field_len | Subir | fbsql_field_seek


fbsql_field_seek

(PHP 4 >= 4.0.6)

fbsql_field_seek -- Set result pointer to a specified field offset

Description

bool fbsql_field_seek ( resource result, int field_offset)

Seeks to the specified field offset. If the next call to fbsql_fetch_field() doesn't include a field offset, the field offset specified in fbsql_field_seek() will be returned.

See also: fbsql_fetch_field().

Anterior | Inicio | Siguiente
fbsql_field_name | Subir | fbsql_field_table


fbsql_field_table

(PHP 4 >= 4.0.6)

fbsql_field_table -- Get name of the table the specified field is in

Description

string fbsql_field_table ( resource result, int field_offset)

Returns the name of the table that the specified field is in.

Anterior | Inicio | Siguiente
fbsql_field_seek | Subir | fbsql_field_type


fbsql_field_type

(PHP 4 >= 4.0.6)

fbsql_field_type -- Get the type of the specified field in a result

Description

string fbsql_field_type ( resource result, int field_offset)

fbsql_field_type() is similar to the fbsql_field_name() function. The arguments are identical, but the field type is returned instead. The field type will be one of "int", "real", "string", "blob", and others as detailed in the FrontBase documentation.

Ejemplo 1. fbsql_field_type() example

<?php

fbsql_connect ("localhost", "_SYSTEM", "");
fbsql_select_db ("wisconsin");
$result = fbsql_query ("SELECT * FROM onek;");
$fields = fbsql_num_fields ($result);
$rows   = fbsql_num_rows ($result);
$i = 0;
$table = fbsql_field_table ($result, $i);
echo "Your '".$table."' table has ".$fields." fields and ".$rows." records <BR>";
echo "The table has the following fields <BR>";
while ($i < $fields) {
    $type  = fbsql_field_type  ($result, $i);
    $name  = fbsql_field_name  ($result, $i);
    $len   = fbsql_field_len   ($result, $i);
    $flags = fbsql_field_flags ($result, $i);
    echo $type." ".$name." ".$len." ".$flags."<BR>";
    $i++;
}
fbsql_close();

?>

Anterior | Inicio | Siguiente
fbsql_field_table | Subir | fbsql_free_result


fbsql_free_result

(PHP 4 >= 4.0.6)

fbsql_free_result -- Free result memory

Description

bool fbsql_free_result ( resource result)

fbsql_free_result() will free all memory associated with the result identifier result.

fbsql_free_result() only needs to be called if you are concerned about how much memory is being used for queries that return large result sets. All associated result memory is automatically freed at the end of the script's execution.

Anterior | Inicio | Siguiente
fbsql_field_type | Subir | fbsql_get_autostart_info


fbsql_get_autostart_info

(PHP 4 >= 4.1.0)

fbsql_get_autostart_info -- No description given yet

Description

array fbsql_get_autostart_info ( [resource link_identifier])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
fbsql_free_result | Subir | fbsql_hostname


fbsql_hostname

(PHP 4 >= 4.0.6)

fbsql_hostname -- Get or set the host name used with a connection

Description

string fbsql_hostname ( resource link_identifier [, string host_name])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
fbsql_get_autostart_info | Subir | fbsql_insert_id


fbsql_insert_id

(PHP 4 >= 4.0.6)

fbsql_insert_id -- Get the id generated from the previous INSERT operation

Description

int fbsql_insert_id ( [resource link_identifier])

fbsql_insert_id() returns the ID generated for an column defined as DEFAULT UNIQUE by the previous INSERT query using the given link_identifier. If link_identifier isn't specified, the last opened link is assumed.

fbsql_insert_id() returns 0 if the previous query does not generate an DEFAULT UNIQUE value. If you need to save the value for later, be sure to call fbsql_insert_id() immediately after the query that generates the value.

Nota: The value of the FrontBase SQL function fbsql_insert_id() always contains the most recently generated DEFAULT UNIQUE value, and is not reset between queries.

Anterior | Inicio | Siguiente
fbsql_hostname | Subir | fbsql_list_dbs


fbsql_list_dbs

(PHP 4 >= 4.0.6)

fbsql_list_dbs -- List databases available on a FrontBase server

Description

resource fbsql_list_dbs ( [resource link_identifier])

fbsql_list_dbs() will return a result pointer containing the databases available from the current fbsql daemon. Use the fbsql_tablename() function to traverse this result pointer.

Ejemplo 1. fbsql_list_dbs() example

$link = fbsql_connect('localhost', 'myname', 'secret');
$db_list = fbsql_list_dbs($link);

while ($row = fbsql_fetch_object($db_list)) {
    echo $row->Database . "\n";
}

The above example would produce the following output:

database1
database2
database3
...

Nota: The above code would just as easily work with fbsql_fetch_row() or other similar functions.

Anterior | Inicio | Siguiente
fbsql_insert_id | Subir | fbsql_list_fields


fbsql_list_fields

(PHP 4 >= 4.0.6)

fbsql_list_fields -- List FrontBase result fields

Description

resource fbsql_list_fields ( string database_name, string table_name [, resource link_identifier])

fbsql_list_fields() retrieves information
about the given tablename. Arguments are the database name and
the table name. A result pointer is returned which can be used
with fbsql_field_flags(),
fbsql_field_len(),
fbsql_field_name(), and
fbsql_field_type().

A result identifier is a positive integer. The function returns FALSE if an error occurs. A string describing the error will be placed in $phperrmsg, and unless the function was called as @fbsql() then this error string will also be printed out.

Ejemplo 1. fbsql_list_fields() example

<?php
$link = fbsql_connect('localhost', 'myname', 'secret');

$fields = fbsql_list_fields("database1", "table1", $link);
$columns = fbsql_num_fields($fields);

for ($i = 0; $i < $columns; $i++) {
    echo fbsql_field_name($fields, $i) . "\n";;
}
?>

The above example would produce the following output:

field1
field2
field3
...

Anterior | Inicio | Siguiente
fbsql_list_dbs | Subir | fbsql_list_tables


fbsql_list_tables

(PHP 4 >= 4.0.6)

fbsql_list_tables -- List tables in a FrontBase database

Description

resource fbsql_list_tables ( string database [, resource link_identifier])

fbsql_list_tables() takes a database name and returns a result pointer much like the fbsql_db_query() function. The fbsql_tablename() function should be used to extract the actual table names from the result pointer.

Anterior | Inicio | Siguiente
fbsql_list_fields | Subir | fbsql_next_result


fbsql_next_result

(PHP 4 >= 4.0.6)

fbsql_next_result -- Move the internal result pointer to the next result

Description

bool fbsql_next_result ( resource result_id)

When sending more than one SQL statement to the server or executing a stored procedure with multiple results will cause the server to return multiple result sets. This function will test for additional results available form the server. If an additional result set exists it will free the existing result set and prepare to fetch the words from the new result set. The function will return TRUE if an additional result set was available or FALSE otherwise.

Ejemplo 1. fbsql_next_result() example

<?php
    $link = fbsql_connect ("localhost", "_SYSTEM", "secret");
    fbsql_select_db("MyDB", $link);
    $SQL = "Select * from table1; select * from table2;";
    $rs = fbsql_query($SQL, $link);
    do {
        while ($row = fbsql_fetch_row($rs)) {
        }
    } while (fbsql_next_result($rs));
    fbsql_free_result($rs);
    fbsql_close ($link);
?>

Anterior | Inicio | Siguiente
fbsql_list_tables | Subir | fbsql_num_fields


fbsql_num_fields

(PHP 4 >= 4.0.6)

fbsql_num_fields -- Get number of fields in result

Description

int fbsql_num_fields ( resource result)

fbsql_num_fields() returns the number of fields in a result set.

See also:
fbsql_db_query(),
fbsql_query(),
fbsql_fetch_field(), and
fbsql_num_rows().

Anterior | Inicio | Siguiente
fbsql_next_result | Subir | fbsql_num_rows


fbsql_num_rows

(PHP 4 >= 4.0.6)

fbsql_num_rows -- Get number of rows in result

Description

int fbsql_num_rows ( resource result)

fbsql_num_rows() returns the number of rows in a result set. This command is only valid for SELECT statements. To retrieve the number of rows returned from a INSERT, UPDATE or DELETE query, use fbsql_affected_rows().

Ejemplo 1. fbsql_num_rows() example

<?php

$link = fbsql_connect("localhost", "username", "password");
fbsql_select_db("database", $link);

$result = fbsql_query("SELECT * FROM table1;", $link);
$num_rows = fbsql_num_rows($result);

echo "$num_rows Rows\n";

?>

See also: fbsql_affected_rows(),
fbsql_connect(),
fbsql_select_db(), and
fbsql_query().

Anterior | Inicio | Siguiente
fbsql_num_fields | Subir | fbsql_password


fbsql_password

(PHP 4 >= 4.0.6)

fbsql_password -- Get or set the user password used with a connection

Description

string fbsql_password ( resource link_identifier [, string password])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
fbsql_num_rows | Subir | fbsql_pconnect


fbsql_pconnect

(PHP 4 >= 4.0.6)

fbsql_pconnect -- Open a persistent connection to a FrontBase Server

Description

resource fbsql_pconnect ( [string hostname [, string username [, string password]]])

Returns: A positive FrontBase persistent link identifier on success, or FALSE on error.

fbsql_pconnect() establishes a connection to a FrontBase server. The following defaults are assumed for missing optional parameters: host = 'localhost', username = "_SYSTEM" and password = empty password.

To set Frontbase server port number, use fbsql_select_db().

fbsql_pconnect() acts very much like fbsql_connect() with two major differences.

First, when connecting, the function would first try to find a (persistent) link that's already open with the same host, username and password. If one is found, an identifier for it will be returned instead of opening a new connection.

Second, the connection to the SQL server will not be closed when the execution of the script ends. Instead, the link will remain open for future use.

This type of links is therefore called 'persistent'.

Anterior | Inicio | Siguiente
fbsql_password | Subir | fbsql_query


fbsql_query

(PHP 4 >= 4.0.6)

fbsql_query -- Send a FrontBase query

Description

resource fbsql_query ( string query [, resource link_identifier])

fbsql_query() sends a query to the currently active database on the server that's associated with the specified link identifier. If link_identifier isn't specified, the last opened link is assumed. If no link is open, the function tries to establish a link as if fbsql_connect() was called with no arguments, and use it.

Nota: The query string shall always end with a semicolon.

fbsql_query() returns TRUE (non-zero) or FALSE to indicate whether or not the query succeeded. A return value of TRUE means that the query was legal and could be executed by the server. It does not indicate anything about the number of rows affected or returned. It is perfectly possible for a query to succeed but affect no rows or return no rows.

The following query is syntactically invalid, so fbsql_query() fails and returns FALSE:

Ejemplo 1. fbsql_query() example

<?php
$result = fbsql_query ("SELECT * WHERE 1=1")
    or die ("Invalid query");
?>

The following query is semantically invalid if my_col is not a column in the table my_tbl, so fbsql_query() fails and returns FALSE:

Ejemplo 2. fbsql_query() example

<?php
$result = fbsql_query ("SELECT my_col FROM my_tbl")
    or die ("Invalid query");
?>

fbsql_query() will also fail and return FALSE if you don't have permission to access the table(s) referenced by the query.

Assuming the query succeeds, you can call fbsql_num_rows() to find out how many rows were returned for a SELECT statement or fbsql_affected_rows() to find out how many rows were affected by a DELETE, INSERT, REPLACE, or UPDATE statement.

For SELECT statements, fbsql_query() returns a new result identifier that you can pass to fbsql_result(). When you are done with the result set, you can free the resources associated with it by calling fbsql_free_result(). Although, the memory will automatically be freed at the end of the script's execution.

See also: fbsql_affected_rows(),
fbsql_db_query(),
fbsql_free_result(),
fbsql_result(),
fbsql_select_db(), and
fbsql_connect().

Anterior | Inicio | Siguiente
fbsql_pconnect | Subir | fbsql_read_blob


fbsql_read_blob

(PHP 4 >= 4.2.0)

fbsql_read_blob -- Read a BLOB from the database

Description

string fbsql_read_blob ( string blob_handle [, resource link_identifier])

Returns: A string containing the BLOB specified by blob_handle.

fbsql_read_blob() reads BLOB data from the database. If a select statement contains BLOB and/or CLOB columns FrontBase will return the data directly when data is fetched. This default behavior can be changed with fbsql_set_lob_mode() so the fetch functions will return handles to BLOB and CLOB data. If a handle is fetched a user must call fbsql_read_blob() to get the actual BLOB data from the database.

Ejemplo 1. fbsql_read_blob() example

<?php
    $link = fbsql_pconnect ("localhost", "_SYSTEM", "secret")
        or die ("Could not connect");
    $sql = "SELECT BLOB_COLUMN FROM BLOB_TABLE;";
    $rs = fbsql_query($sql, $link);
    $row_data = fbsql_fetch_row($rs);
    // $row_data[0] will now contain the blob data for the first row
    fbsql_free_result($rs);

    $rs = fbsql_query($sql, $link);
    fbsql_set_lob_mode($rs, FBSQL_LOB_HANDLE);
    $row_data = fbsql_fetch_row($rs);
    // $row_data[0] will now contain a handle to the BLOB data in the first row
    $blob_data = fbsql_read_blob($row_data[0]);
    fbsql_free_result($rs);

?>

See also: fbsql_create_blob(),
fbsql_read_blob(),
fbsql_read_clob(), and
fbsql_set_lob_mode().

Anterior | Inicio | Siguiente
fbsql_query | Subir | fbsql_read_clob


fbsql_read_clob

(PHP 4 >= 4.2.0)

fbsql_read_clob -- Read a CLOB from the database

Description

string fbsql_read_clob ( string clob_handle [, resource link_identifier])

Returns: A string containing the CLOB specified by clob_handle.

fbsql_read_clob() reads CLOB data from the database. If a select statement contains BLOB and/or CLOB columns FrontBase will return the data directly when data is fetched. This default behavior can be changed with fbsql_set_lob_mode() so the fetch functions will return handles to BLOB and CLOB data. If a handle is fetched a user must call fbsql_read_clob() to get the actual CLOB data from the database.

Ejemplo 1. fbsql_read_clob() example

<?php
    $link = fbsql_pconnect ("localhost", "_SYSTEM", "secret")
        or die ("Could not connect");
    $sql = "SELECT CLOB_COLUMN FROM CLOB_TABLE;";
    $rs = fbsql_query($sql, $link);
    $row_data = fbsql_fetch_row($rs);
    // $row_data[0] will now contain the clob data for the first row
    fbsql_free_result($rs);

    $rs = fbsql_query($sql, $link);
    fbsql_set_lob_mode($rs, FBSQL_LOB_HANDLE);
    $row_data = fbsql_fetch_row($rs);
    // $row_data[0] will now contain a handle to the CLOB data in the first row
    $clob_data = fbsql_read_clob($row_data[0]);
    fbsql_free_result($rs);

?>

See also: fbsql_create_blob(),
fbsql_read_blob(),
fbsql_read_clob(), and
fbsql_set_lob_mode().

Anterior | Inicio | Siguiente
fbsql_read_blob | Subir | fbsql_result


fbsql_result

(PHP 4 >= 4.0.6)

fbsql_result -- Get result data

Description

mixed fbsql_result ( resource result, int row [, mixed field])

fbsql_result() returns the contents of one cell from a FrontBase result set. The field argument can be the field's offset, or the field's name, or the field's table dot field's name (tabledname.fieldname). If the column name has been aliased ('select foo as bar from...'), use the alias instead of the column name.

When working on large result sets, you should consider using one of the functions that fetch an entire row (specified below). As these functions return the contents of multiple cells in one function call, they're MUCH quicker than fbsql_result(). Also, note that specifying a numeric offset for the field argument is much quicker than specifying a fieldname or tablename.fieldname argument.

Calls to fbsql_result() should not be mixed with calls to other functions that deal with the result set.

Recommended high-performance alternatives:
fbsql_fetch_row(),
fbsql_fetch_array(), and
fbsql_fetch_object().

Anterior | Inicio | Siguiente
fbsql_read_clob | Subir | fbsql_rollback


fbsql_rollback

(PHP 4 >= 4.0.6)

fbsql_rollback -- Rollback a transaction to the database

Description

bool fbsql_rollback ( [resource link_identifier])

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

fbsql_rollback() ends the current transaction by rolling back all statements issued since last commit. This command is only needed if autocommit is set to false.

See also: fbsql_autocommit() and fbsql_commit()

Anterior | Inicio | Siguiente
fbsql_result | Subir | fbsql_select_db


fbsql_select_db

(PHP 4 >= 4.0.6)

fbsql_select_db -- Select a FrontBase database

Description

bool fbsql_select_db ( string database_name [, resource link_identifier])

fbsql_select_db() sets the current active database on the server that's associated with the specified link identifier. If no link identifier is specified, the last opened link is assumed. If no link is open, the function will try to establish a link as if fbsql_connect() was called, and use it.

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

The client contacts FBExec to obtain the port number to use for the connection to the database. If the database name is a number the system will use that as a port number and it will not ask FBExec for the port number. The FrontBase server can be stared as FRontBase -FBExec=No -port=<port number> <database name>.

Every subsequent call to fbsql_query() will be made on the active database.

if the database is protected with a database password, the user must call fbsql_database_password() before selecting the database.

See also
fbsql_connect(),
fbsql_pconnect(),
fbsql_database_password(), and
fbsql_query().

Anterior | Inicio | Siguiente
fbsql_rollback | Subir | fbsql_set_lob_mode


fbsql_set_lob_mode

(PHP 4 >= 4.2.0)

fbsql_set_lob_mode -- Set the LOB retrieve mode for a FrontBase result set

Description

bool fbsql_set_lob_mode ( resource result, string database_name)

Returns: TRUE on success, FALSE on error.

fbsql_set_lob_mode() sets the mode for retrieving LOB data from the database. When BLOB and CLOB data is stored in FrontBase it can be stored direct or indirect. Direct stored LOB data will always be fetched no matter the setting of the lob mode. If the LOB data is less than 512 bytes it will always be stored directly.

  • FBSQL_LOB_DIRECT - LOB data is retrieved directly. When data is fetched from the database with fbsql_fetch_row(), and other fetch functions, all CLOB and BLOB columns will be returned as ordinary columns. This is the default value on a new FrontBase result.

  • FBSQL_LOB_HANDLE - LOB data is retrieved as handles to the data. When data is fetched from the database with fbsql_fetch_row (), and other fetch functions, LOB data will be returned as a handle to the data if the data is stored indirect or the data if it is stored direct. If a handle is returned it will be a 27 byte string formatted as "@'000000000000000000000000'".

See also:
    fbsql_create_blob(),
    fbsql_create_clob(),
    fbsql_read_blob(), and
    fbsql_read_clob().

Anterior | Inicio | Siguiente
fbsql_select_db | Subir | fbsql_set_transaction


fbsql_set_transaction

(PHP 4 >= 4.2.0)

fbsql_set_transaction -- Set the transaction locking and isolation

Description

void fbsql_set_transaction ( resource link_identifier, int Locking, int Isolation)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
fbsql_set_lob_mode | Subir | fbsql_start_db


fbsql_start_db

(PHP 4 >= 4.0.6)

fbsql_start_db -- Start a database on local or remote server

Description

bool fbsql_start_db ( string database_name [, resource link_identifier])

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

fbsql_start_db()

See also: fbsql_db_status() and fbsql_stop_db().

Anterior | Inicio | Siguiente
fbsql_set_transaction | Subir | fbsql_stop_db


fbsql_stop_db

(PHP 4 >= 4.0.6)

fbsql_stop_db -- Stop a database on local or remote server

Description

bool fbsql_stop_db ( string database_name [, resource link_identifier])

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

fbsql_stop_db()

See also: fbsql_db_status() and fbsql_start_db().

Anterior | Inicio | Siguiente
fbsql_start_db | Subir | fbsql_tablename


fbsql_tablename

(PHP 4 >= 4.2.0)

fbsql_tablename -- Get table name of field

Description

string fbsql_tablename ( resource result, int i)

fbsql_tablename() takes a result pointer returned by the fbsql_list_tables() function as well as an integer index and returns the name of a table. The fbsql_num_rows() function may be used to determine the number of tables in the result pointer.

Ejemplo 1. fbsql_tablename() example

<?php
fbsql_connect ("localhost", "_SYSTEM", "");
$result = fbsql_list_tables ("wisconsin");
$i = 0;
while ($i < fbsql_num_rows ($result)) {
    $tb_names[$i] = fbsql_tablename ($result, $i);
    echo $tb_names[$i] . "<BR>";
    $i++;
}
?>

Anterior | Inicio | Siguiente
fbsql_stop_db | Subir | fbsql_username


fbsql_username

(PHP 4 >= 4.0.6)

fbsql_username -- Get or set the host user used with a connection

Description

string fbsql_username ( resource link_identifier [, string username])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
fbsql_tablename | Subir | fbsql_warnings


fbsql_warnings

(PHP 4 >= 4.0.6)

fbsql_warnings -- Enable or disable FrontBase warnings

Description

bool fbsql_warnings ( [bool OnOff])

Returns TRUE if warnings is turned on otherwise FALSE.

fbsql_warnings() enables or disables FrontBase warnings.

Anterior | Inicio | Siguiente
fbsql_username | Subir | Funciones filePro


Funciones filePro

Manual de PHP
Anterior Siguiente

XXIX. Funciones filePro

Estas funciones permiten acceso en modo de solo-lectura a datos guardados en bases de datos filePro.

filePro es una marca registrada de fP Technologies, Inc. Mas informacion sobre filePro puede encontrarse en http://www.fptech.com/.

Tabla de contenidos
filepro_fieldcount -- encuentra cuantos campos existen en una base de datos filePro
filepro_fieldname -- obtiene el nombre de un campo
filepro_fieldtype -- obtiene el tipo de campo
filepro_fieldwidth -- obtiene la anchura de un campo
filepro_retrieve -- extrae informacion de una base de datos filePro
filepro_rowcount -- encuentra cuantas filas existen en una base de datos filePro
filepro -- lee y verifica el fichero de mapeo

Anterior | Inicio | Siguiente
fbsql_warnings | Subir | filepro_fieldcount


filepro_fieldcount

(PHP 3, PHP 4 )

filepro_fieldcount -- encuentra cuantos campos existen en una base de datos filePro

Descripcion

int filepro_fieldcount ( void )

Devuelve el numero de campos (columnas) existentes en la base de datos filePro abierta.

Ver tambien filepro().

Anterior | Inicio | Siguiente
Funciones filePro | Subir | filepro_fieldname


filepro_fieldname

(PHP 3, PHP 4 )

filepro_fieldname -- obtiene el nombre de un campo

Descripcion

string filepro_fieldname ( int field_number)

Devuelve el nombre del campo correspondiente a field_number.

Anterior | Inicio | Siguiente
filepro_fieldcount | Subir | filepro_fieldtype


filepro_fieldtype

(PHP 3, PHP 4 )

filepro_fieldtype -- obtiene el tipo de campo

Descripcion

string filepro_fieldtype ( int field_number)

Devuelve el tipo de campo del campo correspondiente a field_number.

Anterior | Inicio | Siguiente
filepro_fieldname | Subir | filepro_fieldwidth


filepro_fieldwidth

(PHP 3, PHP 4 )

filepro_fieldwidth -- obtiene la anchura de un campo

Descripcion

int filepro_fieldwidth ( int field_number)

Devuelve la anchura de el campo correspondiente a field_number.

Anterior | Inicio | Siguiente
filepro_fieldtype | Subir | filepro_retrieve


filepro_retrieve

(PHP 3, PHP 4 )

filepro_retrieve -- extrae informacion de una base de datos filePro

Descripcion

string filepro_retrieve ( int row_number, int field_number)

Devuelve la informacion de la base de datos contenida en la localizacion especificada.

Anterior | Inicio | Siguiente
filepro_fieldwidth | Subir | filepro_rowcount


filepro_rowcount

(PHP 3, PHP 4 )

filepro_rowcount -- encuentra cuantas filas existen en una base de datos filePro

Descripcion

int filepro_rowcount ( void )

Devuelve el numero de filas (entradas) existentes en la base de datos filePro abierta.

Ver tambien filepro().

Anterior | Inicio | Siguiente
filepro_retrieve | Subir | filepro


filepro

(PHP 3, PHP 4 )

filepro -- lee y verifica el fichero de mapeo

Descripcion

bool filepro ( string directory)

Lee y verifica el fichero de mapeo, guardando la relacion de campos e informacion.

Ningun bloqueo es realizado, por ello, no se deberia modificar la base de datos filePro cuando puede ser abierta con PHP.

Anterior | Inicio | Siguiente
filepro_rowcount | Subir | Funciones del Sistema de Archivos


Funciones del Sistema de Archivos

Manual de PHP
Anterior Siguiente

XXX. Funciones del Sistema de Archivos

Introducción

Requerimientos

No se requieren librerías externas para compilar esta extensión, pero si desea que PHP ofrezca soporte para LFS (archivos grandes) en Linux, entonces necesita tener una versión reciente de glibc y necesita compilar PHP con las siguientes banderas del compilador: -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64.

Instalación

No se necesita ninguna instalación para usar estas funciones, son parte del núcleo de PHP.

Configuración en tiempo de ejecución

El comportamiento de estas funciones está afectado por los valores definidos en php.ini.

Tabla 1. Opciones de Configuración del Sistema de Archivos y Secuencias

Nombre | Predeterminado | Modificable
allow_url_fopen | "1" | PHP_INI_ALL
user_agent | NULL | PHP_INI_ALL
default_socket_timeout | "60" | PHP_INI_ALL
from | NULL | ??
auto_detect_line_endings | "Off" | PHP_INI_ALL

A continuación se presenta una corta explicación de las directivas de configuración

allow_url_fopen boolean

Esta opción habilita las envolturas fopen tipo URL que le permiten acceder a objetos URL como archivos. Existen envolturas predeterminadas para el acceso de archivos remotos usando los protocolos ftp o http, algunas extensiones como zlib pueden registrar envolturas adicionales.

Nota: Esta opción fue introducida inmediatamente después del lanzamiento de la versión 4.0.3. Para versiones anteriores a, e incluyendo la 4.0.3, solo puede deshabilitar esta característica en tiempo de compilación usando el parámetro de configuración --disable-url-fopen-wrapper.

Aviso

En versiones de windows anteriores a PHP 4.3.0, las siguientes funciones no soportan el acceso de archivos remotos: include(), include_once(), require(), require_once() y las funciones imagecreatefromXXX en la extensión Referencia XLI, Funciones para imágenes.

user_agent string

Definir el agente de usuario que PHP envía.

default_socket_timeout integer

Tiempo de espera predeterminado (en segundos) para secuencias basadas en sockets.

Nota: Esta opción de configuración fue introducida en PHP 4.3.0

from="joe@example.com" string

Definir la contraseña de ftp anónimo (su dirección de correo electrónico).

auto_detect_line_endings boolean

Cuando está habilitada esta opción, PHP examina los datos leídos por fgets() y file() para ver si está usando convenciones de final de líneo tipo Unix, MS-Dos o Macintosh.

Esto le permite a PHP interoperar con sistemas Macintosh, pero tiene un valor predeterminado de Off, ya que hay un impacto ligero de rendimiento cuando se detectan las convenciones EOL para la primera línea, y también porque las personas que usen retornos de carro como separador de elementos bajo sistemas Unix percibirían un comportamiento que no es compatible con versiones anteriores.

Nota: Esta opción de configuración fue introducida en PHP 4.3.0

Tipos de recursos

Constantes predefinidas

Estas constantes están definidas por esta extensión y estarán disponibles solamente cuando la extensión ha sido o bien compilada dentro de PHP o grabada dinámicamente en tiempo de ejecución.

GLOB_BRACE (integer)

GLOB_ONLYDIR (integer)

GLOB_MARK (integer)

GLOB_NOSORT (integer)

GLOB_NOCHECK (integer)

GLOB_NOESCAPE (integer)

PATHINFO_DIRNAME (integer)

PATHINFO_BASENAME (integer)

PATHINFO_EXTENSION (integer)

FILE_USE_INCLUDE_PATH (integer)

FILE_APPEND (integer)

FILE_IGNORE_NEW_LINES (integer)

FILE_SKIP_EMPTY_LINES (integer)

Ver también

Para funciones relacionadas, vea también las secciones Directorio y Ejecución de Programas.

Para una lista de las varias envolturas de URL que pueden ser usadas como archivos remotos, y su explicación, vea también Apéndice I.

Tabla de contenidos
basename -- Devuelve la parte del path correspondiente al nombre del fichero
chgrp -- Cambia el grupo de un fichero
chmod -- Cambia permisos de un fichero
chown -- Cambia el propietario de un fichero
clearstatcache -- Limpia la cache de estado de un fichero
copy -- Copia un fichero
delete -- Una entrada manual inútil
dirname -- Devuelve la parte del path correspondiente al directorio
disk_free_space -- Devuelve el espacio disponible en el directorio
disk_total_space -- Devuelve el tamaño total de un directorio
diskfreespace -- Devuelve el espacio disponible en un directorio
fclose -- Cierra el apuntador a un fichero abierto
feof -- Verifica si el apuntador a un fichero está al final del fichero (end-of-file)
fflush -- Vacía la salida hacia un archivo
fgetc -- Obtiene un caracter del fichero apuntado
fgetcsv -- Obtiene una línea del fichero apuntado y extrae los campos CSV
fgets -- Obtiene una línea del fichero apuntado
fgetss -- Obtiene una línea del fichero apuntado y quita las etiquetas HTML
file_exists -- Verifica si un fichero existe
file_get_contents -- Lee un archivo entero en una cadena
file_put_contents -- Escribir una cadena sobre un archivo
file -- lee un fichero completo hacia un array
fileatime -- Obtiene la última fecha de acceso a un fichero
filectime -- Obtiene la fecha de cambio del inode del fichero
filegroup -- Obtiene el grupo de un fichero
fileinode -- Obtiene el inode del fichero
filemtime -- Obtiene la fecha de modificación del fichero
fileowner -- Obtiene el propietario del fichero
fileperms -- Obtiene los permisos del fichero
filesize -- Obtiene el tamaño del fichero
filetype -- Obtiene el tipo de fichero
flock -- Bloqueo de ficheros portable y asesorado
fnmatch -- Comparar un nombre de archivo contra un patrón
fopen -- Abre un fichero o una URL
fpassthru -- Saca todos los datos restantes del fichero apuntado
fputs -- Escribe en el fichero apuntado
fread -- Lee ficheros en plan binario
fscanf -- Procesa la entrada desde un archivo de acuerdo a un formato
fseek -- Sitúa el apuntador a un fichero
fstat -- Obtiene información sobre un archivo usando un apuntador de archivo abierto
ftell -- Pregunta por la posición del apuntador de lectura/escritura de un fichero
ftruncate -- Trunca un archivo a la longitud dada
fwrite -- Escribe ficheros en plan binario
glob -- Encontrar nombres de ruta coincidentes con un patrón
is_dir -- Dice si el fichero nombrado es un directorio
is_executable -- Dice si el fichero nombrado es ejecutable
is_file -- Dice si el fichero nombrado es un fichero regular
is_link -- Dice si el fichero indicado es un enlace simbólico
is_readable -- Dice si el fichero indicado se puede leer
is_uploaded_file -- Indica si un archivo fue cargado a través de HTTP POST
is_writable -- Indica si el nombre de archivo es escribible
is_writeable -- Dice si se puede escribir en el fichero indicado
link -- Crea un enlace fuerte
linkinfo -- Consigue información sobre un enlace
lstat -- Da información sobre un fichero o enlace simbólico
mkdir -- Crea un directorio
move_uploaded_file -- Mueve un archivo cargado a una nueva ubicación
parse_ini_file -- Procesar un archivo de configuración
pathinfo -- Devuelve información sobre la ruta de un archivo
pclose -- Cierra el fichero de proceso apuntado
popen -- Abre el fichero de proceso apuntado
readfile -- Muestra el contenido de un fichero
readlink -- Devuelve el objetivo de un enlace simbólico
realpath -- Devuelve el nombre de ruta absoluto simplificado
rename -- Renombra un fichero
rewind -- Rebobina la posición del apuntador al fichero
rmdir -- Elimina un directorio
set_file_buffer -- Fija el buffer de fichero del fichero apuntado
stat -- Da información sobre un fichero
symlink -- Crea un enlace simbólico
tempnam -- Crea un fichero de nombre único
tmpfile -- Crea un archivo temporal
touch -- Fija la fecha de modificación de un fichero
umask -- Cambia la umask actual
unlink -- Borra un fichero

Anterior | Inicio | Siguiente
filepro | Subir | basename


basename

(PHP 3, PHP 4 )

basename -- Devuelve la parte del path correspondiente al nombre del fichero

Descripción

string basename ( string path)

Dada una cadena (string) que contiene el path de un fichero, esta función devuelve el nombre base del fichero.

En Windows, tanto la barra (/) como la barra inversa (\) pueden usarse como caracter separador en el path. En otros entornos, se usa la barra directa (/).

Ejemplo 1. Ejemplo de basename()

$path = "/home/httpd/html/index.php3";
$file = basename($path); // $file toma el valor "index.php3"

Ver también: dirname()

Anterior | Inicio | Siguiente
Funciones del Sistema de Archivos | Subir | chgrp


chgrp

(PHP 3, PHP 4 )

chgrp -- Cambia el grupo de un fichero

Descripción

int chgrp ( string filename, mixed group)

Trata de cambiar el grupo al que pertenece el fichero filename al grupo group. Sólo el superusuario puede cambiar el grupo de un fichero arbitrariamente; otros usuarios pueden cambiar el grupo del fichero a cualquier grupo del cual el usuario sea miembro.

Devuelve TRUE en caso de éxito; en otro caso devuelve FALSE.

En Windows, no hace nada y devuelve TRUE.

Ver también chown() y chmod().

Anterior | Inicio | Siguiente
basename | Subir | chmod


chmod

(PHP 3, PHP 4 )

chmod -- Cambia permisos de un fichero

Descripción

int chmod ( string filename, int mode)

Trata de cambiar los permisos del fichero especificado por filename a los permisos dados por mode.

Cuidado que mode no es asumido de forma automática como un valor octal. Para asegurar que se hace la operación esperada necesitas anteponer un cero (0) como prefijo del parámetro mode:

chmod( "/somedir/somefile", 755 );   // decimal; probablemente incorrecto
chmod( "/somedir/somefile", 0755 );  // octal; valor correcto de mode

Devuelve TRUE en caso de éxito y FALSE en otro caso.

Ver también chown() y chgrp().

Anterior | Inicio | Siguiente
chgrp | Subir | chown


chown

(PHP 3, PHP 4 )

chown -- Cambia el propietario de un fichero

Descripción

int chown ( string filename, mixed user)

Trata de cambiar el propietario del fichero filename al usuario user. Sólo el superusuario puede cambiar el propietario de un fichero.

Devuelve TRUE en caso de éxito; en otro caso devuelve FALSE.

Nota: En Windows, no hace nada y devuelve TRUE.

Ver también chown() y chmod().

Anterior | Inicio | Siguiente
chmod | Subir | clearstatcache


clearstatcache

(PHP 3, PHP 4 )

clearstatcache -- Limpia la cache de estado de un fichero

Descripción

void clearstatcache ( void )

Invocar la llamada del sistema stat o lstat es bastante costoso en la mayoría de los sistemas. Por lo tanto, el resultado de la última llamada a cualquiera de las funciones de estado (listadas abajo) es guardado para usarlo en la próxima llamada de este tipo empleando el mismo nombre de fichero. Si deseas forzar un nuevo chequeo del estado del fichero, por ejemplo si el fichero está siendo chequeado muchas veces y puede cambiar o desaparecer, usa esta función para borrar los resultados almacenados en memoria de la última llamada.

Este valor sólo es cacheado durante el tiempo de vida de una petición simple.

Entre las funciones afectadas se incluyen stat(),
lstat(),
file_exists(),
is_writeable(),
is_readable(),
is_executable(),
is_file(),
is_dir(),
is_link(),
filectime(),
fileatime(),
filemtime(),
fileinode(),
filegroup(),
fileowner(),
filesize(),
filetype(), y
fileperms().

Anterior | Inicio | Siguiente
chown | Subir | copy


copy

(PHP 3, PHP 4 )

copy -- Copia un fichero

Descripción

int copy ( string source, string dest)

Hace una copia de un fichero. Devuelve TRUE si la copia tiene éxito, y FALSE en otro caso.

Ejemplo 1. Ejemplo de copy()

if (!copy($file, $file.'.bak')) {
    print("failed to copy $file...<br>\n");
}

Ver también: rename().

Anterior | Inicio | Siguiente
clearstatcache | Subir | delete


delete

(no version information, might be only in CVS)

delete -- Una entrada manual inútil

Descripción

void delete ( string file)

Esto es una entrada manual inútil para satisfacer a esas personas que están buscando unlink() o unset() en el lugar equivocado.

Ver también: unlink() para borrar ficheros, unset() para borrar variables.

Anterior | Inicio | Siguiente
copy | Subir | dirname


dirname

(PHP 3, PHP 4 )

dirname -- Devuelve la parte del path correspondiente al directorio

Descripción

string dirname ( string path)

Dada una cadena (string) conteniendo el path a un fichero, esta función devolverá el nombre del directorio.

En Windows, tanto la barra (/) como la barra inversa (\) son usadas como separadores de caracteres. En otros entornos, debe usarse la barra directa (/).

Ejemplo 1. Ejemplo de dirname()

$path = "/etc/passwd";
$file = dirname($path); // $file toma el valor "/etc"

Ver también: basename()

Anterior | Inicio | Siguiente
delete | Subir | disk_free_space


disk_free_space

(PHP 4 >= 4.1.0)

disk_free_space -- Devuelve el espacio disponible en el directorio

Descripción

float disk_free_space ( string directorio)

Dada una cadena que contiene un directorio, esta función devolverá el número de bytes disponibles en el sistema de archivos o partición de disco correspondiente.

Ejemplo 1. Ejemplo de disk_free_space()

<?php
// $df contiene el numero de bytes disponibles en "/"
$df = disk_free_space("/");
?>

Nota: Esta función no funcionará con archivos remotos ya que el archivo a examinar debe estar disponible vía el sistema de archivos del servidor

Vea también disk_total_space()

Anterior | Inicio | Siguiente
dirname | Subir | disk_total_space


disk_total_space

(PHP 4 >= 4.1.0)

disk_total_space -- Devuelve el tamaño total de un directorio

Descripción

float disk_total_space ( string directorio)

Dada una cadena que contiene un directorio, esta función devolverá el número total de bytes en el sistema de archivos o partición de disco correspondiente.

Ejemplo 1. Ejemplo de disk_total_space()

<?php
// $df contiene el numero total de bytes disponible en "/"
$df = disk_total_space("/");
?>

Nota: Esta función no funcionará con archivos remotos ya que el archivo a examinar debe estar disponible vía el sistema de archivos del servidor

Vea también disk_free_space()

Anterior | Inicio | Siguiente
disk_free_space | Subir | diskfreespace


diskfreespace

(PHP 3>= 3.0.7, PHP 4 )

diskfreespace -- Devuelve el espacio disponible en un directorio

Descripción

float diskfreespace ( string directory)

Dada una cadena (string) conteniendo el nombre de un directorio, esta función devolverá el número de bytes disponibles en el disco correspondiente.

Ejemplo 1. Ejemplo de diskfreespace()

$df = diskfreespace("/"); // $df contiene el numero de bytes
                          // disponibles en "/"

Anterior | Inicio | Siguiente
disk_total_space | Subir | fclose


fclose

(PHP 3, PHP 4 )

fclose -- Cierra el apuntador a un fichero abierto

Description

int fclose ( int fp)

Se cierra el fichero apuntado por fp.

Devuelve TRUE en caso de éxito y FALSE en caso de fallo.

El apuntador al fichero debe ser válido y debe apuntarse a un fichero abierto con éxito con fopen() o con fsockopen().

Anterior | Inicio | Siguiente
diskfreespace | Subir | feof


feof

(PHP 3, PHP 4 )

feof -- Verifica si el apuntador a un fichero está al final del fichero (end-of-file)

Descripción

int feof ( int fp)

Devuelve TRUE si el apuntador del fichero está en EOF o si ocurre un error; en otro caso devuelve FALSE.

The file pointer must be valid, and must point to a file El apuntador al fichero debe ser válido, y debe apuntar a un fichero abierto con éxito por fopen(), popen(), o fsockopen().

Anterior | Inicio | Siguiente
fclose | Subir | fflush


fflush

(PHP 4 >= 4.0.1)

fflush -- Vacía la salida hacia un archivo

Descripción

bool fflush ( resource gestor)

Esta función obliga a que se produzca la escritura de la salida acumulada en búfer al recurso apuntado por el gestor de archivo gestor. Devuelve TRUE si tiene éxito, FALSE de lo contrario.

El apuntador de archivo debe ser válido, y debe apuntar a un archivo abierto satisfactoriamente por fopen(), popen(), o fsockopen().

Anterior | Inicio | Siguiente
feof | Subir | fgetc


fgetc

(PHP 3, PHP 4 )

fgetc -- Obtiene un caracter del fichero apuntado

Descripción

string fgetc ( int fp)

Devuelve una cadena (string) conteniendo un simple caracter leido del fichero apuntado por fp. Devuelve FALSE para EOF (como hace feof()).

El apuntador al fichero debe ser valido, y debe apuntar a un fichero abierto con éxito por fopen(), popen(), o fsockopen().

Ver también fread(), fopen(),
popen(), fsockopen(), y
fgets().

Anterior | Inicio | Siguiente
fflush | Subir | fgetcsv


fgetcsv

(PHP 3>= 3.0.8, PHP 4 )

fgetcsv -- Obtiene una línea del fichero apuntado y extrae los campos CSV

Descripción

array fgetcsv ( int fp, int length [, string delimiter])

Parecida a fgets() excepto que fgetcsv() parsea la línea que lee buscando campos en formato CSV y devuelve un array conteniendo los campos leidos. El delimitador de campo es una coma, a menos que se especifique otro delimitador con el tercer parámetro opcional.

fp debe ser un apuntador válido a un fichero abierto con éxito por fopen(), popen(), o fsockopen()

la longitud debe ser mayor que la línea más larga que pueda encontrarse en le fichero CSV (permitiendo arrastrar caracteres de fin de línea)

fgetcsv() devuelve FALSE en caso de error, incluyendo el fin de fichero.

NOTA: Una línea en blanco en un fichero CSV se devuelve como un array que contiene un único campo nulo, y esto no será tratado como un error.

Ejemplo 1. Ejemplo de fgetcsv() - Leer e imprimir el contenido completo de un fichero CSV

<?php
$row = 1;
$fp = fopen ("test.csv","r");
while ($data = fgetcsv ($fp, 1000, ",")) {
    $num = count ($data);
    print "<p> $num fields in line $row: <br />";
    $row++;
    for ($c=0; $c<$num; $c++) {
        print $data[$c] . "<br />";
    }
}
fclose ($fp);
?>

Anterior | Inicio | Siguiente
fgetc | Subir | fgets


fgets

(PHP 3, PHP 4 )

fgets -- Obtiene una línea del fichero apuntado

Descripción

string fgets ( int fp, int length)

Devuelve una cadena de como mucho length - 1 bytes leidos del fichero apuntado por fp. La lectura acaba cuando son leidos length - 1 bytes, cuando se llega a una nueva línea (el caracter de nueva línea se incluye en el valor devuelto), o cuando se llega a un EOF (lo que ocurra primero).

Si ocurre un error, devuelve FALSE.

Fallos Comunes:

Los que hayan usado la semantica de 'C' de la función fgets deben darse cuenta de la diferencia que hay en como el EOF es devuelto por esta función.

El apuntador al fichero debe ser válido, y debe apuntar a un
fichero abierto con éxito con fopen(),
popen(), o
fsockopen().

A continuación un ejemplo sencillo:

Ejemplo 1. Leyendo un fichero línea por línea

$fd = fopen ("/tmp/inputfile.txt", "r");
while (!feof($fd)) {
    $buffer = fgets($fd, 4096);
    echo $buffer;
}
fclose ($fd);

Ver también fread(), fopen(),
popen(), fgetc(), y
fsockopen().

Anterior | Inicio | Siguiente
fgetcsv | Subir | fgetss


fgetss

(PHP 3, PHP 4 )

fgetss -- Obtiene una línea del fichero apuntado y quita las etiquetas HTML

Descripción

string fgetss ( int fp, int length [, string allowable_tags])

Idéntica a fgets(), excepto que fgetss trata de quitar cualquier etiqueta HTML y PHP del texto que lee.

Se puede utilizar el tercer parámetro opcional para especificar etiquetas que no deben de quitarse.

Nota: allowable_tags fue añadido en PHP 3.0.13, PHP4B3.

Ver también fgets(), fopen(),
fsockopen(), popen(), y
strip_tags().

Anterior | Inicio | Siguiente
fgets | Subir | file_exists


file_exists

(PHP 3, PHP 4 )

file_exists -- Verifica si un fichero existe

Descripción

int file_exists ( string filename)

Devuelve TRUE si el fichero especificado por filename existe; y FALSE en otro caso.

El resultado de esta función es cacheado. Ver clearstatcache() para más detalles.

Anterior | Inicio | Siguiente
fgetss | Subir | file_get_contents


file_get_contents

(PHP 4 >= 4.3.0)

file_get_contents -- Lee un archivo entero en una cadena

Descripción

string file_get_contents ( string nombre_archivo [, int usar_ruta_inclusion [, resource contexto]])

Función idéntica a file(), con la excepción de que file_get_contents() devuelve el archivo en una cadena.

file_get_contents() es el modo preferido para leer los contenidos de un archivo en una cadena. Esta función usa las técnicas de asignación de memoria que soporte su SO para incrementar su rendimiento.

Nota: Esta función es segura binariamente.

Sugerencia: Puede usar una URL como nombre de archivo con esta función si los fopen wrappers han sido activados. Consulte fopen() para más detalles sobre cómo especificar el nombre de fichero y Apéndice I una lista de protocolos URL soportados

Nota: El soporte para contexto fue añadido en PHP 5.0.0.

Vea
también: fgets(), file(),
fread(), include(),
y readfile().

Anterior | Inicio | Siguiente
file_exists | Subir | file_put_contents


file_put_contents

(PHP 5 CVS only)

file_put_contents -- Escribir una cadena sobre un archivo

Descripción

int file_put_contents ( string nombre_archivo, string datos [, int banderas [, resource contexto]])

Idéntico a llamar fopen(), fwrite(), y fclose() sucesivamente. La función devuelve la cantidad de bytes que fueron escritos en el archivo.

banderas puede recibir FILE_USE_INCLUDE_PATH o FILE_APPEND, sin embargo, la opción FILE_USE_INCLUDE_PATH debe ser usada con precaución.

Nota: Esta función es segura binariamente.

Sugerencia: Puede usar una URL como nombre de archivo con esta función si los fopen wrappers han sido activados. Consulte fopen() para más detalles sobre cómo especificar el nombre de fichero y Apéndice I una lista de protocolos URL soportados

Vea también:
fopen(),
fwrite(),
fclose(), y
file_get_contents().

Anterior | Inicio | Siguiente
file_get_contents | Subir | file


file

(PHP 3, PHP 4 )

file -- lee un fichero completo hacia un array

Descripción

array file ( string filename [, int use_include_path])

Idéntica a readfile(), excepto que file() devuelve el fichero en un array. Cada elemento del array corresponde a una línea del fichero, con el caracter de nueva línea incluido.

Se puede utilizar el segundo parámetro opcional y ponerle el valor "1", si también se quiere buscar el fichero en el include_path.

Ver también readfile(), fopen(), y popen().

Anterior | Inicio | Siguiente
file_put_contents | Subir | fileatime


fileatime

(PHP 3, PHP 4 )

fileatime -- Obtiene la última fecha de acceso a un fichero

Descripción

int fileatime ( string filename)

Devuelve la fecha a la que el fichero fue accedido por última vez, o FALSE en caso de error.

Los resultados de esta función son cacheados. Ver clearstatcache() para más detalles.

Anterior | Inicio | Siguiente
file | Subir | filectime


filectime

(PHP 3, PHP 4 )

filectime -- Obtiene la fecha de cambio del inode del fichero

Descripción

int filectime ( string filename)

Devuelve el momento en el que el fichero fue cambiado por última vez, o FALSE en caso de error.

Los resultados de esta función son cacheados. Ver clearstatcache() para más detalles.

Anterior | Inicio | Siguiente
fileatime | Subir | filegroup


filegroup

(PHP 3, PHP 4 )

filegroup -- Obtiene el grupo de un fichero

Descripción

int filegroup ( string filename)

Devuelve el identificador (ID) de grupo del propietario del fichero, o FALSE en caso de un error. El ID del grupo es devuelto en formato numérico, usar posix_getgrgid() para obtener el nombre del grupo.

Los resultados de esta función son cacheados. Ver clearstatcache() para más detalles.

Anterior | Inicio | Siguiente
filectime | Subir | fileinode


fileinode

(PHP 3, PHP 4 )

fileinode -- Obtiene el inode del fichero

Descripción

int fileinode ( string filename)

Devuelve el número de inode del fichero, o FALSE en caso de un error.

Los resultados de esta función son cacheados. Ver clearstatcache() para más detalles.

Anterior | Inicio | Siguiente
filegroup | Subir | filemtime


filemtime

(PHP 3, PHP 4 )

filemtime -- Obtiene la fecha de modificación del fichero

Descripción

int filemtime ( string filename)

Devuelve el momento en el que el fichero fue modificado por última vez, o FALSE en caso de un error.

Los resultados de esta función son cacheados. Ver clearstatcache() para más detalles.

Anterior | Inicio | Siguiente
fileinode | Subir | fileowner


fileowner

(PHP 3, PHP 4 )

fileowner -- Obtiene el propietario del fichero

Descripción

int fileowner ( string filename)

Devuelve el identificador (ID) de usuario del propietario del fichero, o FALSE en caso de error. El ID de usuario se devuelve en formato numérico, usar posix_getpwuid() para obtener el nombre del usuario.

Los resultados de esta función son cacheados. Ver clearstatcache() para más detalles.

Anterior | Inicio | Siguiente
filemtime | Subir | fileperms


fileperms

(PHP 3, PHP 4 )

fileperms -- Obtiene los permisos del fichero

Descripción

int fileperms ( string filename)

Devuelve los permisos del fichero, o FALSE en caso de error.

Los resultados de esta función son cacheados. Ver clearstatcache() para más detalles.

Anterior | Inicio | Siguiente
fileowner | Subir | filesize


filesize

(PHP 3, PHP 4 )

filesize -- Obtiene el tamaño del fichero

Descripción

int filesize ( string filename)

Devuelve el tamaño del fichero, o FALSE en caso de error.

Los resultados de esta función son cacheados. Ver clearstatcache() para más detalles.

Anterior | Inicio | Siguiente
fileperms | Subir | filetype


filetype

(PHP 3, PHP 4 )

filetype -- Obtiene el tipo de fichero

Descripción

string filetype ( string filename)

Devuelve el tipo de fichero. Valores posibles son fifo, char, dir, block, link, file, y unknown.

Devuelve FALSE si ocurre un error.

Los resultados de esta función son cacheados. Ver clearstatcache() para más detalles.

Anterior | Inicio | Siguiente
filesize | Subir | flock


flock

(PHP 3>= 3.0.7, PHP 4 )

flock -- Bloqueo de ficheros portable y asesorado

Description

bool flock ( int fp, int operation)

PHP soporta un método portable de bloquear ficheros completos de manera asesorada (lo que significa que todos los programas que acceden tienen que usar el mismo modo de bloqueo o éste no funcionará).

flock() opera sobre fp el cual debe ser un apuntador a un fichero abierto. operation toma uno de los siguientes valores:

  • Para que adquiera un bloqueo compartido (lectura), fija operation a 1.

  • Para adquirir un bloqueo exclusivo (escritura), fija operation a 2.

  • Para liberar un bloqueo (compartido o exclusivo), fija operation a 3.

  • Si no quieres que flock() bloquee mientras está activado, suma 4 al valor de operation.

flock() permite establece un modelo simple de lectura/escritura el cual puede usarse en prácticamente cualquier plataforma (incluyendo la mayoria de sistemas Unix e incluso Windows).

flock() devuelve TRUE en caso de éxito y FALSE en caso de error (ej. cuando no se puede establecer un bloqueo).

Anterior | Inicio | Siguiente
filetype | Subir | fnmatch


fnmatch

(PHP 4 >= 4.3.0)

fnmatch -- Comparar un nombre de archivo contra un patrón

Descripción

array fnmatch ( string patron, string cadena [, int banderas])

fnmatch() verifica si la cadena pasada coincide con el comodín de intérprete de comandos dado, patron.

Esto es especialmente útil para nombres de archivos, pero también puede ser usado sobre cadenas comunes. El usuario promedio puede encontrarse familiarizado con patrones de intérprete de comandos, o, por lo menos en su forma más simple, con los comodines '?' y '*', así que el uso de fnmatch() en lugar de ereg() o preg_match() para el procesamiento de expresiones de búsqueda puede ser mucho más conveniente para usuarios no-programadores.

Ejemplo 1. Verificar un nombre de color contra un patrón de comodines de intérprete de comandos.

<?php
if(fnmatch("*gr[ae]y", $color)) {
  echo "alguna forma de gris (gray) ...";
}
?>

Vea también glob(), ereg(), preg_match() y la página man Unix sobre fnmatch(3) para consultar los nombres de banderas (mientras no estén documentados aquí).

Anterior | Inicio | Siguiente
flock | Subir | fopen


fopen

(PHP 3, PHP 4 )

fopen -- Abre un fichero o una URL

Descripción

int fopen ( string filename, string mode [, int use_include_path])

Si filename comienza con "http://" (no es sensible a mayúsculas), se abre una conexión HTTP 1.0 hacia el servidor especificado y se devuelve un apuntador de fichero al comienzo del texto de respuesta.

No maneja redirecciones HTTP, por eso se debe incluir una barra final cuando se trata de directorios.

Si filename comienza con "ftp://" (no es sensible a mayúsculas), se abre una conexión ftp hacia el servidor especificado y se devuelve un apuntador al fichero requerido. Si el servidor no soporta ftp en modo pasivo, esto fallará. Se pueden abrir fichero via ftp para leer o para escribir (pero no ambas cosas simultáneamente).

Si filename no comienza con nada de lo anterior, el fichero se abre del sistema de ficheros, y se devuelve un apuntador al fichero abierto.

Si el abrir el fichero falla, la función devuelve FALSE.

mode puede ser cualquiera de lo siguiente:

  • 'r' - Abre para sólo lectura; sitúa el apuntador del fichero al comienzo del mismo.

  • 'r+' - Abre para lectura y escritura; situa el apuntador del fichero al comienzo del fichero.

  • 'w' - Abre para sólo escritura; sitúa el apuntador del fichero al comienzo del fichero y trunca el fichero con longitud cero. Si el fichero no existe, trata de crearlo.

  • 'w+' - Abre el fichero para lectura y escritura; sitúa el apuntador del fichero al comienzo del fichero y trunca el fichero con longitud cero. Si el fichero no existe, trata de crearlo.

  • 'a' - Abre sólo para escribir (añadir); sitúa el apuntador del fichero al final del mismo. Si el fichero no existe, trata de crearlo.

  • 'a+' - Abre para lectura y escritura (añadiendo); sitúa el apuntador del fichero al final del mismo. Si el fichero no existe, trata de crearlo.

Además, mode puede contener la letra 'b'. Esto es útil para sistemas que diferencian entre ficheros binarios y de texto (ej. es inútil en Unix). Si no se necesita, será ignorado.

Puede usarse el tercer parámetro opcional y fijarlo a "1", si también se quiere buscar el fichero en el include_path.

Ejemplo 1. Ejemplo de fopen()()

$fp = fopen("/home/rasmus/file.txt", "r");
$fp = fopen("http://www.php.net/", "r");
$fp = fopen("ftp://user:password@example.com/", "w");

Si experimentas problemas a la hora de leer y escribir a ficheros y estas usando la version de PHP como módulo para el servidor, recuerda que debes asegurar que los ficheros y directorios que estas usando son accesibles al proceso servidor.

En la plataforma Windows, ten cuidado de escribir correctamente las barras invertidas en el path del fichero (poniéndolas dobles), o usa barras directas.

$fp = fopen("c:\\data\\info.txt", "r");

Ver también fclose(), fsockopen(), y popen().

Anterior | Inicio | Siguiente
fnmatch | Subir | fpassthru


fpassthru

(PHP 3, PHP 4 )

fpassthru -- Saca todos los datos restantes del fichero apuntado

Descripción

int fpassthru ( int fp)

Lee hasta el EOF del fichero apuntado y escribe los resultados a la salida estándar (stdout).

Si ocurre un error, fpassthru() devuelve FALSE.

El apuntador al fichero debe ser válido, y debe apuntar a un fichero abierto con éxito por fopen(), popen(), o fsockopen(). El fichero se cierra cuando fpassthru() termina de leerlo (dejando fp sin ninguna utilidad).

Si sólo quieres volcar el contenido de un fichero a stdout puedes If you just want to dump the contents of a file to stdout you may usar la función readfile(), la cual te libra de la llamada a fopen().

Ver también readfile(),
fopen(), popen(), y
fsockopen()

Anterior | Inicio | Siguiente
fopen | Subir | fputs


fputs

(PHP 3, PHP 4 )

fputs -- Escribe en el fichero apuntado

Descripción

int fputs ( int fp, string str [, int length])

fputs() es un alias de fwrite(), y es idéntico a él en todo. Notar que el parámetro length es opcional y si no se pone la cadena entera será escrita.

Anterior | Inicio | Siguiente
fpassthru | Subir | fread


fread

(PHP 3, PHP 4 )

fread -- Lee ficheros en plan binario

Descripción

string fread ( int fp, int length)

fread() lee hasta length bytes del apuntador de fichero referenciado por fp. La lectura acaba cuando length bytes se han leido o se alcanza EOF, lo que ocurra primero.

// Mete el contenido de un fichero en una cadena
$filename = "/usr/local/something.txt";
$fd = fopen ($filename, "r");
$contents = fread ($fd, filesize ($filename));
fclose ($fd);

Ver también fwrite(), fopen(),
fsockopen(), popen(),
fgets(), fgetss(),
file(), y fpassthru().

Anterior | Inicio | Siguiente
fputs | Subir | fscanf


fscanf

(PHP 4 >= 4.0.1)

fscanf -- Procesa la entrada desde un archivo de acuerdo a un formato

Descripción

mixed fscanf ( resource gestor, string formato [, string var1])

La función fscanf() es similar a sscanf(), pero toma su entrada desde un archivo asociado con gestor e interpreta la entrada de acuerdo al formato especificado, el cual es descrito en la documentación de sprintf(). Si sólo se pasan dos parámetros a esta función, los valores procesados serán devueltos como una matriz. De otro modo, si se pasan parámetros opcionales, la función devolverá el número de valores asignados. Los parámetros opcionales deben ser pasados por referencia.

Cualquier espacio en blanco en la cadena de formato crea una correspondencia con cualquier espacio en blanco en la secuencia de entrada. Esto quiere decir que incluso una tabulación \t en la cadena de formato puede coincidir con un caracter de espacio sencillo en la secuencia de entrada.

Ejemplo 1. Ejemplo de fscanf()

<?php
$gestor = fopen ("usuarios.txt","r");
while ($info_usuario = fscanf ($gestor, "%s\t%s\t%s\n")) {
    list ($nombre, $profesion, $cod_pais) = $info_usuario;
    //... hacer algo con los valores
}
fclose($gestor);
?>

Ejemplo 2. usuarios.txt

javier  argonauta       pe
hiroshi escultor        jp
robert  desempleado     us
luigi   florista        it

Nota: Antes de PHP 4.3.0, el máximo número de caracteres leídos desde el archivo era 512 (o hasta el primer \n, lo que primero ocurriera). A partir de PHP 4.3.0 se leerán y analizarán líneas de longitudes arbitrariamente grandes.

Vea también
fread(), fgets(),
fgetss(), sscanf(),
printf(), y sprintf().

Anterior | Inicio | Siguiente
fread | Subir | fseek


fseek

(PHP 3, PHP 4 )

fseek -- Sitúa el apuntador a un fichero

Descripción

int fseek ( int fp, int offset)

Fija el indicador de posición del fichero referenciado por fp a tantos bytes como indica offset. Es equivalente a la llamada (en C) fseek(fp, offset, SEEK_SET).

Si va bien, devuelve 0; en otro caso, devuelve -1. Tener en cuenta que situarse más alla de EOF no se considera un error.

No puede usarse sobre apuntadores de ficheros devueltos por fopen() si usan los formatos "http://" or "ftp://".

Ver también ftell() y rewind().

Anterior | Inicio | Siguiente
fscanf | Subir | fstat


fstat

(PHP 4 )

fstat -- Obtiene información sobre un archivo usando un apuntador de archivo abierto

Descripción

array fstat ( resource gestor)

Reúne las estadísticas del archivo abierto por el apuntador a archivo gestor. Esta función es similar a la función stat(), excepto que opera sobre un apuntador de archivo abierto en lugar de un nombre de archivo.

Devuelve una matriz con las estadísticas del archivo; el formato de la matriz es descrito en la página del manual sobre stat().

Ejemplo 1. Ejemplo de fstat()

<?php

// abrir un archivo
$da = fopen("/etc/passwd", "r");

// reunir estadisticas
$fstat = fstat($da);

// cerrar el archivo
fclose($da);

// imprimir solo la parte asociativa
print_r(array_slice($fstat, 13));

?>

esto producirá :

Array
(
    [dev] => 771
    [ino] => 488704
    [mode] => 33188
    [nlink] => 1
    [uid] => 0
    [gid] => 0
    [rdev] => 0
    [size] => 1114
    [atime] => 1061067181
    [mtime] => 1056136526
    [ctime] => 1056136526
    [blksize] => 4096
    [blocks] => 8
)

Nota: Los resultados de esta función son guardados. Consultar clearstatcache() para más detalles.

Nota: Esta función no funcionará con archivos remotos ya que el archivo a examinar debe estar disponible vía el sistema de archivos del servidor

Anterior | Inicio | Siguiente
fseek | Subir | ftell


ftell

(PHP 3, PHP 4 )

ftell -- Pregunta por la posición del apuntador de lectura/escritura de un fichero

Descripción

int ftell ( int fp)

Devuelve la posición del apuntador de fichero referenciado por fp; es decir, la distancia en la secuencia del fichero.

Si ocurre un error, devuelve FALSE.

El apuntador al fichero debe ser válido, y debe referirse a The file pointer must be valid, and must point to a file un fichero abierto con éxito por fopen() o popen().

Ver también fopen(), popen(), fseek() y rewind().

Anterior | Inicio | Siguiente
fstat | Subir | ftruncate


ftruncate

(PHP 4 )

ftruncate -- Trunca un archivo a la longitud dada

Descripción

bool ftruncate ( resource gestor, int tamanyo)

Toma el apuntador de archivo, gestor, y trunca el archivo a la longitud tamanyo. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Nota: En versiones anteriores a PHP 4.3.3, ftruncate() devuelve un valor integer de 1 cuando tiene éxito, en lugar del valor boolean TRUE.

Vea también fopen() y fseek().

Anterior | Inicio | Siguiente
ftell | Subir | fwrite


fwrite

(PHP 3, PHP 4 )

fwrite -- Escribe ficheros en plan binario

Descripción

int fwrite ( int fp, string string [, int length])

fwrite() escribe el contenido de string al fichero apuntado por fp. Si se da el argumento length, la escritura acaba antes de que length bytes sean escritos o se alcance el final de string, lo que ocurra primero.

Tener en cuenta que si se da el argumento length, entonces la opción de configuración magic_quotes_runtime será ignorada y los caracteres de barra no se quitarán de la cadena string.

Ver también fread(), fopen(),
fsockopen(), popen(), y
fputs().

Anterior | Inicio | Siguiente
ftruncate | Subir | glob


glob

(PHP 4 >= 4.3.0)

glob -- Encontrar nombres de ruta coincidentes con un patrón

Descripción

array glob ( string patrón [, int banderas])

La función glob() realiza una búsqueda por todos los nombres de ruta que coincidan con patrón de acuerdo a las reglas usadas por el intérprete de comandos. No se realiza expansión de tildes o parámetros.

Devuelve una matriz que contiene los archivos/directorios coincidentes, o FALSE si ocurre un error.

Banderas válidas:

  • GLOB_MARK - Agrega una barra a cada elemento devuelto

  • GLOB_NOSORT - Devuelve los archivos como aparecen en el directorio (sin ordenar)

  • GLOB_NOCHECK - Devuelve el patrón de búsqueda si no se han encontrado archivos coincidentes

  • GLOB_NOESCAPE - Las barras invertidas no indican metacaracteres

  • GLOB_BRACE - Expande {a,b,c} para que coincida con 'a', 'b', o 'c'

  • GLOB_ONLYDIR - Devuelve únicamente entradas de directorios que coinciden con el patrón

Nota: Antes de PHP 4.3.3 GLOB_ONLYDIR no estaba disponible en windows y otros sistemas que no usan la librería de C GNU.

Ejemplo 1. Modo conveniente de reemplazar opendir() y amigos con glob().

<?php
foreach (glob("*.txt") as $nombre_archivo) {
    echo "$nombre_archivo tam " . filesize($nombre_archivo) . "\n";
}

/* La salida se vera algo como:

funclist.txt size 44686
funcsummary.txt size 267625
quickref.txt size 137820

*/
?>

Nota: Esta función no funcionará con archivos remotos ya que el archivo a examinar debe estar disponible vía el sistema de archivos del servidor

Vea también opendir(),
readdir(),
closedir(), y fnmatch().

Anterior | Inicio | Siguiente
fwrite | Subir | is_dir


is_dir

(PHP 3, PHP 4 )

is_dir -- Dice si el fichero nombrado es un directorio

Descripción

bool is_dir ( string filename)

Devuelve TRUE si el nombre del fichero existe y es un directorio.

Los resultados de esta función son cacheados. Ver clearstatcache() para más detalles.

Ver también is_file() y is_link().

Anterior | Inicio | Siguiente
glob | Subir | is_executable


is_executable

(PHP 3, PHP 4 )

is_executable -- Dice si el fichero nombrado es ejecutable

Descripción

bool is_executable ( string filename)

Devuelve TRUE si el fichero indicado existe y es ejecutable.

Los resultados de esta función son cacheados. Ver clearstatcache() para más detalles.

Ver también is_file() y is_link().

Anterior | Inicio | Siguiente
is_dir | Subir | is_file


is_file

(PHP 3, PHP 4 )

is_file -- Dice si el fichero nombrado es un fichero regular

Descripción

bool is_file ( string filename)

Devuelve TRUE si el fichero nombrado existe y es un fichero regular.

Los resultados de esta función son cacheados. Ver clearstatcache() para más detalles.

Ver también is_dir() y is_link().

Anterior | Inicio | Siguiente
is_executable | Subir | is_link


is_link

(PHP 3, PHP 4 )

is_link -- Dice si el fichero indicado es un enlace simbólico

Descripción

bool is_link ( string filename)

Devuelve TRUE si el fichero indicado existe y es un enlace simbólico.

Los resultados de esta función son cacheados. Ver clearstatcache() para más detalles.

Ver también is_dir() y is_file().

Anterior | Inicio | Siguiente
is_file | Subir | is_readable


is_readable

(PHP 3, PHP 4 )

is_readable -- Dice si el fichero indicado se puede leer

Descripción

bool is_readable ( string filename)

Devuelve TRUE si el fichero indicado existe y se puede leer.

Recuerda que PHP puede acceder al fichero con el identificador de usuario con el que el servidor web se ejecuta (a menudo 'nobody'). No se tienen en cuenta las limitaciones de modos seguros.

Los resultados de esta función son cacheados. Ver clearstatcache() para más detalles.

Ver también is_writeable().

Anterior | Inicio | Siguiente
is_link | Subir | is_uploaded_file


is_uploaded_file

(PHP 3>= 3.0.17, PHP 4 >= 4.0.3)

is_uploaded_file -- Indica si un archivo fue cargado a través de HTTP POST

Descripción

bool is_uploaded_file ( string nombre_archivo)

Devuelve TRUE si el archivo dado por nombre_archivo fue cargado a través de HTTP POST. Esto es útil para ayudar a verificar que un usuario malicioso no ha intentado engañar al script haciéndole trabajar sobre archivos con los que no debería trabajar--por ejemplo, /etc/passwd.

Este tipo de chequeo es especialmente importante si existe alguna posibilidad de que cualquier cosa realizada con archivos cargados pueda revelar sus contenidos al usuario, o incluso a otros usuarios en el mismo sistema.

is_uploaded_file() se encuentra disponible únicamente en versiones de PHP 3 superiores a PHP 3.0.16, y en versiones de PHP 4 superiores a 4.0.2. Si está atrapado usando una versión anterior, puede usar la siguiente función para protegerse:

Nota: El siguiente ejemplo no trabajará con versiones de PHP 4 superiores a 4.0.2. Depende en la funcionalidad interna de PHP que fue modificada luego de esa versión.

<?php
/* Prueba de usuario para verificar un archivo cargado. */
function is_uploaded_file($nombre_archivo) {
    if (!$archivo_tmp = get_cfg_var('upload_tmp_dir')) {
        $archivo_tmp = dirname(tempnam('', ''));
    }
    $archivo_tmp .= '/' . basename($nombre_archivo);
    /* El usuario puede tener una barra final en php.ini... */
    return (ereg_replace('/+', '/', $archivo_tmp) == $nombre_archivo);
}

/* Asi es como se usa, ya que tampoco se cuenta con
 * move_uploaded_file() en estas versiones antiguas: */
if (is_uploaded_file($HTTP_POST_FILES['archivo_de_usuario'])) {
    copy($HTTP_POST_FILES['archivo_de_usuario'], "/lugar/a/colocar/el/archivo/cargado");
} else {
    echo "Posible ataque de archivo entrante: nombre de archivo '$HTTP_POST_FILES[archivo_de_usuario]'.";
}
?>

Vea también move_uploaded_file(), y la sección Gestión de carga de archivos para un ejempo de uso sencillo.

Anterior | Inicio | Siguiente
is_readable | Subir | is_writable


is_writable

(PHP 4 )

is_writable -- Indica si el nombre de archivo es escribible

Descripción

bool is_writable ( string nombre_archivo)

Devuelve TRUE si nombre_archivo existe y es escribible. El argumento de nombre de archivo puede ser un nombre de directorio, permitiéndole revisar si un directorio es escribible.

Tenga en mente que PHP puede estar accediendo al archivo bajo el id de usuario con el que corre el servidor web (usualmente 'nobody'). No se tienen en cuenta limitaciones del modo seguro.

Nota: Los resultados de esta función son guardados. Consultar clearstatcache() para más detalles.

Sugerencia: As of PHP 5.0.0 this function can also be used with some url wrappers. Refer to Apéndice I for a listing of which wrappers support stat() family of functionality.

Vea también is_readable(),
file_exists(), y
fwrite().

Anterior | Inicio | Siguiente
is_uploaded_file | Subir | is_writeable


is_writeable

(PHP 3, PHP 4 )

is_writeable -- Dice si se puede escribir en el fichero indicado

Descripción

bool is_writeable ( string filename)

Devuelve TRUE si el fichero indicado existe y se puede escribir en él. El argumento filename puede ser el nombre de un directorio, lo que permite verificar si un directorio tiene permiso de escritura.

Recuerda que PHP puede acceder al fichero con el identificador de usuario con el que el servidor web se ejecuta (a menudo 'nobody'). No se tienen en cuenta las limitaciones de modos seguros.

Los resultados de esta función son cacheados. Ver clearstatcache() para más detalles.

Ver también is_readable().

Anterior | Inicio | Siguiente
is_writable | Subir | link


link

(PHP 3, PHP 4 )

link -- Crea un enlace fuerte

Descripción

int link ( string target, string link)

link() crea un enlace fuerte.

Ver también symlink() para crear enlaces débiles, y readlink() junto con linkinfo().

Anterior | Inicio | Siguiente
is_writeable | Subir | linkinfo


linkinfo

(PHP 3, PHP 4 )

linkinfo -- Consigue información sobre un enlace

Descripción

int linkinfo ( string path)

linkinfo() da el campo st_dev de la extructura stat de UNIX C devuelto por la llamada al sistema lstat. Esta función se usa para verificar si un enlace (apuntado por path) existe realmente (usando el mismo método que la macro S_ISLNK definida en stat.h). Devuelve 0 o FALSE en caso de error.

Ver también symlink(), link(), y readlink().

Anterior | Inicio | Siguiente
link | Subir | lstat


lstat

(PHP 3>= 3.0.4, PHP 4 )

lstat -- Da información sobre un fichero o enlace simbólico

Descripción

array lstat ( string filename)

Reúne los datos del fichero o enlace simbólico indicado por filename. Esta función es idéntica a la función stat() excepto que si el nombre en el parámetro filename es un enlace simbólico, son devueltos los datos (status) del enlace simbólico, y no los del fichero al que apunta el enlace simbólico.

Devuelve un array conteniendo los datos del fichero con los siguientes elementos:

  1. dispositivo (device)

  2. inode

  3. número de enlaces

  4. id de usuario del propietario

  5. id de grupo del propietario

  6. tipo de disposivo si es un inode device *

  7. tamaño en bytes

  8. fecha del último acceso

  9. fecha de la última modificación

  10. fecha del último cambio

  11. tamaño de bloque para el sistema I/O *

  12. número de bloques ocupados

* - sólo válido en sistemas que soportan el tipo st_blksize --otros sistemas (como Windows) devuelven -1

Los resultados de esta función son cacheados. Ver clearstatcache() para más detalles.

Anterior | Inicio | Siguiente
linkinfo | Subir | mkdir


mkdir

(PHP 3, PHP 4 )

mkdir -- Crea un directorio

Descripción

int mkdir ( string pathname, int mode)

Trata de crear el directorio especificado por pathname.

Ten en cuenta que debes especifiar el modo como un número octal, lo que significa que debes anteponerle un 0 al número.

mkdir ("/path/to/my/dir", 0700);

Devuelve TRUE en caso de éxito y FALSE en caso de fallo.

Ver también rmdir().

Anterior | Inicio | Siguiente
lstat | Subir | move_uploaded_file


move_uploaded_file

(PHP 4 >= 4.0.3)

move_uploaded_file -- Mueve un archivo cargado a una nueva ubicación

Descripción

bool move_uploaded_file ( string nombre_archivo, string destino)

Esta función realiza un chequeo para asegurar que el archivo indicado por nombre_archivo sea un archivo cargado válido (lo que quiere decir que fue cargado a través del mecanismo de carga HTTP POST de PHP). Si el archivo es válido, será movido al nombre de archivo dado por destino.

Si nombre_archivo no es un archivo cargado válido, entonces no se tomará ninguna acción, y move_uploaded_file() devolverá FALSE.

Si nombre_archivo es un archivo cargado válido, pero no puede ser movido por alguna razón, no se tomará ninguna acción, y move_uploaded_file() devolverá FALSE. Adicionalmente, se emitirá una advertencia.

Este tipo de chequeo es especialmente importante si hay algún chance de que cualquier cosa hecha con archivos cargados pueda revelar sus contenidos al usuario, o incluso a otros usuarios en el mismo sistema.

Nota: Cuando safe-mode (modo-seguro) está activado, PHP comprueba si los archivos o directorios que va a utilizar tienen la misma UID que el script que está siendo ejecutado.

Nota: La función move_uploaded_file() no se ve afectada por las restricciones safe mode normales. Esto no es inseguro ya que move_uploaded_file() solo opera con archivos cargados a través de PHP.

Aviso

Si el archivo de destino ya existe, será sobrescrito.

Vea también is_uploaded_file(), y la sección Gestión de carga de archivos para un ejemplo de uso simple.

Anterior | Inicio | Siguiente
mkdir | Subir | parse_ini_file


parse_ini_file

(PHP 4 )

parse_ini_file -- Procesar un archivo de configuración

Descripción

array parse_ini_file ( string nombre_archivo [, bool procesar_secciones])

parse_ini_file() lee el contenido del archivo ini especificado en nombre_archivo, y devuelve los parámetros que incluye en una matriz asociativa. Al definir el último parámetro procesar_secciones como TRUE, recibe una matriz multidimensional, con los nombres de secciones y parámetros incluidos. El valor predeterminado para procesar_secciones es FALSE

Nota: Esta función no tiene relación alguna con el archivo php.ini. Éste ya ha sido procesado al momento de ejecutar su script. Esta función puede ser usada para leer los archivos de configuración de su propia aplicación.

Nota: Si un valor en el archivo ini contiene caracteres no-alfanuméricos, éste necesita ser rodeado por comillas dobles (").

Nota: A partir de PHP 4.2.1, esta función se ve afectada también por safe mode y open_basedir.

Nota: Existen palabras reservadas que no deben ser usadas como claves en archivos ini. Entre estas se encuentran: null, yes, no, true, y false.

La estructura del archivo ini es similar al de php.ini.

También pueden procesarse Constantes en el archivo ini, de tal modo que si define una constante como un valor ini antes de ejecutar parse_ini_file(), ésta será integrada en los resultados. Solo son evaluados los valores ini. Por ejemplo:

Ejemplo 1. Contenidos de ejemplo.ini

; Este es un archivo de configuracion de ejemplo
; Los comentarios comienzan con ';', como en php.ini

[primera_seccion]
uno = 1
cinco = 5
animal = PAJARO

[segunda_seccion]
ruta = /usr/local/bin
URL = "http://www.example.com/~nombreusuario"

Ejemplo 2. Ejemplo de parse_ini_file()

<?php

define ('PAJARO', 'Ave Dodo');

// Procesar sin secciones
$matriz_ini = parse_ini_file("ejemplo.ini");
print_r($matriz_ini);

// Procesar con secciones
$matriz_ini = parse_ini_file("ejemplo.ini", TRUE);
print_r($matriz_ini);

?>

Produciría:

Array
(
    [uno] => 1
    [cinco] => 5
    [animal] => Ave Dodo
    [ruta] => /usr/local/bin
    [URL] => http://www.example.com/~nombreusuario
)
Array
(
    [primera_seccion] => Array
        (
            [uno] => 1
            [cinco] => 5
            [animal] = Ave Dodo
        )

    [segunda_seccion] => Array
        (
            [ruta] => /usr/local/bin
            [URL] => http://www.example.com/~nombreusuario
        )

)

Anterior | Inicio | Siguiente
move_uploaded_file | Subir | pathinfo


pathinfo

(PHP 4 >= 4.0.3)

pathinfo -- Devuelve información sobre la ruta de un archivo

Descripción

array pathinfo ( string ruta)

pathinfo() devuelve una matriz asociativa que contiene información sobre ruta. Los siguientes elementos de la matriz son devueltos: dirname, basename y extension.

Ejemplo 1. Ejemplo de pathinfo()

<?php

$partes_ruta = pathinfo("/www/htdocs/index.html");

echo $partes_ruta["dirname"] . "\n";
echo $partes_ruta["basename"] . "\n";
echo $partes_ruta["extension"] . "\n";

?>

Produciría:

/www/htdocs
index.html
html

Nota: Para información sobre la recuperación de información sobre la ruta actual, lea la sección relevante en variables reservadas predefinidas.

Vea también dirname(),
basename(), parse_url()
y realpath().

Anterior | Inicio | Siguiente
parse_ini_file | Subir | pclose


pclose

(PHP 3, PHP 4 )

pclose -- Cierra el fichero de proceso apuntado

Descripción

int pclose ( int fp)

Cierra un fichero que representa un tuberia (pipe) abierta con popen().

El apuntador al fichero debe ser válido, y debe haber sido devuelto por una llamada con éxito a popen().

Devuelve el estado de terminación del proceso que estaba ejecutándose.

Ver también popen().

Anterior | Inicio | Siguiente
pathinfo | Subir | popen


popen

(PHP 3, PHP 4 )

popen -- Abre el fichero de proceso apuntado

Descripción

int popen ( string command, string mode)

Abre una tubería (pipe) a un proceso ejecutado haciendo fork al comando dado por command

Devuelve un apuntador de fichero idéntico al devuelto por fopen(), excepto que este es unidireccional (sólo puede usarse o para leer o para escribir) y debe cerrarse con pclose(). Este apuntador puede usarse con fgets(), fgetss(), y fputs().

Si ocurre un error, devuelve FALSE.

$fp = popen ("/bin/ls", "r");

Ver también pclose().

Anterior | Inicio | Siguiente
pclose | Subir | readfile


readfile

(PHP 3, PHP 4 )

readfile -- Muestra el contenido de un fichero

Descripción

int readfile ( string filename [, int use_include_path])

Lee un fichero y lo escribe a la salida estándar.

Devuelve el número de bytes leidos del fichero. Si ocurre un error, se devuelve FALSE y a menos que la función fuera llamada como @readfile, se imprime un mensaje de error

Si filename comienzo por "http://" (no es sensible a mayúsculas), se abre una conexión HTTP 1.0 al servidor especificado y el texto de la respuesta se escribe a la salida estándar.

No maneja redirecciones HTTP, por eso se debe incluir una barra final cuando se trata de directorios.

Si filename comienza con "ftp://" (no es sensible a mayúsculas), se abre una conexión ftp al servidor especificado y el fichero que se pide se escribe en la salida estándar. Si el servidor no soporta ftp en modo pasivo, la función fallará.

Si filename no comienza con ninguna de las cadenas anteriores, el fichero será abierto del sistema de ficheros y su contenido escrito en la salida estándar.

Se puede usar el segundo parámetro opcional y fijarlo a "1", si si quieres que también se busque el fichero en el include_path.

Ver también fpassthru(),
file(), fopen(),
include(), require(), y
virtual().

Anterior | Inicio | Siguiente
popen | Subir | readlink


readlink

(PHP 3, PHP 4 )

readlink -- Devuelve el objetivo de un enlace simbólico

Descripción

string readlink ( string path)

readlink() hace lo mismo que la función C readlink C y devuelve el contenido del path del enlace simbólico o 0 en caso de error.

Ver también symlink(),
readlink() y
linkinfo().

Anterior | Inicio | Siguiente
readfile | Subir | realpath


realpath

(PHP 4 )

realpath -- Devuelve el nombre de ruta absoluto simplificado

Descripción

string realpath ( string ruta)

realpath() expande todos los enlaces simbólicos y revuelve todas las referencias a '/./', '/../' y caracteres '/' extra en la ruta de entrada, y devuelve el nombre de ruta absoluto simplificado. La ruta resultante no tendrá enlaces simbólicos, ni componentes '/./' o '/../'.

realpath() devuelve FALSE en caso de fallo, p.ej. si el archivo no existe.

Ejemplo 1. Ejemplo de realpath()

<?php
$ruta_real = realpath ("../../index.php");
?>

Vea también: basename(),
dirname(), y
pathinfo().

Anterior | Inicio | Siguiente
readlink | Subir | rename


rename

(PHP 3, PHP 4 )

rename -- Renombra un fichero

Descripción

int rename ( string oldname, string newname)

Trata de renombrar oldname como newname.

Devuelve TRUE en caso de éxito y FALSE en caso de fallo.

Anterior | Inicio | Siguiente
realpath | Subir | rewind


rewind

(PHP 3, PHP 4 )

rewind -- Rebobina la posición del apuntador al fichero

Descripción

int rewind ( int fp)

Fija el indicador de posición del fichero dado por fp al comienzo de del fichero.

Si ocurre un error, devuelve 0.

El apuntador al fichero debe ser válido, y debe apuntar a un fichero abierto con éxito por fopen().

Ver también fseek() y ftell().

Anterior | Inicio | Siguiente
rename | Subir | rmdir


rmdir

(PHP 3, PHP 4 )

rmdir -- Elimina un directorio

Descripción

int rmdir ( string dirname)

Trata de eliminar el directorio indicado por pathname. El directorio debe estar vacio, y los permisos relevantes deben permitir esto.

Si ocurre un error, devuelve 0.

Ver también mkdir().

Anterior | Inicio | Siguiente
rewind | Subir | set_file_buffer


set_file_buffer

(PHP 3>= 3.0.8, PHP 4 >= 4.0.1)

set_file_buffer -- Fija el buffer de fichero del fichero apuntado

Description

int fwrite ( int fp, int buffer)

set_file_buffer() fija el buffer para operaciones de escritura en el apuntador de fichero fp con buffer bytes. Si buffer es 0 entonces las operaciones de escritura no usan un buffer intermedio.

La función devuelve 0 en caso de éxito, o EOF si la petición no se puede realizar.

Tener en cuenta que por defecto cualquier fopen hace una llamada a set_file_buffer de 8K.

Ver también fopen().

Anterior | Inicio | Siguiente
rmdir | Subir | stat


stat

(PHP 3, PHP 4 )

stat -- Da información sobre un fichero

Descripción

array stat ( string filename)

Recoje los datos sobre el fichero indicado por filename.

Devuelve un array conteniendo los datos del fichero con los siguientes elementos:

  1. dispositivo (device)

  2. inode

  3. modo de protección del inode

  4. número de enlaces

  5. id de usuario del propietario

  6. id de grupo del propietario

  7. tipo de dispositivo si es un inode device *

  8. tamaño en bytes

  9. fecha del último acceso access

  10. fecha de la última modificación

  11. fecha del último cambio

  12. tamaño del bloque para el sistema I/O *

  13. número de bloques ocupados

* - sólo válido en sistemas que soportan el tipo st_blksize --otros sistemas (como Windows) devuelven -1

Los resultados de esta función son cacheados. Ver clearstatcache() para más detalles.

Anterior | Inicio | Siguiente
set_file_buffer | Subir | symlink


symlink

(PHP 3, PHP 4 )

symlink -- Crea un enlace simbólico

Descripción

int symlink ( string target, string link)

symlink() crea un enlace simbólico del objetivo target con el nombre especificado por link.

Ver también link() para crear enlaces fuertes, y readlink() junto con linkinfo().

Anterior | Inicio | Siguiente
stat | Subir | tempnam


tempnam

(PHP 3, PHP 4 )

tempnam -- Crea un fichero de nombre único

Descripción

string tempnam ( string dir, string prefix)

Crea un fichero temporal de nombre único en el directorio especificado. Si el directorio no existe tempnam() puede generar un fichero en el directorio temporal del sistema.

El comportamiento de la función tempnam() depende del sistema. En Windows la variable de entorno TMP se impone sobre el parámetro dir, en Linux la variable de entorno TMPDIR tiene preferencia, mientras que en SVR4 siempre se usará el parámetro dir si si el directorio al que apunta existe. Consulta la documentación del sistema sobre la función tempnam(3) en caso de duda.

Devuelve el nombre del nuevo fichero temporal, o una cadena nula en caso de fallo.

Ejemplo 1. Ejemplo de tempnam()

$tmpfname = tempnam ("/tmp", "FOO");

Anterior | Inicio | Siguiente
symlink | Subir | tmpfile


tmpfile

(PHP 3>= 3.0.13, PHP 4 )

tmpfile -- Crea un archivo temporal

Descripción

resource tmpfile ( void )

Crea un archivo temporal con un nombre único en modo de escritura, devolviendo un gestor de archivo similar al que devuelve fopen(). El archivo es eliminado automáticamente cuando sea cerrado (usando fclose()), o cuando el script finalice.

Para más detalles, consulte la documentación de su sistema sobre la función tmpfile(3), así como el archivo de cabecera stdio.h.

Ejemplo 1. Ejemplo de tmpfile()

<?php
$temp = tmpfile();
fwrite($temp, "escribiendo sobre el archivo temporal");
fclose($temp); // esto elimina el archivo
?>

Vea también tempnam().

Anterior | Inicio | Siguiente
tempnam | Subir | touch


touch

(PHP 3, PHP 4 )

touch -- Fija la fecha de modificación de un fichero

Descripción

int touch ( string filename, int time)

Trata de fijar la fecha de modificación del fichero indicado por filename al valor dado por time. Si no se pone la opción time, se utiliza la fecha actual.

Si el fichero no existe, será creado.

Devuelve TRUE en caso de éxito y FALSE en otro caso.

Anterior | Inicio | Siguiente
tmpfile | Subir | umask


umask

(PHP 3, PHP 4 )

umask -- Cambia la umask actual

Descripción

int umask ( int mask)

umask() fija las umask PHP con la mascara & 0777 y y devuelve la antigua umask. Cuando PHP se está usando como un módulo del servidor, la umask se restaura cuando cada petición es finalizada.

umask() sin argumentos sólamente devuelve la umask actual.

Anterior | Inicio | Siguiente
touch | Subir | unlink


unlink

(PHP 3, PHP 4 )

unlink -- Borra un fichero

Descripción

int unlink ( string filename)

Borra el fichero filename. Es similar a la función unlink() del Unix C.

Devuelve 0 o FALSE en caso de error.

Ver también rmdir() para borrar directorios.

Anterior | Inicio | Siguiente
umask | Subir | Funciones Forms Data Format (Formato de Datos de Formularios)


Funciones Forms Data Format (Formato de Datos de Formularios)

Manual de PHP
Anterior Siguiente

XXXI. Funciones Forms Data Format (Formato de Datos de Formularios)

El Formato de Datos de Formulario (FDF) está diseñado para el manejo de formularios en archivos PDF. Se aconseja leer la información disponible en http://partners.adobe.com/asn/developer/acrosdk/forms.html para más información sobre lo que es FDF y cómo se usa en general.

Nota: Actualmente Adobe sólo proporciona una versión compatible con libc5 para Linux. Las pruebas con glibc2 provocaron un fallo de segmentado. Si alguien es capaz de hacerla funcionar, por favor coméntelo en esta página.

Nota: Si tiene problemas configurando php con soporte de fdftk, compruebe si el archivo de cabecera FdfTk.h y la librería libFdfTk.so están en su lugar correcto. Deberían encontrarse respectivamente en fdftk-dir/include y en fdftk-dir/lib. Este problema no se dará si se limita a desempaqueta la distribucón del FtdTk.

La idea general del FDF es similar a los formularios HTML. La diferencia básicamente está en el formato en que se transmiten los datos al servidor cuando se pulsa el botón de envío (este es realmente el Formato de Datos de Formulario) y el formato del formulario en sí mismo (que es el Formato de Documento Portable, PDF). Procesar lo datos del FDF es una de las características que proporcionan las funciones fdf. Pero aún hay más. Uno también puede tomar un formulario PDF y rellenar los campos de entrada con datos sin modificar el formulario en sí mismo. En dicho caso, lo que se hace es crear un documento FDF (fdf_create()), fijar los valores de cada campo de entrada (fdf_set_value()) y asociarlo con un formulario PDF (fdf_set_file()). Finalmente, debe ser enviado al navegador con el MimeType application/vnd.fdf. El plug-in de Acrobar reader de su navegador reconoce el MimeType, lee el formulario PDF asociado y rellena los datos a partir del documento FDF.

Los siguientes ejemplos muestran cómo se evalúan los datos de los formularios.

Ejemplo 1. Evaluando un documento FDF

<?php
// Guarda los datos FDF en un archivo temporal
$fdffp = fopen("test.fdf", "w");
fwrite($fdffp, $HTTP_FDF_DATA, strlen($HTTP_FDF_DATA));
fclose($fdffp);

// Abre archivo temporal y evalúa los datos
// El formulario pdf contenía varios campos de texto con los nombres
// volumen, fecha, comentario, editorial, preparador, y dos casillas de verificación
// muestra_editorial y muestra_preparador.
$fdf = fdf_open("test.fdf");
$volume = fdf_get_value($fdf, "volumen");
echo "El campo volumen tiene el valor '<B>$volume</B>'<BR>";

$date = fdf_get_value($fdf, "fecha");
echo "El campo fecha tiene el valor '<B>$date</B>'<BR>";

$comment = fdf_get_value($fdf, "comentario");
echo "El campo comentario tiene el valor '<B>$comment</B>'<BR>";

if(fdf_get_value($fdf, "muestra_editorial") == "On") {
  $publisher = fdf_get_value($fdf, "editorial");
  echo "El campo editorial tiene el valor '<B>$publisher</B>'<BR>";
} else
  echo "No se debe mostrar la editorial.<BR>";

if(fdf_get_value($fdf, "muestra_preparador") == "On") {
  $preparer = fdf_get_value($fdf, "preparador");
  echo "El campo preparador tiene el valor '<B>$preparer</B>'<BR>";
} else
  echo "No se debe mostrar el preparador.<BR>";
fdf_close($fdf);
?>
Tabla de contenidos
fdf_add_doc_javascript -- Adds javascript code to the FDF document
fdf_add_template -- Adds a template into the FDF document
fdf_close -- Cerrar un documento FDF
fdf_create -- Crear un documento FDF
fdf_enum_values -- Call a user defined function for each document value
fdf_errno -- Return error code for last fdf operation
fdf_error -- Return error description for fdf error code
fdf_get_ap -- Get the appearance of a field
fdf_get_attachment -- Extracts uploaded file embedded in the FDF
fdf_get_encoding -- Get the value of the /Encoding key
fdf_get_file -- Obtener el valor de la clave /F
fdf_get_flags -- Gets the flags of a field
fdf_get_opt -- Gets a value from the opt array of a field
fdf_get_status -- Obtener el valor de la clave /STATUS
fdf_get_value -- Obtener el valor de un campo
fdf_get_version -- Gets version number for FDF api or file
fdf_header -- Sets FDF-specific output headers
fdf_next_field_name -- Obtener el nombre del siguiente campo
fdf_open_string -- Read a FDF document from a string
fdf_open -- Abrir un documento FDF
fdf_remove_item -- Sets target frame for form
fdf_save_string -- Returns the FDF document as a string
fdf_save -- Guardar un documeto FDF
fdf_set_ap -- Ajusta la apariencia de un campo
fdf_set_encoding -- Sets FDF character encoding
fdf_set_file -- Fijar el valor de la clave /F
fdf_set_flags -- Sets a flag of a field
fdf_set_javascript_action -- Sets an javascript action of a field
fdf_set_opt -- Sets an option of a field
fdf_set_status -- Fija el valor de la clave /STATUS
fdf_set_submit_form_action -- Sets a submit form action of a field
fdf_set_target_frame -- Set target frame for form display
fdf_set_value -- Fijar el valor de un campo
fdf_set_version -- Sets version number for a FDF file

Anterior | Inicio | Siguiente
unlink | Subir | fdf_add_doc_javascript


fdf_add_doc_javascript

(PHP 4 >= 4.3.0)

fdf_add_doc_javascript -- Adds javascript code to the FDF document

Description

bool fdf_add_doc_javascript ( resource fdfdoc, string script_name, string script_code)

Adds a script to the FDF, which Acrobat then adds to the doc-level scripts of a document, once the FDF is imported into it. It is strongly suggested to use '\r' for linebreaks within script_code.

Ejemplo 1. Adding JavaScript code to a FDF

<?php
$fdf = fdf_create();
fdf_add_doc_javascript($fdf, "PlusOne", "function PlusOne(x)\r{\r  return x+1;\r}\r");
fdf_save($fdf);
?>

will create a FDF like this:

%FDF-1.2
%âãÏÓ
1 0 obj
<<
/FDF << /JavaScript << /Doc [ (PlusOne)(function PlusOne\(x\)\r{\r  return x+1;\r}\r)] >> >>
>>
endobj
trailer
<<
/Root 1 0 R

>>
%%EOF

Anterior | Inicio | Siguiente
Funciones Forms Data Format (Formato de Datos de Formularios) | Subir | fdf_add_template


fdf_add_template

(PHP 3>= 3.0.13, PHP 4 )

fdf_add_template -- Adds a template into the FDF document

Description

bool fdf_add_template ( resource fdfdoc, int newpage, string filename, string template, int rename)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
fdf_add_doc_javascript | Subir | fdf_close


fdf_close

(PHP 3>= 3.0.6, PHP 4 )

fdf_close -- Cerrar un documento FDF

Descripción

void fdf_close ( int fdf_document)

La función fdf_close() cierra un documento FDF.

Vea también fdf_open().

Anterior | Inicio | Siguiente
fdf_add_template | Subir | fdf_create


fdf_create

(PHP 3>= 3.0.6, PHP 4 )

fdf_create -- Crear un documento FDF

Descripción

int fdf_create ( void )

La función fdf_create() crea un documento FDF nuevo. Esta función se necesita si se desea rellenar los campos de entrada en un documento PDF.

Ejemplo 1. Rellenando un documento PDF

<?php
$outfdf = fdf_create();
fdf_set_value($outfdf, "volumen", $volume, 0);

fdf_set_file($outfdf, "http:/testfdf/resultlabel.pdf");
fdf_save($outfdf, "outtest.fdf");
fdf_close($outfdf);
Header("Content-type: application/vnd.fdf");
$fp = fopen("outtest.fdf", "r");
fpassthru($fp);
unlink("outtest.fdf");
?>

Vea también fdf_close(),
         fdf_save(),
         fdf_open().

Anterior | Inicio | Siguiente
fdf_close | Subir | fdf_enum_values


fdf_enum_values

(PHP 4 >= 4.3.0)

fdf_enum_values -- Call a user defined function for each document value

Description

bool fdf_enum_values ( resource fdfdoc, callback function [, mixed userdata])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
fdf_create | Subir | fdf_errno


fdf_errno

(PHP 4 >= 4.3.0)

fdf_errno -- Return error code for last fdf operation

Description

int fdf_errno ( void )

fdf_errno() returns the error code set by the last fdf_...() function call. This is zero for a successfull operation or a non-zero error code on failure. A textual description may be obtained using the fdf_error() function.

See also fdf_error().

Anterior | Inicio | Siguiente
fdf_enum_values | Subir | fdf_error


fdf_error

(PHP 4 >= 4.3.0)

fdf_error -- Return error description for fdf error code

Description

string fdf_error ( [int error_code])

fdf_error() returns a textual description for the fdf error code given in error_code. The function uses the internal error code set by the last operation if no error_code is given, so fdf_error() is a convenient shortcut for fdf_error(fdf_errno()).

See also fdf_errno().

Anterior | Inicio | Siguiente
fdf_errno | Subir | fdf_get_ap


fdf_get_ap

(PHP 4 >= 4.3.0)

fdf_get_ap -- Get the appearance of a field

Description

bool fdf_get_ap ( resource fdf_document, string field, int face, string filename)

The fdf_get_ap() function gets the appearance of a field (i.e. the value of the /AP key) and stores it in a file. The possible values of face are FDFNormalAP, FDFRolloverAP and FDFDownAP. The appearance is stored in filename.

Anterior | Inicio | Siguiente
fdf_error | Subir | fdf_get_attachment


fdf_get_attachment

(PHP 4 >= 4.3.0)

fdf_get_attachment -- Extracts uploaded file embedded in the FDF

Description

array fdf_get_attachment ( resource fdf_document, string fieldname, string savepath)

Extracts a file uploaded by means of the "file selection" field fieldname and stores it under savepath. savepath may be the name of a plain file or an existing directory in which the file is to be created under its original name. Any existing file under the same name will be overwritten.

Nota: There seems to be no other way to find out the original filename but to store the file using a directory as savepath and check for the basename it was stored under.

The returned array contains the following fields:

  • path - path were the file got stored

    size - size of the stored file in bytes

    type - mimetype if given in the FDF

Ejemplo 1. Storing an uploaded file

<?php
  $fdf = fdf_open_string($HTTP_FDF_DATA);
  $data = fdf_get_attachment($fdf, "filename", "/tmpdir");
  echo "The uploaded file is stored in $data[path]";
?>

Anterior | Inicio | Siguiente
fdf_get_ap | Subir | fdf_get_encoding


fdf_get_encoding

(PHP 4 >= 4.3.0)

fdf_get_encoding -- Get the value of the /Encoding key

Description

string fdf_get_encoding ( resource fdf_document)

The fdf_get_encoding() returns the value of the /Encoding key. An empty string is returned if the default PDFDocEncoding/Unicode scheme is used.

See also fdf_set_encoding().

Anterior | Inicio | Siguiente
fdf_get_attachment | Subir | fdf_get_file


fdf_get_file

(PHP 3>= 3.0.6, PHP 4 )

fdf_get_file -- Obtener el valor de la clave /F

Descripción

string fdf_get_file ( int fdf_document)

La función fdf_set_file() devuelve el valor de la clave /F.

Vea también fdf_set_file().

Anterior | Inicio | Siguiente
fdf_get_encoding | Subir | fdf_get_flags


fdf_get_flags

(PHP 4 >= 4.3.0)

fdf_get_flags -- Gets the flags of a field

Description

fdf_get_flags ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
fdf_get_file | Subir | fdf_get_opt


fdf_get_opt

(PHP 4 >= 4.3.0)

fdf_get_opt -- Gets a value from the opt array of a field

Description

mixed fdf_get_opt ( resource fdfdof, string fieldname [, int element])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
fdf_get_flags | Subir | fdf_get_status


fdf_get_status

(PHP 3>= 3.0.6, PHP 4 )

fdf_get_status -- Obtener el valor de la clave /STATUS

Descripción

string fdf_get_status ( int fdf_document)

La función fdf_get_status() devuelve el valor de la clave /STATUS.

Vea también fdf_set_status().

Anterior | Inicio | Siguiente
fdf_get_opt | Subir | fdf_get_value


fdf_get_value

(PHP 3>= 3.0.6, PHP 4 )

fdf_get_value -- Obtener el valor de un campo

Descripción

string fdf_get_value ( int fdf_document, string fieldname)

La función fdf_get_value() devuelve el valor de un campo.

Vea también fdf_set_value().

Anterior | Inicio | Siguiente
fdf_get_status | Subir | fdf_get_version


fdf_get_version

(PHP 4 >= 4.3.0)

fdf_get_version -- Gets version number for FDF api or file

Description

string fdf_get_version ( [resource fdf_document])

This function will return the fdf version for the given fdf_document, or the toolkit api version number if no parameter is given.

For the current FDF toolkit 5.0 the api version number is '5.0' and the document version number is either '1.2', '1.3' or '1.4'.

See also fdf_set_version().

Anterior | Inicio | Siguiente
fdf_get_value | Subir | fdf_header


fdf_header

(PHP 4 >= 4.3.0)

fdf_header -- Sets FDF-specific output headers

Description

bool fdf_header ( void )

This is a convenience function to set appropriate HTTP headers for FDF output. It sets the Content-type: to application/vnd.fdf.

Anterior | Inicio | Siguiente
fdf_get_version | Subir | fdf_next_field_name


fdf_next_field_name

(PHP 3>= 3.0.6, PHP 4 )

fdf_next_field_name -- Obtener el nombre del siguiente campo

Descripción

string fdf_next_field_name ( int fdf_document, string fieldname)

La función fdf_next_field_name() devuelve el nombre del campo tras el campo fieldname o el nombre del primer campo si el segundo parámetro es NULL.

Vea también fdf_set_field(), fdf_get_field().

Anterior | Inicio | Siguiente
fdf_header | Subir | fdf_open_string


fdf_open_string

(PHP 4 >= 4.3.0)

fdf_open_string -- Read a FDF document from a string

Description

resource fdf_open_string ( string fdf_data)

The fdf_open_string() function reads form data from a string. fdf_data must contain the data as returned from a PDF form or created using fdf_create() and fdf_save_string().

You can fdf_open_string() together with $HTTP_FDF_DATA to process fdf form input from a remote client.

Ejemplo 1. Accessing the form data

<?php
$fdf = fdf_open_string($HTTP_FDF_DATA);
/* ... */
fdf_close($fdf);
?>

See also
fdf_open(),
fdf_close(),
fdf_create() and
fdf_save_string().

Anterior | Inicio | Siguiente
fdf_next_field_name | Subir | fdf_open


fdf_open

(PHP 3>= 3.0.6, PHP 4 )

fdf_open -- Abrir un documento FDF

Descripción

int fdf_open ( string filename)

La función fdf_open() abre un archivo con datos de formulario. Este archivo debe contener los datos tal y como se devuelven en un formulario PDF. Actualmente dicho archivo debe crearse "manualmente" usando la función fopen() y escribiendo en éste el contenido de HTTP_FDF_DATA usando fwrite(). No existe un mecanismo similar al de los formularios HTML donde se crea una variable para cada campo de entrada.

Ejemplo 1. Accediendo a los datos del formulario

<?php
// Guarda los datos FDF en un archivo temporal
$fdffp = fopen("test.fdf", "w");
fwrite($fdffp, $HTTP_FDF_DATA, strlen($HTTP_FDF_DATA));
fclose($fdffp);

// Abre archivo temporal y evalúa los datos
$fdf = fdf_open("test.fdf");
...
fdf_close($fdf);
?>

Vea también fdf_close().

Anterior | Inicio | Siguiente
fdf_open_string | Subir | fdf_remove_item


fdf_remove_item

(PHP 4 >= 4.3.0)

fdf_remove_item -- Sets target frame for form

Description

bool fdf_remove_item ( resource fdfdoc, string fieldname, int item)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
fdf_open | Subir | fdf_save_string


fdf_save_string

(PHP 4 >= 4.3.0)

fdf_save_string -- Returns the FDF document as a string

Description

string fdf_save_string ( resource fdf_document)

The fdf_save_string() function returns the FDF document as a string.

Ejemplo 1. Retrieving FDF as a string

<?php
$fdf = fdf_create();
fdf_set_value($fdf, "foo", "bar");
$str = fdf_save_string($fdf);
fdf_close($fdf);
echo $str;
?>

will output something like

%FDF-1.2
%âãÏÓ
1 0 obj
<<
/FDF << /Fields 2 0 R >>
>>
endobj
2 0 obj
[
<< /T (foo)/V (bar)>>
]
endobj
trailer
<<
/Root 1 0 R

>>
%%EOF

See also fdf_save(),
fdf_open_string(),
fdf_create() and
fdf_close().

Anterior | Inicio | Siguiente
fdf_remove_item | Subir | fdf_save


fdf_save

(PHP 3>= 3.0.6, PHP 4 )

fdf_save -- Guardar un documeto FDF

Descripción

int fdf_save ( string filename)

La función fdf_save() guarda un documento FDF. El kit de FDF proporciona una forma de volcar el documento a stdout si el parámetro filename es '.'. Esto no funciona si el PHP se utiliza como un módulo del apache. En tal caso se deberá escribir a un fichero y utilizar p. ej. fpassthru() para visualizarlo.

Vea también fdf_close() y el ejemplo para fdf_create().

Anterior | Inicio | Siguiente
fdf_save_string | Subir | fdf_set_ap


fdf_set_ap

(PHP 3>= 3.0.6, PHP 4 )

fdf_set_ap -- Ajusta la apariencia de un campo

Descripción

void fdf_set_ap ( int fdf_document, string field_name, int face, string filename, int page_number)

La función fdf_set_ap() ajusta la apariencia de un campo (p. ej. el valor de la clave /AP). Los valores posibles de face son 1=FDFNormalAP, 2=FDFRolloverAP, 3=FDFDownAP.

Anterior | Inicio | Siguiente
fdf_save | Subir | fdf_set_encoding


fdf_set_encoding

(PHP 4 >= 4.1.0)

fdf_set_encoding -- Sets FDF character encoding

Description

bool fdf_set_encoding ( resource fdf_document, string encoding)

fdf_set_encoding() sets the character encoding in FDF document fdf_document. encoding should be the valid encoding name. Currently the following values are supported: "Shift-JIS", "UHC", "GBK","BigFive". An empty string resets the encoding to the default PDFDocEncoding/Unicode scheme.

Anterior | Inicio | Siguiente
fdf_set_ap | Subir | fdf_set_file


fdf_set_file

(PHP 3>= 3.0.6, PHP 4 )

fdf_set_file -- Fijar el valor de la clave /F

Descripción

void fdf_set_file ( int fdf_document, string filename)

La función fdf_set_file() fija el valor de la clave /F. La clave /F es simplemente una referencia a un formulario PDF que se va a rellenar con datos. En un entorno web es un URL (p.ej. http:/testfdf/resultlabel.pdf).

Vea también fdf_get_file() y el ejemplo para fdf_create().

Anterior | Inicio | Siguiente
fdf_set_encoding | Subir | fdf_set_flags


fdf_set_flags

(PHP 4 >= 4.0.2)

fdf_set_flags -- Sets a flag of a field

Description

bool fdf_set_flags ( resource fdf_document, string fieldname, int whichFlags, int newFlags)

The fdf_set_flags() sets certain flags of the given field fieldname.

See also fdf_set_opt().

Anterior | Inicio | Siguiente
fdf_set_file | Subir | fdf_set_javascript_action


fdf_set_javascript_action

(PHP 4 >= 4.0.2)

fdf_set_javascript_action -- Sets an javascript action of a field

Description

bool fdf_set_javascript_action ( resource fdf_document, string fieldname, int trigger, string script)

fdf_set_javascript_action() sets a javascript action for the given field fieldname.

See also fdf_set_submit_form_action().

Anterior | Inicio | Siguiente
fdf_set_flags | Subir | fdf_set_opt


fdf_set_opt

(PHP 4 >= 4.0.2)

fdf_set_opt -- Sets an option of a field

Description

bool fdf_set_opt ( resource fdf_document, string fieldname, int element, string str1, string str2)

The fdf_set_opt() sets options of the given field fieldname.

See also fdf_set_flags().

Anterior | Inicio | Siguiente
fdf_set_javascript_action | Subir | fdf_set_status


fdf_set_status

(PHP 3>= 3.0.6, PHP 4 )

fdf_set_status -- Fija el valor de la clave /STATUS

Descripción

void fdf_set_status ( int fdf_document, string status)

La función fdf_set_status() fija el valor de la clave /STATUS.

Vea también fdf_get_status().

Anterior | Inicio | Siguiente
fdf_set_opt | Subir | fdf_set_submit_form_action


fdf_set_submit_form_action

(PHP 4 >= 4.0.2)

fdf_set_submit_form_action -- Sets a submit form action of a field

Description

bool fdf_set_submit_form_action ( resource fdf_document, string fieldname, int trigger, string script, int flags)

The fdf_set_submit_form_action() sets a submit form action for the given field fieldname.

See also fdf_set_javascript_action().

Anterior | Inicio | Siguiente
fdf_set_status | Subir | fdf_set_target_frame


fdf_set_target_frame

(PHP 4 >= 4.3.0)

fdf_set_target_frame -- Set target frame for form display

Description

bool fdf_set_target_frame ( resource fdf_document, string frame_name)

Sets the target frame to display a result PDF defined with fdf_save_file() in.

See also fdf_save_file().

Anterior | Inicio | Siguiente
fdf_set_submit_form_action | Subir | fdf_set_value


fdf_set_value

(PHP 3>= 3.0.6, PHP 4 )

fdf_set_value -- Fijar el valor de un campo

Descripción

void fdf_set_value ( int fdf_document, string fieldname, string value, int isName)

La función fdf_set_value() fija el valor de un campo. El parámetro final determina si el valor del campo se deberá convertir a un Nombre PDF (isName = 1) o convertir en una Cadena PDF (isName = 0).

Vea también fdf_get_value().

Anterior | Inicio | Siguiente
fdf_set_target_frame | Subir | fdf_set_version


fdf_set_version

(PHP 4 >= 4.3.0)

fdf_set_version -- Sets version number for a FDF file

Description

string fdf_set_version ( resource fdf_document, string version)

This function will set the fdf version for the given fdf_document. Some features supported by this extension are only available in newer fdf versions. For the current FDF toolkit 5.0 version may be either '1.2', '1.3' or '1.4'.

See also fdf_get_version().

Anterior | Inicio | Siguiente
fdf_set_value | Subir | FriBiDi functions


FriBiDi functions

Manual de PHP
Anterior Siguiente

XXXII. FriBiDi functions

Introducción

FriBiDi is a free implementation of the Unicode Bidirectional Algorithm.

Requerimientos

You must download and install the FriBiDi package.

Instalación

To enable FriBiDi support in PHP you must compile --with-fribidi[=DIR] where DIR is the FriBiDi install directory.

Configuración en tiempo de ejecución

Tipos de recursos

Constantes predefinidas

Estas constantes están definidas por esta extensión y estarán disponibles solamente cuando la extensión ha sido o bien compilada dentro de PHP o grabada dinámicamente en tiempo de ejecución.

FRIBIDI_CHARSET_UTF8 (integer)

FRIBIDI_CHARSET_8859_6 (integer)

FRIBIDI_CHARSET_8859_8 (integer)

FRIBIDI_CHARSET_CP1255 (integer)

FRIBIDI_CHARSET_CP1256 (integer)

FRIBIDI_CHARSET_ISIRI_3342 (integer)

Tabla de contenidos
fribidi_log2vis -- Convert a logical string to a visual one

Anterior | Inicio | Siguiente
fdf_set_version | Subir | fribidi_log2vis


fribidi_log2vis

(4.0.4 - 4.3.2 only)

fribidi_log2vis -- Convert a logical string to a visual one

Description

string fribidi_log2vis ( string str, string direction, int charset)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
FriBiDi functions | Subir | Funciones FTP


Funciones FTP

Manual de PHP
Anterior Siguiente

XXXIII. Funciones FTP

Introducción

Las funciones en esta extensión implementan acceso de cliente a servidores de archivos que entiendan el Protocolo de Transferencia de Archivos (FTP, por sus siglas en Inglés), tal y como se define en http://www.faqs.org/rfcs/rfc959.html. Esta extensión tiene como propósito el acceso detallado a un servidor FTP, brindando un amplio rango de control al script que se encuentre ejecutando. Si sólo desea leer desde un archivo o escribir sobre un archivo en un servidor FTP, considere el uso de la envoltura ftp:// con las funciones del sistema de archivos, medio que provee una interfaz más simple e intuitiva.

Requerimientos

No se necesitan bibliotecas externas para construir esta extensión

Instalación

Para usar las funciones FTP con su configuración PHP, debe agregar la opción --enable-ftp cuando instale PHP 4, o --with-ftp cuando use PHP 3.

La versión para Windows de PHP tiene soporte nativo para esta extensión. No se necesita cargar ninguna extensión adicional para usar estas funciones.

Configuración en tiempo de ejecución

Esta extensión no tiene directivas de configuración en php.ini.

Tipos de recursos

Esta extensión usa un tipo de recurso, que es el identificador de enlace de la conexión FTP devuelto por ftp_connect().

Constantes predefinidas

Estas constantes están definidas por esta extensión y estarán disponibles solamente cuando la extensión ha sido o bien compilada dentro de PHP o grabada dinámicamente en tiempo de ejecución.

FTP_ASCII (integer)

FTP_TEXT (integer)

FTP_BINARY (integer)

FTP_IMAGE (integer)

FTP_TIMEOUT_SEC (integer)

Vea ftp_set_option() para más información.

Las siguientes constantes fueron introducidas en PHP 4.3.0.

FTP_AUTOSEEK (integer)

Vea ftp_set_option() para más información.

FTP_AUTORESUME (integer)

Determinar automáticamente la posición de continuación y la posición de comienzo para peticiones GET y PUT (funciona únicamente si FTP_AUTOSEEK está habilitado)

FTP_FAILED (integer)

La transferencia asincrónica ha fallado

FTP_FINISHED (integer)

La transferencia asincrónica ha terminado

FTP_MOREDATA (integer)

La transferencia asincrónica está aun activa

Ejemplos

Ejemplo 1. Ejemplo de FTP

<?php
// establecer una conexion basica
$id_con = ftp_connect($servidor_ftp);

// inicio de sesion con nombre de usuario y contrasenya
$resultado_login = ftp_login($id_con, $nombre_usuario_ftp, $contrasenya_ftp);

// chequear la conexion
if ((!$id_con) || (!$resultado_login)) {
        echo "&iexcl;La conexi&oacute;n FTP ha fallado!";
        echo "Se ha intentado la conexion con $servidor_ftp para el " .
             "usuario $nombre_usuario_ftp";
        exit;
    } else {
        echo "Conectado con $servidor_ftp, para el usuario $nombre_usuario_ftp";
    }

// cargar el archivo
$carga = ftp_put($id_con, $archivo_destino, $archivo_fuente, FTP_BINARY);

// chequear el status de la carga
if (!$carga) {
        echo "&iexcl;La carga FTP ha fallado!";
    } else {
        echo "Se ha cargado $archivo_fuente a $servidor_ftp como $archivo_destino";
    }

// cierra la secuencia FTP
ftp_close($id_con);
?>

Tabla de contenidos
ftp_alloc -- Reserva espacio para que un archivo sea cargado.
ftp_cdup -- Cambia al directorio padre
ftp_chdir -- Cambia de directorio en un servidor FTP
ftp_chmod -- Establecer permisos en un archivo via FTP
ftp_close -- Cierra una conexión FTP
ftp_connect -- Establece una conexión FTP
ftp_delete -- Borra un fichero del servidor FTP.
ftp_exec -- Solicita la ejecución de un programa en el servidor FTP
ftp_fget -- Descarga un fichero del servidor FTP y lo guarda en un fichero abierto.
ftp_fput -- Sube un fichero abierto al servidor FTP.
ftp_get_option -- Recupera varios comportamientos de tiempo de ejecución de la secuencia FTP actual
ftp_get -- Descarga un fichero del servidor FTP.
ftp_login -- Comienza la sesion en una conexión FTP
ftp_mdtm -- Devuelve la fecha de última modificación del fichero especificado.
ftp_mkdir -- Crea un directorio
ftp_nb_continue -- Continúa recuperando/enviando un archivo (modo no-bloqueo)
ftp_nb_fget -- Recupera un archivo desde el servidor FTP y lo escribe sobre un archivo abierto (modo no-bloqueo)
ftp_nb_fput -- Almacena un archivo desde un archivo abierto en el servidor FTP (modo no-bloqueo)
ftp_nb_get -- Recupera un archivo desde el servidor FTP y lo escribe sobre un archivo local (modo no-bloqueo)
ftp_nb_put -- Almacena un archivo en el servidor FTP (modo no-bloqueo)
ftp_nlist -- Devuelve una lista de ficheros del directorio dado.
ftp_pasv -- Activa o desactiva el modo pasivo.
ftp_put -- Sube un fichero al servidor FTP.
ftp_pwd -- Devuelve el nombre del directorio actual
ftp_quit -- Cierra una conexión FTP
ftp_raw -- Envía un comando arbitrario a un servidor FTP
ftp_rawlist -- Devuelve una lista detallada de ficheros del directorio dado.
ftp_rename -- Renombra un fichero del servidor FTP.
ftp_rmdir -- Borra un directorio
ftp_set_option -- Establecer varias opciones FTP de tiempo de ejecución
ftp_site -- Envía un comando SITE al servidor
ftp_size -- Devuelve el tamaño del fichero especificado.
ftp_ssl_connect -- Abre una conexión segura SSL-FTP
ftp_systype -- Devuelve el identificador de tipo de sistema del servidor FTP remoto.

Anterior | Inicio | Siguiente
fribidi_log2vis | Subir | ftp_alloc


ftp_alloc

(no version information, might be only in CVS)

ftp_alloc -- Reserva espacio para que un archivo sea cargado.

Descripción

bool ftp_alloc ( resource secuencia_ftp, int tam_archivo [, string &resultado])

Envía un comando ALLO al servidor FTP remoto para ubicar tam_archivo bytes de espacio. Devuelve TRUE en caso de tener éxito, o FALSE en caso de fallo.

Nota: Muchos servidores FTP no ofrecen soporte para este comando. Estos servidores pueden devolver un código de fallo (FALSE) que indica que el comando no es soportado, o un código de éxito (TRUE) para indicar que la pre-ubicación no es necesaria y el cliente debe continuar como si la operación hubiera sido exitosa. Debido a esto, puede ser mejor reservar esta función para servidores que requieren la preubicación explícitamente.

Una representación textual de la respuesta de los servidores será devuelta por referencia en resultado si se entrega la variable.

Ejemplo 1. Ejemplo de ftp_alloc()

<?php

$archivo = "/home/usuario/miarchivo";

/* conexion con el servidor */
$id_con = ftp_connect('ftp.example.com');
$resultado_login = ftp_login($id_con, 'anonymous', 'usuario@example.com');

if (ftp_alloc($id_con, filesize($archivo), $resultado)) {
  echo "El espacio fue reservado satisfactoriamente en el servidor. Enviando $archivo.\n";
  ftp_put($id_con, '/incomming/miarchivo', $archivo, FTP_BINARY);
} else {
  echo "No fue posible reservar espacio en el servidor. El servidor dijo: $resultado\n";
}

ftp_close($id_con);

?>

Vea también: ftp_put(), y ftp_fput().

Anterior | Inicio | Siguiente
Funciones FTP | Subir | ftp_cdup


ftp_cdup

(PHP 3>= 3.0.13, PHP 4 )

ftp_cdup -- Cambia al directorio padre

Descripción

int ftp_cdup ( int ftp_stream)

Si tiene éxito, devuelve TRUE. En caso de error, devuelve FALSE.

Cambia al directorio padre.

Anterior | Inicio | Siguiente
ftp_alloc | Subir | ftp_chdir


ftp_chdir

(PHP 3>= 3.0.13, PHP 4 )

ftp_chdir -- Cambia de directorio en un servidor FTP

Descripción

int ftp_chdir ( int ftp_stream, string directory)

Si tiene éxito, devuelve TRUE. En caso de error, devuelve FALSE.

Cambia al directorio especificado por el parámetro directory.

Anterior | Inicio | Siguiente
ftp_cdup | Subir | ftp_chmod


ftp_chmod

(PHP 5 CVS only)

ftp_chmod -- Establecer permisos en un archivo via FTP

Descripción

string ftp_chmod ( resource secuencia_ftp, int modo, string nombre_archivo)

Establece los permisos sobre el archivo remoto especificado por nombre_archivo a modo, dado como un valor octal.

Devuelve los nuevos permisos del archivo en caso de éxito, o FALSE si ocurre un fallo.

Vea también chmod().

Anterior | Inicio | Siguiente
ftp_chdir | Subir | ftp_close


ftp_close

(PHP 4 >= 4.2.0)

ftp_close -- Cierra una conexión FTP

Descripción

void ftp_close ( resource secuencia_ftp)

ftp_close() cierra secuencia_ftp y libera el resource. Después de llamar esta función, no puede continuar usando la conexión FTP y debe crear una nueva con ftp_connect().

Vea también ftp_connect()

Anterior | Inicio | Siguiente
ftp_chmod | Subir | ftp_connect


ftp_connect

(PHP 3>= 3.0.13, PHP 4 )

ftp_connect -- Establece una conexión FTP

Descripción

int ftp_connect ( string host [, int port])

Si tiene éxito, devuelve un flujo FTP. En caso de error, devuelve FALSE.

ftp_connect() establece una conexión FTP al host especificado. El parámetro port especifica un puerto alternativo al que conectar. Si se omite o es cero, se usa el puerto FTP por defecto, 21.

Anterior | Inicio | Siguiente
ftp_close | Subir | ftp_delete


ftp_delete

(PHP 3>= 3.0.13, PHP 4 )

ftp_delete -- Borra un fichero del servidor FTP.

Descripción

int ftp_delete ( int ftp_stream, string path)

Si tiene éxito, devuelve TRUE. En caso de error, devuelve FALSE.

ftp_delete() borra el fichero especificado por el parámetro path del servidor FTP.

Anterior | Inicio | Siguiente
ftp_connect | Subir | ftp_exec


ftp_exec

(PHP 4 >= 4.0.3)

ftp_exec -- Solicita la ejecución de un programa en el servidor FTP

Descripción

bool ftp_exec ( resource secuencia_ftp, string comando)

Envía una petición SITE EXEC comando al servidor FTP. Devuelve TRUE si el comando tuvo éxito (el servidor envía el código de respuesta: 200); o FALSE de lo contrario.

Ejemplo 1. Ejemplo de ftp_exec()

<?php

$comando = 'ls -al';

$id_con = ftp_connect($servidor_ftp);

$resultado_login = ftp_login($id_con, $nombre_usuario_ftp, $contrasenya_usuario_ftp);

if($res = ftp_exec($id_con, $comando)) {
    echo "$comando fue ejecutado satisfactoriamente<br />\n";
    echo nl2br($res);
} else {
    echo 'no se pudo ejecutar ' . $comando;
}

?>

Vea también ftp_raw().

Anterior | Inicio | Siguiente
ftp_delete | Subir | ftp_fget


ftp_fget

(PHP 3>= 3.0.13, PHP 4 )

ftp_fget -- Descarga un fichero del servidor FTP y lo guarda en un fichero abierto.

Descripción

int ftp_fget ( int ftp_stream, int fp, string remote_file, int mode)

Si tiene éxito, devuelve TRUE. En caso de error, devuelve FALSE.

ftp_fget() baja el fichero remote_file del servidor FTP, y lo escribe en el puntero a fichero fp. El modo de transferencia especificado por el parámetro mode debe ser FTP_ASCII o bien FTP_BINARY.

Anterior | Inicio | Siguiente
ftp_exec | Subir | ftp_fput


ftp_fput

(PHP 3>= 3.0.13, PHP 4 )

ftp_fput -- Sube un fichero abierto al servidor FTP.

Descripción

int ftp_fput ( int ftp_stream, string remote_file, int fp, int mode)

Si tiene éxito, devuelve TRUE. En caso de error, devuelve FALSE

ftp_fput() sube los datos apuntados por el puntero a fichero fp hasta alcanzar el final del fichero. Los resultados se guardan en el fichero remote_file del FTP remoto. El modo de transferencia especificado por el parámetro mode debe ser FTP_ASCII o bien FTP_BINARY.

Anterior | Inicio | Siguiente
ftp_fget | Subir | ftp_get_option


ftp_get_option

(PHP 4 >= 4.2.0)

ftp_get_option -- Recupera varios comportamientos de tiempo de ejecución de la secuencia FTP actual

Descripción

mixed ftp_get_option ( resource secuencia_ftp, int opcion)

Devuelve el valor en caso de éxito o FALSE si la opcion dada no es soportada. En el último caso, un mensaje de advertencia es producido también.

Esta función devuelve el valor para la opcion solicitada, de la secuencia_ftp especificada. Actualmente, las siguientes opciones son soportadas:

Tabla 1. Opciones FTP de tiempo de ejecución soportadas

FTP_TIMEOUT_SEC Devuelve el tiempo máximo de espera actual usado para las operaciones de red.

Ejemplo 1. Ejemplo de ftp_get_option()

<?php
// Obtiene el tiempo de espera de la secuencia FTP dada
$timeout = ftp_get_option($id_con, FTP_TIMEOUT_SEC);
?>

Vea también ftp_set_option().

Anterior | Inicio | Siguiente
ftp_fput | Subir | ftp_get


ftp_get

(PHP 3>= 3.0.13, PHP 4 )

ftp_get -- Descarga un fichero del servidor FTP.

Descripción

int ftp_get ( int ftp_stream, string local_file, string remote_file, int mode)

Si tiene éxito, devuelve TRUE. En caso de error, devuelve FALSE.

ftp_get() baja el fichero remote_file del servidor FTP, y lo guarda localmente como local_file. El modo de transferencia especificado por el parámetro mode debe ser FTP_ASCII o bien FTP_BINARY.

Anterior | Inicio | Siguiente
ftp_get_option | Subir | ftp_login


ftp_login

(PHP 3>= 3.0.13, PHP 4 )

ftp_login -- Comienza la sesion en una conexión FTP

Descripción

int ftp_login ( int ftp_stream, string username, string password)

Si tiene éxito, devuelve TRUE. En caso de error, devuelve FALSE.

Inicia una sesion (envía identificador de usuario y contraseña) en el flujo FTP especificado.

Anterior | Inicio | Siguiente
ftp_get | Subir | ftp_mdtm


ftp_mdtm

(PHP 3>= 3.0.13, PHP 4 )

ftp_mdtm -- Devuelve la fecha de última modificación del fichero especificado.

Descripción

int ftp_mdtm ( int ftp_stream, string remote_file)

Si tiene éxito, devuelve una marca de tiempo UNIX (UNIX timestamp). En caso de error, devuelve -1.

ftp_mdtm() comprueba la fecha de última modificación de un fichero, y la devuelve como una marca de tiempo UNIX. Si se produce algún error, o el fichero no existe, devuelve -1. Tenga en cuenta que no todos los servidores soportan esta característica.

Anterior | Inicio | Siguiente
ftp_login | Subir | ftp_mkdir


ftp_mkdir

(PHP 3>= 3.0.13, PHP 4 )

ftp_mkdir -- Crea un directorio

Descripción

string ftp_mkdir ( int ftp_stream, string directory)

Si tiene éxito, devuelve el nombre del directorio recién creado. En caso de error, devuelve FALSE.

Crea el directorio especificado por el parámetro directory.

Anterior | Inicio | Siguiente
ftp_mdtm | Subir | ftp_nb_continue


ftp_nb_continue

(PHP 4 >= 4.3.0)

ftp_nb_continue -- Continúa recuperando/enviando un archivo (modo no-bloqueo)

Descripción

int ftp_nb_continue ( resource secuencia_ftp)

Continúa la recuperación/envío de un archivo en modo de no-bloqueo.

Devuelve FTP_FAILED o FTP_FINISHED o FTP_MOREDATA.

Anterior | Inicio | Siguiente
ftp_mkdir | Subir | ftp_nb_fget


ftp_nb_fget

(PHP 4 >= 4.3.0)

ftp_nb_fget -- Recupera un archivo desde el servidor FTP y lo escribe sobre un archivo abierto (modo no-bloqueo)

Descripción

int ftp_nb_fget ( resource secuencia_ftp, resource gestor, string archivo_remoto, int modo [, int pos_continuacion])

ftp_nb_fget() recupera archivo_remoto desde el servidor FTP, y lo escribe sobre el apuntador de archivo dado, gestor. El modo de transferencia dado debe ser FTP_ASCII o FTP_BINARY. La diferencia entre ésta función y ftp_fget() es que ésta función recupera el archivo asincrónicamente, de modo que su programa puede realizar otras operaciones mientras el archivo está siendo descargado.

Devuelve FTP_FAILED, FTP_FINISHED, o FTP_MOREDATA.

Vea también
ftp_nb_get(),
ftp_nb_continue(), ftp_fget(), y
ftp_get().

Anterior | Inicio | Siguiente
ftp_nb_continue | Subir | ftp_nb_fput


ftp_nb_fput

(PHP 4 >= 4.3.0)

ftp_nb_fput -- Almacena un archivo desde un archivo abierto en el servidor FTP (modo no-bloqueo)

Descripción

int ftp_nb_fput ( resource secuencia_ftp, string archivo_remoto, resource gestor, int modo [, int pos_comienzo])

ftp_nb_fput() carga los datos desde el apuntador de archivo gestor hasta que alcanza el fin de archivo. Los resultados son almacenados en archivo_remoto en el servidor FTP. El modo de transferencia especificado debe ser FTP_ASCII o FTP_BINARY. La diferencia entre ésta función y ftp_fput() es que ésta función carga el archivo asincrónicamente, de modo que su programa puede realizar otras operaciones mientras que el archivo está siendo cargado.

Devuelve FTP_FAILED, FTP_FINISHED, o FTP_MOREDATA.

Vea también
ftp_nb_put(),
ftp_nb_continue(), ftp_put()
y ftp_fput().

Anterior | Inicio | Siguiente
ftp_nb_fget | Subir | ftp_nb_get


ftp_nb_get

(PHP 4 >= 4.3.0)

ftp_nb_get -- Recupera un archivo desde el servidor FTP y lo escribe sobre un archivo local (modo no-bloqueo)

Descripción

int ftp_nb_get ( resource secuencia_ftp, string archivo_local, string archivo_remoto, int modo [, int pos_continuacion])

ftp_nb_get() recupera el archivo_remoto desde el servidor FTP, y lo guarda localmente en archivo_local. El modo de transferencia especificado debe ser FTP_ASCII o FTP_BINARY.La diferencia entre ésta función y ftp_get() es que ésta función recupera el archivo asincrónicamente, de modo que su programa puede realizar otras operaciones mientras el archivo está siendo descargado.

Devuelve FTP_FAILED, FTP_FINISHED, o FTP_MOREDATA.

Ejemplo 1. Ejemplo de ftp_nb_get()

<?php

// Iniciar la descarga
$ret = ftp_nb_get($mi_conexion, "test", "README", FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // Haga lo que quiera
   echo ".";

   // Continuar la descarga...
   $ret = ftp_nb_continue ($mi_conexion);
}
if ($ret != FTP_FINISHED) {
   echo "Hubo un error descargando el archivo...";
   exit(1);
}
?>

Ejemplo 2. Reanudando una descarga con ftp_nb_get()

<?php

// Iniciar
$ret = ftp_nb_get ($mi_conexion, "test", "README", FTP_BINARY,
                   filesize("test"));

// O: $ret = ftp_nb_get ($mi_conexion, "test", "README",
//                       FTP_BINARY, FTP_AUTORESUME);
while ($ret == FTP_MOREDATA) {

   // Haga lo que quiera
   echo ".";

   // Continuar descargando...
   $ret = ftp_nb_continue ($mi_conexion);
}
if ($ret != FTP_FINISHED) {
   echo "Hubo un error descargando el archivo...";
   exit(1);
}
?>

Ejemplo 3. Reanudar una descarga en la posición 100 sobre un archivo nuevo con ftp_nb_get()

<?php

// Deshabilitar Autoseek
ftp_set_option ($mi_conexion, FTP_AUTOSEEK, FALSE);

// Iniciar
$ret = ftp_nb_get ($mi_conexion, "archivo_nuevo", "README", FTP_BINARY, 100);
while ($ret == FTP_MOREDATA) {

   /* ... */

   // Continuar descarga...
   $ret = ftp_nb_continue ($mi_conexion);
}
?>

En el ejemplo anterior, "archivo_nuevo" es 100 bytes más pequeña que "README" en el servidor FTP, ya que comenzamos la lectura en la posición 100. Si no hemos deshabilitado FTP_AUTOSEEK, los primeros 100 bytes de "archivo_nuevo" serán '\0'.

Vea también
ftp_nb_fget(),
ftp_nb_continue(),
ftp_get(), y ftp_fget().

Anterior | Inicio | Siguiente
ftp_nb_fput | Subir | ftp_nb_put


ftp_nb_put

(PHP 4 >= 4.3.0)

ftp_nb_put -- Almacena un archivo en el servidor FTP (modo no-bloqueo)

Descripción

int ftp_nb_put ( resource secuencia_ftp, string archivo_remoto, string archivo_local, int modo [, int pos_comienzo])

ftp_nb_put() almacena archivo_local en el servidor FTP, como archivo_remoto. El modo de transferencia especificado debe ser FTP_ASCII o FTP_BINARY. La diferencia entre ésta función y ftp_put() es que ésta carga el archivo asincrónicamente, de modo que su programa puede realizar otras operaciones mientras el archivo está siendo cargado.

Devuelve FTP_FAILED, FTP_FINISHED, o FTP_MOREDATA.

Ejemplo 1. Ejemplo de ftp_nb_put()

<?php

// Iniciar la carga
$ret = ftp_nb_put($mi_conexion, "test.remoto", "test.local", FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // Haga lo que quiera
   echo ".";

   // Continuar la carga...
   $ret = ftp_nb_continue ($mi_conexion);
}
if ($ret != FTP_FINISHED) {
   echo "Hubo un error cargando el archivo...";
   exit(1);
}
?>

Ejemplo 2. Reanudando una carga con ftp_nb_put()

<?php

// Iniciar
$ret = ftp_nb_put ($mi_conexion, "test.remoto", "test.local",
                   FTP_BINARY, ftp_size("test.remoto"));

// O: $ret = ftp_nb_put ($mi_conexion, "test.remoto", "test.local",
//                       FTP_BINARY, FTP_AUTORESUME);

while ($ret == FTP_MOREDATA) {

   // Haga lo que quiera
   echo ".";

   // Continuar la carga...
   $ret = ftp_nb_continue ($mi_conexion);
}
if ($ret != FTP_FINISHED) {
   echo "Hubo un error cargando el archivo...";
   exit(1);
}
?>

Vea también
ftp_nb_fput(),
ftp_nb_continue(), ftp_put(),
y ftp_fput().

Anterior | Inicio | Siguiente
ftp_nb_get | Subir | ftp_nlist


ftp_nlist

(PHP 3>= 3.0.13, PHP 4 )

ftp_nlist -- Devuelve una lista de ficheros del directorio dado.

Descripción

int ftp_nlist ( int ftp_stream, string directory)

Si tiene éxito, devuelve un array de nombres de fichero. En caso de error, devuelve FALSE.

Anterior | Inicio | Siguiente
ftp_nb_put | Subir | ftp_pasv


ftp_pasv

(PHP 3>= 3.0.13, PHP 4 )

ftp_pasv -- Activa o desactiva el modo pasivo.

Descripción

int ftp_pasv ( int ftp_stream, int pasv)

Si tiene éxito, devuelve TRUE. En caso de error, devuelve FALSE.

ftp_pasv() activa el modo pasivo si el parámetro pasv es TRUE (desactiva el modo pasivo si pasv es FALSE.) En modo pasivo, las conexiones de datos son iniciadas por el cliente, en lugar de ser iniciadas por el servidor.

Anterior | Inicio | Siguiente
ftp_nlist | Subir | ftp_put


ftp_put

(PHP 3>= 3.0.13, PHP 4 )

ftp_put -- Sube un fichero al servidor FTP.

Descripción

int ftp_put ( int ftp_stream, string remote_file, string local_file, int mode)

Si tiene éxito, devuelve TRUE. En caso de error, devuelve FALSE.

ftp_put() sube el fichero local local_file al servidor FTP y lo guarda como remote_file. El modo de transferencia especificado por el parámetro mode debe ser FTP_ASCII o bien FTP_BINARY.

Anterior | Inicio | Siguiente
ftp_pasv | Subir | ftp_pwd


ftp_pwd

(PHP 3>= 3.0.13, PHP 4 )

ftp_pwd -- Devuelve el nombre del directorio actual

Descripción

int ftp_pwd ( int ftp_stream)

Devuelve el directorio actual, o FALSE en caso de error.

Anterior | Inicio | Siguiente
ftp_put | Subir | ftp_quit


ftp_quit

(PHP 3>= 3.0.13, PHP 4 )

ftp_quit -- Cierra una conexión FTP

Descripción

int ftp_quit ( int ftp_stream)

ftp_connect() cierra el flujo FTP ftp_stream.

Anterior | Inicio | Siguiente
ftp_pwd | Subir | ftp_raw


ftp_raw

(PHP 5 CVS only)

ftp_raw -- Envía un comando arbitrario a un servidor FTP

Descripción

array ftp_raw ( resource secuencia_ftp, string comando)

Envía un comando arbitrario al servidor FTP. Devuelve la respuesta del servidor como una matriz de cadenas. No se realiza procesamiento alguno con la cadena de respuesta, ni determina ftp_raw() si el comando tuvo éxito.

Ejemplo 1. Uso de ftp_raw() para iniciar una sesión con un servidor FTP manualmente.

<?php
$desc = ftp_connect("ftp.example.com");

/* Esto es igual a:
   ftp_login($desc, "joeblow", "secret"); */
ftp_raw($desc, "USER joeblow");
ftp_raw($desc, "PASS secret");
?>

Vea también: ftp_exec()

Anterior | Inicio | Siguiente
ftp_quit | Subir | ftp_rawlist


ftp_rawlist

(PHP 3>= 3.0.13, PHP 4 )

ftp_rawlist -- Devuelve una lista detallada de ficheros del directorio dado.

Descripción

int ftp_rawlist ( int ftp_stream, string directory)

ftp_rawlist() ejecuta el comando FTP LIST, y devuelve el resultado como un array. Cada elemento del array corresponde a una línea de texto. La salida no se procesa de ninguna forma. Se puede utilizar el identificador de tipo de sistema devuelto por ftp_systype() para determinar cómo se deben interpretar los resultados.

Anterior | Inicio | Siguiente
ftp_raw | Subir | ftp_rename


ftp_rename

(PHP 3>= 3.0.13, PHP 4 )

ftp_rename -- Renombra un fichero del servidor FTP.

Descripción

int ftp_rename ( int ftp_stream, string from, string to)

Si tiene éxito, devuelve TRUE. En caso de error, devuelve FALSE.

ftp_rename() renombra el fichero especificado por el parámetro from con el nuevo nombre to

Anterior | Inicio | Siguiente
ftp_rawlist | Subir | ftp_rmdir


ftp_rmdir

(PHP 3>= 3.0.13, PHP 4 )

ftp_rmdir -- Borra un directorio

Descripción

int ftp_rmdir ( int ftp_stream, string directory)

Si tiene éxito, devuelve TRUE. En caso de error, devuelve FALSE.

Borra el directorio especificado por el parámetro directory.

Anterior | Inicio | Siguiente
ftp_rename | Subir | ftp_set_option


ftp_set_option

(PHP 4 >= 4.2.0)

ftp_set_option -- Establecer varias opciones FTP de tiempo de ejecución

Descripción

bool ftp_set_option ( resource secuencia_ftp, int opcion, mixed valor)

Devuelve TRUE si la opción pudo definirse; FALSE de lo contrario. Un mensaje de advertencia será producido si la opcion no es soportada, o el valor pasado no coincide con el valor esperado para la opcion dada.

Esta función controla varias opciones de tiempo de ejecución para la secuencia FTP especificada. El parámetro valor depende de cuál parámetro opcion es seleccionado para ser alterado. En la actualidad, las siguientes opciones son soportadas:

Tabla 1. Opciones FTP de tiempo de ejecución soportadas

FTP_TIMEOUT_SEC | Modifica el tiempo máximo de espera en segundos usado para todas las funciones de red. valor debe ser un entero mayor a 0. El tiempo de espera predeterminado es 90 segundos.
FTP_AUTOSEEK | Cuando se encuentra habilitado, las peticiones GET o PUT con un parámetro pos_continuacion o pos_comienzo buscarán primero la posición solicitada dentro del archivo. Este parámetro está habilitado por defecto.

Ejemplo 1. Ejemplo de ftp_set_option()

<?php
// Establecer el tiempo de espera de red a 10 segundos
ftp_set_option($id_con, FTP_TIMEOUT_SEC, 10);
?>

Vea también ftp_get_option().

Anterior | Inicio | Siguiente
ftp_rmdir | Subir | ftp_site


ftp_site

(PHP 3>= 3.0.15, PHP 4 )

ftp_site -- Envía un comando SITE al servidor

Descripción

bool ftp_site ( resource secuencia_ftp, string cmd)

ftp_site() envía el comando especificado por cmd al servidor FTP. Los comandos SITE no se encuentran estandarizados, y varían de un servidor a otro. Son útiles para la gestión de cosas como permisos de archivos y membresías de grupos.

Ejemplo 1. Envío de un comando SITE a un servidor ftp

<?php
/* Conectarse con el servidor FTP */
$con = ftp_connect('ftp.example.com');
if (!$con) die('No fue posible conectarse con ftp.example.com');

/* Iniciar sesion como "usuario" con la contrasenya "pass" */
if (!ftp_login($con, 'usuario', 'pass')) die('Error iniciando sesion en ftp.example.com');

/* Aplicar el comando "SITE CHMOD 0600 /home/usuario/archivoprivado"
 * al servidor ftp */
if (ftp_site($con, 'CHMOD 0600 /home/usuario/archivoprivado')) {
   echo "Comando ejecutado satisfactoriamente.\n";
} else {
   die('El comando ha fallado.');
}
?>

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Vea también: ftp_raw()

Anterior | Inicio | Siguiente
ftp_set_option | Subir | ftp_size


ftp_size

(PHP 3>= 3.0.13, PHP 4 )

ftp_size -- Devuelve el tamaño del fichero especificado.

Descripción

int ftp_size ( int ftp_stream, string remote_file)

Si tiene éxito devuelve el tamaño del fichero, o -1 en caso de error.

ftp_size() devuelve el tamaño de un fichero. Si ocurre algún error, o si el fichero no existe, devuelve -1. No todos los servidores soportan esta característica.

Anterior | Inicio | Siguiente
ftp_site | Subir | ftp_ssl_connect


ftp_ssl_connect

(PHP 4 >= 4.3.0)

ftp_ssl_connect -- Abre una conexión segura SSL-FTP

Descripción

resource ftp_ssl_connect ( string host [, int puerto [, int tiempo_espera]])

Devuelve una secuencia SSL-FTP en caso de éxito, o FALSE si ocurre un fallo.

ftp_ssl_connect() abre una conexión SSL-FTP con el host especificado. El parámetro puerto especifica un puerto alternativo para realizar la conexión. Si es omitido o definido como cero, entonces será usado el puerto FTP predeterminado, 21.

El parámetro tiempo_espera especifica el tiempo máximo de espera para todas las operaciones de red subsecuentes. Si se omite, el valor predeterminado es 90 segundos. El tiempo de espera puede ser modificado y consultado en cualquier momento con ftp_set_option() y ftp_get_option().

Porqué esta función puede no existir: ftp_ssl_connect() se encuentra disponible únicamente si el soporte para OpenSSL está habilitado en su versión de PHP. Si no está definida y ha compilado el soporte para FTP, entonces ésta es la causa.

Vea también ftp_connect().

Anterior | Inicio | Siguiente
ftp_size | Subir | ftp_systype


ftp_systype

(PHP 3>= 3.0.13, PHP 4 )

ftp_systype -- Devuelve el identificador de tipo de sistema del servidor FTP remoto.

Descripción

int ftp_systype ( int ftp_stream)

Devuelve el tipo de sistema remoto, o FALSE en caso de error.

Anterior | Inicio | Siguiente
ftp_ssl_connect | Subir | Function Handling functions


Function Handling functions

Manual de PHP
Anterior Siguiente

XXXIV. Function Handling functions

These functions all handle various operations involved in working with functions.

Tabla de contenidos
call_user_func_array -- Call a user function given with an array of parameters
call_user_func -- Call a user function given by the first parameter
create_function -- Create an anonymous (lambda-style) function
func_get_arg -- Devuelve un elemento de la lista de argumentos.
func_get_args -- Devuelve un array que contiene la lista de argumentos de una función.
func_num_args -- Devuelve el número de argumentos pasados a la función.
function_exists -- Devuelve TRUE si la función dada ha sido definida
get_defined_functions -- Returns an array of all defined functions
register_shutdown_function -- Registra una función para su ejecución en el cierre.
register_tick_function -- Register a function for execution on each tick
unregister_tick_function -- De-register a function for execution on each tick

Anterior | Inicio | Siguiente
ftp_systype | Subir | call_user_func_array


call_user_func_array

(PHP 4 >= 4.0.4)

call_user_func_array -- Call a user function given with an array of parameters

Description

mixed call_user_func_array ( callback function [, array param_arr])

Call a user defined function given by function, with the parameters in param_arr. For example:

<?php
function debug($var, $val) {
    echo "***DEBUGGING\nVARIABLE: $var\nVALUE:";
    if (is_array($val) || is_object($val) || is_resource($val))
        print_r($val);
    else
        echo "\n$val\n";
    echo "***\n";
}

$c = mysql_connect();
$host = $_SERVER["SERVER_NAME"];

call_user_func_array ('debug', array("host", $host));
call_user_func_array ('debug', array("c", $c));
call_user_func_array ('debug', array("_POST", $_POST));
?>

See also:
call_user_func(),
call_user_method(),
call_user_method_array().

Anterior | Inicio | Siguiente
Function Handling functions | Subir | call_user_func


call_user_func

(PHP 3>= 3.0.3, PHP 4 )

call_user_func -- Call a user function given by the first parameter

Description

mixed call_user_func ( string function_name [, mixed parameter [, mixed ...]])

Call a user defined function given by the function_name parameter. Take the following:

function barber ($type) {
    print "You wanted a $type haircut, no problem";
}
call_user_func ('barber', "mushroom");
call_user_func ('barber', "shave");

Anterior | Inicio | Siguiente
call_user_func_array | Subir | create_function


create_function

(PHP 4 >= 4.0.1)

create_function -- Create an anonymous (lambda-style) function

Description

string create_function ( string args, string code)

Creates an anonymous function from the parameters passed, and returns a unique name for it. Usually the args will be passed as a single quote delimited string, and this is also recommended for the code. The reason for using single quoted strings, is to protect the variable names from parsing, otherwise, if you use double quotes there will be a need to escape the variable names, e.g. \$avar.

You can use this function, to (for example) create a function from information gathered at run time:

Ejemplo 1. Creating an anonymous function with create_function()

<?php
$newfunc = create_function('$a,$b','return "ln($a) + ln($b) = ".log($a * $b);');
echo "New anonymous function: $newfunc\n";
echo $newfunc(2,M_E)."\n";
// outputs
// New anonymous function: lambda_1
// ln(2) + ln(2.718281828459) = 1.6931471805599
?>

Or, perhaps to have general handler function that can apply a set of operations to a list of parameters:

Ejemplo 2. Making a general processing function with create_function()

<?php
function process($var1, $var2, $farr) {
    for ($f=0; $f < count($farr); $f++)
    echo $farr[$f]($var1,$var2)."\n";
}

// create a bunch of math functions
$f1 = 'if ($a >=0) {return "b*a^2 = ".$b*sqrt($a);} else {return false;}';
$f2 = "return \"min(b^2+a, a^2,b) = \".min(\$a*\$a+\$b,\$b*\$b+\$a);";
$f3 = 'if ($a > 0 && $b != 0) {return "ln(a)/b = ".log($a)/$b; } else { return false; }';
$farr = array(
    create_function('$x,$y', 'return "some trig: ".(sin($x) + $x*cos($y));'),
    create_function('$x,$y', 'return "a hypotenuse: ".sqrt($x*$x + $y*$y);'),
    create_function('$a,$b', $f1),
    create_function('$a,$b', $f2),
    create_function('$a,$b', $f3)
    );

echo "\nUsing the first array of anonymous functions\n";
echo "parameters: 2.3445, M_PI\n";
process(2.3445, M_PI, $farr);

// now make a bunch of string processing functions
$garr = array(
    create_function('$b,$a','if (strncmp($a,$b,3) == 0) return "** \"$a\" '.
    'and \"$b\"\n** Look the same to me! (looking at the first 3 chars)";'),
    create_function('$a,$b','; return "CRCs: ".crc32($a)." , ".crc32(b);'),
    create_function('$a,$b','; return "similar(a,b) = ".similar_text($a,$b,&$p)."($p%)";')
    );
echo "\nUsing the second array of anonymous functions\n";
process("Twas brilling and the slithy toves", "Twas the night", $garr);
?>

and when you run the code above, the output will be:

Using the first array of anonymous functions
parameters: 2.3445, M_PI
some trig: -1.6291725057799
a hypotenuse: 3.9199852871011
b*a^2 = 4.8103313314525
min(b^2+a, a^2,b) = 8.6382729035898
ln(a/b) = 0.27122299212594

Using the second array of anonymous functions
** "Twas the night" and "Twas brilling and the slithy toves"
** Look the same to me! (looking at the first 3 chars)
CRCs: -725381282 , 1908338681
similar(a,b) = 11(45.833333333333%)

But perhaps the most common use for of lambda-style (anonymous) functions is to create callback functions, for example when using array_walk() or usort()

Ejemplo 3. Using anonymous functions as callback functions

<?php
$av = array("the ","a ","that ","this ");
array_walk($av, create_function('&$v,$k','$v = $v."mango";'));
print_r($av);  // for PHP 3 use var_dump()
/*
outputs:
Array
(
  [0] => the mango
  [1] => a mango
  [2] => that mango
  [3] => this mango
)
*/

// an array of strings ordered from shorter to longer
$sv = array("small","larger","a big string","it is a string thing");
print_r($sv);
/*
outputs:
Array
(
  [0] => small
  [1] => larger
  [2] => a big string
  [3] => it is a string thing
)
*/

// sort it from longer to shorter
usort($sv, create_function('$a,$b','return strlen($b) - strlen($a);'));
print_r($sv);
/*
outputs:
Array
(
  [0] => it is a string thing
  [1] => a big string
  [2] => larger
  [3] => small
)
*/
?>

Anterior | Inicio | Siguiente
call_user_func | Subir | func_get_arg


func_get_arg

(PHP 4 )

func_get_arg -- Devuelve un elemento de la lista de argumentos.

Descripción

int func_get_arg ( int arg_num)

Devuelve el argumento que está en la posición arg_num en la lista de argumentos de una función definida por el usuario. Los argumentos de la función se cuentan comenzando por la posición cero. func_get_arg() generará un aviso si se llama desde fuera de la definición de la función.

Si arg_num es mayor que el número de argumentos pasados realmente, se generará un aviso y func_get_arg() devolverá FALSE.

<?php
function foo() {
   $numargs = func_num_args();
   echo "Number of arguments: $numargs<br>\n";
   if ( $numargs >= 2 ) {
      echo "Second argument is: " . func_get_arg( 1 ) . "<br>\n";
   }
}

foo( 1, 2, 3 );
?>

func_get_arg() puede utilizarse conjuntamente
       con func_num_args() y
func_get_args() para permitir a las funciones
       definidas por el usuario que acepten listas de argumentos de
       longitud variable.

Nota: Esta función fue añadida en PHP 4.

Anterior | Inicio | Siguiente
create_function | Subir | func_get_args


func_get_args

(PHP 4 )

func_get_args -- Devuelve un array que contiene la lista de argumentos de una función.

Descripción

int func_get_args ( void )

Devuelve un array en el que cada elemento es el miembro correspondiente de la lista de argumentos de la función definida por el usuario actual. func_get_args() generará un aviso si es llamada desde fuera de la definición de la función.

<?php
function foo() {
   $numargs = func_num_args();
   echo "Number of arguments: $numargs<br>\n";
   if ( $numargs >= 2 ) {
      echo "Second argument is: " . func_get_arg( 1 ) . "<br>\n";
   }
   $arg_list = func_get_args();
   for ( $i = 0; $i < $numargs; $i++ ) {
      echo "Argument $i is: " . $arg_list[$i] . "<br>\n";
   }
}

foo( 1, 2, 3 );
?>

func_get_args() puede utilizarse conjuntamente con func_num_args() y func_get_arg() para permitir a las funciones definidas por el usuario que acepten listas de argumentos de longitud variable.

Nota: Esta función fue añadida en PHP 4.

Anterior | Inicio | Siguiente
func_get_arg | Subir | func_num_args


func_num_args

(PHP 4 )

func_num_args -- Devuelve el número de argumentos pasados a la función.

Descripción

int func_num_args ( void )

Devuelve el número de argumentos pasados a la función actual definida por el usuario. func_num_args() generará un aviso si es llamada desde fuera de la definición de la función.

<?php
function foo() {
   $numargs = func_num_args();
   echo "Number of arguments: $numargs\n";
}

foo( 1, 2, 3 );  // Prints 'Number of arguments: 3'
?>

func_num_args() puede utilizarse conjuntamente con func_get_arg() y func_get_args() para permitir a las funciones definidas por el usuario que acepten listas de argumentos de longitud variable.

Nota: Esta función fue añadida en PHP 4.

Anterior | Inicio | Siguiente
func_get_args | Subir | function_exists


function_exists

(PHP 3>= 3.0.7, PHP 4 )

function_exists -- Devuelve TRUE si la función dada ha sido definida

Descripción

int function_exists ( string function_name)

Consulta la lista de funciones definidas buscando function_name (nombre de función). Devuelve TRUE si encuentra el nombre de función dado, FALSE en otro caso.

Anterior | Inicio | Siguiente
func_num_args | Subir | get_defined_functions


get_defined_functions

(PHP 4 >= 4.0.4)

get_defined_functions -- Returns an array of all defined functions

Description

array get_defined_functions ( void )

This function returns an multidimensional array containing a list of all defined functions, both built-in (internal) and user-defined. The internal functions will be accessible via $arr["internal"], and the user defined ones using $arr["user"] (see example below).

<?php
function myrow($id, $data) {
    return "<tr><th>$id</th><td>$data</td></tr>\n";
}

$arr = get_defined_functions();

print_r($arr);
?>

Will output something along the lines of:

Array
(
    [internal] => Array
        (
            [0] => zend_version
            [1] => func_num_args
            [2] => func_get_arg
            [3] => func_get_args
            [4] => strlen
            [5] => strcmp
            [6] => strncmp
            ...
            [750] => bcscale
            [751] => bccomp
        )

    [user] => Array
        (
            [0] => myrow
        )

)

See also get_defined_vars() and get_defined_constants().

Anterior | Inicio | Siguiente
function_exists | Subir | register_shutdown_function


register_shutdown_function

(PHP 3>= 3.0.4, PHP 4 )

register_shutdown_function -- Registra una función para su ejecución en el cierre.

Descripción

int register_shutdown_function ( string func)

Registra la función nombrada en func para que se ejecute cuando el script procese su finalización.

Aviso:

Debido a que no se permite ningún tipo de salida en el navegador en esta función, no será capaz de depurarla utilizando sentencias como print o echo.

Anterior | Inicio | Siguiente
get_defined_functions | Subir | register_tick_function


register_tick_function

(PHP 4 >= 4.0.3)

register_tick_function -- Register a function for execution on each tick

Description

void register_tick_function ( callback function [, mixed arg])

Registers the function named by func to be executed when a tick is called. Also, you may pass an array consisting of an object and a method as the func.

Ejemplo 1. register_tick_function() example

<?php
// using a function as the callback
register_tick_function('my_function', TRUE);

// using an object->method
$object = new my_class();
register_tick_function(array(&$object, 'my_method'), TRUE);
?>

See also declare() and unregister_tick_function().

Anterior | Inicio | Siguiente
register_shutdown_function | Subir | unregister_tick_function


unregister_tick_function

(PHP 4 >= 4.0.3)

unregister_tick_function -- De-register a function for execution on each tick

Description

void unregister_tick_function ( string function_name)

De-registers the function named by function_name so it is no longer executed when a tick is called.

Anterior | Inicio | Siguiente
register_tick_function | Subir | Gettext


Gettext

Manual de PHP
Anterior Siguiente

XXXV. Gettext

Introducción

Las funciones gettext implementan una interfaz de programación de NLS (Soporte de Lenguaje Nativo) que puede ser usada para internacionalizar sus aplicaciones PHP. Por favor refiérase a la documentación de gettext en su sistema para una explicación detallada de éstas funciones, o consulte los documentos en http://www.gnu.org/software/gettext/manual/index.html.

Requerimientos

Para usar éstas funciones, debe descargar e instalar el paquete GNU gettext desde http://www.gnu.org/software/gettext/gettext.html.

Instalación

Para incluir soporte para GNU gettext en su instalación de PHP, debe agregar la opción --with-gettext[=DIR] donde DIR es el directorio de instalación de gettext, por defecto /usr/local.

Nota para Usuarios de Win32: Para habilitar este módulo en un entorno Windows, debe copiar gnu_gettext.dll desde el directorio DLL del paquete binario de PHP/Win32 a la carpeta SYSTEM32 de su máquina windows. (Ej: C:\WINNT\SYSTEM32 o C:\WINDOWS\SYSTEM32). A partir de PHP 4.2.3 el nombre cambió a libintl-1.dll, esto requiere que iconv.dll también sea copiado.

Configuración en tiempo de ejecución

Esta extensión no tiene directivas de configuración en php.ini.

Tipos de recursos

Esta extensión no tiene ningún tipo de recurso definido.

Constantes predefinidas

Esta extensión no tiene ninguna constante definida.

Tabla de contenidos
bind_textdomain_codeset -- Especificar la codificación de caracteres con la que serán devueltos los mensajes del catálogo DOMINIO
bindtextdomain -- Establece la ruta para un dominio
dcgettext -- Omite el dominio para una única busqueda
dcngettext -- Versión plural de dcgettext
dgettext -- Omite el dominio actual
dngettext -- Versión plural de dgettext
gettext -- Realiza una busqueda del mensaje en el dominio actual
ngettext -- Versión plural de gettext
textdomain -- Establece el dominio actual

Anterior | Inicio | Siguiente
unregister_tick_function | Subir | bind_textdomain_codeset


bind_textdomain_codeset

(PHP 4 >= 4.2.0)

bind_textdomain_codeset -- Especificar la codificación de caracteres con la que serán devueltos los mensajes del catálogo DOMINIO

Descripción

string bind_textdomain_codeset ( string dominio, string juedo_caracteres)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
Gettext | Subir | bindtextdomain


bindtextdomain

(PHP 3>= 3.0.7, PHP 4 )

bindtextdomain -- Establece la ruta para un dominio

Descripción

string bindtextdomain ( string domain, string directory)

La función bindtextdomain() establece la ruta para el dominio.

Anterior | Inicio | Siguiente
bind_textdomain_codeset | Subir | dcgettext


dcgettext

(PHP 3>= 3.0.7, PHP 4 )

dcgettext -- Omite el dominio para una única busqueda

Description

string dcgettext ( string domain, string message, int category)

Esta función permite omitir el dominio actual para una busqueda de un mensaje. Además permite especificar una categoría.

Anterior | Inicio | Siguiente
bindtextdomain | Subir | dcngettext


dcngettext

(PHP 4 >= 4.2.0)

dcngettext -- Versión plural de dcgettext

Descripción

string dcngettext ( string dominio, string id_mensaje1, string id_mensaje2, int n, int categoria)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
dcgettext | Subir | dgettext


dgettext

(PHP 3>= 3.0.7, PHP 4 )

dgettext -- Omite el dominio actual

Descripción

string dgettext ( string domain, string message)

La función dgettext() permite omitir el dominio actual para una única busqueda.

Anterior | Inicio | Siguiente
dcngettext | Subir | dngettext


dngettext

(PHP 4 >= 4.2.0)

dngettext -- Versión plural de dgettext

Descripción

string dngettext ( string dominio, string id_mensaje1, string id_mensaje2, int n)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
dgettext | Subir | gettext


gettext

(PHP 3>= 3.0.7, PHP 4 )

gettext -- Realiza una busqueda del mensaje en el dominio actual

Descripción

string gettext ( string message)

Esta función devuelve la traducción de la cadena si encuentra una en la tabla de traducciones, o el mensaje enviado si no se encuentra ninguna. Puede usar un carácter de subrayado como un alias para esta función.

Ejemplo 1. gettext()-check

<?php
// Establece el idioma en alemán
putenv ("LANG=de");

// Especifica la localización de las tablas de traducción
bindtextdomain ("myPHPApp", "./locale");

// Elige un dominio
textdomain ("myPHPApp");

// Imprime un mensaje de prueba
print (gettext ("Welcome to My PHP Application"));
?>

Anterior | Inicio | Siguiente
dngettext | Subir | ngettext


ngettext

(PHP 4 >= 4.2.0)

ngettext -- Versión plural de gettext

Descripción

string ngettext ( string id_mensaje1, string id_mensaje2, int n)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
gettext | Subir | textdomain


textdomain

(PHP 3>= 3.0.7, PHP 4 )

textdomain -- Establece el dominio actual

Descripción

int textdomain ( [string library])

Esta función establece el dominio en el que se realizarán las busquedas provocadas por las llamadas a gettext(), normalmente el nombre dado a la aplicación. Se devuelve el dominio anterior. Puede llamar a la función sin parámetros para obtener el dominio actual sin necesidad de cambiarlo.

Anterior | Inicio | Siguiente
ngettext | Subir | GMP functions


GMP functions

Manual de PHP
Anterior Siguiente

XXXVI. GMP functions

Introducción

These functions allow you to work with arbitrary-length integers using the GNU MP library.

These functions have been added in PHP 4.0.4.

Nota: Most GMP functions accept GMP number arguments, defined as resource below. However, most of these functions will also accept numeric and string arguments, given that it is possible to convert the latter to a number. Also, if there is a faster function that can operate on integer arguments, it would be used instead of the slower function when the supplied arguments are integers. This is done transparently, so the bottom line is that you can use integers in every function that expects GMP number. See also the gmp_init() function.

Aviso

If you want to explicitly specify a large integer, specify it as a string. If you don't do that, PHP will interpret the integer-literal first, possibly resulting in loss of precision, even before GMP comes into play.

Nota: Esta extensión no está disponible en plataformas Windows

Requerimientos

You can download the GMP library from http://www.swox.com/gmp/. This site also has the GMP manual available.

You will need GMP version 2 or better to use these functions. Some functions may require more recent version of the GMP library.

Instalación

In order to have these functions available, you must compile PHP with GMP support by using the --with-gmp option.

Configuración en tiempo de ejecución

Esta extensión no tiene directivas de configuración en php.ini.

Tipos de recursos

Esta extensión no tiene ningún tipo de recurso definido.

Constantes predefinidas

Estas constantes están definidas por esta extensión y estarán disponibles solamente cuando la extensión ha sido o bien compilada dentro de PHP o grabada dinámicamente en tiempo de ejecución.

GMP_ROUND_ZERO (integer)

GMP_ROUND_PLUSINF (integer)

GMP_ROUND_MINUSINF (integer)

Ejemplos

Ejemplo 1. Factorial function using GMP

<?php
function fact ($x) {
    if ($x <= 1)
        return 1;
    else
        return gmp_mul ($x, fact ($x-1));
}

print gmp_strval (fact (1000)) . "\n";
?>

This will calculate factorial of 1000 (pretty big number) very fast.

Ver también

More mathmatical functions can be found in the sections BCMath Arbitrary Precision Mathematics Functions and Mathematical Functions.

Tabla de contenidos
gmp_abs -- Absolute value
gmp_add -- Add numbers
gmp_and -- Logical AND
gmp_clrbit -- Clear bit
gmp_cmp -- Compare numbers
gmp_com -- Calculates one's complement of a
gmp_div_q -- Divide numbers
gmp_div_qr -- Divide numbers and get quotient and remainder
gmp_div_r -- Remainder of the division of numbers
gmp_div -- Divide numbers
gmp_divexact -- Exact division of numbers
gmp_fact -- Factorial
gmp_gcd -- Calculate GCD
gmp_gcdext -- Calculate GCD and multipliers
gmp_hamdist -- Hamming distance
gmp_init -- Create GMP number
gmp_intval -- Convert GMP number to integer
gmp_invert -- Inverse by modulo
gmp_jacobi -- Jacobi symbol
gmp_legendre -- Legendre symbol
gmp_mod -- Modulo operation
gmp_mul -- Multiply numbers
gmp_neg -- Negate number
gmp_or -- Logical OR
gmp_perfect_square -- Perfect square check
gmp_popcount -- Population count
gmp_pow -- Raise number into power
gmp_powm -- Raise number into power with modulo
gmp_prob_prime -- Check if number is "probably prime"
gmp_random -- Random number
gmp_scan0 -- Scan for 0
gmp_scan1 -- Scan for 1
gmp_setbit -- Set bit
gmp_sign -- Sign of number
gmp_sqrt -- Square root
gmp_sqrtrm -- Square root with remainder
gmp_strval -- Convert GMP number to string
gmp_sub -- Subtract numbers
gmp_xor -- Logical XOR

Anterior | Inicio | Siguiente
textdomain | Subir | gmp_abs


gmp_abs

(PHP 4 >= 4.0.4)

gmp_abs -- Absolute value

Description

resource gmp_abs ( resource a)

Returns absolute value of a.

Anterior | Inicio | Siguiente
GMP functions | Subir | gmp_add


gmp_add

(PHP 4 >= 4.0.4)

gmp_add -- Add numbers

Description

resource gmp_add ( resource a, resource b)

Add two GMP numbers. The result will be GMP number representing the sum of the arguments.

Anterior | Inicio | Siguiente
gmp_abs | Subir | gmp_and


gmp_and

(PHP 4 >= 4.0.4)

gmp_and -- Logical AND

Description

resource gmp_and ( resource a, resource b)

Calculates logical AND of two GMP numbers.

Anterior | Inicio | Siguiente
gmp_add | Subir | gmp_clrbit


gmp_clrbit

(PHP 4 >= 4.0.4)

gmp_clrbit -- Clear bit

Description

resource gmp_clrbit ( resource &a, int index)

Clears (sets to 0) bit index in a.

Anterior | Inicio | Siguiente
gmp_and | Subir | gmp_cmp


gmp_cmp

(PHP 4 >= 4.0.4)

gmp_cmp -- Compare numbers

Description

int gmp_cmp ( resource a, resource b)

Returns positive value if a > b, zero if a = b and negative value if a < b.

Anterior | Inicio | Siguiente
gmp_clrbit | Subir | gmp_com


gmp_com

(PHP 4 >= 4.0.4)

gmp_com -- Calculates one's complement of a

Description

resource gmp_com ( resource a)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
gmp_cmp | Subir | gmp_div_q


gmp_div_q

(PHP 4 >= 4.0.4)

gmp_div_q -- Divide numbers

Description

resource gmp_div_q ( resource a, resource b [, int round])

Divides a by b and returns the integer result. The result rounding is defined by the round, which can have the following values:

  • GMP_ROUND_ZERO: The result is truncated towards 0.

  • GMP_ROUND_PLUSINF: The result is rounded towards +infinity.

  • GMP_ROUND_MINUSINF: The result is rounded towards -infinity.

This function can also be called as gmp_div().

See also gmp_div_r(), gmp_div_qr()

Anterior | Inicio | Siguiente
gmp_com | Subir | gmp_div_qr


gmp_div_qr

(PHP 4 >= 4.0.4)

gmp_div_qr -- Divide numbers and get quotient and remainder

Description

array gmp_div_qr ( resource n, resource d [, int round])

The function divides n by d and returns array, with the first element being [n/d] (the integer result of the division) and the second being (n - [n/d] * d) (the remainder of the division).

See the gmp_div_q() function for description of the round argument.

Ejemplo 1. Division of GMP numbers

<?php
    $a = gmp_init ("0x41682179fbf5");
    $res = gmp_div_qr ($a, "0xDEFE75");
    printf("Result is: q - %s, r - %s",
            gmp_strval ($res[0]), gmp_strval ($res[1]));
?>

See also gmp_div_q(), gmp_div_r().

Anterior | Inicio | Siguiente
gmp_div_q | Subir | gmp_div_r


gmp_div_r

(PHP 4 >= 4.0.4)

gmp_div_r -- Remainder of the division of numbers

Description

resource gmp_div_r ( resource n, resource d [, int round])

Calculates remainder of the integer division of n by d. The remainder has the sign of the n argument, if not zero.

See the gmp_div_q() function for description of the round argument.

See also gmp_div_q(), gmp_div_qr()

Anterior | Inicio | Siguiente
gmp_div_qr | Subir | gmp_div


gmp_div

(PHP 4 >= 4.0.4)

gmp_div -- Divide numbers

Description

resource gmp_divexact ( resource a, resource b)

This function is an alias to gmp_div_q().

Anterior | Inicio | Siguiente
gmp_div_r | Subir | gmp_divexact


gmp_divexact

(PHP 4 >= 4.0.4)

gmp_divexact -- Exact division of numbers

Description

resource gmp_divexact ( resource n, resource d)

Divides n by d, using fast "exact division" algorithm. This function produces correct results only when it is known in advance that d divides n.

Anterior | Inicio | Siguiente
gmp_div | Subir | gmp_fact


gmp_fact

(PHP 4 >= 4.0.4)

gmp_fact -- Factorial

Description

resource gmp_fact ( int a)

Calculates factorial (a!) of a.

Anterior | Inicio | Siguiente
gmp_divexact | Subir | gmp_gcd


gmp_gcd

(PHP 4 >= 4.0.4)

gmp_gcd -- Calculate GCD

Description

resource gmp_gcd ( resource a, resource b)

Calculate greatest common divisor of a and b. The result is always positive even if either of or both input operands are negative.

Anterior | Inicio | Siguiente
gmp_fact | Subir | gmp_gcdext


gmp_gcdext

(PHP 4 >= 4.0.4)

gmp_gcdext -- Calculate GCD and multipliers

Description

array gmp_gcdext ( resource a, resource b)

Calculates g, s, and t, such that a*s + b*t = g = gcd(a,b), where gcd is gretest common divisor. Returns array with respective elements g, s and t.

Anterior | Inicio | Siguiente
gmp_gcd | Subir | gmp_hamdist


gmp_hamdist

(PHP 4 >= 4.0.4)

gmp_hamdist -- Hamming distance

Description

int gmp_hamdist ( resource a, resource b)

Returns the hamming distance between a and a. Both operands should be non-negative.

Anterior | Inicio | Siguiente
gmp_gcdext | Subir | gmp_init


gmp_init

(PHP 4 >= 4.0.4)

gmp_init -- Create GMP number

Description

resource gmp_init ( mixed number)

Creates a GMP number from integer or string. String representation can be decimal or hexadecimal. In the latter case, the string should start with 0x.

Ejemplo 1. Creating GMP number

<?php
    $a = gmp_init (123456);
    $b = gmp_init ("0xFFFFDEBACDFEDF7200");
?>

Nota: It is not necessary to call this function if you want to use integer or string in place of GMP number in GMP functions, like gmp_add(). Function arguments are automatically converted to GMP numbers, if such conversion is possible and needed, using the same rules as gmp_init().

Anterior | Inicio | Siguiente
gmp_hamdist | Subir | gmp_intval


gmp_intval

(PHP 4 >= 4.0.4)

gmp_intval -- Convert GMP number to integer

Description

int gmp_intval ( resource gmpnumber)

This function allows to convert GMP number to integer.

Aviso

This function returns useful result only if the number actually fits the PHP integer (i.e., signed long type). If you want just to print the GMP number, use gmp_strval().

Anterior | Inicio | Siguiente
gmp_init | Subir | gmp_invert


gmp_invert

(PHP 4 >= 4.0.4)

gmp_invert -- Inverse by modulo

Description

resource gmp_invert ( resource a, resource b)

Computes the inverse of a modulo b. Returns FALSE if an inverse does not exist.

Anterior | Inicio | Siguiente
gmp_intval | Subir | gmp_jacobi


gmp_jacobi

(PHP 4 >= 4.0.4)

gmp_jacobi -- Jacobi symbol

Description

int gmp_jacobi ( resource a, resource p)

Computes Jacobi symbol of a and p. p should be odd and must be positive.

Anterior | Inicio | Siguiente
gmp_invert | Subir | gmp_legendre


gmp_legendre

(PHP 4 >= 4.0.4)

gmp_legendre -- Legendre symbol

Description

int gmp_legendre ( resource a, resource p)

Compute the Legendre symbol of a and p. p should be odd and must be positive.

Anterior | Inicio | Siguiente
gmp_jacobi | Subir | gmp_mod


gmp_mod

(PHP 4 >= 4.0.4)

gmp_mod -- Modulo operation

Description

resource gmp_mod ( resource n, resource d)

Calculates n modulo d. The result is always non-negative, the sign of d is ignored.

Anterior | Inicio | Siguiente
gmp_legendre | Subir | gmp_mul


gmp_mul

(PHP 4 >= 4.0.4)

gmp_mul -- Multiply numbers

Description

resource gmp_mul ( resource a, resource b)

Multiplies a by b and returns the result.

Anterior | Inicio | Siguiente
gmp_mod | Subir | gmp_neg


gmp_neg

(PHP 4 >= 4.0.4)

gmp_neg -- Negate number

Description

resource gmp_neg ( resource a)

Returns -a.

Anterior | Inicio | Siguiente
gmp_mul | Subir | gmp_or


gmp_or

(PHP 4 >= 4.0.4)

gmp_or -- Logical OR

Description

resource gmp_or ( resource a, resource b)

Calculates logical inclusive OR of two GMP numbers.

Anterior | Inicio | Siguiente
gmp_neg | Subir | gmp_perfect_square


gmp_perfect_square

(PHP 4 >= 4.0.4)

gmp_perfect_square -- Perfect square check

Description

bool gmp_perfect_square ( resource a)

Returns TRUE if a is a prefect square, FALSE otherwise.

See also: gmp_sqrt(), gmp_sqrtrm().

Anterior | Inicio | Siguiente
gmp_or | Subir | gmp_popcount


gmp_popcount

(PHP 4 >= 4.0.4)

gmp_popcount -- Population count

Description

int gmp_popcount ( resource a)

Return the population count of a.

Anterior | Inicio | Siguiente
gmp_perfect_square | Subir | gmp_pow


gmp_pow

(PHP 4 >= 4.0.4)

gmp_pow -- Raise number into power

Description

resource gmp_pow ( resource base, int exp)

Raise base into power exp. The case of 0^0 yields 1. exp cannot be negative.

Anterior | Inicio | Siguiente
gmp_popcount | Subir | gmp_powm


gmp_powm

(PHP 4 >= 4.0.4)

gmp_powm -- Raise number into power with modulo

Description

resource gmp_powm ( resource base, resource exp, resource mod)

Calculate (base raised into power exp) modulo mod. If exp is negative, result is undefined.

Anterior | Inicio | Siguiente
gmp_pow | Subir | gmp_prob_prime


gmp_prob_prime

(PHP 4 >= 4.0.4)

gmp_prob_prime -- Check if number is "probably prime"

Description

int gmp_prob_prime ( resource a [, int reps])

If this function returns 0, a is definitely not prime. If it returns 1, then a is "probably" prime. If it returns 2, then a is surely prime. Reasonable values of reps vary from 5 to 10 (default being 10); a higher value lowers the probability for a non-prime to pass as a "probable" prime.

The function uses Miller-Rabin's probabilistic test.

Anterior | Inicio | Siguiente
gmp_powm | Subir | gmp_random


gmp_random

(PHP 4 >= 4.0.4)

gmp_random -- Random number

Description

resource gmp_random ( int limiter)

Generate a random number. The number will be up to limiter words long. If limiter is negative, negative numbers are generated.

Anterior | Inicio | Siguiente
gmp_prob_prime | Subir | gmp_scan0


gmp_scan0

(PHP 4 >= 4.0.4)

gmp_scan0 -- Scan for 0

Description

int gmp_scan0 ( resource a, int start)

Scans a, starting with bit start, towards more significant bits, until the first clear bit is found. Returns the index of the found bit.

Anterior | Inicio | Siguiente
gmp_random | Subir | gmp_scan1


gmp_scan1

(PHP 4 >= 4.0.4)

gmp_scan1 -- Scan for 1

Description

int gmp_scan1 ( resource a, int start)

Scans a, starting with bit start, towards more significant bits, until the first set bit is found. Returns the index of the found bit.

Anterior | Inicio | Siguiente
gmp_scan0 | Subir | gmp_setbit


gmp_setbit

(PHP 4 >= 4.0.4)

gmp_setbit -- Set bit

Description

resource gmp_setbit ( resource &a, int index [, bool set_clear])

Sets bit index in a. set_clear defines if the bit is set to 0 or 1. By default the bit is set to 1.

Anterior | Inicio | Siguiente
gmp_scan1 | Subir | gmp_sign


gmp_sign

(PHP 4 >= 4.0.4)

gmp_sign -- Sign of number

Description

int gmp_sign ( resource a)

Return sign of a - 1 if a is positive and -1 if it's negative.

Anterior | Inicio | Siguiente
gmp_setbit | Subir | gmp_sqrt


gmp_sqrt

(PHP 4 >= 4.0.4)

gmp_sqrt -- Square root

Description

resource gmp_sqrt ( resource a)

Calculates square root of a.

Anterior | Inicio | Siguiente
gmp_sign | Subir | gmp_sqrtrm


gmp_sqrtrm

(no version information, might be only in CVS)

gmp_sqrtrm -- Square root with remainder

Description

array gmp_sqrtrm ( resource a)

Returns array where first element is the integer square root of a (see also gmp_sqrt()), and the second is the remainder (i.e., the difference between a and the first element squared).

Anterior | Inicio | Siguiente
gmp_sqrt | Subir | gmp_strval


gmp_strval

(PHP 4 >= 4.0.4)

gmp_strval -- Convert GMP number to string

Description

string gmp_strval ( resource gmpnumber [, int base])

Convert GMP number to string representation in base base. The default base is 10. Allowed values for the base are from 2 to 36.

Ejemplo 1. Converting GMP number to string

<?php
    $a = gmp_init("0x41682179fbf5");
    printf ("Decimal: %s, 36-based: %s", gmp_strval($a), gmp_strval($a,36));
?>

Anterior | Inicio | Siguiente
gmp_sqrtrm | Subir | gmp_sub


gmp_sub

(PHP 4 >= 4.0.4)

gmp_sub -- Subtract numbers

Description

resource gmp_sub ( resource a, resource b)

Subtract b from a and returns the result.

Anterior | Inicio | Siguiente
gmp_strval | Subir | gmp_xor


gmp_xor

(PHP 4 >= 4.0.4)

gmp_xor -- Logical XOR

Description

resource gmp_xor ( resource a, resource b)

Calculates logical exclusive OR (XOR) of two GMP numbers.

Anterior | Inicio | Siguiente
gmp_sub | Subir | Funciones HTTP


Funciones HTTP

Manual de PHP
Anterior Siguiente

XXXVII. Funciones HTTP

Introducción

Estas funciones le permiten manipular la salida que se envía de vuelta al navegador remoto al nivel del protocolo HTTP.

Requerimientos

No se necesitan bibliotecas externas para construir esta extensión

Instalación

No se necesita ninguna instalación para usar estas funciones, son parte del núcleo de PHP.

Configuración en tiempo de ejecución

Esta extensión no tiene directivas de configuración en php.ini.

Tipos de recursos

Esta extensión no tiene ningún tipo de recurso definido.

Constantes predefinidas

Esta extensión no tiene ninguna constante definida.

Tabla de contenidos
header -- Manda una cabecera HTTP
headers_list -- Devuelve una lista de cabeceras de respuesta enviadas (o listas para ser enviadas)
headers_sent -- Chequea si se han enviado cabeceras, y dónde
setcookie -- Envía una cookie

Anterior | Inicio | Siguiente
gmp_xor | Subir | header


header

(PHP 3, PHP 4 )

header -- Manda una cabecera HTTP

Descripción

int header ( string string)

La función header() se utiliza al comienzo de un fichero HTML para enviar las cadenas de texto de la cabecera HTTP. Consulte la Especificación HTTP 1.1 para obtener más información sobre las cabeceras http. Nota: Recuerde que la función header() debe llamarse antes de que se genere salida alguna, bien con etiquetas HTML normales o con PHP. Un error muy frecuente consiste en leer código con include() o con auto_prepend, y que dicho código inserte espacios o líneas en blanco antes de llamar a header().

Hay dos casos especiales de llamadas a header. La primera es la cabecera "Location". No sólo envía esta cabecera al navegador, sino que también devuelve un código de estado REDIRECT a Apache. Desde el punto de vista del programador de scripts esto no debería ser importante, pero para la gente que comprende las interioridades de Apache sí puede serlo.

header("Location: http://www.php.net");  /* Redirect browser to PHP web site */
exit;  /* Make sure that code below does not get executed when we redirect. */

El segundo caso especial se produce con cualquier cabecera que comience con la cadena, "HTTP/" (las mayúsculas no son significativas). Por ejemplo, si tiene la directiva ErrorDocument 404 de Apache apuntando a un script PHP, es una buena idea asegurarse de que su script de PHP genera realmente un 404. La primera cosa que debe hacer en su script sería:

header("http/1.0 404 Not Found");

Los scripts de PHP a menudo generan HTML dinámico que no debe almacenarse en la caché del navegador cliente o en la caché de cualquier proxy situado entre el servidor y el navegador cliente. Se puede obligar a muchos proxies y clientes a que deshabiliten el almacenamiento en caché con

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");             // Date in the past
  header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // always modified
  header("Cache-Control: no-cache, must-revalidate");           // HTTP/1.1
  header("Pragma: no-cache");                                   // HTTP/1.0

Anterior | Inicio | Siguiente
Funciones HTTP | Subir | headers_list


headers_list

(no version information, might be only in CVS)

headers_list -- Devuelve una lista de cabeceras de respuesta enviadas (o listas para ser enviadas)

Descripción

array headers_list ( void )

headers_list() devolverá una matriz indexada numéricamente de cabeceras a ser enviadas al navegador / cliente. Para determinar si estas cabeceras ya han sido enviadas o no, use headers_sent().

Ejemplo 1. Ejemplos de uso de headers_list()

<?php

/* setcookie() agrega una cabecera de respuesta propia */
setcookie('foo','bar');

/* Definir una cabecera de respuesta personalizada.
   Esta es ignorada por la mayoria de clientes */
header("X-Sample-Test: foo");

/* Especificar contenido de texto plano en nuestra respuesta */
header('Content-type: text/plain');

/* Que cabeceras van a ser enviadas? */
var_dump(headers_list());

?>

esto producirá la siguiente salida:

array(4) {
  [0]=>
  string(29) "X-Powered-By: PHP/5.0.0"
  [1]=>
  string(19) "Set-Cookie: foo=bar"
  [2]=>
  string(18) "X-Sample-Test: foo"
  [3]=>
  string(24) "Content-type: text/plain"
}

Vea también:
headers_sent(),
header(), y
setcookie().

Anterior | Inicio | Siguiente
header | Subir | headers_sent


headers_sent

(PHP 3>= 3.0.8, PHP 4 )

headers_sent -- Chequea si se han enviado cabeceras, y dónde

Descripción

bool headers_sent ( [string &archivo [, int &linea]])

headers_sent() devolverá FALSE si no se han enviado cabeceras HTTP, o TRUE de lo contrario. Si los parámetros opcionales archivo y linea son definidos, headers_sent() colocará el nombre de archivo y número de línea de las fuentes php en donde inició la salida en las variables archivo y linea.

No puede agregar más líneas de cabeceras usando la función header() una vez el bloque de cabeceras ha sido enviado. Usando esta función al menos puede prevenir la recepción de mensajes de error relacionados con cabeceras HTTP. Otra opción es usar Búferes de Salida.

Nota: Los parámetros opcionales archivo y linea fueron añadidos en PHP 4.3.0.

Ejemplo 1. Ejemplos de uso de headers_sent()

<?php

// Si no se han enviado cabeceras, enviar una
if (!headers_sent()) {
    header ('Location: http://www.example.com/');
    exit;
}

// Un ejemplo del uso de las parametros opcionales archivo y linea, a
   partir de PHP 4.3.0.
// Note que $nombre_archivo y $num_linea son pasados para su uso posterior.
// No les asigne valores con anterioridad.
if (!headers_sent($nombre_archivo, $num_linea)) {
    header ('Location: http://www.example.com/');
    exit;

// Probablemente quiera producir un error aqui.
} else {

    print "Las cabeceras ya fueron enviadas en $nombre_archivo en la linea " .
          "$num_linea\nNo es posible redireccionar, por ahora por favor " .
          "pulse este <a href=\"http://www.example.com\">enlace</a> en su " .
          "lugar\n";
    exit;
}

?>

Vea también ob_start(), trigger_error(), y header() para una discusión más detallada de los temas involucrados.

Anterior | Inicio | Siguiente
headers_list | Subir | setcookie


setcookie

(PHP 3, PHP 4 )

setcookie -- Envía una cookie

Descripción

int setcookie ( string name, string value, int expire, string path, string domain, int secure)

setcookie() define una cookie para ser enviada con el resto de la información de la cabecera. Las cookies deben enviarse antes de mandar cualquier otra cabecera (esta es una restricción de las cookies, no de PHP). Esto requiere que sitúe las llamadas a esta función antes de cualquier etiqueta <html> o <head>.

Todos los parámetros excepto name son opcionales. Si sólo se especifica el parámetro name, la cookie con ese nombre se borrará del cliente remoto. También puede sustituir cualquier parámetro por una cadena de texto vacía ("") y saltar así ese parámetro. Los parámetros expire y secure son números enteros y no se pueden saltar con una cadena de texto vacía. En su lugar utilice un cero (0). El parámetro expire es un entero de tiempo típico de UNIX tal como lo devuelven las funciones time() o mktime(). El parámetro secure indica que la cookie se debe transmitir única y exclusivamente sobre una conexión segura HTTPS.

Fallos habituales:

Las cookies no se hacen visibles hasta la siguiente carga de una página para la que la cookie deba estar visible.

Las llamadas múltiples a setcookie() en el mismo script se ejecutarán en orden inverso. Si está intentando borrar una cookie antes de insertar otra, debe situar la llamada de inserción antes de la de borrado.

A continuación se muestran algunos ejemplos::

Ejemplo 1. setcookie(), ejemplos

setcookie("TestCookie","Test Value");
setcookie("TestCookie",$value,time()+3600);  /* expire in 1 hour */
setcookie("TestCookie",$value,time()+3600,"/~rasmus/",".utoronto.ca",1);

Tenga en cuenta que el campo value de la cookie se codifica como URL (urlencode) automáticamente cuando envía la cookie. Cuando ésta se recibe, se descodifica autómaticamente y se asigna a una variable con el mismo nombre que el nombre de la cookie. Para ver el contenido de nuestra cookie de prueba en un script, simplemente utilice uno de los siguientes ejemplos:

echo $TestCookie;
echo $HTTP_COOKIE_VARS["TestCookie"];

También puede utilizar arrays de cookies empleando la notación de array en el nombre de la cookie. Esto tiene como efecto establecer tantas cookies como elementos de array, pero cuando el script recibe la cookie, se guardan los valores en un array con el nombre de la cookie:

setcookie( "cookie[three]", "cookiethree" );
setcookie( "cookie[two]", "cookietwo" );
setcookie( "cookie[one]", "cookieone" );
if ( isset( $cookie ) ) {
   while( list( $name, $value ) = each( $cookie ) ) {
      echo "$name == $value<br>\n";
   }
}

Para obtener más información sobre las cookies, consulte la especificación de cookies de Netscape, que se encuentra en http://www.netscape.com/newsref/std/cookie_spec.html.

Microsoft Internet Explorer 4 con Service Pack 1 no funciona correctamente con las cookies que tienen asociado el parámetro path.

Netscape Communicator 4.05 y Microsoft Internet Explorer 3.x funcionan aparentemente de manera incorrecta cuando no se especifican los parámetros path y time.

Anterior | Inicio | Siguiente
headers_sent | Subir | Funciones para Hyperwave


Funciones para Hyperwave

Manual de PHP
Anterior Siguiente

XXXVIII. Funciones para Hyperwave

Introducción

Hyperwave ha sido desarrollado en el IICM en Graz. Comenzó con el nombre Hyper-G y cambió a Hyperwave cuando fue comercializado (Si lo recuerdo bien, fue en 1996).

Hyperwave no es software gratuiro. La versión actual, 4.1, está disponible en www.hyperwave.com. Se puede solicitar gratuitamente una versión limitada (30 días).

Hyperwave es un sistema de información similar a una base de datos (HIS, Hyperwave Information Server - Servidor Hyperwave de Información). Su objetivo es el almacenamiento y manipulación de documentos. Un documento puede ser cualquier bloque posible de datos que también puede ser almacenado en un archivo. Cada documento se acompaña por su registro de objeto. El registro de objeto contiene metadatos para el documento. Los metadatos son una lista de atributos que pueden ser extendidos por el usuario. Ciertos atributos siempre son fijados por el servidor Hyperwave, otros pueden ser modificados por el usuario. Un atributo es un par nombre/valor de la forma nombre=valor. El registro completo del objeto tiene tantos de estos pares como guste el usuario. El nombre de un atributo no tiene porqué ser único, p. ej. un título puede aparecer varias veces en el registro de un objeto. Esto tiene sentido si se desea especificar un título en diferentes idiomas. En dicho caso existe la convención de que cada valor de título esté precedido por la abreviatura de dos letras del idioma, seguida por dos puntos, como p. ej. 'en:Title in English' o 'es:Título en Español'. Otros atributos tales como descripciones o palabras clave son canditatos potenciales a esta diferenciación. También se pueden reemplazar las abreviaturas de idioma por cualquier otra cadena siempre y cuando estén separadas por los dos puntos del resto del valor del atributo.

Cada registro de objeto tiene una representación nativa como cadena con cada par nombre/valor separado por una línea nueva. La extensión Hyperwave también conoce una segunda representación que consiste en un array asociativo donde el nombre del atributo es la clave. Los valores de atributo multilingües en sí mismos forman otro array asociativo donde la clave es la abreviatura del idioma. Realmente cualquier atributo múltiple forma una tabla asociativa donde la cadena a la izquierda de los dos puntos en el valor de atributo es la clave. (Esto no se ha implementado por completo. Sólo los atributos Title, Description y Keyword son tratados adecuadamente.)

Aparte de los documentos, todos los hiper-enlaces contenidos en un documento son almacenados también como registros de objeto. Cuando el documento sea insertado en la base de datos, los hiper-enlaces que haya en un documento serán borrados del mismo y almacenados como objetos individuales. El registro de objeto del enlace contiene información acerca de dónde comienza y dónde termina. Para recuperar el documento original se deberá recuperar el documento sin los enlaces y la lista de los mismos para reinsertarla (Las funciones hw_pipedocument() y hw_gettext() hacen esto para usted). La ventaja de separar los enlaces del documento es obvia. Una vez un documento al que apunta un enlace cambia de nombre, el enlace puede modificarse fácilmente. El documento que contiene el enlace no se ve afectado. Incluso se puede añadir un enlace a un documento sin alterarlo.

Decir que hw_pipedocument() y hw_gettext() hacen automáticamente la inserción de enlaces no es tan simple como suena. Insertar los enlaces implica una cierta jerarquía en los documentos. En un servidor web esto viene dado por el sistema de archivos, pero el Hyperwave tiene su propia jerarquía y los nombres no representan la posición de un objeto en dicha jerarquía. Por tanto, la creación de los enlaces precisa primeramente de realizar un mapeado entre el espacio de nombres y la jerarquía del Hyperwave y el espacio de nombres respectivo de una jerarquía de web. La diferencia fundamental entre Hyperwave y la web es la distinción clara entre nombres y jerarquía que se da en el primero. El nombre no contiene ninguna información sobre la posición del objeto en la jerarquía. En la web, el nombre también contiene la información sobre la posición en la jerarquía del objeto. Esto nos lleva a dos posibles formas de mapeo. O bien se reflejan la jerarquía del Hyperwave y el nombre del objeto Hyperwave en el URL o sólo el nombre. Para facilitar las cosas, se utiliza el segundo método. El objeto Hyperwave de nombre 'mi_objeto' es mapeado a 'http://host/mi_objeto' sin importar dónde reside dentro de la jerarquía de Hyperwave. Un objeto con el nombre 'padre/mi_objeto' podría ser el hijo de 'mi_objeto' en la jerarquía Hyperwave, aunque en el espacio de nombres web aparezca justamente lo opuesto y el usuario pueda ser llevado a confusión. Esto sólo se puede evitar seleccionando nombres de objetos razonables.

Hecha esta decisión surge un segundo problema. ¿Cómo implicar al PHP? el URL http://host/mi_objeto no llamará a ningún script PHP a no ser que se le diga al servidor que lo transforme en p. ej. 'http://host/script_php3/mi_objeto' y que el 'script_php3' luego evalúe la variable $PATH_INFO y recupere el objeto con nombre 'mi_objeto' del servidor Hyperwave. Hay sólo un pequeño inconveniente que se puede resolver fácilmente. Cuando se reescribe cualquier URL no se permite el acceso a ningún otro documento en el servidor web. Un script de PHP para buscar en el servidor Hyperwave sería imposible. Por lo tanto se necesitará al menos una segunda regla de reescritura para que excluya ciertos URL, como los que empiecen p. ej. por http://host/Hyperwave. Básicamente esto sería compartir un espacio de nombres entre el servidor web y el servidor Hyperwave.

Los enlaces se insertan en los documentos basándose en el mecanismo citado más arriba.

Se vuelve más complicado si el PHP no se está ejecutando como módulo del servidor o como script CGI, sino que se ejecuta como aplicación, p. ej. para volcar el contenido del servidor de Hyperwave a un CD-ROM. En dicho caso tiene sentido mantener la jerarquía Hyperwave y mapearla en el sistema de archivos. Esto entra conflicto con los nombres de los objetos si estos reflejan su propia jerarquía (p. ej. eligiendo nombres que comienzan por '/'). Por tanto, la '/' tendrá que ser reemplazada por otro carácter, p. ej. '_' para continuar.

El protocolo de red para comunicarse con el servidor Hyperwave se denomina HG-CSP (Hyper-G Client/Server Protocol, Protocolo Hyper-G Cliente/Servidor). Está basado en mensajes que inician ciertas acciones, p. ej. obtener el registro de un objeto. En versiones anteriores del Servidor Hyperwave se distribuyeron dos clientes nativos (Harmony, Amadeus) para la comunicación con el servidor. Ambos desaparecieron cuando se comercializó el Hyperwave. Para sustituírlo se proporcionó el llamado wavemaster. El wavemaster es como un conversor de protocolo de HTTP a HG-CSP. La idea es realizar toda la administración de la base de datos y la visualización de documentos con una interfaz web. El wavemaster implementa una serie de posicionadores para acciones que permiten personalizar la interfaz. Dicho conjunto de posicionadores se denomina el Lenguaje PLACE. El PLACE no posee muchas de las características de un lenguaje de programación real y las extensiones al mismo únicamente alargan la lista de posicionadores. Esto ha obligado al uso de JavaScript que, en mi opinión, no hace la vida más fácil.

Añadir soporte de Hyperwave al PHP rellenaría el espacio que deja la falta de un lenguaje de programación que permita personalizar la interfaz. El PHP implementa todos los mensajes definidos en el HG-CSP pero además proporciona comandos más poderosos, p. ej. recuperar documentos completos.

El Hyperwave tiene su propia terminología para dar nombre a ciertos tipos de información. Esta ha sido ampliamente extendida y anulada. Casi todas las funciones operan en uno de los siguientes tipos de datos.

  • ID de objeto: Un valor entero único paara cada objeto del servidor Hyperwave. También es uno de los atributos del registro de objeto (ObjectID). Los ID de objeto se usan generalmente como parámetros de entrada que especifican a un objeto.

  • registro de objeto: Una cadena con pares atributo-valor con la forma atributo=valos. Los pares están separados unos de otros por un retorno de carro. Un registro de objeto puede convertirse fácilmente en una tabla (array) de objetos usando hw_object2array(). Varias funciones devuelven registros de objeto. Los nombres de dichas funciones terminan en obj.

  • tabla de objetos: Una tabla asociativa con todos los atributos de un objeto. La clave es el nombre del atributo. Si un atributo aparece más de una vez en un registro de objeto será convertido en otra tabla asociativa o indizada. Los atributos que dependen del idioma (como el título, claves o descripción) se convertirán en una tabla asociativa con la abreviatura del idioma como clave. El resto de los atributos múltiples crearán una tabla indizada. Las funciones de PHP nunca devuelven tablas de objetos.

  • hw_document: Este es un nuevo tipo de datos que almacena el documento actual, p. ej. HTML, PDF, etc. Está algo optimizado para documentos HTML pero puede usarse para cualquier formato.

Varias funciones que devuelven una tabla de registros de objeto también devuelven una tabla asociativa con información estadística sobre los mismos. La tabla es el último elemento del registro de objeto. La tabla estadística contiene los siguientes elementos:

Hidden

Número de registros de objeto con el atributo PresentationHints puesto a Hidden.

CollectionHead

Número de registros de objeto con el atributo PresentationHints puesto a CollectionHead.

FullCollectionHead

Número de registros de objeto con el atributo PresentationHints puesto a FullCollectionHead.

CollectionHeadNr

Índice a una tabla de regitros de objeto con el atributo PresentationHints puesto a CollectionHead.

FullCollectionHeadNr

Índice a una tabla de regitros de objeto con el atributo PresentationHints puesto a FullCollectionHead.

Total

Total: Número de registros de objeto.

Integración con Apache

La extensión Hyperwave se utiliza mejor cuando el PHP se compila como un módulo de Apache. En tal caso el servidor Hyperwave subyacente puede ser ocultado casi por completo de los usuarios si el Apache utiliza su motor de re-escritura. Las siguientes instrucciones explicarán esto.

Como el PHP con soporte Hyperwave incluído en el Apache se ha diseñado para sustituir la solución nativa de Hyperwave basada en Wavemaster, asumiré que el servidor Apache sólo sirve como interfaz web para el Hyperwave. Esto no es necesario, pero simplifica la configuración. El concepto es bastante sencillo. Primeramente necesita un script PHP que evalúe la variable PATH_INFO y que trate su valor como el nombre de un objeto Hyperwave. Llamemos a este script 'Hyperwave'. El URL http://nombre.servidor/Hyperwave/nombre_de_objeto devolvería entonces el objeto Hyperwave llamado 'nombre_de_objeto'. Dependiendo del tipo del objeto, así reaccionará el script. Si es una colección, probablemente devolverá un lista de hijos. Si es un documento devolverá el tipo MIME y el contenido. Se puede mejorar ligeramente si se usa el motor de re-escritura del Apache. Desde el punto de vista del usuario será más sencillo si el URL http://nombre.servidor/nombre de objeto devuelve el objeto. La regla de reescritura es muy sencilla:

RewriteRule ^/(.*) /usr/local/apache/htdocs/HyperWave/$1 [L]

Ahora todo URL apunta a un objeto en el servidor Hyperwave. Esto provoca un problema sencillo de resolver. No hay forma de ejecutar otro script, p. ej. para buscar, salvo el script 'Hyperwave'. Esto se puede solucionar con otra regla de reescritura como la siguiente:

RewriteRule ^/hw/(.*) /usr/local/apache/htdocs/hw/$1 [L]

Esta reservará el directorio /usr/local/apache/htdocs/hw para script adicionales y otros archivos. Sólo hay que asegurarse que esta regla se evalúa antes de la otra. Sólo hay un pequeño inconveniente: todos los objetos Hyperwave cuyo nombre comienza por 'hw/' serán ocultados. así que asegúrese que no utiliza dichos nombres. Si necesita más directorios, p. ej. para imágenes, simplemente añada más reglas o sitúe los archivos en un solo directorio. Por último, no olvide conectar el motor de re-escritura con

RewriteEngine on

Mi experiencia me ha demostrado que necesitará los siguientes scripts:

  • para devolver el script en sí

  • para permitir las búsquedas

  • para identificarse

  • para ajustar su perfil

  • uno para cada función adicional como mostrar los atributos del objeto, mostrar información sobre usuarios, mostrar el estado del servidor, etc.

Pendientes

Aún hay varias cosas pendientes:

  • hw_InsertDocument debe dividirse en hw_InsertObject() y hw_PutDocument().

  • Los nombres de algunas funciones aún no están fijados.

  • Muchas funciones precisan la conexión actual como primer parámetro. Esto obliga a escribir mucho, lo cual no es con frecuencia necesario si sólo hay una conexión abierta. Una conexión por defecto mejoraría esto.

  • La conversión de registro de objeto a tabla de objeto necesita manipular cualquier atributo múltiple.

Tabla de contenidos
hw_Array2Objrec -- convierte atributos de tabla de objeto a registro de objeto
hw_changeobject -- Changes attributes of an object (obsolete)
hw_Children -- id de objeto de los hijos
hw_ChildrenObj -- registros de objeto de los hijos
hw_Close -- cierra la conexión Hyperwave
hw_Connect -- abre una conexión
hw_connection_info -- Prints information about the connection to Hyperwave server
hw_Cp -- copia objetos
hw_Deleteobject -- borra objetos
hw_DocByAnchor -- id del objeto al que pertenece un enlace
hw_DocByAnchorObj -- registro de objeto al que pertenece un enlace
hw_Document_Attributes -- object record of hw_document
hw_Document_BodyTag -- body tag of hw_document
hw_Document_Content -- returns content of hw_document
hw_Document_SetContent -- sets/replaces content of hw_document
hw_Document_Size -- size of hw_document
hw_dummy -- Hyperwave dummy function
hw_EditText -- recupera documento de texto
hw_Error -- número de error
hw_ErrorMsg -- devuelve un mensaje de error
hw_Free_Document -- libera un documento_hw
hw_GetAnchors -- id de objeto de los enlaces de un documento
hw_GetAnchorsObj -- registros de objeto de los enlaces de un documento
hw_GetAndLock -- devuelve registro de objeto y lo bloquea
hw_GetChildColl -- id de objeto de colecciones hijas
hw_GetChildCollObj -- registros de objeto de colecciones hijas
hw_GetChildDocColl -- id de objeto de documentos hijos de una colección
hw_GetChildDocCollObj -- registros de objeto de documentos hijos de una colección
hw_GetObject -- registro de objeto
hw_GetObjectByQuery -- buscar objeto
hw_GetObjectByQueryColl -- buscar objeto en colección
hw_GetObjectByQueryCollObj -- buscar objeto en colección
hw_GetObjectByQueryObj -- buscar objeto
hw_GetParents -- id de objeto de los padres
hw_GetParentsObj -- registros de objeto de los padres
hw_getrellink -- Get link from source to dest relative to rootid
hw_GetRemote -- Obtiene un documento remoto
hw_GetRemoteChildren -- Obtiene el hijo del documento remoto
hw_GetSrcByDestObj -- Devuelve los enlaces que apuntan al objeto
hw_GetText -- obtiene un documento de texto
hw_Username -- nombre del usuario actualmente conectado
hw_Identify -- identificarse como usuario
hw_InCollections -- comprueba si los id de objeto están en las colecciones
hw_Info -- información sobre conexión
hw_InsColl -- insertar colección
hw_InsDoc -- insertar documento
hw_insertanchors -- Inserts only anchors into text
hw_InsertDocument -- subir cualquier objeto
hw_InsertObject -- inserta un registro de objeto
hw_mapid -- Mapea in id global a un id virtual local
hw_Modifyobject -- modifica el registro de objeto
hw_Mv -- mueve objetos
hw_New_Document -- crear nuevo documento
hw_Objrec2Array -- convierte atributos de registro de objeto a tabla de objetos
hw_Output_Document -- prints hw_document
hw_pConnect -- hacer una conexión de base de datos permanente
hw_PipeDocument -- recupera cualquier documento
hw_Root -- ID del objeto raíz
hw_setlinkroot -- Set the id to which links are calculated
hw_stat -- Returns status string
hw_Unlock -- desbloquea objeto
hw_Who -- Lista de los usuarios actualmente conectados

Anterior | Inicio | Siguiente
setcookie | Subir | hw_Array2Objrec


hw_Array2Objrec

(PHP 3>= 3.0.4, PHP 4 )

hw_Array2Objrec -- convierte atributos de tabla de objeto a registro de objeto

Descripción

strin hw_array2objrec ( array tabla_objetos)

Convierte una tabla_objetos en un registro de objeto. Los atributos múltiples como 'Título' en distintos idiomas son tratados correctamente.

Vea también hw_objrec2array().

Anterior | Inicio | Siguiente
Funciones para Hyperwave | Subir | hw_changeobject


hw_changeobject

(PHP 3>= 3.0.3, PHP 4 )

hw_changeobject -- Changes attributes of an object (obsolete)

Description

void hw_changeobject ( int link, int objid, array attributes)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
hw_Array2Objrec | Subir | hw_Children


hw_Children

(PHP 3>= 3.0.3, PHP 4 )

hw_Children -- id de objeto de los hijos

Descripción

array hw_children ( int conexión, int IDobjeto)

Devuelve una tabla de id de objeto. Cada uno de ellos pertenece a un hijo de la colección cuyo ID es IDobjeto. La tabla contiene tanto los documentos como las colecciones hijas.

Anterior | Inicio | Siguiente
hw_changeobject | Subir | hw_ChildrenObj


hw_ChildrenObj

(PHP 3>= 3.0.3, PHP 4 )

hw_ChildrenObj -- registros de objeto de los hijos

Descripción

array hw_childrenobj ( int conexión, int IDobjeto)

Devuelve una tabla de registros de objeto. Cada uno de ellos pertenece a un hijo de la colección cuyo ID es IDobjeto. La tabla contiene tanto los documentos como las colecciones hijas.

Anterior | Inicio | Siguiente
hw_Children | Subir | hw_Close


hw_Close

(PHP 3>= 3.0.3, PHP 4 )

hw_Close -- cierra la conexión Hyperwave

Descripción

int hw_close ( int conexión)

Devuelve FALSE si la conexión no es un índice válido de conexión, y TRUE en caso contrario. Cierra la conexión dada con el servidor de Hyperwave.

Anterior | Inicio | Siguiente
hw_ChildrenObj | Subir | hw_Connect


hw_Connect

(PHP 3>= 3.0.3, PHP 4 )

hw_Connect -- abre una conexión

Descripción

int hw_connect ( string servidor, int puerto, string usuario, string clave)

Abre una conexión con un servidor Hyperwave y devuelve un índice de conexión si hay éxito, o FALSE si la conexión no se pudo realizar. Cada argumento debe ser una cadena entrecomillada salvo el número de puerto. Los argumentos de usuario y clave son opcionales y pueden omitirse. En tal caso no se realizará identificación alguna con el servidor. Es similar a identificarse como el usuario 'anonymous'. Esta función devuelve un índice de conexión que se necesita para otras funciones Hyperwave. Puede tener varias conexiones abiertas a la vez. Recuerde que la clave no está encriptada.

Vea también hw_pConnect().

Anterior | Inicio | Siguiente
hw_Close | Subir | hw_connection_info


hw_connection_info

(PHP 3>= 3.0.3, PHP 4 )

hw_connection_info -- Prints information about the connection to Hyperwave server

Description

void hw_connection_info ( int link)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
hw_Connect | Subir | hw_Cp


hw_Cp

(PHP 3>= 3.0.3, PHP 4 )

hw_Cp -- copia objetos

Descripción

int hw_cp ( int conexión, array tabla_id_objeto, int id destino)

Copia los objetos cuyos id se especifican en el segundo parámetro a la colección identificada como id destino.

El valor devuelto es el número de objetos copiados.

Vea también hw_mv().

Anterior | Inicio | Siguiente
hw_connection_info | Subir | hw_Deleteobject


hw_Deleteobject

(PHP 3>= 3.0.3, PHP 4 )

hw_Deleteobject -- borra objetos

Descripción

int hw_deleteobject ( int conexión, int objeto_a_borrar)

Borra el objeto con el id dado como segundo parámetro. Borrará todas las instancias del mismo.

Devuelve TRUE si no hay error o FALSE en caso contrario.

Vea también hw_mv().

Anterior | Inicio | Siguiente
hw_Cp | Subir | hw_DocByAnchor


hw_DocByAnchor

(PHP 3>= 3.0.3, PHP 4 )

hw_DocByAnchor -- id del objeto al que pertenece un enlace

Descripción

int hw_docbyanchor ( int conexión, int IDenlace)

Devuelve el id de objeto del documento al que pertenece el IDenlace.

Anterior | Inicio | Siguiente
hw_Deleteobject | Subir | hw_DocByAnchorObj


hw_DocByAnchorObj

(PHP 3>= 3.0.3, PHP 4 )

hw_DocByAnchorObj -- registro de objeto al que pertenece un enlace

Descripción

string hw_docbyanchorobj ( int conexión, int IDenlace)

Devuelve el registro de objeto del documento al que pertenece el IDenlace.

Anterior | Inicio | Siguiente
hw_DocByAnchor | Subir | hw_Document_Attributes


hw_Document_Attributes

(PHP 3>= 3.0.3, PHP 4 )

hw_Document_Attributes -- object record of hw_document

Description

string hw_document_attributes ( int hw_document)

Returns the object record of the document.

For backward compatibility, hw_documentattributes() is also accepted. This is deprecated, however.

See also hw_document_bodytag(), and hw_document_size().

Anterior | Inicio | Siguiente
hw_DocByAnchorObj | Subir | hw_Document_BodyTag


hw_Document_BodyTag

(PHP 3>= 3.0.3, PHP 4 )

hw_Document_BodyTag -- body tag of hw_document

Description

string hw_document_bodytag ( int hw_document)

Returns the BODY tag of the document. If the document is an HTML document the BODY tag should be printed before the document.

See also hw_document_attributes(), and hw_document_size().

For backward compatibility, hw_documentbodytag() is also accepted. This is deprecated, however.

Anterior | Inicio | Siguiente
hw_Document_Attributes | Subir | hw_Document_Content


hw_Document_Content

(PHP 3>= 3.0.3, PHP 4 )

hw_Document_Content -- returns content of hw_document

Description

string hw_document_content ( int hw_document)

Returns the content of the document. If the document is an HTML document the content is everything after the BODY tag. Information from the HEAD and BODY tag is in the stored in the object record.

See also hw_document_attributes(),
hw_document_size(),
and hw_document_setcontent().

Anterior | Inicio | Siguiente
hw_Document_BodyTag | Subir | hw_Document_SetContent


hw_Document_SetContent

(PHP 4 )

hw_Document_SetContent -- sets/replaces content of hw_document

Description

string hw_document_setcontent ( int hw_document, string content)

Sets or replaces the content of the document. If the document is an HTML document the content is everything after the BODY tag. Information from the HEAD and BODY tag is in the stored in the object record. If you provide this information in the content of the document too, the Hyperwave server will change the object record accordingly when the document is inserted. Probably not a very good idea. If this functions fails the document will retain its old content.

See also hw_document_attributes(),
hw_document_size(),
and hw_document_content().

Anterior | Inicio | Siguiente
hw_Document_Content | Subir | hw_Document_Size


hw_Document_Size

(PHP 3>= 3.0.3, PHP 4 )

hw_Document_Size -- size of hw_document

Description

int hw_document_size ( int hw_document)

Returns the size in bytes of the document.

See also hw_document_bodytag(), and hw_document_attributes().

For backward compatibility, hw_documentsize() is also accepted. This is deprecated, however.

Anterior | Inicio | Siguiente
hw_Document_SetContent | Subir | hw_dummy


hw_dummy

(PHP 3>= 3.0.3, PHP 4 )

hw_dummy -- Hyperwave dummy function

Description

string hw_dummy ( int link, int id, int msgid)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
hw_Document_Size | Subir | hw_EditText


hw_EditText

(PHP 3>= 3.0.3, PHP 4 )

hw_EditText -- recupera documento de texto

Descripción

int hw_edittext ( int conexión, int documento_hw)

Envía el documento de texto al servidor. El registro de objeto del documento no puede ser modificado mientras el documento es editado. Esta función sólo funcionará para objetos puros de texto. No abrirá ninguna conexión especial de datos y por tanto bloquea la conexión de control durante la transferencia.

Vea también hw_PipeDocument(),
         hw_FreeDocument(),
         hw_DocumentBodyTag(),
         hw_DocumentSize(),
         hw_OutputDocument(),
         hw_GetText().

Anterior | Inicio | Siguiente
hw_dummy | Subir | hw_Error


hw_Error

(PHP 3>= 3.0.3, PHP 4 )

hw_Error -- número de error

Descripción

int hw_error ( int conexión)

Devuelve el último número de error. Si el valor devuelto es 0 no ha habido errores. El error está relacionado con el último comando.

Anterior | Inicio | Siguiente
hw_EditText | Subir | hw_ErrorMsg


hw_ErrorMsg

(PHP 3>= 3.0.3, PHP 4 )

hw_ErrorMsg -- devuelve un mensaje de error

Descripción

string hw_errormsg ( int conexión)

Devuelve una cadena que contiene el último mensaje de error o 'No Error'. Si devuelve FALSE es que la función fracasó. El mensaje está relacionado con el último comando.

Anterior | Inicio | Siguiente
hw_Error | Subir | hw_Free_Document


hw_Free_Document

(PHP 3>= 3.0.3, PHP 4 )

hw_Free_Document -- libera un documento_hw

Descripción

int hw_free_document ( int documento_hw)

Libera la memoria ocupada por el documento Hyperwave.

Anterior | Inicio | Siguiente
hw_ErrorMsg | Subir | hw_GetAnchors


hw_GetAnchors

(PHP 3>= 3.0.3, PHP 4 )

hw_GetAnchors -- id de objeto de los enlaces de un documento

Descripción

array hw_getanchors ( int conexión, int IDobjeto)

Devuelve una tabla de id de objeto con los enlaces del documento cuyo ID es IDobjeto.

Anterior | Inicio | Siguiente
hw_Free_Document | Subir | hw_GetAnchorsObj


hw_GetAnchorsObj

(PHP 3>= 3.0.3, PHP 4 )

hw_GetAnchorsObj -- registros de objeto de los enlaces de un documento

Descripción

array hw_getanchorsobj ( int conexión, int IDobjeto)

Devuelve una tabla de registros de objeto con los enlaces del documento cuyo ID es IDobjeto.

Anterior | Inicio | Siguiente
hw_GetAnchors | Subir | hw_GetAndLock


hw_GetAndLock

(PHP 3>= 3.0.3, PHP 4 )

hw_GetAndLock -- devuelve registro de objeto y lo bloquea

Descripción

string hw_getandlock ( int conexión, int IDobjeto)

Devuelve el registro de objeto para el objeto con ID IDobjeto. También bloqueará el objeto, de modo que otros usuarios no podrán acceder al mismo hasta que sea desbloqueado.

Vea también hw_Unlock(), hw_GetObject().

Anterior | Inicio | Siguiente
hw_GetAnchorsObj | Subir | hw_GetChildColl


hw_GetChildColl

(PHP 3>= 3.0.3, PHP 4 )

hw_GetChildColl -- id de objeto de colecciones hijas

Descripción

array hw_getchildcoll ( int conexión, int IDobjeto)

Devuelve una tabla de id de objeto. Cada ID de objeto pertenece a una colección hija de la colección con ID IDobjeto. La función no devolverá documentos hijos.

Vea también hw_GetChildren(), hw_GetChildDocColl().

Anterior | Inicio | Siguiente
hw_GetAndLock | Subir | hw_GetChildCollObj


hw_GetChildCollObj

(PHP 3>= 3.0.3, PHP 4 )

hw_GetChildCollObj -- registros de objeto de colecciones hijas

Descripción

array hw_getchildcollobj ( int conexión, int IDobjeto)

Devuelve una tabla de registros de objeto. Cada uno de ellos pertenece a una colección hija de la colección con ID IDobjeto. La función no devolverá documentos hijos.

Vea también hw_ChildrenObj(), hw_GetChildDocCollObj().

Anterior | Inicio | Siguiente
hw_GetChildColl | Subir | hw_GetChildDocColl


hw_GetChildDocColl

(PHP 3>= 3.0.3, PHP 4 )

hw_GetChildDocColl -- id de objeto de documentos hijos de una colección

Descripción

array hw_getchilddoccoll ( int conexión, int IDobjeto)

Devuelve una tabla de id de objeto para los documentos hijos de una colección.

Vea también hw_GetChildren(), hw_GetChildColl().

Anterior | Inicio | Siguiente
hw_GetChildCollObj | Subir | hw_GetChildDocCollObj


hw_GetChildDocCollObj

(PHP 3>= 3.0.3, PHP 4 )

hw_GetChildDocCollObj -- registros de objeto de documentos hijos de una colección

Descripción

array hw_getchilddoccollobj ( int conexión, int IDobjeto)

Devuelve una tabla de registros de objeto para los documentos hijos de una colección.

Vea también hw_ChildrenObj(), hw_GetChildCollObj().

Anterior | Inicio | Siguiente
hw_GetChildDocColl | Subir | hw_GetObject


hw_GetObject

(PHP 3>= 3.0.3, PHP 4 )

hw_GetObject -- registro de objeto

Descripción

array hw_getobject ( int conexión, [int|array] IDobjeto, string consulta)

Devuelve el registro de objeto para el objeto cuyo ID es IDobjeto si el segundo parámetro es un entero. Si es una tabla la función devolverá una tabla de registros de objeto. En tal caso, el último parámetro, que es una cadena de consulta, también es evaluado.

La cadena de consulta tiene la sintáxis siguiente:

<expr> ::= "(" <expr> ")" |

"!" <expr> | /* NO */

<expr> "||" <expr> | /* O */

<expr> "&&" <expr> | /* Y */

<atributo> <operador> <valor>

<atributo> ::= /* cualquier atributo (Título, Autor, TipoDocumento ...) */

<operador> ::= "=" | /* igual */

"<" | /* menor que (comparación de cadenas) */

">" | /* mayor que (comparación de cadenas) */

"~" /* expresión regular */

La consulta permite seleccionar elementos de la lista de objetos dada. Al contrario de otras funciones de búsqueda, esta consulta no puede utilizar atributos indizados. El número de registros de objeto devueltos depende de la consulta y de si está permitido el acceso al objeto.

Vea también hw_GetAndLock(), hw_GetObjectByQuery().

Anterior | Inicio | Siguiente
hw_GetChildDocCollObj | Subir | hw_GetObjectByQuery


hw_GetObjectByQuery

(PHP 3>= 3.0.3, PHP 4 )

hw_GetObjectByQuery -- buscar objeto

Descripción

array hw_getobjectbyquery ( int conexión, string consulta, int max_resultados)

Busca objetos en todo el servidor y devuelve una tabla de id de objeto. El número máximo de resultados será max_resultados. Si max_resultados vale -1, el número máximo de resultados es ilimitado.

La consulta funcionará sólo con atributos indizados.

Vea también hw_GetObjectByQueryObj().

Anterior | Inicio | Siguiente
hw_GetObject | Subir | hw_GetObjectByQueryColl


hw_GetObjectByQueryColl

(PHP 3>= 3.0.3, PHP 4 )

hw_GetObjectByQueryColl -- buscar objeto en colección

Descripción

array hw_getobjectbyquerycoll ( int conexión, int IDobjeto, string consulta, int max_resultados)

Busca objetos en la colección cuyo ID es IDobjeto y devuelve una tabla de ID de objeto. El número máximo de resultados será max_resultados. Si max_resultados vale -1, el número máximo de resultados es ilimitado.

La consulta funcionará sólo con atributos indizados.

Vea también hw_GetObjectByQueryCollObj().

Anterior | Inicio | Siguiente
hw_GetObjectByQuery | Subir | hw_GetObjectByQueryCollObj


hw_GetObjectByQueryCollObj

(PHP 3>= 3.0.3, PHP 4 )

hw_GetObjectByQueryCollObj -- buscar objeto en colección

Descripción

array hw_getobjectbyquerycollobj ( int conexión, int IDobjeto, string consulta, int max_resultados)

Busca objetos en la colección cuyo ID es IDobjeto y devuelve una tabla de registros de objeto. El número máximo de resultados será max_resultados. Si max_resultados vale -1, el número máximo de resultados es ilimitado.

La consulta funcionará sólo con atributos indizados.

Vea también hw_GetObjectByQueryColl().

Anterior | Inicio | Siguiente
hw_GetObjectByQueryColl | Subir | hw_GetObjectByQueryObj


hw_GetObjectByQueryObj

(PHP 3>= 3.0.3, PHP 4 )

hw_GetObjectByQueryObj -- buscar objeto

Descripción

array hw_getobjectbyqueryobj ( int conexión, string consulta, int max_resultados)

Busca objetos en todo el servidor y devuelve una tabla de registros de objeto. El número máximo de resultados será max_resultados. Si max_resultados vale -1, el número máximo de resultados es ilimitado.

La consulta funcionará sólo con atributos indizados.

Vea también hw_GetObjectByQuery().

Anterior | Inicio | Siguiente
hw_GetObjectByQueryCollObj | Subir | hw_GetParents


hw_GetParents

(PHP 3>= 3.0.3, PHP 4 )

hw_GetParents -- id de objeto de los padres

Descripción

array hw_getparentsobj ( int conexión, int IDobjeto)

Devuelve una tabla indizada de id de objeto. Cada una pertenece a un padre del objeto con ID IDobjeto.

Anterior | Inicio | Siguiente
hw_GetObjectByQueryObj | Subir | hw_GetParentsObj


hw_GetParentsObj

(PHP 3>= 3.0.3, PHP 4 )

hw_GetParentsObj -- registros de objeto de los padres

Descripción

array hw_getparentsobj ( int conexión, int IDobjeto)

Devuelve una tabla indizada de registros de objeto junto a una tabla asociativa con información estadística sobre estos. La tabla asociativa es el último elemento de la tabla devuelta. Cada registro de objeto pertenece a un padre del objeto con ID IDobjeto.

Anterior | Inicio | Siguiente
hw_GetParents | Subir | hw_getrellink


hw_getrellink

(PHP 3>= 3.0.3, PHP 4 )

hw_getrellink -- Get link from source to dest relative to rootid

Description

string hw_getrellink ( int link, int rootid, int sourceid, int destid)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
hw_GetParentsObj | Subir | hw_GetRemote


hw_GetRemote

(PHP 3>= 3.0.3, PHP 4 )

hw_GetRemote -- Obtiene un documento remoto

Descripción

int hw_getremote ( int conexión, int IDobjeto)

Devuelve un documento remoto. Los documentos remotos en la notación de Hyperwave son los obtenidos de una fuente externa. Los documentos remotos típicos son páginas web externas o consultas a bases de datos. Para poder acceder a las fuentes externas a través de documentos remotos, el Hyperwave presenta el HGI (Hyperwave Gateway Interface - Interfaz de Pasarela de Hyperwave) que es similar al CGI. Actualmente, sólo se puede acceder a servidores ftp y http y a algunas bases de datos. Llamar a hw_GetRemote() devuelve el documento de la fuente externa. Si desea usar esta función debe familiarizarse con los HGI. Debería considerar el usar PHP en lugar del Hyperwave para acceder a fuentes externas. Añadir soporte de bases de datos a través de una pasarela Hyperwave sería más difícil que hacerlo en PHP.

Vea también hw_GetRemoteChildren().

Anterior | Inicio | Siguiente
hw_getrellink | Subir | hw_GetRemoteChildren


hw_GetRemoteChildren

(PHP 3>= 3.0.3, PHP 4 )

hw_GetRemoteChildren -- Obtiene el hijo del documento remoto

Descripción

int hw_getremotechildren ( int conexión, string registro de objeto)

Devuelve el hijo de un documento remoto. Los hijos de documentos remotos son en sí mismos documentos remotos. Esto tiene sentido cuando se afina una consulta de bases de datos y se explica en la Guía de Programación de Hyperwave. Si el número de hijos es 1 la función devolverá el documento en sí mismo formateado con la Interfaz de Pasarela de Hyperwave (HGI). Si el número de hijos es mayor de 1 devolverá una tabla de registros de objeto, con cada uno posible candidato para otra llamada a hw_GetRemoteChildren(). Dichos registros de objeto son virtuales y no existen en el servidor Hyperwave, y por lo tanto no poseen un ID de objeto válido. La apariencia exacta de dicho registro de objeto depende del HGI. Si desea usar esta función deberá estar muy familiarizado con los HGI. También debería considerar el uso del PHP en lugar de Hyperwave para acceder a fuentes externas. Añadir soporte de bases de datos a través de una pasarela de Hyperwave resulta más difícil que hacerlo en PHP.

Vea también hw_GetRemote().

Anterior | Inicio | Siguiente
hw_GetRemote | Subir | hw_GetSrcByDestObj


hw_GetSrcByDestObj

(PHP 3>= 3.0.3, PHP 4 )

hw_GetSrcByDestObj -- Devuelve los enlaces que apuntan al objeto

Descripción

array hw_getsrcbydestobj ( int conexión, int IDobjeto)

Devuelve los registros de objeto de todos los enlaces que apuntan al objeto con ID IDobjeto. El objeto puede ser tanto un documento como un enlace de tipo destino.

Vea también hw_GetAnchors().

Anterior | Inicio | Siguiente
hw_GetRemoteChildren | Subir | hw_GetText


hw_GetText

(PHP 3>= 3.0.3, PHP 4 )

hw_GetText -- obtiene un documento de texto

Descripción

int hw_gettext ( int conexión, int IDobjeto [, mixed IDraiz/prefijo])

Devuelve el documento con ID de objeto IDobjeto. Si el documento tiene enlaces que pueden ser insertados, serán insertados ahora. El parámetro opcional IDraiz/prefijo puede ser una cadena o un entero. Si es un entero determina la forma en que los enlaces se insertan en el documento. Por defecto es 0 y los enlaces se crean a partir del nombre del objeto de destino de los mismos. Esto es útil para aplicaciones web. Si un enlace apunta a un objeto con nombre 'pelicula_internet' el enlace HTML será <A HREF="/pelicula_internet">. La posición actual del objeto de destino en la jerarquía de documentos es despreciada. Tendrá que ajustar su navegador web para que reescriba dicho URL a, por ejemplo, '/mi_script.php3/pelicula_internet'. 'mi_script.php3' deberá evaluar $PATH_INFO y recuperar el documento. Todos los enlaces tendrán el prefijo '/mi_script.php3'. Si no desea este efecto puede fijar el parámetro opcional IDraiz/prefijo al prefijo que desee en su lugar. En este caso deberá ser una cadena.

Si el IDraiz/prefijo es un entero distinto de 0, el enlace se construye con todos los nombres de objeto comenzando con el objeto de id IDraiz/prefijo, separado por una barra relativa al objeto actual. Si por ejemplo el documento anterior 'pelicula_internet' está situado en 'a-b-c-pelicula_internet' donde '-' es el separador entre niveles jerárquicos en el servidor Hyperwave y el documento fuente está situado en 'a-b-d-fuente', el enlace HTML resultante sería: <A HREF="../c/pelicula_internet">. Esto es útil cuando desea bajarse el contenido completo del servidor al disco y mapear la jerarquía de documentos en el sistema de archivos.

Esta función sólo trabajará en documentos de texto puros. No se abrirá una conexión de datos especial y por tanto bloqueará la conexión de control durante la transferencia.

Vea también hw_PipeDocument(),
         hw_FreeDocument(),
         hw_DocumentBodyTag(),
         hw_DocumentSize(),
         hw_OutputDocument().

Anterior | Inicio | Siguiente
hw_GetSrcByDestObj | Subir | hw_Username


hw_Username

(no version information, might be only in CVS)

hw_Username -- nombre del usuario actualmente conectado

Descripción

string hw_getusername ( int conexión)

Devuelve el nombre de usuario de la conexión.

Anterior | Inicio | Siguiente
hw_GetText | Subir | hw_Identify


hw_Identify

(PHP 3>= 3.0.3, PHP 4 )

hw_Identify -- identificarse como usuario

Descripción

int hw_identify ( string nombre, string clave)

Le identifica como el usuario nombre y clave. La identificación sólo es válida para la sesión actual. No pienso que esta función sea necesaria con mucha frecuancia. En muchos casos será más fácil identificarse al abrir la conexión.

Vea también hw_Connect().

Anterior | Inicio | Siguiente
hw_Username | Subir | hw_InCollections


hw_InCollections

(PHP 3>= 3.0.3, PHP 4 )

hw_InCollections -- comprueba si los id de objeto están en las colecciones

Descripción

array hw_incollections ( int conexión, array tabla_id_objeto, array tabla_id_colecciones, int colecciones_devueltas)

Comprueba si el conjunto de objetos (documentos o colecciones) especificado por el parámetro tabla_id_objeto es parte de las colecciones enumeradas en tabla_id_colecciones. Cuando el cuarto parámetro colecciones_devueltas es 0, el subconjunto de id de objeto que es parte de las colecciones (es decir, los documentos o colecciones hijos de una o más colecciones de id de colecciones o de sus subcolecciones, recursivamente) es devuelto en forma de tabla. Cuando el cuarto parámetro es 1, sin embargo, el conjunto de colecciones que tienen uno o más objetos de este subconjunto como hijos es devuelto como tabla. Esta opción permite a un cliente, p. ej., remarcar en una visualización gráfica la parte de la jerarquía de colecciones que contiene las coincidencias de una consulta previa.

Anterior | Inicio | Siguiente
hw_Identify | Subir | hw_Info


hw_Info

(PHP 3>= 3.0.3, PHP 4 )

hw_Info -- información sobre conexión

Descripción

string hw_info ( int conexión)

Devuelve información sobre la conexión actual. La cadena devuelta tiene el siguiente formato: <Cadenaservidor>, <Anfitrión>, <Puerto>, <Usuario>, <Puerto del Usuario>, <Intercambio de bytes>

Anterior | Inicio | Siguiente
hw_InCollections | Subir | hw_InsColl


hw_InsColl

(PHP 3>= 3.0.3, PHP 4 )

hw_InsColl -- insertar colección

Descripción

int hw_inscoll ( int conexión, int IDobjeto, array tabla_objetos)

Inserta una nueva colección con los atributos de la tabla_objetos en la colección cuyo ID de objeto es IDobjeto.

Anterior | Inicio | Siguiente
hw_Info | Subir | hw_InsDoc


hw_InsDoc

(PHP 3>= 3.0.3, PHP 4 )

hw_InsDoc -- insertar documento

Descripción

int hw_insdoc ( int conexión, int IDpadre, string registro_de_objeto, string texto)

Inserta un nuevo documento con los atributos del registro_de_objeto en la colección cuyo ID de objeto es IDpadre. Esta función inserta tanto un registro de objeto sólo como un registro de objeto y el texto puro en ASCII dado en texto si este es especificado. si desea insertar un documento general de cualquier tipo, utilice en su lugar hw_insertdocument().

Vea también hw_InsertDocument(), hw_InsColl().

Anterior | Inicio | Siguiente
hw_InsColl | Subir | hw_insertanchors


hw_insertanchors

(PHP 4 >= 4.0.4)

hw_insertanchors -- Inserts only anchors into text

Description

string hw_insertanchors ( int hwdoc, array anchorecs, array dest [, array urlprefixes])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
hw_InsDoc | Subir | hw_InsertDocument


hw_InsertDocument

(PHP 3>= 3.0.3, PHP 4 )

hw_InsertDocument -- subir cualquier objeto

Descripción

int hw_insertdocument ( int conexión, int id_padre, int documento_hw)

Sube un documento a la colección dada por id_padre. El documento debe ser creado antes con la función hw_NewDocument(). Asegúrese que el registro de objeto del nuevo documento contenga al menos los atributos: Type, DocumentType, Title y Name (así, en inglés). Posiblemente desee fijar también el MimeType. La función devuelve la id de objeto del nuevo documento, o FALSE.

Vea también hw_PipeDocument().

Anterior | Inicio | Siguiente
hw_insertanchors | Subir | hw_InsertObject


hw_InsertObject

(PHP 3>= 3.0.3, PHP 4 )

hw_InsertObject -- inserta un registro de objeto

Descripción

int hw_insertobject ( int conexión, string reg de objeto, string parametro)

Inserta un objeto en el servidor. Este puede consistir en cualquier objeto hyperwave válido. Vea la documentación sobre el HG-CSP si desea información detallada sobre cuáles tienen que ser los parámetros.

Nota: Si se desea insertar un enlace, el atributo Position siempre se fijará a un valor comienzo/final o a 'invisible'. Las posiciones invisibles se necesitan si la anotación no tiene enlace correspondiente en el texto anotado.

Vea también hw_PipeDocument(),
         hw_InsertDocument(),
         hw_InsDoc(),
         hw_InsColl().

Anterior | Inicio | Siguiente
hw_InsertDocument | Subir | hw_mapid


hw_mapid

(PHP 3>= 3.0.13, PHP 4 )

hw_mapid -- Mapea in id global a un id virtual local

Descripción

int hw_mapid ( int conexión, int id servidor, int id objeto)

Mapea un id de objeto global en un servidor hyperwave, incluso con aquellos a los que no se ha conectado con hw_connect(), sobre un id virtual de objeto. Este id virtual se puede utilizar como cualquier otro id de objeto, p. ej. para obtener el registro de objeto por medio de hw_getobject(). El id de servidor es la primera parte del id global de objeto (GOid) de aquel que es realmene el número IP expresado como entero.

Nota: Para usar esta función deberá activar el indicador F_DISTRIBUTED, que actualmenes sólo se puede fijar en tiempo de compilación desde hg_comm.c. Por defecto está inactivo. Lea el comentario al principio de hg_comm.c

Anterior | Inicio | Siguiente
hw_InsertObject | Subir | hw_Modifyobject


hw_Modifyobject

(PHP 3>= 3.0.7, PHP 4 )

hw_Modifyobject -- modifica el registro de objeto

Descripción

int hw_modifyobject ( int conexión, int objeto_a_cambiar, array eliminar, array añadir, int modo)

Este comando permite eliminar, añadir, o modificar atributos individuales de un registro de objeto. El objeto está especificado por el ID de objeto objeto_a_cambiar. La primera tabla, eliminar, es la lista de atributos a eliminar. La segunda tabla, añadir, es la lista de atributos a añadir. Para modificar un atributo, hay que borrar el antiguo y añadir uno nuevo. hw_modifyobject() siempre eliminará los atributos antes de añadir los nuevos excepto si el valor del atributo a eliminar no es una cadena o una tabla.

El último parámetro determina si la modificación se realiza de manera recursiva. 1 quiere decir que sea recursiva. Si alguno de los objetos no se puede modificar, será ignorado sin avisar. Incluso hw_error() podría no indicar un error aunque alguno de los objetos no pueda ser modificado.

Las claves de ambas tablas son los nombres de los atributos. El valor de cada elemento de la tabla puede ser una tabla, una cadena o cualquier otra cosa. Si es una tabla, cada valor de atributo se construye como la clave de cada elemento más dos puntos y el valor de cada elemento. Si es una cadena se toma como valor del atributo. Una cadena vacía producirá la supresión completa del atributo. Si el valor no es ni cadena ni tabla, sino otra cosa, p. ej. un entero, no se realizará operación alguna en el atributo. Esto es necesario se desea añadir un atributo completamente nuevo, no solamente un nuevo valor para un atributo existente. Si la tabla eliminar contuviera una cadena vacía para dicho atributo, este se intentaría suprimir, lo que fallaría porque este no existe. La siguiente adición de un nuevo valor para dicho atributo también fallará. Fijando el valor para dicho atributo p. ej. a 0 hará que ni siquiera se intente eliminar, pero funcionará la adición del mismo.

Si desea cambiar el atributo 'Nombre' con el valor actual 'libros' por el de 'artículos' deberá crear dos tablas y llamar a hw_modifyobject().

Ejemplo 1. modificando un atributo

// $conexion es una conexión con el servidor Hyperwave
       // $idobj es la ID del objeto a modificar
       $tablasupr = array("Nombre" => "libros");
       $tablaanad = array("Nombre" => "artículos");
       $hw_modifyobject($conexion, $idobj, $tablasupr, $tablaanad);
Para borrar/añadir un par nombre=valor de/a el registro de objeto, simplemente pase la tabla eliminar/añadir y fije el último/tercer parámetro a tabla vacía. Si el atributo es el primero con dicho nombre que se añade, fije el valor del atributo en la tabla eliminar a un valor entero.

Ejemplo 2. añadiendo un atributo completamente nuevo

// $conexion es una conexión con el servidor Hyperwave
       // $idobj es la ID del objeto a modificar
       $tablasupr = array("Nombre" => 0);
       $tablaanad = array("Nombre" => "artículos");
       $hw_modifyobject($conexion, $idobj, $tablasupr, $tablaanad);

Nota: Los atributos plurilingües, p. ej. 'Título', se pueden modificar de dos maneras. O bien proporcionando los valores de los atributos en su forma nativa 'lenguaje':'título', bien proporcionando una tabla con los elementos para cada lenguaje según se describe más arriba. El ejemplo anterior podría quedar entonces:

Ejemplo 3. modificando el atributo Título

$tablasupr = array("Título" => "es:Libros");
       $tablaanad = array("Título" => "es:Artículos");
       $hw_modifyobject($conexion, $idobj, $tablasupr, $tablaanad);
o

Ejemplo 4. modificando el atributo Título

$tablasupr = array("Título" => array("es" => "Libros"));
       $tablaanad = array("Título" => array("es" => "Artículos", "ge"=>"Artikel"));
       $hw_modifyobject($conexion, $idobj, $tablasupr, $tablaanad);
Esto elimina el título español 'Libros' y añade el título español 'Artículos' y el título alemán 'Artikel'.

Ejemplo 5. eliminando atributos

$tablasupr = array("Título" => "");
       $tablaanad = array("Tñitulo" => "es:Artículos");
       $hw_modifyobject($conexion, $idobj, $tablasupr, $tablaanad);

Nota: Esto eliminará todos los atributos con el nombre 'Título' y añadirá un nuevo atributo 'Título'. Esto es útil cuando se desea eliminar atributos de forma recursiva.

Nota: Si necesita eliminar todos los atributos con un cierto nombre tendrá que pasar una cadena vacía como el valor del atributo.

Nota: Sólo los atributos 'Title', 'Description' y 'Keyword' (así, en inglés) manejarán de forma apropiada el prefijo de idioma. Si estos atributos no llevaran prefijo de idioma, se les asignariá el prefijo 'xx'.

Nota: El atributo 'Name' es bastante especial. En algunos casos no puede ser completamente eliminado. Obtendrá un mensaje de error 'Change of base attribute' ('Cambio de atributo base', no está muy claro cuando ocurre). Por tanto, tendrá siempre que añadir un nuevo atributo Name primero y luego eliminar el anterior.

Nota: No debe rodear esta función de llamadas a hw_getandlock() ni a hw_unlock(). hw_modifyobject() ya lo hace internamente.

Devuelve TRUE si no hay error o FALSE en caso contrario.

Anterior | Inicio | Siguiente
hw_mapid | Subir | hw_Mv


hw_Mv

(PHP 3>= 3.0.3, PHP 4 )

hw_Mv -- mueve objetos

Descripción

int hw_mv ( int conexión, array tabla de id de objeto, int id origen, int id destino)

Mueve los objetos cuyas id se especifican en el segundo parámetro desde la colección con id id origen hasta la colección con el id id destino. Si el id de destino es 0, los objetos serán disociados de la colección origen. Si esta fuese la última instancia del objeto, este sería borrado. Si desea borrar todas las instancias de una vez, utilice hw_deleteobject().

El valor devuelto es el número de objetos movidos.

Vea también hw_cp(), hw_deleteobject().

Anterior | Inicio | Siguiente
hw_Modifyobject | Subir | hw_New_Document


hw_New_Document

(PHP 3>= 3.0.3, PHP 4 )

hw_New_Document -- crear nuevo documento

Descripción

int hw_new_document ( string registro_de_objeto, string datos_documento, int tama_documento)

Devuelve un nuevo documento Hyperwave en el que los datos del documento están fijados a datos_documento y el registro de objeto a registro_de_objeto. La longitud de los datos_documento debe pasarse en tama_documento. Esta función no inserta el documento en el servidor Hyperwave.

Vea también hw_FreeDocument(),
         hw_DocumentSize(),
         hw_DocumentBodyTag(),
         hw_OutputDocument(),
         hw_InsertDocument().

Anterior | Inicio | Siguiente
hw_Mv | Subir | hw_Objrec2Array


hw_Objrec2Array

(PHP 3>= 3.0.3, PHP 4 )

hw_Objrec2Array -- convierte atributos de registro de objeto a tabla de objetos

Descripción

array hw_objrec2array ( string registro_de_objeto)

Convierte un registro_de_objeto en una tabla de objetos. Las claves de la tabla resultante son los nombres de los atributos. Los atributos múltiples como 'Título' en distintos idiomas forman su propia tabla. Las claves de esta tabla son las partes a la izquierda de los dos puntos del valor del atributo. Actualmente, sólo los atributos 'Title', 'Description' y 'Keyword' (así, en inglés) son correctamente tratados. Otros atributos múltiples generan una tabla indizada. Actualmente, sólo el atributo 'Group' es tratado correctamente.

Vea también hw_array2objrec().

Anterior | Inicio | Siguiente
hw_New_Document | Subir | hw_Output_Document


hw_Output_Document

(PHP 3>= 3.0.3, PHP 4 )

hw_Output_Document -- prints hw_document

Description

int hw_output_document ( int hw_document)

Prints the document without the BODY tag.

For backward compatibility, hw_outputdocument() is also accepted. This is deprecated, however.

Anterior | Inicio | Siguiente
hw_Objrec2Array | Subir | hw_pConnect


hw_pConnect

(PHP 3>= 3.0.3, PHP 4 )

hw_pConnect -- hacer una conexión de base de datos permanente

Descripción

int hw_pconnect ( string servidor, int puerto, string usuario, string clave)

Devuelve un índice de conexión si hay éxito, o FALSE si la conexión no puede hacerse. Abre una conexión permanente a un servidor Hyperwave. Cada uno de los argumentos debe ser una cadena entrecomillada excepto el número de puerto. El argumento usuario y la clave son opcionales y pueden omitirse. En tal caso no se realizará ninguna identificación con el servidor. Es similar a la identificación anónima del usuario. Esta función devuelve un índice de conexión que se necesita para otras funciones de Hyperwave. Se pueden tener varias conexiones permanentes abiertas a la vez.

Vea también hw_Connect().

Anterior | Inicio | Siguiente
hw_Output_Document | Subir | hw_PipeDocument


hw_PipeDocument

(PHP 3>= 3.0.3, PHP 4 )

hw_PipeDocument -- recupera cualquier documento

Descripción

int hw_pipedocument ( int conexión, int IDobjeto)

Devuelve el documento Hyperwave cuyo ID de objeto es IDobjeto. Si el documento tiene enlaces que pueden ser insertados, deberán haberse insertado ya. El documento será transferido a través de una conexión de datos especial que no bloquea la conexión de control.

Vea también hw_GetText() para saber más sobre
        inserción de enlaces,
         hw_FreeDocument(),
         hw_DocumentSize(),
         hw_DocumentBodyTag(),
         hw_OutputDocument().

Anterior | Inicio | Siguiente
hw_pConnect | Subir | hw_Root


hw_Root

(PHP 3>= 3.0.3, PHP 4 )

hw_Root -- ID del objeto raíz

Descripción

int hw_root ( )

Devuelve la ID de objeto de la colección hiper-raíz. Actualmente siempre vale 0. La colección hija de la hiper-raíz es la colección raíz del servidor al que se ha conectado.

Anterior | Inicio | Siguiente
hw_PipeDocument | Subir | hw_setlinkroot


hw_setlinkroot

(PHP 3>= 3.0.3, PHP 4 )

hw_setlinkroot -- Set the id to which links are calculated

Description

void hw_setlinkroot ( int link, int rootid)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
hw_Root | Subir | hw_stat


hw_stat

(PHP 3>= 3.0.3, PHP 4 )

hw_stat -- Returns status string

Description

string hw_stat ( int link)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
hw_setlinkroot | Subir | hw_Unlock


hw_Unlock

(PHP 3>= 3.0.3, PHP 4 )

hw_Unlock -- desbloquea objeto

Descripción

int hw_unlock ( int conexión, int IDobjeto)

Desbloquea un documento para que otros usuarios puedan acceder al mismo de nuevo.

Vea también hw_GetAndLock().

Anterior | Inicio | Siguiente
hw_stat | Subir | hw_Who


hw_Who

(PHP 3>= 3.0.3, PHP 4 )

hw_Who -- Lista de los usuarios actualmente conectados

Descripción

int hw_who ( int conexión)

Devuelve una tabla de los usuarios actualmente conectados al servidor Hyperwave. Cada elemento de esta tabla contiene en sí mismo los elementos ID, nombre, sistema, onSinceDate (conectadoDesdeFecha), onSinceTime (conectadoDesdeHora), TotalTime (TiempoTotal) y self (propio). 'self' es 1 si esta línea corresponde al usuario que realizó la petición.

Anterior | Inicio | Siguiente
hw_Unlock | Subir | Hyperwave API functions


Hyperwave API functions

Manual de PHP
Anterior Siguiente

XXXIX. Hyperwave API functions

Introducción

Hyperwave has been developed at IICM in Graz. It started with the name Hyper-G and changed to Hyperwave when it was commercialised (in 1996).

Hyperwave is not free software. The current version, 5.5, is available at http://www.hyperwave.com/. A time limited version can be ordered for free (30 days).

See also the Hyperwave module.

Hyperwave is an information system similar to a database (HIS, Hyperwave Information Server). Its focus is the storage and management of documents. A document can be any possible piece of data that may as well be stored in file. Each document is accompanied by its object record. The object record contains meta data for the document. The meta data is a list of attributes which can be extended by the user. Certain attributes are always set by the Hyperwave server, other may be modified by the user.

Requerimientos

Since 2001 there is a Hyperwave SDK available. It supports Java, JavaScript and C++. This PHP Extension is based on the C++ interface. In order to activate the hwapi support in PHP you will have to install the Hyperwave SDK first.

Instalación

After installing the Hyperwave SDK, configure PHP with --with-hwapi[=DIR].

Integration with Apache

The integration with Apache and possible other servers is already described in the Hyperwave module which has been the first extension to connect a Hyperwave Server.

Configuración en tiempo de ejecución

El comportamiento de estas funciones está afectado por los valores definidos en php.ini.

Tabla 1. Hyperwave API configuration options

Name | Default | Changeable
hwapi.allow_persistent | "0" | PHP_INI_SYSTEM
For further details and definition of the PHP_INI_* constants see ini_set().

Tipos de recursos

Esta extensión no tiene ningún tipo de recurso definido.

Constantes predefinidas

Esta extensión no tiene ninguna constante definida.

Classes

The API provided by the HW_API extension is fully object oriented. It is very similar to the C++ interface of the Hyperwave SDK. It consist of the following classes.

  • HW_API

  • HW_API_Object

  • HW_API_Attribute

  • HW_API_Error

  • HW_API_Content

  • HW_API_Reason

Some basic classes like HW_API_String, HW_API_String_Array, etc., which exist in the Hyperwave SDK have not been implemented since PHP has powerful replacements for them.

Each class has certain method, whose names are identical to its counterparts in the Hyperwave SDK. Passing arguments to this function differs from all the other PHP extensions but is close to the C++ API of the HW SDK. Instead of passing serval parameters they are all put into an associated array and passed as one paramter. The names of the keys are identical to those documented in the HW SDK. The common parameters are listed below. If other parameters are required they will be documented if needed.

  • objectIdentifier The name or id of an object, e.g. "rootcollection", "0x873A8768 0x00000002".

  • parentIdentifier The name or id of an object which is considered to be a parent.

  • object An instance of class HW_API_Object.

  • parameters An instance of class HW_API_Object.

  • version The version of an object.

  • mode An integer value determine the way an operation is executed.

  • attributeSelector Any array of strings, each containing a name of an attribute. This is used if you retrieve the object record and want to include certain attributes.

  • objectQuery A query to select certain object out of a list of objects. This is used to reduce the number of objects which was delivered by a function like hw_api->children() or hw_api->find().

Tabla de contenidos
hw_api_attribute->key -- Returns key of the attribute
hw_api_attribute->langdepvalue -- Returns value for a given language
hw_api_attribute->value -- Returns value of the attribute
hw_api_attribute->values -- Returns all values of the attribute
hw_api_attribute -- Creates instance of class hw_api_attribute
hw_api->checkin -- Checks in an object
hw_api->checkout -- Checks out an object
hw_api->children -- Returns children of an object
hw_api_content->mimetype -- Returns mimetype
hw_api_content->read -- Read content
hw_api->content -- Returns content of an object
hw_api->copy -- Copies physically
hw_api->dbstat -- Returns statistics about database server
hw_api->dcstat -- Returns statistics about document cache server
hw_api->dstanchors -- Returns a list of all destination anchors
hw_api->dstofsrcanchors -- Returns destination of a source anchor
hw_api_error->count -- Returns number of reasons
hw_api_error->reason -- Returns reason of error
hw_api->find -- Search for objects
hw_api->ftstat -- Returns statistics about fulltext server
hwapi_hgcsp -- Returns object of class hw_api
hw_api->hwstat -- Returns statistics about Hyperwave server
hw_api->identify -- Log into Hyperwave Server
hw_api->info -- Returns information about server configuration
hw_api->insert -- Inserts a new object
hw_api->insertanchor -- Inserts a new object of type anchor
hw_api->insertcollection -- Inserts a new object of type collection
hw_api->insertdocument -- Inserts a new object of type document
hw_api->link -- Creates a link to an object
hw_api->lock -- Locks an object
hw_api->move -- Moves object between collections
hw_api_content -- Create new instance of class hw_api_content
hw_api_object->assign -- Clones object
hw_api_object->attreditable -- Checks whether an attribute is editable
hw_api_object->count -- Returns number of attributes
hw_api_object->insert -- Inserts new attribute
hw_api_object -- Creates a new instance of class hw_api_object
hw_api_object->remove -- Removes attribute
hw_api_object->title -- Returns the title attribute
hw_api_object->value -- Returns value of attribute
hw_api->object -- Retrieve attribute information
hw_api->objectbyanchor -- Returns the object an anchor belongs to
hw_api->parents -- Returns parents of an object
hw_api_reason->description -- Returns description of reason
hw_api_reason->type -- Returns type of reason
hw_api->remove -- Delete an object
hw_api->replace -- Replaces an object
hw_api->setcommitedversion -- Commits version other than last version
hw_api->srcanchors -- Returns a list of all source anchors
hw_api->srcsofdst -- Returns source of a destination object
hw_api->unlock -- Unlocks a locked object
hw_api->user -- Returns the own user object
hw_api->userlist -- Returns a list of all logged in users

Anterior | Inicio | Siguiente
hw_Who | Subir | hw_api_attribute->key


hw_api_attribute->key

(no version information, might be only in CVS)

hw_api_attribute->key -- Returns key of the attribute

Description

string key ( void )

Returns the name of the attribute.

See also hwapi_attribute_value().

Anterior | Inicio | Siguiente
Hyperwave API functions | Subir | hw_api_attribute->langdepvalue


hw_api_attribute->langdepvalue

(no version information, might be only in CVS)

hw_api_attribute->langdepvalue -- Returns value for a given language

Description

string langdepvalue ( string language)

Returns the value in the given language of the attribute.

See also hwapi_attribute_value().

Anterior | Inicio | Siguiente
hw_api_attribute->key | Subir | hw_api_attribute->value


hw_api_attribute->value

(no version information, might be only in CVS)

hw_api_attribute->value -- Returns value of the attribute

Description

string value ( void )

Returns the value of the attribute.

See also hwapi_attribute_key(), hwapi_attribute_values().

Anterior | Inicio | Siguiente
hw_api_attribute->langdepvalue | Subir | hw_api_attribute->values


hw_api_attribute->values

(no version information, might be only in CVS)

hw_api_attribute->values -- Returns all values of the attribute

Description

array values ( void )

Returns all values of the attribute as an array of strings.

See also hwapi_attribute_value().

Anterior | Inicio | Siguiente
hw_api_attribute->value | Subir | hw_api_attribute


hw_api_attribute

(no version information, might be only in CVS)

hw_api_attribute -- Creates instance of class hw_api_attribute

Description

object attribute ( [string name [, string value]])

Creates a new instance of hw_api_attribute with the given name and value.

Anterior | Inicio | Siguiente
hw_api_attribute->values | Subir | hw_api->checkin


hw_api->checkin

(no version information, might be only in CVS)

hw_api->checkin -- Checks in an object

Description

object checkin ( array parameter)

This function checks in an object or a whole hiearchie of objects. The parameters array contains the required element 'objectIdentifier' and the optional element 'version', 'comment', 'mode' and 'objectQuery'. 'version' sets the version of the object. It consists of the major and minor version separated by a period. If the version is not set, the minor version is incremented. 'mode' can be one of the following values:

HW_API_CHECKIN_NORMAL

Checks in and commits the object. The object must be a document.

HW_API_CHECKIN_RECURSIVE

If the object to check in is a collection, all children will be checked in recursively if they are documents. Trying to check in a collection would result in an error.

HW_API_CHECKIN_FORCE_VERSION_CONTROL

Checks in an object even if it is not under version control.

HW_API_CHECKIN_REVERT_IF_NOT_CHANGED

Check if the new version is different from the last version. Unless this is the case the object will be checked in.

HW_API_CHECKIN_KEEP_TIME_MODIFIED

Keeps the time modified from the most recent object.

HW_API_CHECKIN_NO_AUTO_COMMIT

The object is not automatically commited on checkin.

See also hwapi_checkout().

Anterior | Inicio | Siguiente
hw_api_attribute | Subir | hw_api->checkout


hw_api->checkout

(no version information, might be only in CVS)

hw_api->checkout -- Checks out an object

Description

object checkout ( array parameter)

This function checks out an object or a whole hiearchie of objects. The parameters array contains the required element 'objectIdentifier' and the optional element 'version', 'mode' and 'objectQuery'. 'mode' can be one of the following values:

HW_API_CHECKIN_NORMAL

Checks out an object. The object must be a document.

HW_API_CHECKIN_RECURSIVE

If the object to check out is a collection, all children will be checked out recursively if they are documents. Trying to check out a collection would result in an error.

See also hwapi_checkin().

Anterior | Inicio | Siguiente
hw_api->checkin | Subir | hw_api->children


hw_api->children

(no version information, might be only in CVS)

hw_api->children -- Returns children of an object

Description

array children ( array parameter)

Retrieves the children of a collection or the attributes of a document. The children can be further filtered by specifying an object query. The parameter array contains the required elements 'objectIdentifier' and the optional elements 'attributeSelector' and 'objectQuery'.

The return value is an array of objects of type HW_API_Object or HW_API_Error.

See also hwapi_parents().

Anterior | Inicio | Siguiente
hw_api->checkout | Subir | hw_api_content->mimetype


hw_api_content->mimetype

(no version information, might be only in CVS)

hw_api_content->mimetype -- Returns mimetype

Description

string mimetype ( void )

Returns the mimetype of the content.

Anterior | Inicio | Siguiente
hw_api->children | Subir | hw_api_content->read


hw_api_content->read

(no version information, might be only in CVS)

hw_api_content->read -- Read content

Description

string read ( string buffer, integer len)

Reads len bytes from the content into the given buffer.

Anterior | Inicio | Siguiente
hw_api_content->mimetype | Subir | hw_api->content


hw_api->content

(no version information, might be only in CVS)

hw_api->content -- Returns content of an object

Description

object content ( array parameter)

This function returns the content of a document as an object of type hw_api_content. The parameter array contains the required elements 'objectidentifier' and the optional element 'mode'. The mode can be one of the constants HW_API_CONTENT_ALLLINKS, HW_API_CONTENT_REACHABLELINKS or HW_API_CONTENT_PLAIN. HW_API_CONTENT_ALLLINKS means to insert all anchors even if the destination is not reachable. HW_API_CONTENT_REACHABLELINKS tells hw_api_content() to insert only reachable links and HW_API_CONTENT_PLAIN will lead to document without any links.

Anterior | Inicio | Siguiente
hw_api_content->read | Subir | hw_api->copy


hw_api->copy

(no version information, might be only in CVS)

hw_api->copy -- Copies physically

Description

object copy ( array parameter)

This function will make a physical copy including the content if it exists and returns the new object or an error object. The parameter array contains the required elements 'objectIdentifier' and 'destinationParentIdentifier'. The optional parameter is 'attributeSelector'`

See also hwapi_move(), hwapi_link().

Anterior | Inicio | Siguiente
hw_api->content | Subir | hw_api->dbstat


hw_api->dbstat

(no version information, might be only in CVS)

hw_api->dbstat -- Returns statistics about database server

Description

object dbstat ( array parameter)

See also hwapi_dcstat(),
         hwapi_hwstat(),
         hwapi_ftstat().

Anterior | Inicio | Siguiente
hw_api->copy | Subir | hw_api->dcstat


hw_api->dcstat

(no version information, might be only in CVS)

hw_api->dcstat -- Returns statistics about document cache server

Description

object dcstat ( array parameter)

See also hwapi_hwstat(),
         hwapi_dbstat(),
         hwapi_ftstat().

Anterior | Inicio | Siguiente
hw_api->dbstat | Subir | hw_api->dstanchors


hw_api->dstanchors

(no version information, might be only in CVS)

hw_api->dstanchors -- Returns a list of all destination anchors

Description

object dstanchors ( array parameter)

Retrieves all destination anchors of an object. The parameter array contains the required element 'objectIdentifier' and the optional elements 'attributeSelector' and 'objectQuery'.

See also hwapi_srcanchors().

Anterior | Inicio | Siguiente
hw_api->dcstat | Subir | hw_api->dstofsrcanchors


hw_api->dstofsrcanchors

(no version information, might be only in CVS)

hw_api->dstofsrcanchors -- Returns destination of a source anchor

Description

object dstofsrcanchors ( array parameter)

Retrieves the destination object pointed by the specified source anchors. The destination object can either be a destination anchor or a whole document. The parameters array contains the required element 'objectIdentifier' and the optional element 'attributeSelector'.

See also hwapi_srcanchors(),
         hwapi_dstanchors(),
         hwapi_objectbyanchor().

Anterior | Inicio | Siguiente
hw_api->dstanchors | Subir | hw_api_error->count


hw_api_error->count

(no version information, might be only in CVS)

hw_api_error->count -- Returns number of reasons

Description

int count ( void )

Returns the number of error reasons.

See also hwapi_error_reason().

Anterior | Inicio | Siguiente
hw_api->dstofsrcanchors | Subir | hw_api_error->reason


hw_api_error->reason

(no version information, might be only in CVS)

hw_api_error->reason -- Returns reason of error

Description

object reason ( void )

Returns the first error reason.

See also hwapi_error_count().

Anterior | Inicio | Siguiente
hw_api_error->count | Subir | hw_api->find


hw_api->find

(no version information, might be only in CVS)

hw_api->find -- Search for objects

Description

array find ( array parameter)

This functions searches for objects either by executing a key or/and full text query. The found objects can further be filtered by an optional object query. They are sorted by their importance. The second search operation is relatively slow and its result can be limited to a certain number of hits. This allows to perform an incremental search, each returning just a subset of all found documents, starting at a given index. The parameter array contains the 'keyquery' or/and 'fulltextquery' depending on who you would like to search. Optional parameters are 'objectquery', 'scope', 'languages' and 'attributeselector'. In case of an incremental search the optional parameters 'startIndex', numberOfObjectsToGet' and 'exactMatchUnit' can be passed.

Anterior | Inicio | Siguiente
hw_api_error->reason | Subir | hw_api->ftstat


hw_api->ftstat

(no version information, might be only in CVS)

hw_api->ftstat -- Returns statistics about fulltext server

Description

object ftstat ( array parameter)

See also hwapi_dcstat(),
         hwapi_dbstat(),
         hwapi_hwstat().

Anterior | Inicio | Siguiente
hw_api->find | Subir | hwapi_hgcsp


hwapi_hgcsp

(no version information, might be only in CVS)

hwapi_hgcsp -- Returns object of class hw_api

Description

object hwapi_hgcsp ( string hostname [, int port])

Opens a connection to the Hyperwave server on host hostname. The protocol used is HGCSP. If you do not pass a port number, 418 is used.

See also hwapi_hwtp().

Anterior | Inicio | Siguiente
hw_api->ftstat | Subir | hw_api->hwstat


hw_api->hwstat

(no version information, might be only in CVS)

hw_api->hwstat -- Returns statistics about Hyperwave server

Description

object hwstat ( array parameter)

See also hwapi_dcstat(),
         hwapi_dbstat(),
         hwapi_ftstat().

Anterior | Inicio | Siguiente
hwapi_hgcsp | Subir | hw_api->identify


hw_api->identify

(no version information, might be only in CVS)

hw_api->identify -- Log into Hyperwave Server

Description

object identify ( array parameter)

Logs into the Hyperwave Server. The parameter array must contain the elements 'username' und 'password'.

The return value will be an object of type HW_API_Error if identification failed or TRUE if it was successful.

Anterior | Inicio | Siguiente
hw_api->hwstat | Subir | hw_api->info


hw_api->info

(no version information, might be only in CVS)

hw_api->info -- Returns information about server configuration

Description

object info ( array parameter)

See also hwapi_dcstat(),
         hwapi_dbstat(),
         hwapi_ftstat(),
         hwapi_hwstat().

Anterior | Inicio | Siguiente
hw_api->identify | Subir | hw_api->insert


hw_api->insert

(no version information, might be only in CVS)

hw_api->insert -- Inserts a new object

Description

object insert ( array parameter)

Insert a new object. The object type can be user, group, document or anchor. Depending on the type other object attributes has to be set. The parameter array contains the required elements 'object' and 'content' (if the object is a document) and the optional parameters 'parameters', 'mode' and 'attributeSelector'. The 'object' must contain all attributes of the object. 'parameters' is an object as well holding further attributes like the destination (attribute key is 'Parent'). 'content' is the content of the document. 'mode' can be a combination of the following flags:

HW_API_INSERT_NORMAL

The object in inserted into the server.

HW_API_INSERT_FORCE_VERSION_CONTROL

HW_API_INSERT_AUTOMATIC_CHECKOUT

HW_API_INSERT_PLAIN

HW_API_INSERT_KEEP_TIME_MODIFIED

HW_API_INSERT_DELAY_INDEXING

See also hwapi_replace().

Anterior | Inicio | Siguiente
hw_api->info | Subir | hw_api->insertanchor


hw_api->insertanchor

(no version information, might be only in CVS)

hw_api->insertanchor -- Inserts a new object of type anchor

Description

object insertanchor ( array parameter)

This function is a shortcut for hwapi_insert(). It inserts an object of type anchor and sets some of the attributes required for an anchor. The parameter array contains the required elements 'object' and 'documentIdentifier' and the optional elements 'destinationIdentifier', 'parameter', 'hint' and 'attributeSelector'. The 'documentIdentifier' specifies the document where the anchor shall be inserted. The target of the anchor is set in 'destinationIdentifier' if it already exists. If the target does not exists the element 'hint' has to be set to the name of object which is supposed to be inserted later. Once it is inserted the anchor target is resolved automatically.

See also hwapi_insertdocument(),
         hwapi_insertcollection(),
         hwapi_insert().

Anterior | Inicio | Siguiente
hw_api->insert | Subir | hw_api->insertcollection


hw_api->insertcollection

(no version information, might be only in CVS)

hw_api->insertcollection -- Inserts a new object of type collection

Description

object insertcollection ( array parameter)

This function is a shortcut for hwapi_insert(). It inserts an object of type collection and sets some of the attributes required for a collection. The parameter array contains the required elements 'object' and 'parentIdentifier' and the optional elements 'parameter' and 'attributeSelector'. See hwapi_insert() for the meaning of each element.

See also hwapi_insertdocument(),
         hwapi_insertanchor(),
         hwapi_insert().

Anterior | Inicio | Siguiente
hw_api->insertanchor | Subir | hw_api->insertdocument


hw_api->insertdocument

(no version information, might be only in CVS)

hw_api->insertdocument -- Inserts a new object of type document

Description

object insertdocument ( array parameter)

This function is a shortcut for hwapi_insert(). It inserts an object with content and sets some of the attributes required for a document. The parameter array contains the required elements 'object', 'parentIdentifier' and 'content' and the optional elements 'mode', 'parameter' and 'attributeSelector'. See hwapi_insert() for the meaning of each element.

See also hwapi_insert()
         hwapi_insertanchor(),
         hwapi_insertcollection().

Anterior | Inicio | Siguiente
hw_api->insertcollection | Subir | hw_api->link


hw_api->link

(no version information, might be only in CVS)

hw_api->link -- Creates a link to an object

Description

object link ( array parameter)

Creates a link to an object. Accessing this link is like accessing the object to links points to. The parameter array contains the required elements 'objectIdentifier' and 'destinationParentIdentifier'. 'destinationParentIdentifier' is the target collection.

The function returns TRUE on success or an error object.

See also hwapi_copy().

Anterior | Inicio | Siguiente
hw_api->insertdocument | Subir | hw_api->lock


hw_api->lock

(no version information, might be only in CVS)

hw_api->lock -- Locks an object

Description

object lock ( array parameter)

Locks an object for exclusive editing by the user calling this function. The object can be only unlocked by this user or the system user. The parameter array contains the required element 'objectIdentifier' and the optional parameters 'mode' and 'objectquery'. 'mode' determines how an object is locked. HW_API_LOCK_NORMAL means, an object is locked until it is unlocked. HW_API_LOCK_RECURSIVE is only valid for collection and locks all objects within th collection und possible subcollections. HW_API_LOCK_SESSION means, an object is locked only as long as the session is valid.

See also hwapi_unlock().

Anterior | Inicio | Siguiente
hw_api->link | Subir | hw_api->move


hw_api->move

(no version information, might be only in CVS)

hw_api->move -- Moves object between collections

Description

object move ( array parameter)

See also hw_objrec2array().

Anterior | Inicio | Siguiente
hw_api->lock | Subir | hw_api_content


hw_api_content

(no version information, might be only in CVS)

hw_api_content -- Create new instance of class hw_api_content

Description

string content ( string content, string mimetype)

Creates a new content object from the string content. The mimetype is set to mimetype.

Anterior | Inicio | Siguiente
hw_api->move | Subir | hw_api_object->assign


hw_api_object->assign

(no version information, might be only in CVS)

hw_api_object->assign -- Clones object

Description

object assign ( array parameter)

Clones the attributes of an object.

Anterior | Inicio | Siguiente
hw_api_content | Subir | hw_api_object->attreditable


hw_api_object->attreditable

(no version information, might be only in CVS)

hw_api_object->attreditable -- Checks whether an attribute is editable

Description

bool attreditable ( array parameter)

Anterior | Inicio | Siguiente
hw_api_object->assign | Subir | hw_api_object->count


hw_api_object->count

(no version information, might be only in CVS)

hw_api_object->count -- Returns number of attributes

Description

int count ( array parameter)

Anterior | Inicio | Siguiente
hw_api_object->attreditable | Subir | hw_api_object->insert


hw_api_object->insert

(no version information, might be only in CVS)

hw_api_object->insert -- Inserts new attribute

Description

bool insert ( object attribute)

Adds an attribute to the object. Returns TRUE on success and otherwise FALSE.

See also hwapi_object_remove().

Anterior | Inicio | Siguiente
hw_api_object->count | Subir | hw_api_object


hw_api_object

(no version information, might be only in CVS)

hw_api_object -- Creates a new instance of class hw_api_object

Description

object hw_api_object ( array parameter)

See also hwapi_lock().

Anterior | Inicio | Siguiente
hw_api_object->insert | Subir | hw_api_object->remove


hw_api_object->remove

(no version information, might be only in CVS)

hw_api_object->remove -- Removes attribute

Description

bool remove ( string name)

Removes the attribute with the given name. Returns TRUE on success and otherwise FALSE.

See also hwapi_object_insert().

Anterior | Inicio | Siguiente
hw_api_object | Subir | hw_api_object->title


hw_api_object->title

(no version information, might be only in CVS)

hw_api_object->title -- Returns the title attribute

Description

string title ( array parameter)

Anterior | Inicio | Siguiente
hw_api_object->remove | Subir | hw_api_object->value


hw_api_object->value

(no version information, might be only in CVS)

hw_api_object->value -- Returns value of attribute

Description

string value ( string name)

Returns the value of the attribute with the given name or FALSE if an error occured.

Anterior | Inicio | Siguiente
hw_api_object->title | Subir | hw_api->object


hw_api->object

(no version information, might be only in CVS)

hw_api->object -- Retrieve attribute information

Description

object hw_api->object ( array parameter)

This function retrieves the attribute information of an object of any version. It will not return the document content. The parameter array contains the required elements 'objectIdentifier' and the optional elements 'attributeSelector' and 'version'.

The returned object is an instance of class HW_API_Object on success or HW_API_Error if an error occured.

This simple example retrieves an object and checks for errors.

Ejemplo 1. Retrieve an object

<?php
function handle_error($error) {
  $reason = $error->reason(0);
  echo "Type: <B>";
  switch($reason->type()) {
    case 0:
      echo "Error";
      break;
    case 1:
      echo "Warning";
      break;
    case 2:
      echo "Message";
      break;
  }
  echo "</B><BR>\n";
  echo "Description: ".$reason->description("en")."<BR>\n";
}

function list_attr($obj) {
  echo "<TABLE>\n";
  $count = $obj->count();
  for($i=0; $i<$count; $i++) {
    $attr = $obj->attribute($i);
    printf("  <TR><TD ALIGN=right bgcolor=#c0c0c0><B>%s</B></TD><TD bgcolor=#F0F0F0>%s</TD>\n",
             $attr->key(), $attr->value());
  }
  echo "</TABLE>\n";
}

$hwapi = hwapi_hgcsp($g_config[HOSTNAME]);
$parms = array("objectIdentifier"=>"rootcollection", "attributeSelector"=>array("Title", "Name", "DocumentType"));
$root = $hwapi->object($parms);
if(get_class($root) == "HW_API_Error") {
  handle_error($root);
  exit;
}
list_attr($root);
?>

See also hwapi_content().

Anterior | Inicio | Siguiente
hw_api_object->value | Subir | hw_api->objectbyanchor


hw_api->objectbyanchor

(no version information, might be only in CVS)

hw_api->objectbyanchor -- Returns the object an anchor belongs to

Description

object objectbyanchor ( array parameter)

This function retrieves an object the specified anchor belongs to. The parameter array contains the required element 'objectIdentifier' and the optional element 'attributeSelector'.

See also hwapi_dstofsrcanchor(),
         hwapi_srcanchors(),
         hwapi_dstanchors().

Anterior | Inicio | Siguiente
hw_api->object | Subir | hw_api->parents


hw_api->parents

(no version information, might be only in CVS)

hw_api->parents -- Returns parents of an object

Description

array parents ( array parameter)

Retrieves the parents of an object. The parents can be further filtered by specifying an object query. The parameter array contains the required elements 'objectidentifier' and the optional elements 'attributeselector' and 'objectquery'.

The return value is an array of objects of type HW_API_Object or HW_API_Error.

See also hwapi_children().

Anterior | Inicio | Siguiente
hw_api->objectbyanchor | Subir | hw_api_reason->description


hw_api_reason->description

(no version information, might be only in CVS)

hw_api_reason->description -- Returns description of reason

Description

string description ( void )

Returns the description of a reason

Anterior | Inicio | Siguiente
hw_api->parents | Subir | hw_api_reason->type


hw_api_reason->type

(no version information, might be only in CVS)

hw_api_reason->type -- Returns type of reason

Description

object type ( void )

Returns the type of a reason.

Anterior | Inicio | Siguiente
hw_api_reason->description | Subir | hw_api->remove


hw_api->remove

(no version information, might be only in CVS)

hw_api->remove -- Delete an object

Description

object remove ( array parameter)

Removes an object from the specified parent. Collections will be removed recursively. You can pass an optional object query to remove only those objects which match the query. An object will be deleted physically if it is the last instance. The parameter array contains the required elements 'objectidentifier' and 'parentidentifier'. If you want to remove a user or group 'parentidentifier' can be skiped. The optional parameter 'mode' determines how the deletion is performed. In normal mode the object will not be removed physically until all instances are removed. In physical mode all instances of the object will be deleted imediately. In removelinks mode all references to and from the objects will be deleted as well. In nonrecursive the deletion is not performed recursive. Removing a collection which is not empty will cause an error.

See also hwapi_move().

Anterior | Inicio | Siguiente
hw_api_reason->type | Subir | hw_api->replace


hw_api->replace

(no version information, might be only in CVS)

hw_api->replace -- Replaces an object

Description

object replace ( array parameter)

Replaces the attributes and the content of an object The parameter array contains the required elements 'objectIdentifier' and 'object' and the optional parameters 'content', 'parameters', 'mode' and 'attributeSelector'. 'objectIdentifier' contains the object to be replaced. 'object' contains the new object. 'content' contains the new content. 'parameters' contain extra information for HTML documents. HTML_Language is the letter abbreviation of the language of the title. HTML_Base sets the base attribute of the HTML document. 'mode' can be a combination of the following flags:

HW_API_REPLACE_NORMAL

The object on the server is replace with the object passed.

HW_API_REPLACE_FORCE_VERSION_CONTROL

HW_API_REPLACE_AUTOMATIC_CHECKOUT

HW_API_REPLACE_AUTOMATIC_CHECKIN

HW_API_REPLACE_PLAIN

HW_API_REPLACE_REVERT_IF_NOT_CHANGED

HW_API_REPLACE_KEEP_TIME_MODIFIED

See also hwapi_insert().

Anterior | Inicio | Siguiente
hw_api->remove | Subir | hw_api->setcommitedversion


hw_api->setcommitedversion

(no version information, might be only in CVS)

hw_api->setcommitedversion -- Commits version other than last version

Description

object setcommitedversion ( array parameter)

Commits a version of a docuemnt. The commited version is the one which is visible to users with read access. By default the last version is the commited version.

See also hwapi_checkin(),
         hwapi_checkout(),
         hwapi_revert().

Anterior | Inicio | Siguiente
hw_api->replace | Subir | hw_api->srcanchors


hw_api->srcanchors

(no version information, might be only in CVS)

hw_api->srcanchors -- Returns a list of all source anchors

Description

object srcanchors ( array parameter)

Retrieves all source anchors of an object. The parameter array contains the required element 'objectIdentifier' and the optional elements 'attributeSelector' and 'objectQuery'.

See also hwapi_dstanchors().

Anterior | Inicio | Siguiente
hw_api->setcommitedversion | Subir | hw_api->srcsofdst


hw_api->srcsofdst

(no version information, might be only in CVS)

hw_api->srcsofdst -- Returns source of a destination object

Description

object srcsofdst ( array parameter)

Retrieves all the source anchors pointing to the specified destination. The destination object can either be a destination anchor or a whole document. The parameters array contains the required element 'objectIdentifier' and the optional element 'attributeSelector' and 'objectQuery'. The function returns an array of objects or an error.

See also hwapi_dstofsrcanchor().

Anterior | Inicio | Siguiente
hw_api->srcanchors | Subir | hw_api->unlock


hw_api->unlock

(no version information, might be only in CVS)

hw_api->unlock -- Unlocks a locked object

Description

object unlock ( array parameter)

Unlocks a locked object. Only the user who has locked the object and the system user may unlock an object. The parameter array contains the required element 'objectIdentifier' and the optional parameters 'mode' and 'objectquery'. The meaning of 'mode' is the same as in function hwapi_lock().

Returns TRUE on success or an object of class HW_API_Error.

See also hwapi_lock().

Anterior | Inicio | Siguiente
hw_api->srcsofdst | Subir | hw_api->user


hw_api->user

(no version information, might be only in CVS)

hw_api->user -- Returns the own user object

Description

object user ( array parameter)

See also hwapi_userlist().

Anterior | Inicio | Siguiente
hw_api->unlock | Subir | hw_api->userlist


hw_api->userlist

(no version information, might be only in CVS)

hw_api->userlist -- Returns a list of all logged in users

Description

object userlist ( array parameter)

See also hwapi_user().

Anterior | Inicio | Siguiente
hw_api->user | Subir | iconv functions


iconv functions

Manual de PHP
Anterior Siguiente

XL. iconv functions

Introducción

This module contains an interface to the iconv library functions. The iconv library functions convert strings between various character sets encodings. The supported character sets depend on the iconv() implementation on your system. Note that the iconv() function on some systems may not work as well as you expect. In this case, you should install the libiconv library.

Requerimientos

Your systems standard C library must provide the iconv() function or you must have libiconv installed on your system. The libiconv library is available from http://www.gnu.org/software/libiconv/.

Instalación

To be able to use the functions defined in this module you must compile your PHP interpreter using the configure line --with-iconv[=DIR].

Note to Win32 Users: In order to enable this module on a Windows environment, you must copy iconv-1.3.dll from the DLL folder of the PHP/Win32 binary package to the SYSTEM32 folder of your windows machine. (Ex: C:\WINNT\SYSTEM32 or C:\WINDOWS\SYSTEM32). Starting with PHP 4.2.1 the name changed to iconv.dll

Configuración en tiempo de ejecución

El comportamiento de estas funciones está afectado por los valores definidos en php.ini.

Tabla 1. Iconv configuration options

Name | Default | Changeable
iconv.input_encoding | ICONV_INPUT_ENCODING | PHP_INI_ALL
iconv.output_encoding | ICONV_OUTPUT_ENCODING | PHP_INI_ALL
iconv.internal_encoding | ICONV_INTERNAL_ENCODING | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Tipos de recursos

Esta extensión no tiene ningún tipo de recurso definido.

Constantes predefinidas

Since PHP 4.3.0 it is possible to identify at runtime which iconv implementation is adopted by this extension.

Tabla 2. iconv constants

constant | type | description
ICONV_IMPL | string | The implementation name
ICONV_VERSION | string | The implementation version

Nota: Writing implementation-dependent scripts with these constants should be discouraged.

Ver también

See also the GNU Recode functions.

Tabla de contenidos
iconv_get_encoding -- Get current setting for character encoding conversion
iconv_mime_decode -- Decodes a mime header field
iconv_mime_encode -- Composes a mime header field with field_name and field_value in a specified scheme
iconv_set_encoding -- Set current setting for character encoding conversion
iconv_strlen -- Returns the character count of string
iconv_strpos -- Finds position of first occurrence of a needle within a haystack.
iconv_strrpos -- Finds position of last occurrence of needle within part of haystack beginning with offset
iconv_substr -- Returns specified part of a string
iconv -- Convert string to requested character encoding
ob_iconv_handler -- Convert character encoding as output buffer handler

Anterior | Inicio | Siguiente
hw_api->userlist | Subir | iconv_get_encoding


iconv_get_encoding

(PHP 4 >= 4.0.5)

iconv_get_encoding -- Get current setting for character encoding conversion

Description

array iconv_get_encoding ( [string type])

It returns the current settings of ob_iconv_handler() as array or FALSE on failure. The value of the optinal type can be:

all
input_encoding
output_encoding
internal_encoding

If type is omitted or not 'all' iconv_get_encoding() returns the current settings of ob_iconv_handler() as string.

Ejemplo 1. iconv_get_encoding() example

<pre>
<?php
iconv_set_encoding("internal_encoding", "UTF-8");
iconv_set_encoding("output_encoding", "ISO-8859-1");
var_dump(iconv_get_encoding('all'));
?>
</pre>

The printout of the above program will be:

Array
(
    [input_encoding] => ISO-8859-1
    [output_encoding] => ISO-8859-1
    [internal_encoding] => UTF-8
)

See also iconv_set_encoding() and ob_iconv_handler().

Anterior | Inicio | Siguiente
iconv functions | Subir | iconv_mime_decode


iconv_mime_decode

(PHP 5 CVS only)

iconv_mime_decode -- Decodes a mime header field

Description

string iconv_mime_decode ( string encoded_string [, string charset])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
iconv_get_encoding | Subir | iconv_mime_encode


iconv_mime_encode

(PHP 5 CVS only)

iconv_mime_encode -- Composes a mime header field with field_name and field_value in a specified scheme

Description

string iconv_mime_encode ( string field_name, string field_value [, array preference])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
iconv_mime_decode | Subir | iconv_set_encoding


iconv_set_encoding

(PHP 4 >= 4.0.5)

iconv_set_encoding -- Set current setting for character encoding conversion

Description

bool iconv_set_encoding ( string type, string charset)

It changes the value of type to charset. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

The value of type can be:

input_encoding
output_encoding
internal_encoding

Ejemplo 1. iconv_set_encoding() example:

<?php
iconv_set_encoding("internal_encoding", "UTF-8");
iconv_set_encoding("output_encoding", "ISO-8859-1");
?>

See also iconv_get_encoding() and ob_iconv_handler().

Anterior | Inicio | Siguiente
iconv_mime_encode | Subir | iconv_strlen


iconv_strlen

(PHP 5 CVS only)

iconv_strlen -- Returns the character count of string

Description

int iconv_strlen ( string str [, string charset])

Returns the character count of str.

In contrast to strlen(), the return value of iconv_strlen() is the number of characters that occur in the given byte sequence str, which is not necessarily the same as the byte length of the string.

If charset parameter is omitted, str will be assumed to be encoded in iconv.internal_charset.

Anterior | Inicio | Siguiente
iconv_set_encoding | Subir | iconv_strpos


iconv_strpos

(PHP 5 CVS only)

iconv_strpos -- Finds position of first occurrence of a needle within a haystack.

Description

int iconv_strpos ( string haystack, string needle, int offset [, string charset])

Returns the numeric position of the first occurrence of needle in haystack.

The optional offset parameter specifies the position from which the search should be performed.

If needle is not found, iconv_strpos() will return FALSE.

Aviso

Esta función puede devolver FALSE, pero también puede devolver un valor no-booleano que será evaluado FALSE, como por ejemplo 0 o "". Por favor, lea la sección Booleans para más información. Utilice el operador === para comprobar el valor devuelto por esta función.

If haystack or needle is not a string, it is converted to an integer and applied as the ordinal value of a character.

See also strpos() and iconv_strrpos().

Anterior | Inicio | Siguiente
iconv_strlen | Subir | iconv_strrpos


iconv_strrpos

(PHP 5 CVS only)

iconv_strrpos -- Finds position of last occurrence of needle within part of haystack beginning with offset

Description

string iconv_strrpos ( string haystack, string needle [, string charset])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
iconv_strpos | Subir | iconv_substr


iconv_substr

(PHP 5 CVS only)

iconv_substr -- Returns specified part of a string

Description

string iconv_substr ( string str, int offset [, int length [, string charset]])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
iconv_strrpos | Subir | iconv


iconv

(PHP 4 >= 4.0.5)

iconv -- Convert string to requested character encoding

Description

string iconv ( string in_charset, string out_charset, string str)

It converts the string str encoded in in_charset to the string encoded in out_charset. It returns the converted string or FALSE, if it fails.

Ejemplo 1. iconv() example:

<?php
echo iconv("ISO-8859-1","UTF-8","This is a test.");
?>

Anterior | Inicio | Siguiente
iconv_substr | Subir | ob_iconv_handler


ob_iconv_handler

(PHP 4 >= 4.0.5)

ob_iconv_handler -- Convert character encoding as output buffer handler

Description

array ob_iconv_handler ( string contents, int status)

It converts the string encoded in internal_encoding to output_encoding.

internal_encoding and output_encoding should be defined by iconv_set_encoding() or in the configuration file php.ini.

Ejemplo 1. ob_iconv_handler() example:

<?php
ob_start("ob_iconv_handler"); // start output buffering
?>

See also iconv_get_encoding(), iconv_set_encoding() and output-control functions.

Anterior | Inicio | Siguiente
iconv | Subir | Funciones para imágenes


Funciones para imágenes

Manual de PHP
Anterior Siguiente

XLI. Funciones para imágenes

Puede usar las funciones para imágenes en PHP para obtener el tamaño de imágenes JPEG, GIF, PNG, SWF, TIFF y JPEG2000, y si tiene instalada la biblioteca GD (disponible en http://www.boutell.com/gd/) también podrá crear y manipular imágenes.

Si tiene PHP compilado con --enable-exif puede trabajar con la información guardada en las cabeceras de las imágenes JPEG y TIFF. Estas funciones no requieren la biblioteca GD.

Los formatos de imágenes que puede manipular dependen de la versión de GD que instale y de cualquier otra biblioteca que GD pueda necesitar para acceder a esos formatos de imagen. Las versiones de GD anteriores a la GD-1.6 soportan imágenes en formato gif y no soportan png, mientras que las versiones superiores a la GD-1.6 soportan el formato png y no el gif.

Antes de poder leer y escribir imágenes en formato jpeg, deberá obtener e instalar jpeg-6b (disponible en ftp://ftp.uu.net/graphics/jpeg/), y después recompilar GD para poder hacer uso de jpeg-6b. También tendrá que compilar PHP con la opción --with-jpeg-dir=/ruta/a/jpeg-6b.

Para añadir el soporte de fuentes Type 1, puede instalar t1lib (disponible en ftp://sunsite.unc.edu/pub/Linux/libs/graphics/), y entonces añadir la opción --with-t1lib[=dir] al recompilar.

Tabla de contenidos
exif_imagetype -- Determine the type of an image
exif_read_data -- Reads the EXIF headers from JPEG or TIFF. This way you can read meta data generated by digital cameras.
exif_thumbnail -- Retrieve the embedded thumbnail of a TIFF or JPEG image
gd_info -- Retrieve information about the currently installed GD library
GetImageSize -- Obtiene el tamaño de una imagen GIF, JPG o PNG
image_type_to_mime_type -- Get Mime-Type for image-type returned by getimagesize, exif_read_data, exif_thumbnail, exif_imagetype
image2wbmp -- Output image to browser or file
imagealphablending -- Set the blending mode for an image
imageantialias -- Should antialias functions be used or not
ImageArc -- Dibuja una elipse parcial
ImageChar -- Dibuja un carácter horizontalmente
ImageCharUp -- Dibuja un carácter vertical
ImageColorAllocate -- Reserva un color para una imagen
imagecolorallocatealpha -- Allocate a color for an image
ImageColorAt -- Obtiende el índice del color de un pixel
ImageColorClosest -- Obtiene el índice del color más cercano al color especificado
imagecolorclosestalpha -- Get the index of the closest color to the specified color + alpha
imagecolorclosesthwb -- Get the index of the color which has the hue, white and blackness nearest to the given color
imagecolordeallocate -- De-allocate a color for an image
ImageColorExact -- Devuelve el índice del color especificado
imagecolorexactalpha -- Get the index of the specified color + alpha
imagecolormatch -- Makes the colors of the palette version of an image more closely match the true color version
ImageColorResolve -- Devuelve el índice del color especificado o su posible alternativa más cercana
imagecolorresolvealpha -- Get the index of the specified color + alpha or its closest possible alternative
ImageColorSet -- Establece el color para el índice de la paleta especificado
ImageColorsForIndex -- Obtiene los colores de un índice
ImageColorsTotal -- Encuentra el número de colores de la paleta de una imagen
ImageColorTransparent -- Define un color como transparente
imagecopy -- Copy part of an image
imagecopymerge -- Copy and merge part of an image
imagecopymergegray -- Copy and merge part of an image with gray scale
imagecopyresampled -- Copia y reescala parte de una imagen con remuestreo
ImageCopyResized -- Copia y redimensiona parte de una imagen
ImageCreate -- Crea una nueva imagen
imagecreatefromgd2 -- Create a new image from GD2 file or URL
imagecreatefromgd2part -- Create a new image from a given part of GD2 file or URL
imagecreatefromgd -- Create a new image from GD file or URL
ImageCreateFromGif -- Crea una nueva imagen desde un fichero o una URL
imagecreatefromjpeg -- Crea una imagen nueva desde un archivo o URL
imagecreatefrompng -- Crea una imagen nueva desde un fichero o URL
imagecreatefromstring -- Create a new image from the image stream in the string
imagecreatefromwbmp -- Create a new image from file or URL
imagecreatefromxbm -- Create a new image from file or URL
imagecreatefromxpm -- Create a new image from file or URL
imagecreatetruecolor -- Crea una imagen nueva en color real (true color)
ImageDashedLine -- Dibuja una línea discontinua
ImageDestroy -- Destruye una imagen
imageellipse -- Draw an ellipse
ImageFill -- Relleno
imagefilledarc -- Draw a partial ellipse and fill it
imagefilledellipse -- Draw a filled ellipse
ImageFilledPolygon -- Dibuja un polígono relleno
ImageFilledRectangle -- dibuja un rectángulo relleno
ImageFillToBorder -- Relleno de un color especifico
ImageFontHeight -- Devuelve la altura de una fuente
ImageFontWidth -- Devuelve la anchura de una fuente
imageftbbox -- Give the bounding box of a text using fonts via freetype2
imagefttext -- Write text to the image using fonts using FreeType 2
imagegammacorrect -- Apply a gamma correction to a GD image
imagegd2 -- Output GD2 image
imagegd -- Output GD image to browser or file
ImageGif -- Envía una imagen al navegador o a un fichero
ImageInterlace -- Activa o desactiva el entrelazado
imageistruecolor -- Finds whether an image is a truecolor image.
imagejpeg -- Output image to browser or file
ImageLine -- Dibuja una línea
ImageLoadFont -- Carga una fuente nueva
imagepalettecopy -- Copy the palette from one image to another
imagepng -- Output a PNG image to either the browser or a file
ImagePolygon -- Dibuja un polígono
ImagePSBBox -- Devuelve el borde que rodea un rectángulo de texto usando fuentes PostScript Type1
ImagePSCopyFont -- hace una copia de una fuente ya cargada para futuras modificaciones
ImagePSEncodeFont -- Cambia el vector de codificación de caracteres de una fuente
imagepsextendfont -- Extend or condense a font
ImagePSFreeFont -- Libera la memoria usada por un fuente PostScript Type 1
ImagePSLoadFont -- Carga una fuente PostScript Type 1 desde un fichero
imagepsslantfont -- Slant a font
ImagePSText -- Para dibujar una cadena de texto sobre una imagen usando fuentes PostScript Type1
ImageRectangle -- Dibuja un rectángulo
imagerotate -- Rotate an image with a given angle
imagesavealpha -- Set the flag to save full alpha channel information (as opposed to single-color transparency) when saving PNG images.
imagesetbrush -- Set the brush image for line drawing
ImageSetPixel -- Dibuja un pixel
imagesetstyle -- Set the style for line drawing
imagesetthickness -- Set the thickness for line drawing
imagesettile -- Set the tile image for filling
ImageString -- Dibuja una cadena de texto horizintalmente
ImageStringUp -- Dibuja una cadena de texto verticalmente
ImageSX -- Obtiene la anchura de la imagen
ImageSY -- Obtiene la altura de la imagen
imagetruecolortopalette -- Convert a true color image to a palette image
ImageTTFBBox -- Devuelve un caja que rodea al texto usando fuentes TypeType
ImageTTFText -- Escribe texto en la imagen usando fuentes TrueType
imagetypes -- Return the image types supported by this PHP build
imagewbmp -- Output image to browser or file
iptcembed -- Embed binary IPTC data into a JPEG image
iptcparse -- Parse a binary IPTC http://www.iptc.org/ block into single tags.
jpeg2wbmp -- Convert JPEG image file to WBMP image file
png2wbmp -- Convert PNG image file to WBMP image file
read_exif_data -- Alias of exif_read_data()

Anterior | Inicio | Siguiente
ob_iconv_handler | Subir | exif_imagetype


exif_imagetype

(PHP 4 >= 4.3.0)

exif_imagetype -- Determine the type of an image

Description

int exif_imagetype ( string filename)

exif_imagetype() reads the first bytes of an image and checks its signature. When a correct signature is found a constant will be returned otherwise the return value is FALSE. The return value is the same value that getimagesize() returns in index 2 but this function is much faster.

The following constants are defined:

Tabla 1. Imagetype Constants

Value | Constant
1 | IMAGETYPE_GIF
2 | IMAGETYPE_JPEG
3 | IMAGETYPE_PNG
4 | IMAGETYPE_SWF
5 | IMAGETYPE_PSD
6 | IMAGETYPE_BMP
7 | IMAGETYPE_TIFF_II (intel byte order)
8 | IMAGETYPE_TIFF_MM (motorola byte order)
9 | IMAGETYPE_JPC
10 | IMAGETYPE_JP2
11 | IMAGETYPE_JPX
12 | IMAGETYPE_JB2
13 | IMAGETYPE_SWC
14 | IMAGETYPE_IFF
15 | IMAGETYPE_WBMP
16 | IMAGETYPE_XBM

Nota: Support for JPC, JP2, JPX, JB2, XBM, and WBMP became available in PHP 4.3.2. Support for SWC as of PHP 4.3.0.

This function can be used to avoid calls to other exif functions with unsupported file types or in conjunction with $_SERVER['HTTP_ACCEPT'] to check whether or not the viewer is able to see a specific image in the browser.

Nota: This function is only available if PHP is compiled using --enable-exif.

Nota: This function does not require the GD image library.

Ejemplo 1. exif_imagetype() example

<?php

if (exif_imagetype("image.gif") != IMAGETYPE_GIF) {
    echo "The picture is not a gif";
}

?>

See also getimagesize().

Anterior | Inicio | Siguiente
Funciones para imágenes | Subir | exif_read_data


exif_read_data

(PHP 4 >= 4.2.0)

exif_read_data -- Reads the EXIF headers from JPEG or TIFF. This way you can read meta data generated by digital cameras.

Description

array exif_read_data ( string filename [, string sections [, bool arrays [, bool thumbnail]]])

The exif_read_data() function reads the EXIF headers from a JPEG or TIFF image file. It returns an associative array where the indexes are the header names and the values are the values associated with those headers. If no data can be returned the result is FALSE.

filename is the name of the file to read. This cannot be an url.

sections is a comma separated list of sections that need to be present in file to produce a result array. If none of the requested sections could be found the return value is FALSE.

FILE | FileName, FileSize, FileDateTime, SectionsFound
COMPUTED | html, Width, Height, IsColor and some more if available.
ANY_TAG | Any information that has a Tag e.g. IFD0, EXIF, ...
IFD0 | All tagged data of IFD0. In normal imagefiles this contains image size and so forth.
THUMBNAIL | A file is supposed to contain a thumbnail if it has a second IFD. All tagged information about the embedded thumbnail is stored in this section.
COMMENT | Comment headers of JPEG images.
EXIF | The EXIF section is a sub section of IFD0. It contains more detailed information about an image. Most of these entries are digital camera related.

arrays specifies whether or not each section becomes an array. The sections COMPUTED, THUMBNAIL and COMMENT allways become arrays as they may contain values whose names are conflict with other sections.

thumbnail whether or not to read the thumbnail itself and not only its tagged data.

Nota: Exif headers tend to be present in JPEG/TIFF images generated by digital cameras, but unfortunately each digital camera maker has a different idea of how to actually tag their images, so you can't always rely on a specific Exif header being present.

Windows ME/XP both can wipe the Exif headers when connecting to a camera. More information available at http://ww2.canon-europe.com/products/cameras/notices_dig_cam_users.html.

Ejemplo 1. exif_read_data() example

<?php
echo "test1.jpg:<br />\n";
$exif = exif_read_data ('tests/test1.jpg','IFD0');
echo $exif===false ? "No header data found.<br />\n" : "Image contains headers<br />";
$exif = exif_read_data ('tests/test2.jpg',0,true);
echo "test2.jpg:<br />\n";
foreach($exif as $key=>$section) {
    foreach($section as $name=>$val) {
        echo "$key.$name: $val<br />\n";
    }
}?>

The first call fails because the image has no header information.
test1.jpg:
No header data found.
test2.jpg:
FILE.FileName: test2.jpg
FILE.FileDateTime: 1017666176
FILE.FileSize: 1240
FILE.FileType: 2
FILE.SectionsFound: ANY_TAG, IFD0, THUMBNAIL, COMMENT
COMPUTED.html: width="1" height="1"
COMPUTED.Height: 1
COMPUTED.Width: 1
COMPUTED.IsColor: 1
COMPUTED.ByteOrderMotorola: 1
COMPUTED.UserComment: Exif test image.
COMPUTED.UserCommentEncoding: ASCII
COMPUTED.Copyright: Photo (c) M.Boerger, Edited by M.Boerger.
COMPUTED.Copyright.Photographer: Photo (c) M.Boerger
COMPUTED.Copyright.Editor: Edited by M.Boerger.
IFD0.Copyright: Photo (c) M.Boerger
IFD0.UserComment: ASCII
THUMBNAIL.JPEGInterchangeFormat: 134
THUMBNAIL.JPEGInterchangeFormatLength: 523
COMMENT.0: Comment #1.
COMMENT.1: Comment #2.
COMMENT.2: Comment #3end
THUMBNAIL.JPEGInterchangeFormat: 134
THUMBNAIL.Thumbnail.Height: 1
THUMBNAIL.Thumbnail.Height: 1

Nota: If the image contains any IFD0 data then COMPUTED contains the entry ByteOrderMotorola which is 0 for little-endian (intel) and 1 for big-endian (motorola) byte order. This was added in PHP 4.3.

When an Exif header contains a Copyright note this itself can contain two values. As the solution is inconsistent in the Exif 2.10 standard the COMPUTED section will return both entries Copyright.Photographer and Copyright.Editor while the IFD0 sections contains the byte array with the NULL character that splits both entries. Or just the first entry if the datatype was wrong (normal behaviour of Exif). The COMPUTED will contain also an entry Copyright Which is either the original copyright string or it is a comma separated list of photo and editor copyright.

Nota: The tag UserComment has the same problem as the Copyright tag. It can store two values first the encoding used and second the value itself. If so the IFD section only contains the encoding or a byte array. The COMPUTED section will store both in the entries UserCommentEncoding and UserComment. The entry UserComment is available in both cases so it should be used in preference to the value in IFD0 section.

If the user comment uses Unicode or JIS encoding and the module mbstring is available this encoding will automatically changed according to the exif ini settings in the php.ini. This was added in PHP 4.3.

Nota: Height and Width are computed the same way getimagesize() does so their values must not be part of any header returned. Also html is a height/width text string to be used inside normal HTML.

Nota: Starting from PHP 4.3 the function can read all embedded IFD data including arrays (returned as such). Also the size of an embedded thumbnail is returned in THUMBNAIL subarray and the function exif_read_data() can return thumbnails in TIFF format. Last but not least there is no longer a maximum legth for returned values (not until memory limit is reached).

Nota: This function is only available in PHP 4 compiled using --enable-exif. Its functionality and behaviour has changed in PHP 4.2. Earlier versions are very unstable.

Since PHP 4.3 user comment can automatically change encoding if PHP 4 was compiled using --enable-mbstring.

This function does not require the GD image library.

See also exif_thumbnail() and getimagesize().

Anterior | Inicio | Siguiente
exif_imagetype | Subir | exif_thumbnail


exif_thumbnail

(PHP 4 >= 4.2.0)

exif_thumbnail -- Retrieve the embedded thumbnail of a TIFF or JPEG image

Description

string exif_thumbnail ( string filename [, int &width [, int &height [, int &imagetype]]])

exif_thumbnail() reads the embedded thumbnail of a TIFF or JPEG image. If the image contains no thumbnail FALSE will be returned.

The parameters width, height and imagetype are available since PHP 4.3.0 and return the size of the thumbnail as well as its type. It is possible that exif_thumbnail() cannot create an image but can determine its size. In this case, the return value is FALSE but width and height are set.

If you want to deliver thumbnails through this function, you should send the mimetype information using the header() function. The following example demonstrates this:

Ejemplo 1. exif_thumbnail() example

<?php
if (array_key_exists('file',$_REQUEST)) {
    $image = exif_thumbnail($_REQUEST['file'], $width, $height, $type);
} else {
    $image = false;
}
if ($image!==false) {
    header("Content-type: ".image_type_to_mime_type($type));
    echo $image;
    exit;
} else {
    // no thumbnail available, handle the error here
    echo "No thumbnail available";
}
?>

Starting from version PHP 4.3.0, the function exif_thumbnail() can return thumbnails in TIFF format.

Nota: This function is only available in PHP 4 compiled using --enable-exif. Its functionality and behaviour has changed in PHP 4.2.0

Nota: This function does not require the GD image library.

See also exif_read_data() and image_type_to_mime_type().

Anterior | Inicio | Siguiente
exif_read_data | Subir | gd_info


gd_info

(PHP 4 >= 4.3.0)

gd_info -- Retrieve information about the currently installed GD library

Description

array gd_info ( void )

Returns an associative array describing the version and capabilities of the installed GD library.

Tabla 1. Elements of array returned by gd_info()

Attribute | Meaning
GD Version | string value describing the installed libgd version.
Freetype Support | boolean value. TRUE if Freetype Support is installed.
Freetype Linkage | string value describing the way in which Freetype was linked. Expected values are: 'with freetype', 'with TTF library', and 'with unknown library'. This element will only be defined if Freetype Support evaluated to TRUE.
T1Lib Support | boolean value. TRUE if T1Lib support is included.
GIF Read Support | boolean value. TRUE if support for reading GIF images is included.
GIF Create Support | boolean value. TRUE if support for creating GIF images is included.
JPG Support | boolean value. TRUE if JPG support is included.
PNG Support | boolean value. TRUE if PNG support is included.
WBMP Support | boolean value. TRUE if WBMP support is included.
XBM Support | boolean value. TRUE if XBM support is included.

Ejemplo 1. Using gd_info()

<?php
var_dump(gd_info());
?>

The typical output is :

array(9) {
  ["GD Version"]=>
  string(24) "bundled (2.0 compatible)"
  ["FreeType Support"]=>
  bool(false)
  ["T1Lib Support"]=>
  bool(false)
  ["GIF Read Support"]=>
  bool(true)
  ["GIF Create Support"]=>
  bool(false)
  ["JPG Support"]=>
  bool(false)
  ["PNG Support"]=>
  bool(true)
  ["WBMP Support"]=>
  bool(true)
  ["XBM Support"]=>
  bool(false)
}

See also imagepng(),
imagejpeg(),
imagegif(),
imagewbmp(), and
imagetypes().

Anterior | Inicio | Siguiente
exif_thumbnail | Subir | GetImageSize


GetImageSize

(PHP 3, PHP 4 )

GetImageSize -- Obtiene el tamaño de una imagen GIF, JPG o PNG

Descripción

array getimagesize ( string filename [, array imageinfo])

La función GetImageSize() determinará el tamaño de cualquier fichero de imagen GIF, JPG o PNG y devolverá sus dimensiones junto al tipo de fichero en una cadena de texto que pueda ser usada en una marca HTML <IMG> normal.

Devuelve una matriz con 4 elementos. El índice 0 contiene la anchura de la imagen en pixels. El índice 1 contiene la altura. El índice 2 es una marca indicando el tipo de imagen. 1 = GIF, 2 = JPG, 3 = PNG. El índice 3 es una cadena de texto con el string correcto "height=xxx width=xxx" para ser usado directamente en una marca IMG.

Ejemplo 1. GetImageSize

<?php $size = GetImageSize("img/flag.jpg"); ?>
<IMG SRC="img/flag.jpg" <?php echo $size[3]; ?>>

El parámetro opcional imageinfo permite extraer información adicional del fichero de imagen. Actualmente esto devolverá las diferentes marcas APP de los JPG en una matriz asociada. Algunos programas usan estas marcas APP para incluir información textual en las imagenes. Uno bastante común incluye información IPTC http://www.iptc.org/ en la marca APP13. Puede usar la función iptcparse() para convertir la marca binaria APP13 en algo leible.

Ejemplo 2. GetImageSize devolviendo IPTC

<?php
$size = GetImageSize("testimg.jpg",&$info);
if (isset($info["APP13"])) {
    $iptc = iptcparse($info["APP13"]);
    var_dump($iptc);
}
?>

Nota: Esta función no requiere la libreria de imagenes GD.

Anterior | Inicio | Siguiente
gd_info | Subir | image_type_to_mime_type


image_type_to_mime_type

(PHP 4 >= 4.3.0)

image_type_to_mime_type -- Get Mime-Type for image-type returned by getimagesize, exif_read_data, exif_thumbnail, exif_imagetype

Description

string image_type_to_mime_type ( int imagetype)

The image_type_to_mime_type() function will determine the Mime-Type for an IMAGETYPE constant.

Ejemplo 1. image_type_to_mime_type (file)

<?php
header ("Content-type: ".image_type_to_mime_type (IMAGETYPE_PNG));
?>

The returned values are as follows

Tabla 1. Returned values Constants

imagetype | Returned value
IMAGETYPE_GIF | image/gif
IMAGETYPE_JPEG | image/jpeg
IMAGETYPE_PNG | image/png
IMAGETYPE_SWF | application/x-shockwave-flash
IMAGETYPE_PSD | image/psd
IMAGETYPE_BMP | image/bmp
IMAGETYPE_TIFF_II (intel byte order) | image/tiff
IMAGETYPE_TIFF_MM (motorola byte order) | image/tiff
IMAGETYPE_JPC | application/octet-stream
IMAGETYPE_JP2 | image/jp2
IMAGETYPE_JPX | application/octet-stream
IMAGETYPE_JB2 | application/octet-stream
IMAGETYPE_SWC | application/x-shockwave-flash
IMAGETYPE_IFF | image/iff
IMAGETYPE_WBMP | image/vnd.wap.wbmp
IMAGETYPE_XBM | image/xbm

Nota: This function does not require the GD image library.

See also getimagesize(),
exif_imagetype(),
exif_read_data() and
exif_thumbnail().

Anterior | Inicio | Siguiente
GetImageSize | Subir | image2wbmp


image2wbmp

(PHP 4 >= 4.0.5)

image2wbmp -- Output image to browser or file

Description

int image2wbmp ( resource image [, string filename [, int threshold]])

image2wbmp() creates the WBMP file in filename from the image image. The image argument is the return from imagecreate().

The filename argument is optional, and if left off, the raw image stream will be output directly. By sending an image/vnd.wap.wbmp content-type using header(), you can create a PHP script that outputs WBMP images directly.

Ejemplo 1. image2wbmp() example

<?php

$file = 'php.jpg';

header('Content-type: ' . image_type_to_mime_type(IMAGETYPE_WBMP));
image2wbmp($file); // output the stream directly

?>

Nota: WBMP support is only available if PHP was compiled against GD-1.8 or later.

See also imagewbmp().

Anterior | Inicio | Siguiente
image_type_to_mime_type | Subir | imagealphablending


imagealphablending

(PHP 4 >= 4.0.6)

imagealphablending -- Set the blending mode for an image

Description

bool imagealphablending ( resource image, bool blendmode)

imagealphablending() allows for two different modes of drawing on truecolor images. In blending mode, the alpha channel component of the color supplied to all drawing function, such as imagesetpixel() determines how much of the underlying color should be allowed to shine through. As a result, gd automatically blends the existing color at that point with the drawing color, and stores the result in the image. The resulting pixel is opaque. In non-blending mode, the drawing color is copied literally with its alpha channel information, replacing the destination pixel. Blending mode is not available when drawing on palette images. If blendmode is TRUE, then blending mode is enabled, otherwise disabled. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Nota: This function was added in PHP 4.0.6 and requires GD 2.0.1

Anterior | Inicio | Siguiente
image2wbmp | Subir | imageantialias


imageantialias

(PHP 4 >= 4.3.2)

imageantialias -- Should antialias functions be used or not

Description

bool imageantialias ( resource im, bool on)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

See also imagecreatetruecolor().

Anterior | Inicio | Siguiente
imagealphablending | Subir | ImageArc


ImageArc

(PHP 3, PHP 4 )

ImageArc -- Dibuja una elipse parcial

Descripción

int imagearc ( int im, int cx, int cy, int w, int h, int s, int e, int col)

ImageArc dibuja una elipse parcial centrada en cx, cy (la esquina superior izquierda es 0,0) en la imagen que representa im. w y h especifican la anchura y altura respectivamente mientras que los puntos de inicio y final vienen indicados por los parámetros s y e en grados.

Anterior | Inicio | Siguiente
imageantialias | Subir | ImageChar


ImageChar

(PHP 3, PHP 4 )

ImageChar -- Dibuja un carácter horizontalmente

Descripción

int imagechar ( int im, int font, int x, int y, string c, int col)

ImageChar dibuja el primer carácter de c en la imagen identificada como id con su esquina superior izquierda en x, y (arriba izquierda es 0,0) con el color col. Si la fuente es 1, 2, 3, 4 o 5 se usa una fuente predefinida (números mayores corresponden con tamaños mayores).

Vea también imageloadfont().

Anterior | Inicio | Siguiente
ImageArc | Subir | ImageCharUp


ImageCharUp

(PHP 3, PHP 4 )

ImageCharUp -- Dibuja un carácter vertical

Descripción

int imagecharup ( int im, int font, int x, int y, string c, int col)

ImageCharUp dibuja el caracter c verticalmente en la imagen identificado como im en las coordenadas x, y (arriba izquierda es 0,0) con el color col. Si la fuente es 1, 2, 3, 4 o 5 se usa una fuente predefinida.

Vea también imageloadfont().

Anterior | Inicio | Siguiente
ImageChar | Subir | ImageColorAllocate


ImageColorAllocate

(PHP 3, PHP 4 )

ImageColorAllocate -- Reserva un color para una imagen

Descripción

int imagecolorallocate ( int im, int red, int green, int blue)

ImageColorAllocate devuelve un identificador del color representado por la mezcla de los componentes RGB dados. El parámetro im es el resultado de la función imagecreate(). ImageColorAlocate tiene que ser invocada para crear cada color que va a ser usado por la imagen que representa im.

$white = ImageColorAllocate($im, 255,255,255);
$black = ImageColorAllocate($im, 0,0,0);

Anterior | Inicio | Siguiente
ImageCharUp | Subir | imagecolorallocatealpha


imagecolorallocatealpha

(PHP 4 >= 4.3.2)

imagecolorallocatealpha -- Allocate a color for an image

Description

int imagecolorallocatealpha ( resource image, int red, int green, int blue, int alpha)

imagecolorallocatealpha() behaves identically to imagecolorallocate() with the addition of the transparency parameter alpha which may have a value between 0 and 127. 0 indicates completely opaque while 127 indicates completely transparent.

Returns FALSE if the allocation failed.

Ejemplo 1. Example of using imagecolorallocatealpha()

<?php
$size = 300;
$image=imagecreatetruecolor($size, $size);

// something to get a white background with black border
$back = imagecolorallocate($image, 255, 255, 255);
$border = imagecolorallocate($image, 0, 0, 0);
imagefilledrectangle($image, 0, 0, $size - 1, $size - 1, $back);
imagerectangle($image, 0, 0, $size - 1, $size - 1, $border);

$yellow_x = 100;
$yellow_y = 75;
$red_x    = 120;
$red_y    = 165;
$blue_x   = 187;
$blue_y   = 125;
$radius   = 150;

// allocate colors with alpha values
$yellow = imagecolorallocatealpha($image, 255, 255, 0, 75);
$red    = imagecolorallocatealpha($image, 255, 0, 0, 75);
$blue   = imagecolorallocatealpha($image, 0, 0, 255, 75);

// drawing 3 overlapped circle
imagefilledellipse($image, $yellow_x, $yellow_y, $radius, $radius, $yellow);
imagefilledellipse($image, $red_x, $red_y, $radius, $radius, $red);
imagefilledellipse($image, $blue_x, $blue_y, $radius, $radius, $blue);

// don't forget to output a correct header!
header('Content-type: image/png');

// and finally, output the result
imagepng($image);
imagedestroy($image);
?>

See also imagecolorallocate() and imagecolordeallocate().

Anterior | Inicio | Siguiente
ImageColorAllocate | Subir | ImageColorAt


ImageColorAt

(PHP 3, PHP 4 )

ImageColorAt -- Obtiende el índice del color de un pixel

Descripción

int imagecolorat ( int im, int x, int y)

Devuelve el índice del color del pixel especificado en la posición de la imagen.

Vea también imagecolorset() y imagecolorsforindex().

Anterior | Inicio | Siguiente
imagecolorallocatealpha | Subir | ImageColorClosest


ImageColorClosest

(PHP 3, PHP 4 )

ImageColorClosest -- Obtiene el índice del color más cercano al color especificado

Descripción

int imagecolorclosest ( int im, int red, int green, int blue)

Devuelve el índice del color de la paleta de la imagen que sea más "cercano" al valor RGB especificado.

La "distancia" entre el color deseado y cada color de la paleta es calculada como si los valores RGB representasen puntos en un espacio tridimensional.

Vea también imagecolorexact().

Anterior | Inicio | Siguiente
ImageColorAt | Subir | imagecolorclosestalpha


imagecolorclosestalpha

(PHP 4 >= 4.0.6)

imagecolorclosestalpha -- Get the index of the closest color to the specified color + alpha

Description

int imagecolorclosestalpha ( resource image, int red, int green, int blue, int alpha)

Returns the index of the color in the palette of the image which is "closest" to the specified RGB value and alpha level.

Nota: This function was added in PHP 4.0.6 and requires GD 2.0.1

See also imagecolorexactalpha().

Anterior | Inicio | Siguiente
ImageColorClosest | Subir | imagecolorclosesthwb


imagecolorclosesthwb

(PHP 4 >= 4.0.1)

imagecolorclosesthwb -- Get the index of the color which has the hue, white and blackness nearest to the given color

Description

int imagecolorclosesthwb ( resource image, int red, int green, int blue)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
imagecolorclosestalpha | Subir | imagecolordeallocate


imagecolordeallocate

(PHP 3>= 3.0.6, PHP 4 )

imagecolordeallocate -- De-allocate a color for an image

Description

int imagecolordeallocate ( resource image, int color)

The imagecolordeallocate() function de-allocates a color previously allocated with imagecolorallocate() or imagecolorallocatealpha().

<?php
$white = imagecolorallocate ($im, 255, 255, 255);
imagecolordeallocate ($im, $white);
?>

See also imagecolorallocate() and imagecolorallocatealpha().

Anterior | Inicio | Siguiente
imagecolorclosesthwb | Subir | ImageColorExact


ImageColorExact

(PHP 3, PHP 4 )

ImageColorExact -- Devuelve el índice del color especificado

Descripción

int imagecolorexact ( int im, int red, int green, int blue)

Devuelve el índice del color especificado de la paleta de la imagen.

Si el color no existe en la paleta de la imagen, se devuelve el valor -1.

Vea también imagecolorclosest().

Anterior | Inicio | Siguiente
imagecolordeallocate | Subir | imagecolorexactalpha


imagecolorexactalpha

(PHP 4 >= 4.0.6)

imagecolorexactalpha -- Get the index of the specified color + alpha

Description

int imagecolorexactalpha ( resource image, int red, int green, int blue, int alpha)

Returns the index of the specified color+alpha in the palette of the image.

If the color does not exist in the image's palette, -1 is returned.

See also imagecolorclosestalpha().

Nota: This function was added in PHP 4.0.6 and requires GD 2.0.1 or later

Anterior | Inicio | Siguiente
ImageColorExact | Subir | imagecolormatch


imagecolormatch

(PHP 4 >= 4.3.0)

imagecolormatch -- Makes the colors of the palette version of an image more closely match the true color version

Description

bool imagecolormatch ( resource image1, resource image2)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

image1 must be Truecolor, image2 must be Palette, and both image1 and image2 must be the same size.

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

See also imagecreatetruecolor().

Anterior | Inicio | Siguiente
imagecolorexactalpha | Subir | ImageColorResolve


ImageColorResolve

(PHP 3>= 3.0.2, PHP 4 )

ImageColorResolve -- Devuelve el índice del color especificado o su posible alternativa más cercana

Descripción

int imagecolorresolve ( int im, int red, int green, int blue)

Esta función garantiza el resultado de un índice de color para un color solicitado, ya sea el color exacto o su alternativa más cercana.

Vea también imagecolorclosest().

Anterior | Inicio | Siguiente
imagecolormatch | Subir | imagecolorresolvealpha


imagecolorresolvealpha

(PHP 4 >= 4.0.6)

imagecolorresolvealpha -- Get the index of the specified color + alpha or its closest possible alternative

Description

int imagecolorresolvealpha ( resource image, int red, int green, int blue, int alpha)

This function is guaranteed to return a color index for a requested color, either the exact color or the closest possible alternative.

See also imagecolorclosestalpha().

Nota: This function was added in PHP 4.0.6 and requires GD 2.0.1

Anterior | Inicio | Siguiente
ImageColorResolve | Subir | ImageColorSet


ImageColorSet

(PHP 3, PHP 4 )

ImageColorSet -- Establece el color para el índice de la paleta especificado

Descripción

bool imagecolorset ( int im, int index, int red, int green, int blue)

Establece el índice especificado de la paleta con el color introduciod. Esto es útil para crear efectos de rellenado en imagenes con paletas sin la sobrecarga de tener que realizar el rellenado.

Vea también imagecolorat().

Anterior | Inicio | Siguiente
imagecolorresolvealpha | Subir | ImageColorsForIndex


ImageColorsForIndex

(PHP 3, PHP 4 )

ImageColorsForIndex -- Obtiene los colores de un índice

Descripción

array imagecolorsforindex ( int im, int index)

Devuelve una matriz asociativa con las claves red, green y blue que contienen los valores apropiados para el color especificado en el índice.

Vea también imagecolorat() y imagecolorexact().

Anterior | Inicio | Siguiente
ImageColorSet | Subir | ImageColorsTotal


ImageColorsTotal

(PHP 3, PHP 4 )

ImageColorsTotal -- Encuentra el número de colores de la paleta de una imagen

Descripción

int imagecolorstotal ( int im)

Encuentra el número de colores de la paleta de una imagen.

Vea también imagecolorat() y imagecolorsforindex().

Anterior | Inicio | Siguiente
ImageColorsForIndex | Subir | ImageColorTransparent


ImageColorTransparent

(PHP 3, PHP 4 )

ImageColorTransparent -- Define un color como transparente

Descripción

int imagecolortransparent ( int im [, int col])

ImageColorTransparent establece como color transparente a col en la imagen im. im es el identificador de imagen devuelto por imagecreate() y col es el identificador de color devuelto por imagecolorallocate().

Se devuelve el identificador del color transparente (o el actual, si no se especifica ninguno).

Anterior | Inicio | Siguiente
ImageColorsTotal | Subir | imagecopy


imagecopy

(PHP 3>= 3.0.6, PHP 4 )

imagecopy -- Copy part of an image

Description

int imagecopy ( resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h)

Copy a part of src_im onto dst_im starting at the x,y coordinates src_x, src_y with a width of src_w and a height of src_h. The portion defined will be copied onto the x,y coordinates, dst_x and dst_y.

Anterior | Inicio | Siguiente
ImageColorTransparent | Subir | imagecopymerge


imagecopymerge

(PHP 4 >= 4.0.1)

imagecopymerge -- Copy and merge part of an image

Description

int imagecopymerge ( resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h, int pct)

Copy a part of src_im onto dst_im starting at the x,y coordinates src_x, src_y with a width of src_w and a height of src_h. The portion defined will be copied onto the x,y coordinates, dst_x and dst_y. The two images will be merged according to pct which can range from 0 to 100. When pct = 0, no action is taken, when 100 this function behaves identically to imagecopy().

Nota: This function was added in PHP 4.0.6

Anterior | Inicio | Siguiente
imagecopy | Subir | imagecopymergegray


imagecopymergegray

(PHP 4 >= 4.0.6)

imagecopymergegray -- Copy and merge part of an image with gray scale

Description

int imagecopymergegray ( resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h, int pct)

imagecopymergegray() copy a part of src_im onto dst_im starting at the x,y coordinates src_x, src_y with a width of src_w and a height of src_h. The portion defined will be copied onto the x,y coordinates, dst_x and dst_y. The two images will be merged according to pct which can range from 0 to 100. When pct = 0, no action is taken, when 100 this function behaves identically to imagecopy().

This function is identical to imagecopymerge() except that when merging it preservese the hue of the source by converting the destination pixels to gray scale before the copy operation.

Nota: This function was added in PHP 4.0.6

Anterior | Inicio | Siguiente
imagecopymerge | Subir | imagecopyresampled


imagecopyresampled

(PHP 4 >= 4.0.6)

imagecopyresampled -- Copia y reescala parte de una imagen con remuestreo

Descripción

int imagecopyresampled ( resource img_dst, resource img_org, int Xdst, int Ydst, int Xorg, int Yorg, int ancho_dst, int alto_dst, int ancho_org, int alto_org)

imagecopyresampled() copia una porción rectangular de una imagen sobre otra, suavizando los valores de los píxeles mediante interpolación, de forma que al reducir el tamaño de una imagen aún mantiene una buena claridad. img_dst es la imagen de destino, img_org es el identificador de la imagen de origen. Si las coordenadas de origen y destino y ancho y alto son diferentes, se encogerá o agrandará el fragmento de imagen según sea necesario. Las coordenadas son relativas a la esquina superior izquierda. Esta función se puede usar para copiar regiones dentro de la misma imagen (si img_dst es la misma que img_org) pero si las regiones se superponen, los resultados serán impredecibles.

Vea también imagecopyresized().

Nota: Esta función fue añadida en PHP 4.0.6 y requiere GD 2.0.1 o superior

Anterior | Inicio | Siguiente
imagecopymergegray | Subir | ImageCopyResized


ImageCopyResized

(PHP 3, PHP 4 )

ImageCopyResized -- Copia y redimensiona parte de una imagen

Descripción

int imagecopyresized ( int dst_im, int src_im, int dstX, int dstY, int srcX, int srcY, int dstW, int dstH, int srcW, int srcH)

ImageCopyResize copia una porción rectangular de una imagen hacia otra imagen. dst_im es la imagen de destino, src_im es el identificador de la imagen origen. Si la altura y anchura de las coordenadas de origen y destino difieren se realizará un estrechamiento o un estiramiento apropiado del fragmento de la imagen. Las coordenadas van localizadas sobre la esquina superior izquierda. Esta función se puede usar para copiar regiones dentro de la misma imagen (si dst_im es igual que src_im) pero si las regiones se solapan los resultados seran impredecibles.

Anterior | Inicio | Siguiente
imagecopyresampled | Subir | ImageCreate


ImageCreate

(PHP 3, PHP 4 )

ImageCreate -- Crea una nueva imagen

Descripción

int imagecreate ( int x_size, int y_size)

ImageCreate devuelve un identificador de imagen representando una imagen en blanco de tamaño x_size por y_size.

Anterior | Inicio | Siguiente
ImageCopyResized | Subir | imagecreatefromgd2


imagecreatefromgd2

(PHP 4 >= 4.1.0)

imagecreatefromgd2 -- Create a new image from GD2 file or URL

Description

resource imagecreatefromgd2 ( string filename)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Sugerencia: Puede usar una URL como nombre de archivo con esta función si los fopen wrappers han sido activados. Consulte fopen() para más detalles sobre cómo especificar el nombre de fichero y Apéndice I una lista de protocolos URL soportados

Aviso

Versiones de PHP para Windows anteriores a 4.3.0, no soportan el acceso remoto a archivos para esta función, no funcionará ni activando siquiera allow_url_fopen.

Anterior | Inicio | Siguiente
ImageCreate | Subir | imagecreatefromgd2part


imagecreatefromgd2part

(PHP 4 >= 4.1.0)

imagecreatefromgd2part -- Create a new image from a given part of GD2 file or URL

Description

resource imagecreatefromgd2part ( string filename, int srcX, int srcY, int width, int height)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Sugerencia: Puede usar una URL como nombre de archivo con esta función si los fopen wrappers han sido activados. Consulte fopen() para más detalles sobre cómo especificar el nombre de fichero y Apéndice I una lista de protocolos URL soportados

Aviso

Versiones de PHP para Windows anteriores a 4.3.0, no soportan el acceso remoto a archivos para esta función, no funcionará ni activando siquiera allow_url_fopen.

Anterior | Inicio | Siguiente
imagecreatefromgd2 | Subir | imagecreatefromgd


imagecreatefromgd

(PHP 4 >= 4.1.0)

imagecreatefromgd -- Create a new image from GD file or URL

Description

resource imagecreatefromgd ( string filename)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Sugerencia: Puede usar una URL como nombre de archivo con esta función si los fopen wrappers han sido activados. Consulte fopen() para más detalles sobre cómo especificar el nombre de fichero y Apéndice I una lista de protocolos URL soportados

Aviso

Versiones de PHP para Windows anteriores a 4.3.0, no soportan el acceso remoto a archivos para esta función, no funcionará ni activando siquiera allow_url_fopen.

Anterior | Inicio | Siguiente
imagecreatefromgd2part | Subir | ImageCreateFromGif


ImageCreateFromGif

(PHP 3, PHP 4 )

ImageCreateFromGif -- Crea una nueva imagen desde un fichero o una URL

Descripción

int imagecreatefromgif ( string filename)

imagecreatefromgif() devuelve un identificador de imagen representando la imagen obtenida del nombre del fichero dado.

imagecreatefromgif() devuelve una cadena vacia si hay algun fallo. Además muestra un mensaje de error, que desafortunadamente se representa como un link roto en un navegador. Para depurarlo fácilmente el siguiente ejemplo producirá un error de GIF:

Ejemplo 1. Ejemplo de control de un error durante la creación (cortesía vic@zymsys.com )

function LoadGif($imgname)
{
  $im = @imagecreatefromgif($imgname); /* Attempt to open */
  if ($im == "") { /* See if it failed */
    $im = ImageCreate(150,30); /* Create a blank image */
    $bgc = ImageColorAllocate($im,255,255,255);
    $tc  = ImageColorAllocate($im,0,0,0);
    ImageFilledRectangle($im,0,0,150,30,$bgc);
    ImageString($im,1,5,5,"Error loading $imgname",$tc); /* Output an errmsg */
  }
  return $im;
}

Nota: Desde que todo el soporte a GIFs ha sido eliminado en la libreria GD a partir de la versión 1.6, esta función no está disponible si está usando esa versión de la libreria GD.

Anterior | Inicio | Siguiente
imagecreatefromgd | Subir | imagecreatefromjpeg


imagecreatefromjpeg

(PHP 3>= 3.0.16, PHP 4 )

imagecreatefromjpeg -- Crea una imagen nueva desde un archivo o URL

Descripción

resource imagecreatefromjpeg ( string nombre_archivo)

imagecreatefromjpeg() devuelve un identificador de imagen que representa a la imagen obtenida a partir del nombre de archivo indicado.

imagecreatefromjpeg() devuelve una cadena vacía si ha fallado. También escribe un mensaje de error, que desafortunadamente se muestra en el navegador como un enlace roto. Para depurar con mayor comodidad, el ejemplo siguiente producirá un JPEG erróneo:

Ejemplo 1. Ejemplo de cómo manipular un error durante la creación (cortesía de vic@zymsys.com )

function CargarJpeg ($nombreimg) {
    $im = @imagecreatefromjpeg ($nombreimg); /* Intento de apertura */
    if (!$im) { /* Comprobar si ha fallado */
        $im  = imagecreate (150, 30); /* Crear una imagen en blanco */
        $bgc = imagecolorallocate ($im, 255, 255, 255);
        $tc  = imagecolorallocate ($im, 0, 0, 0);
        imagefilledrectangle ($im, 0, 0, 150, 30, $bgc);
        /* Mostrar un mensaje de error */
        imagestring ($im, 1, 5, 5, "Error cargando $nombreimg", $tc);
    }
    return $im;
}

Anterior | Inicio | Siguiente
ImageCreateFromGif | Subir | imagecreatefrompng


imagecreatefrompng

(PHP 3>= 3.0.13, PHP 4 )

imagecreatefrompng -- Crea una imagen nueva desde un fichero o URL

Descripción

resource imagecreatefrompng ( string nombre_archivo)

imagecreatefrompng() devuelve un identificador de imagen que representa a la imagen obtenida a partir del nombre de archivo indicado.

imagecreatefrompng() devuelve una cadena vacía si ha fallado. También escribe un mensaje de error, que desafortunadamente se muestra en el navegador como un enlace roto. Para depurar con mayor comodidad, el ejemplo siguiente producirá un JPEG erróneo:

Ejemplo 1. Ejemplo de cómo manipular un error durante la creación (cortesía de vic@zymsys.com )

function CargarJpeg ($nombreimg) {
    $im = @imagecreatefrompng ($nombreimg); /* Intento de apertura */
    if (!$im) { /* Comprobar si ha fallado */
        $im  = imagecreate (150, 30); /* Crear una imagen en blanco */
        $bgc = imagecolorallocate ($im, 255, 255, 255);
        $tc  = imagecolorallocate ($im, 0, 0, 0);
        imagefilledrectangle ($im, 0, 0, 150, 30, $bgc);
        /* Mostrar un mensaje de error */
        imagestring ($im, 1, 5, 5, "Error cargando $nombreimg", $tc);
    }
    return $im;
}

Anterior | Inicio | Siguiente
imagecreatefromjpeg | Subir | imagecreatefromstring


imagecreatefromstring

(PHP 4 >= 4.0.4)

imagecreatefromstring -- Create a new image from the image stream in the string

Description

resource imagecreatefromstring ( string image)

imagecreatefromstring() returns an image identifier representing the image obtained from the given string.

Anterior | Inicio | Siguiente
imagecreatefrompng | Subir | imagecreatefromwbmp


imagecreatefromwbmp

(PHP 4 >= 4.0.1)

imagecreatefromwbmp -- Create a new image from file or URL

Description

resource imagecreatefromwbmp ( string filename)

imagecreatefromwbmp() returns an image identifier representing the image obtained from the given filename.

imagecreatefromwbmp() returns an empty string on failure. It also outputs an error message, which unfortunately displays as a broken link in a browser. To ease debugging the following example will produce an error WBMP:

Ejemplo 1. Example to handle an error during creation (courtesy vic at zymsys dot com)

<?php
function LoadWBMP ($imgname) {
    $im = @imagecreatefromwbmp ($imgname); /* Attempt to open */
    if (!$im) { /* See if it failed */
        $im  = imagecreate (20, 20); /* Create a blank image */
        $bgc = imagecolorallocate ($im, 255, 255, 255);
        $tc  = imagecolorallocate ($im, 0, 0, 0);
        imagefilledrectangle ($im, 0, 0, 10, 10, $bgc);
        /* Output an errmsg */
        imagestring ($im, 1, 5, 5, "Error loading $imgname", $tc);
    }
    return $im;
}
?>

Nota: WBMP support is only available if PHP was compiled against GD-1.8 or later.

Sugerencia: Puede usar una URL como nombre de archivo con esta función si los fopen wrappers han sido activados. Consulte fopen() para más detalles sobre cómo especificar el nombre de fichero y Apéndice I una lista de protocolos URL soportados

Aviso

Versiones de PHP para Windows anteriores a 4.3.0, no soportan el acceso remoto a archivos para esta función, no funcionará ni activando siquiera allow_url_fopen.

Anterior | Inicio | Siguiente
imagecreatefromstring | Subir | imagecreatefromxbm


imagecreatefromxbm

(PHP 4 >= 4.0.1)

imagecreatefromxbm -- Create a new image from file or URL

Description

resource imagecreatefromxbm ( string filename)

imagecreatefromxbm() returns an image identifier representing the image obtained from the given filename.

Sugerencia: Puede usar una URL como nombre de archivo con esta función si los fopen wrappers han sido activados. Consulte fopen() para más detalles sobre cómo especificar el nombre de fichero y Apéndice I una lista de protocolos URL soportados

Aviso

Versiones de PHP para Windows anteriores a 4.3.0, no soportan el acceso remoto a archivos para esta función, no funcionará ni activando siquiera allow_url_fopen.

Anterior | Inicio | Siguiente
imagecreatefromwbmp | Subir | imagecreatefromxpm


imagecreatefromxpm

(PHP 4 >= 4.0.1)

imagecreatefromxpm -- Create a new image from file or URL

Description

resource imagecreatefromxpm ( string filename)

imagecreatefromxpm() returns an image identifier representing the image obtained from the given filename.

Sugerencia: Puede usar una URL como nombre de archivo con esta función si los fopen wrappers han sido activados. Consulte fopen() para más detalles sobre cómo especificar el nombre de fichero y Apéndice I una lista de protocolos URL soportados

Aviso

Versiones de PHP para Windows anteriores a 4.3.0, no soportan el acceso remoto a archivos para esta función, no funcionará ni activando siquiera allow_url_fopen.

Anterior | Inicio | Siguiente
imagecreatefromxbm | Subir | imagecreatetruecolor


imagecreatetruecolor

(PHP 4 >= 4.0.6)

imagecreatetruecolor -- Crea una imagen nueva en color real (true color)

Descripción

resource imagecreatetruecolor ( int anchura, int altura)

imagecreatetruecolor() devuelve un identificador de imagen representando una imagen en blanco de tamaño anchura por altura.

Nota: Esta función fue añadida en PHP 4.0.6 y requiere GD 2.0.1 o superior

Anterior | Inicio | Siguiente
imagecreatefromxpm | Subir | ImageDashedLine


ImageDashedLine

(PHP 3, PHP 4 )

ImageDashedLine -- Dibuja una línea discontinua

Descripción

int imagedashedline ( int im, int x1, int y1, int x2, int y2, int col)

ImageLine dibuja una línea discontinua desde x1,y1 hasta x2, y2 (arriba izquierda es 0.0) en la imagen im con el color col.

Vea también imageline().

Anterior | Inicio | Siguiente
imagecreatetruecolor | Subir | ImageDestroy


ImageDestroy

(PHP 3, PHP 4 )

ImageDestroy -- Destruye una imagen

Descripción

int imagedestroy ( int im)

ImageDestroy libera la memoria asociada a la imagen im. im es la imagen devuelta por la función imagecreate().

Anterior | Inicio | Siguiente
ImageDashedLine | Subir | imageellipse


imageellipse

(PHP 4 >= 4.0.6)

imageellipse -- Draw an ellipse

Description

int imageellipse ( resource image, int cx, int cy, int w, int h, int color)

imageellipse() draws an ellipse centered at cx, cy (top left is 0, 0) in the image represented by image. W and h specifies the ellipse's width and height respectively. The color of the ellipse is specified by color.

Nota: This function was added in PHP 4.0.6 and requires GD 2.0.2 or later which can be obtained at http://www.boutell.com/gd/

Ejemplo 1. imageellipse() example

<?php

// create a blank image
$image = imagecreate(400,300);

// fill the background color
$bg = imagecolorallocate($image,0,0,0);

// choose a color for the ellipse
$col_ellipse = imagecolorallocate($image,255,255,255);

// draw the ellipse
imageellipse($image, 200, 150, 300, 200, $col_ellipse);

// output the picture
header("Content-type: image/png");
imagepng($image);

?>

See also imagefilledellipse() and imagearc().

Anterior | Inicio | Siguiente
ImageDestroy | Subir | ImageFill


ImageFill

(PHP 3, PHP 4 )

ImageFill -- Relleno

Descripción

int imagefill ( int im, int x, int y, int col)

ImageFill realiza un relleno empezando en la coordenada x,y (arriba izquierda es 0,0) con el color col en la imagen im.

Anterior | Inicio | Siguiente
imageellipse | Subir | imagefilledarc


imagefilledarc

(PHP 4 >= 4.0.6)

imagefilledarc -- Draw a partial ellipse and fill it

Description

bool imagefilledarc ( resource image, int cx, int cy, int w, int h, int s, int e, int color, int style)

imagefilledarc() draws a partial ellipse centered at cx, cy (top left is 0, 0) in the image represented by image. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo. W and h specifies the ellipse's width and height respectively while the start and end points are specified in degrees indicated by the s and e arguments. style is a bitwise OR of the following possibilities:

  1. IMG_ARC_PIE

  2. IMG_ARC_CHORD

  3. IMG_ARC_NOFILL

  4. IMG_ARC_EDGED

IMG_ARC_PIE and IMG_ARC_CHORD are mutually exclusive; IMG_ARC_CHORD just connects the starting and ending angles with a straight line, while IMG_ARC_PIE produces a rounded edge. IMG_ARC_NOFILL indicates that the arc or chord should be outlined, not filled. IMG_ARC_EDGED, used together with IMG_ARC_NOFILL, indicates that the beginning and ending angles should be connected to the center - this is a good way to outline (rather than fill) a 'pie slice'.

Ejemplo 1. Creating a 3D looking pie

<?php

// this example is provided by poxy at klam dot is

// create image
$image = imagecreate(100, 100);

// allocate some solors
$white    = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
$gray     = imagecolorallocate($image, 0xC0, 0xC0, 0xC0);
$darkgray = imagecolorallocate($image, 0x90, 0x90, 0x90);
$navy     = imagecolorallocate($image, 0x00, 0x00, 0x80);
$darknavy = imagecolorallocate($image, 0x00, 0x00, 0x50);
$red      = imagecolorallocate($image, 0xFF, 0x00, 0x00);
$darkred  = imagecolorallocate($image, 0x90, 0x00, 0x00);

// make the 3D effect
for ($i = 60; $i > 50; $i--) {
   imagefilledarc($image, 50, $i, 100, 50, 0, 45, $darknavy, IMG_ARC_PIE);
  imagefilledarc($image, 50, $i, 100, 50, 45, 75 , $darkgray, IMG_ARC_PIE);
  imagefilledarc($image, 50, $i, 100, 50, 75, 360 , $darkred, IMG_ARC_PIE);
}

imagefilledarc($image, 50, 50, 100, 50, 0, 45, $navy, IMG_ARC_PIE);
imagefilledarc($image, 50, 50, 100, 50, 45, 75 , $gray, IMG_ARC_PIE);
imagefilledarc($image, 50, 50, 100, 50, 75, 360 , $red, IMG_ARC_PIE);

// flush image
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>

Nota: This function was added in PHP 4.0.6 and requires GD 2.0.1

Anterior | Inicio | Siguiente
ImageFill | Subir | imagefilledellipse


imagefilledellipse

(PHP 4 >= 4.0.6)

imagefilledellipse -- Draw a filled ellipse

Description

bool imagefilledellipse ( resource image, int cx, int cy, int w, int h, int color)

imagefilledellipse() draws an ellipse centered at cx, cy (top left is 0, 0) in the image represented by image. W and h specifies the ellipse's width and height respectively. The ellipse is filled using color. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Nota: This function was added in PHP 4.0.6 and requires GD 2.0.1 or later

Ejemplo 1. imagefilledellipse() example

<?php

// create a blank image
$image = imagecreate(400,300);

// fill the background color
$bg = imagecolorallocate($image,0,0,0);

// choose a color for the ellipse
$col_ellipse = imagecolorallocate($image,255,255,255);

// draw the white ellipse
imagefilledellipse($image, 200, 150, 300, 200, $col_ellipse);

// output the picture
header("Content-type: image/png");
imagepng($image);

?>

See also imageellipse() and imagefilledarc().

Anterior | Inicio | Siguiente
imagefilledarc | Subir | ImageFilledPolygon


ImageFilledPolygon

(PHP 3, PHP 4 )

ImageFilledPolygon -- Dibuja un polígono relleno

Descripción

int imagefilledpolygon ( int im, array points, int num_points, int col)

ImageFilledPolygon crea un polígono relleno en la imagen im, points es una matriz PHP conteniendo los vértices del poligono, por ejemplo. points[0] = x0, points[1] = y0, points[2] = x1, points[3] = y1, etc. num_points es el número total de vértices.

Anterior | Inicio | Siguiente
imagefilledellipse | Subir | ImageFilledRectangle


ImageFilledRectangle

(PHP 3, PHP 4 )

ImageFilledRectangle -- dibuja un rectángulo relleno

Descripción

int imagefilledrectangle ( int im, int x1, int y1, int x2, int y2, int col)

ImageFilledRectangle crea un rectángulo relleno con color col en la imagen im comenzando con las coordenadas superiores izquierdas x1, y1 y finalizando en las coordenadas inferiores derechas x2, y2. 0,0 es la esquina superior izquierda de la imagen.

Anterior | Inicio | Siguiente
ImageFilledPolygon | Subir | ImageFillToBorder


ImageFillToBorder

(PHP 3, PHP 4 )

ImageFillToBorder -- Relleno de un color especifico

Descripción

int imagefilltoborder ( int im, int x, int y, int border, int col)

ImageFillToBorder realiza un relleno hasta el color del borde que está definido por border. El punto de inicio para el relleno es x,y (arriba izquierda es 0,0) y la región se rellena con el color col.

Anterior | Inicio | Siguiente
ImageFilledRectangle | Subir | ImageFontHeight


ImageFontHeight

(PHP 3, PHP 4 )

ImageFontHeight -- Devuelve la altura de una fuente

Descripción

int imagefontheight ( int font)

Devuelve la altura en pixels de un carácter en un fuente específica.

Vea también imagefontwidth() y imageloadfont().

Anterior | Inicio | Siguiente
ImageFillToBorder | Subir | ImageFontWidth


ImageFontWidth

(PHP 3, PHP 4 )

ImageFontWidth -- Devuelve la anchura de una fuente

Descripción

int imagefontwidth ( int font)

Devuelve la anchura en pixels de un carácter en un fuente específica.

Vea también imagefontheight() y imageloadfont().

Anterior | Inicio | Siguiente
ImageFontHeight | Subir | imageftbbox


imageftbbox

(PHP 4 >= 4.1.0)

imageftbbox -- Give the bounding box of a text using fonts via freetype2

Description

array imageftbbox ( int size, int angle, string font_file, string text [, array extrainfo])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ImageFontWidth | Subir | imagefttext


imagefttext

(PHP 4 >= 4.1.0)

imagefttext -- Write text to the image using fonts using FreeType 2

Description

array imagefttext ( resource image, int size, int angle, int x, int y, int col, string font_file, string text [, array extrainfo])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
imageftbbox | Subir | imagegammacorrect


imagegammacorrect

(PHP 3>= 3.0.13, PHP 4 )

imagegammacorrect -- Apply a gamma correction to a GD image

Description

int imagegammacorrect ( resource image, float inputgamma, float outputgamma)

The imagegammacorrect() function applies gamma correction to a gd image stream (image) given an input gamma, the parameter inputgamma and an output gamma, the parameter outputgamma.

Anterior | Inicio | Siguiente
imagefttext | Subir | imagegd2


imagegd2

(PHP 4 >= 4.1.0)

imagegd2 -- Output GD2 image

Description

int imagegd2 ( resource image [, string filename [, int chunk_size [, int type]]])

imagegd2() outputs GD2 image to browser or file.

The optional type parameter is either IMG_GD2_RAW or IMG_GD2_COMPRESSED. Default is IMG_GD2_RAW.

Nota: The optional chunk_size and type parameters became available in PHP 4.3.2.

Anterior | Inicio | Siguiente
imagegammacorrect | Subir | imagegd


imagegd

(PHP 4 >= 4.1.0)

imagegd -- Output GD image to browser or file

Description

int imagegd ( resource image [, string filename])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
imagegd2 | Subir | ImageGif


ImageGif

(PHP 3, PHP 4 )

ImageGif -- Envía una imagen al navegador o a un fichero

Descripción

int imagegif ( int im, string filename)

imagegif() crea el fichero GIF en filename a partir de la imagen im. El parámetro im es el resultado de usar la función imagecreate().

El formato de la imagen será GIF87a a menos que la imagen se halla hecho transparente con imagecolortransparent(), en cuyo caso el formato de la imagen será GIF89a.

El parametro del nombre del fuichero es opcional, y si se deja en blanco, la imagen será mostrada directamente. Enviando un tipo de imagen/gif usando la función header(), puede crear un script PHP que muestre imagenes GIF directamente.

Nota: Desde que todo el soporte a GIFs ha sido eliminado en la libreria GD a partir de la versión 1.6, esta función no está disponible si está usando esa versión de la libreria GD.

Anterior | Inicio | Siguiente
imagegd | Subir | ImageInterlace


ImageInterlace

(PHP 3, PHP 4 )

ImageInterlace -- Activa o desactiva el entrelazado

Descripción

int imageinterlace ( int im [, int interlace])

ImageInterlace() activa o desactiva el bit de entrelazado. Si interlace es 1 la imagen im será entrelazada, y si interlace es 0 el bit de entrelazado se desactiva.

Esta función devuelve como ha cambiado el estado del bit de entralazado de la imagen.

Anterior | Inicio | Siguiente
ImageGif | Subir | imageistruecolor


imageistruecolor

(PHP 4 >= 4.3.2)

imageistruecolor -- Finds whether an image is a truecolor image.

Description

bool imageistruecolor ( resource image)

imageistruecolor() finds whether the image image is a truecolor image.

See also imagecreatetruecolor().

Anterior | Inicio | Siguiente
ImageInterlace | Subir | imagejpeg


imagejpeg

(PHP 3>= 3.0.16, PHP 4 )

imagejpeg -- Output image to browser or file

Description

int imagejpeg ( resource image [, string filename [, int quality]])

imagejpeg() creates the JPEG file in filename from the image image. The image argument is the return from the imagecreate() function.

The filename argument is optional, and if left off, the raw image stream will be output directly. To skip the filename argument in order to provide a quality argument just use an empty string (''). By sending an image/jpeg content-type using header(), you can create a PHP script that outputs JPEG images directly.

Nota: JPEG support is only available if PHP was compiled against GD-1.8 or later.

quality is optional, and ranges from 0 (worst quality, smaller file) to 100 (best quality, biggest file). The default is the default IJG quality value (about 75).

If you want to output Progressive JPEGs, you need to set interlacing on with imageinterlace().

See also
imagepng(),
imagegif(),
imagewbmp(),
imageinterlace() and
imagetypes().

Anterior | Inicio | Siguiente
imageistruecolor | Subir | ImageLine


ImageLine

(PHP 3, PHP 4 )

ImageLine -- Dibuja una línea

Descripción

int imageline ( int im, int x1, int y1, int x2, int y2, int col)

ImageLine dibuja una línea desde x1,y1 hasta x2,y2 (arriba izquierda es 0,0) en la imagen im con el color col.

Vea también imagecreate() y imagecolorallocate().

Anterior | Inicio | Siguiente
imagejpeg | Subir | ImageLoadFont


ImageLoadFont

(PHP 3, PHP 4 )

ImageLoadFont -- Carga una fuente nueva

Descripción

int imageloadfont ( string file)

ImageLoadFont carga una fuente de bitmaps definida por el usuario y devuelve un identificador para esa fuente (que siempre es mayor de 5, de forma que no pueda entrar en conflicto con las fuentes predefinidas)..

El formato del fichero de la fuente es actualmente binario y dependiente de la arquitectura. Esto significa que tiene que generar los ficheros de las fuentes en el mismo tipo de CPU que la que tiene la máquina que está ejecutando PHP.

Tabla 1. Formato del fichero de fuentes

Posición en bytes | tipo de datos C | Descripción
byte 0-3 | int | número de carácteres en la fuente
byte 4-7 | int | valor del primer carácter de la fuente (normalmente 32 para el espacio)
byte 8-11 | int | Anchura en pixels de cada carácter
byte 12-15 | int | Altura en pixels de cada carácter
byte 16- | char | matriz con los datos del carácter, un byte por pixel en cada carácter, haciendo un total de (número carácteres* altura*anchura) bytes.

Vea también ImageFontWidth() y ImageFontHeight().

Anterior | Inicio | Siguiente
ImageLine | Subir | imagepalettecopy


imagepalettecopy

(PHP 4 >= 4.0.1)

imagepalettecopy -- Copy the palette from one image to another

Description

int imagepalettecopy ( resource destination, resource source)

imagepalettecopy() copies the palette from the source image to the destination image.

Anterior | Inicio | Siguiente
ImageLoadFont | Subir | imagepng


imagepng

(PHP 3>= 3.0.13, PHP 4 )

imagepng -- Output a PNG image to either the browser or a file

Description

int imagepng ( resource image [, string filename])

The imagepng() outputs a GD image stream (image) in PNG format to standard output (usually the browser) or, if a filename is given by the filename it outputs the image to the file.

<?php
$im = imagecreatefrompng ("test.png");
imagepng ($im);
?>

See also imagegif(), imagewbmp(), imagejpeg(), imagetypes().

Anterior | Inicio | Siguiente
imagepalettecopy | Subir | ImagePolygon


ImagePolygon

(PHP 3, PHP 4 )

ImagePolygon -- Dibuja un polígono

Descripción

int imagepolygon ( int im, array points, int num_points, int col)

ImagePolygon crea un polígono en la imagen id. points es un array PHP conteniendo los vértices del polígono. de la siguiente forma points[0] = x0, points1 = y0, points[2] = x1, points[3] = y1, etc. num_points es el número total de vértices.

Vea también imagecreate().

Anterior | Inicio | Siguiente
imagepng | Subir | ImagePSBBox


ImagePSBBox

(PHP 3>= 3.0.9, PHP 4 )

ImagePSBBox -- Devuelve el borde que rodea un rectángulo de texto usando fuentes PostScript Type1

Descripción

array imagepsbbox ( string text, int font, int size, int space, int width, float angle)

size representa pixels.

space perimte cambiar el valor por defecto de un espacio en una fuentes. Este valor es añadido al valor normal y puede ser negativo.

tightness permite controlar la cantidad de espacio en blanco entre carácteres. Este valor se añade a la anchura normal del carácter y puede ser negativo.

angle viene dado en grados.

Los parámetros space y tightness vienen expresados en unidades de espacio de carácteres, donde una unidad es 1/1000 el borde de una M.

Los parámetros space, tightness y angle son opcionales.

El borde es calculado usando la información disponible de las métricas del carácter, y desafortunadamente tiende a diferir ligeramente de los resultados obtenidos de digitalizar el texto. Si el ángulo es de 0 grados, puede esperar que el texto necesite un pixel más en cada dirección.

Esta función devuelve un array conteniuendo los siguientes elementos:

0 | coordenada x inferior izquierda
1 | coordenada y inferior izquierda
2 | coordenada x superior derecha
3 | coordenada y superior derecha

Vea también imagepstext().

Anterior | Inicio | Siguiente
ImagePolygon | Subir | ImagePSCopyFont


ImagePSCopyFont

(PHP 3>= 3.0.9, PHP 4 )

ImagePSCopyFont -- hace una copia de una fuente ya cargada para futuras modificaciones

Descripción

int imagepscopyfont ( int fontindex)

Use esta función si necesita hacer modificaciones en la fuente, por ejemplo expander/condensar, inclinarla o cambiar su vector de codificación de caracteres, pero también necesita mantener la fuente original. Note que la fuente que quiera copiar debe haber sido obtenida usando imagepsloadfont(), no una fuente que sea una copia de otra. Aunque puede hacer modificaciones antes de copiarla.

Si usa esta función, debe liberar las fuentes obtenidas de esta manera. De otra forma su script se colgará.

En el caso de que todo vaya bien, devolverá un índice de fuente válido que puede ser usado para futuos propósitos. De otra forma la función devolverá FALSE e imprimirá un mensaje indicando que es lo que ha ido mal.

Vea también imageploadpsfont().

Anterior | Inicio | Siguiente
ImagePSBBox | Subir | ImagePSEncodeFont


ImagePSEncodeFont

(PHP 3>= 3.0.9, PHP 4 )

ImagePSEncodeFont -- Cambia el vector de codificación de caracteres de una fuente

Descripción

int imagepsencodefont ( string encodingfile)

Carga un vector de codificación de caracteres desde un archivo y cambia el vector de codificación de las fuentes a él. Loads a character encoding vector from from a file and changes the fonts encoding vector to it. En las fuentes PostScript normalmente faltan muchos caracteres por encima de 127, seguramente quiera cambiar esto si emplea u idioma distinto del inglés.El formato exacto de este archivo está descrito en la documentación de T1libs. T1lib viene con dos archivos listos para usar, IsoLatin1.enc y IsoLatin2.enc.

Si se encuentra usando esta función todo el tiempo, una forma mucho mejor de definir la codificación es establecer ps.default_encoding en el archivo de configuración para que apunte al archivo de codificación correcto y todas las fuentes que cargue tendrán de forma automática la codificación correcta.

Anterior | Inicio | Siguiente
ImagePSCopyFont | Subir | imagepsextendfont


imagepsextendfont

(PHP 3>= 3.0.9, PHP 4 )

imagepsextendfont -- Extend or condense a font

Description

bool imagepsextendfont ( int font_index, float extend)

Extend or condense a font (font_index), if the value of the extend parameter is less than one you will be condensing the font.

Nota: This function is only available if PHP is compiled using --enable-t1lib.

Anterior | Inicio | Siguiente
ImagePSEncodeFont | Subir | ImagePSFreeFont


ImagePSFreeFont

(PHP 3>= 3.0.9, PHP 4 )

ImagePSFreeFont -- Libera la memoria usada por un fuente PostScript Type 1

Descripción

void imagepsfreefont ( int fontindex)

Vea también imagepsloadfont().

Anterior | Inicio | Siguiente
imagepsextendfont | Subir | ImagePSLoadFont


ImagePSLoadFont

(PHP 3>= 3.0.9, PHP 4 )

ImagePSLoadFont -- Carga una fuente PostScript Type 1 desde un fichero

Descripción

int imagepsloadfont ( string filename)

En el caso de que todo vaya bien, tiene que devolver un índice de fuente correcto que puede ser usado para futuras operaciones. En caso contrario la función devuelve FALSE e imprime un mensaje describiendo donde ha fallado

Vea también imagepsfreefont().

Anterior | Inicio | Siguiente
ImagePSFreeFont | Subir | imagepsslantfont


imagepsslantfont

(PHP 3>= 3.0.9, PHP 4 )

imagepsslantfont -- Slant a font

Description

bool imagepsslantfont ( int font_index, float slant)

Slant a font given by the font_index parameter with a slant of the value of the slant parameter.

Nota: This function is only available if PHP is compiled using --enable-t1lib.

Anterior | Inicio | Siguiente
ImagePSLoadFont | Subir | ImagePSText


ImagePSText

(PHP 3>= 3.0.9, PHP 4 )

ImagePSText -- Para dibujar una cadena de texto sobre una imagen usando fuentes PostScript Type1

Descripción

array imagepstext ( int image, string text, int font, int size, int foreground, int background, int x, int y [, int space [, int tightness [, float angle [, int antialias_steps]]]])

size viene expresado en pixels.

foreground es el color en el cual el texto será pintado. background es el color en el que el texto tratará de resaltar con antialiaing. Los pixels con el color background no se pintan, de forma que la imagen de fondo no necesita ser de un color sólido.

Las coordenadas dadas por x, y definirán el origen (o punto de referencia) del primer carácter (la esquina superior izquierda del carácter). Esto es diferente de la función ImageString(), donde x, y definen la esquina superiro derecha del primer carácter. Consulte la documentación de PostScript sobre fuentes y su sistema de medidas si tiene algún problema entendiendo como funcion.

space permite cambiar el valor por defecto de un espacio en la fuente. Esta cantidad es sumada al valor normal y puede ser negativa.

tightness permite controlar la cantidad de espacio en blanco entre caracteres. Esta cantidad es sumada al valor normal y puede ser negativa.

angle viene en grados.

antialias_steps permite controlar el número de colores usados para el antialising del texto. Los valores permitidos son 4 y 16. El valor superior está recomendado para textos con tamaños inferiores a 20, donde el efecto en la calidad del texto es bastante visible. Con tamaños superiores use 4. Hace un menor uso de cálculo.

Parameters space y tightness están expresados en unidades de espacio de caracteres, donde 1 unidad es 1/1000 de una M mayúscula.

Los parámetros space, tightness, angle y antialias son opcionales.

Esta función devuelve una matriz conteniendo los siguientes elementos:

0 | coordenada x inferior izquierda
1 | coordenada y inferior izquierda
2 | coordenada x superior derecha
3 | coordenada y superior derecha

Vea también imagepsbbox().

Anterior | Inicio | Siguiente
imagepsslantfont | Subir | ImageRectangle


ImageRectangle

(PHP 3, PHP 4 )

ImageRectangle -- Dibuja un rectángulo

Descripción

int imagerectangle ( int im, int x1, int y1, int x2, int y2, int col)

ImageRectangle crea un rectángulo de color col en la imagen im comenzando en la coordenada superior izquierda x1,y1 y finalizando en la coordenada inferior derecha x2,y2. 0,0 es la esquina superior izquierda de la imagen.

Anterior | Inicio | Siguiente
ImagePSText | Subir | imagerotate


imagerotate

(PHP 4 >= 4.3.0)

imagerotate -- Rotate an image with a given angle

Description

resource imagerotate ( resource src_im, float angle, int bgd_color)

Rotates the src_im image using a given angle in degree. bgd_color specifies the color of the uncovered zone after the rotation.

Anterior | Inicio | Siguiente
ImageRectangle | Subir | imagesavealpha


imagesavealpha

(PHP 4 >= 4.3.2)

imagesavealpha -- Set the flag to save full alpha channel information (as opposed to single-color transparency) when saving PNG images.

Description

bool imagesavealpha ( resource image, bool saveflag)

imagesavealpha() sets the flag to attempt to save full alpha channel information (as opposed to single-color transparency) when saving PNG images.

You have to unset alphablending (imagealphablending($im,FALSE)), to use it.

Alpha channel is not supported by all browsers, if you have problem with your browser, try to load your script with an alpha channel compliant browser, e.g. latest Mozilla.

See also imagealphablending().

Anterior | Inicio | Siguiente
imagerotate | Subir | imagesetbrush


imagesetbrush

(PHP 4 >= 4.0.6)

imagesetbrush -- Set the brush image for line drawing

Description

int imagesetbrush ( resource image, resource brush)

imagesetbrush() sets the brush image to be used by all line drawing functions (such as imageline() and imagepolygon()) when drawing with the special colors IMG_COLOR_BRUSHED or IMG_COLOR_STYLEDBRUSHED.

Nota: You need not take special action when you are finished with a brush, but if you destroy the brush image, you must not use the IMG_COLOR_BRUSHED or IMG_COLOR_STYLEDBRUSHED colors until you have set a new brush image!

Nota: This function was added in PHP 4.0.6

Anterior | Inicio | Siguiente
imagesavealpha | Subir | ImageSetPixel


ImageSetPixel

(PHP 3, PHP 4 )

ImageSetPixel -- Dibuja un pixel

Descripción

int imagesetpixel ( int im, int x, int y, int col)

ImageSetPixel dibuja un pixel x,y (arriba izquierda 0,0) en la imagen im con color col.

Vea también imagecreate() y imagecolorallocate().

Anterior | Inicio | Siguiente
imagesetbrush | Subir | imagesetstyle


imagesetstyle

(PHP 4 >= 4.0.6)

imagesetstyle -- Set the style for line drawing

Description

bool imagesetstyle ( resource image, array style)

imagesetstyle() sets the style to be used by all line drawing functions (such as imageline() and imagepolygon()) when drawing with the special color IMG_COLOR_STYLED or lines of images with color IMG_COLOR_STYLEDBRUSHED. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

The style parameter is an array of pixels. Following example script draws a dashed line from upper left to lower right corner of the canvas:

Ejemplo 1. imagesetstyle() example

<?php
header ("Content-type: image/jpeg");
$im  = imagecreate (100, 100);
$w   = imagecolorallocate ($im, 255, 255, 255);
$red = imagecolorallocate ($im, 255, 0, 0);

/* Draw a dashed line, 5 red pixels, 5 white pixels */
$style = array ($red,$red,$red,$red,$red,$w,$w,$w,$w,$w);
imagesetstyle ($im, $style);
imageline ($im, 0, 0, 100, 100, IMG_COLOR_STYLED);

/* Draw a line of happy faces using imagesetbrush() with imagesetstyle */
$style = array ($w,$w,$w,$w,$w,$w,$w,$w,$w,$w,$w,$w,$red);
imagesetstyle ($im, $style);

$brush = imagecreatefrompng ("http://www.libpng.org/pub/png/images/smile.happy.png");
$w2 = imagecolorallocate($brush,255,255,255);
imagecolortransparent ($brush, $w2);
imagesetbrush ($im, $brush);
imageline ($im, 100, 0, 0, 100, IMG_COLOR_STYLEDBRUSHED);

imagejpeg ($im);
imagedestroy ($im);
?>

See also imagesetbrush(), imageline().

Nota: This function was added in PHP 4.0.6

Anterior | Inicio | Siguiente
ImageSetPixel | Subir | imagesetthickness


imagesetthickness

(PHP 4 >= 4.0.6)

imagesetthickness -- Set the thickness for line drawing

Description

bool imagesetthickness ( resource image, int thickness)

imagesetthickness() sets the thickness of the lines drawn when drawing rectangles, polygons, ellipses etc. etc. to thickness pixels. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Nota: This function was added in PHP 4.0.6 and requires GD 2.0.1 or later

Anterior | Inicio | Siguiente
imagesetstyle | Subir | imagesettile


imagesettile

(PHP 4 >= 4.0.6)

imagesettile -- Set the tile image for filling

Description

int imagesettile ( resource image, resource tile)

imagesettile() sets the tile image to be used by all region filling functions (such as imagefill() and imagefilledpolygon()) when filling with the special color IMG_COLOR_TILED.

A tile is an image used to fill an area with a repeated pattern. Any GD image can be used as a tile, and by setting the transparent color index of the tile image with imagecolortransparent(), a tile allows certain parts of the underlying area to shine through can be created.

Nota: You need not take special action when you are finished with a tile, but if you destroy the tile image, you must not use the IMG_COLOR_TILED color until you have set a new tile image!

Anterior | Inicio | Siguiente
imagesetthickness | Subir | ImageString


ImageString

(PHP 3, PHP 4 )

ImageString -- Dibuja una cadena de texto horizintalmente

Descripción

int imagestring ( int im, int font, int x, int y, string s, int col)

ImageString dibuja la cadena s en la imagen identificada por im en las coordenadas x,y (arriba izquierda es 0,0) en el color col. Si la fuente es 1, 2, 3, 4 o 5, se emplea una fuente interna.

Vea también imageloadfont().

Anterior | Inicio | Siguiente
imagesettile | Subir | ImageStringUp


ImageStringUp

(PHP 3, PHP 4 )

ImageStringUp -- Dibuja una cadena de texto verticalmente

Descripción

int imagestringup ( int im, int font, int x, int y, string s, int col)

ImageStringUp dibuja la cadena s verticalmente en la imagen identificada por im en las coordenadas x,y (arriba izquierda es 0,0) en el color col. Si la fuente es 1, 2, 3, 4 o 5, se usa una fuente interna.

Vea también imageloadfont().

Anterior | Inicio | Siguiente
ImageString | Subir | ImageSX


ImageSX

(PHP 3, PHP 4 )

ImageSX -- Obtiene la anchura de la imagen

Descripción

int imagesx ( int im)

ImageSX devuelva la anchura de la imagen identificado por im.

Vea también imagecreate() y imagesy().

Anterior | Inicio | Siguiente
ImageStringUp | Subir | ImageSY


ImageSY

(PHP 3, PHP 4 )

ImageSY -- Obtiene la altura de la imagen

Descripción

int imagesy ( int im)

ImageSY devuelve la altura de la imagen identificada por im.

Vea también imagecreate() y imagesx().

Anterior | Inicio | Siguiente
ImageSX | Subir | imagetruecolortopalette


imagetruecolortopalette

(PHP 4 >= 4.0.6)

imagetruecolortopalette -- Convert a true color image to a palette image

Description

void imagetruecolortopalette ( resource image, bool dither, int ncolors)

imagetruecolortopalette() converts a truecolor image to a palette image. The code for this function was originally drawn from the Independent JPEG Group library code, which is excellent. The code has been modified to preserve as much alpha channel information as possible in the resulting palette, in addition to preserving colors as well as possible. This does not work as well as might be hoped. It is usually best to simply produce a truecolor output image instead, which guarantees the highest output quality.

dither indicates if the image should be dithered - if it is TRUE then dithering will be used which will result in a more speckled image but with better color approximation.

ncolors sets the maximum number of colors that should be retained in the palette.

Nota: This function was added in PHP 4.0.6 and requires GD 2.0.1 or later

Anterior | Inicio | Siguiente
ImageSY | Subir | ImageTTFBBox


ImageTTFBBox

(PHP 3>= 3.0.1, PHP 4 )

ImageTTFBBox -- Devuelve un caja que rodea al texto usando fuentes TypeType

Descripción

array ImageTTFBBox ( int size, int angle, string fontfile, string text)

Esta función calcula y devuelve un rectángulo en pixels que encierra un texto con TrueType.

text

La cadena que ha de ser medida.

size

El tamaño de la fuente.

fontfile

El nombre del archivo de fuente TrueType. (Puede ser también una URL.)

angle

Ángulo en grados en el text que va a ser medido.

ImageTTFBBox() devuelve una matriz con 8 elementos representando cuatro puntos que hacen una caja rodeando al texto:

0 | esquina inferior izquierda, posición X
1 | esquina inferior izquierda, posición Y
2 | esquina inferior derecha, posición X
3 | esquina inferior derecha, posición Y
4 | esquina superior derecha, posición X
5 | esquina superior derecha, posición Y
6 | esquina superior izquierda, posición X
7 | esquina superior izquierda, posición Y

Los puntos son relativos a text a pesar del ángulo, de forma que "superior izquierda" significa la esquina superior izquierda viendo el texto horizontalmente.

Esta función requiere tanto la libreria GD como la libreria Freetype.

Vea también ImageTTFText().

Anterior | Inicio | Siguiente
imagetruecolortopalette | Subir | ImageTTFText


ImageTTFText

(PHP 3, PHP 4 )

ImageTTFText -- Escribe texto en la imagen usando fuentes TrueType

Descripción

array ImageTTFText ( int im, int size, int angle, int x, int y, int col, string fontfile, string text)

ImageTTFText escribe la cadenatext en la imagen identificada por im, comenzando en las coordenadas x,y (arriba izquierda es 0,0), con un ángulo de angle en el color col, usando el ficheor de fuente TrueType identificado por fontfile.

Las coordenadas dadas por x,y definirán el punto base del primer carácter. (la esquina inferior izquierda del carácter). Esto es diferente de la función ImageString(), donde x,y definen la esquina superior derecha del primer carácter.

El angle viene dado en grados, donde 0 grados representa el texto de izquierda a derecha (dirección las 3 en punto), y valores superiores representan una rotación en el sentido de las agujas de un reloj. (ej. un valor de 90 representaría un texto que fuese de abajo hacia arriba).

fontfile es la ruta hacia la fuente TrueType que desee usar.

text es la cadena de texto que puede incluir secuencias de caracteres UTF-8 (de la forma: &123; ) para acceder a caracteres de la fuente más allá de los primeros 255.

col es el índice de color. El uso de un índice de color negativo tiene el efecto de desactivar el antialiasing.

ImageTTFText() devuelve una matriz con 8 elementos representando cuatro puntos que hace una caja que cubre el texto.El orden de los puntos en arriba izquierda, arriba derecha, abajo derecha, abajo izquierda. Los puntos son relativos al texto a pesar del ángulo, por lo que "arriba izquierda" significa en la esquina superior izquierda cuando ve el texto horizontalmente.

Este script de ejemplo producirá un GIF negro de 400x30 pixels, con las palabras "Testing..." en blanco con la fuente Arial.

Ejemplo 1. ImageTTFText

<?php
Header("Content-type: image/gif");
$im = imagecreate(400,30);
$black = ImageColorAllocate($im, 0,0,0);
$white = ImageColorAllocate($im, 255,255,255);
ImageTTFText($im, 20, 0, 10, 20, $white, "/path/arial.ttf", "Testing... Omega: &#937;");
ImageGif($im);
ImageDestroy($im);
?>

Esta función requiere la libreria GD y la libreria FreeType.

Vea también ImageTTFBBox().

Anterior | Inicio | Siguiente
ImageTTFBBox | Subir | imagetypes


imagetypes

(PHP 3 CVS only, PHP 4 >= 4.0.2)

imagetypes -- Return the image types supported by this PHP build

Description

int imagetypes ( void )

This function returns a bit-field corresponding to the image formats supported by the version of GD linked into PHP. The following bits are returned, IMG_GIF | IMG_JPG | IMG_PNG | IMG_WBMP. To check for PNG support, for example, do this:

Ejemplo 1. imagetypes() example

<?php
if (imagetypes() & IMG_PNG) {
    echo "PNG Support is enabled";
}
?>

Anterior | Inicio | Siguiente
ImageTTFText | Subir | imagewbmp


imagewbmp

(PHP 3>= 3.0.15, PHP 4 >= 4.0.1)

imagewbmp -- Output image to browser or file

Description

int imagewbmp ( resource image [, string filename [, int foreground]])

imagewbmp() creates the WBMP file in filename from the image image. The image argument is the return from the imagecreate() function.

The filename argument is optional, and if left off, the raw image stream will be output directly. By sending an image/vnd.wap.wbmp content-type using header(), you can create a PHP script that outputs WBMP images directly.

Nota: WBMP support is only available if PHP was compiled against GD-1.8 or later.

Using the optional foreground parameter, you can set the foreground color. Use an identifier obtained from imagecolorallocate(). The default foreground color is black.

See also image2wbmp(), imagepng(),
imagegif(), imagejpeg(),
imagetypes().

Anterior | Inicio | Siguiente
imagetypes | Subir | iptcembed


iptcembed

(PHP 3>= 3.0.7, PHP 4 )

iptcembed -- Embed binary IPTC data into a JPEG image

Description

array iptcembed ( string iptcdata, string jpeg_file_name [, int spool])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
imagewbmp | Subir | iptcparse


iptcparse

(PHP 3>= 3.0.6, PHP 4 )

iptcparse -- Parse a binary IPTC http://www.iptc.org/ block into single tags.

Description

array iptcparse ( string iptcblock)

This function parses a binary IPTC block into its single tags. It returns an array using the tagmarker as an index and the value as the value. It returns FALSE on error or if no IPTC data was found. See getimagesize() for a sample.

Anterior | Inicio | Siguiente
iptcembed | Subir | jpeg2wbmp


jpeg2wbmp

(PHP 4 >= 4.0.5)

jpeg2wbmp -- Convert JPEG image file to WBMP image file

Description

int jpeg2wbmp ( string jpegname, string wbmpname, int d_height, int d_width, int threshold)

Converts the jpegname JPEG file to WBMP format, and saves it as wbmpname. With the d_height and d_width you specify the height and width of the destination image.

Nota: WBMP support is only available if PHP was compiled against GD-1.8 or later.

See also png2wbmp().

Anterior | Inicio | Siguiente
iptcparse | Subir | png2wbmp


png2wbmp

(PHP 4 >= 4.0.5)

png2wbmp -- Convert PNG image file to WBMP image file

Description

int png2wbmp ( string pngname, string wbmpname, int d_height, int d_width, int threshold)

Converts the pngname PNG file to WBMP format, and saves it as wbmpname. With the d_height and d_width you specify the height and width of the destination image.

Nota: WBMP support is only available if PHP was compiled against GD-1.8 or later.

See also jpeg2wbmp().

Anterior | Inicio | Siguiente
jpeg2wbmp | Subir | read_exif_data


read_exif_data

read_exif_data -- Alias of exif_read_data()

Description

This function is an alias of exif_read_data().

Anterior | Inicio | Siguiente
png2wbmp | Subir | Funciones IMAP


Funciones IMAP

Manual de PHP
Anterior Siguiente

XLII. Funciones IMAP

Para hacer funcionar estas funciones, debe compilar PHP con --with-imap. Esto requiere que la libreria c-client esté instalada. Obtenga la última versión de ftp://ftp.cac.washington.edu/imap/ y compílela. Luego copie c-client/c-client.a al directorio /usr/local/lib o a cualquier otro directorio de su LINK path y copie c-client/rfc822.h, mail.h y linkage.h al directorio /usr/local/include o a cualquier otro de su INCLUDE path.

Decir que estas funciones no están limitadas al protocolo IMAP, a pesar de sus nombres. La librería subyacente c-client también soporta NNTP, POP3 y métodos de acceso local a buzones de correo. Vea imap_open() para una mayor información.

Tabla de contenidos
imap_8bit -- Convierte una cadena de 8bit a una cadena quoted-printable
imap_alerts -- Esta función devuelve todos los mensajes de alerta IMAP (si hubo) que han ocurrido durante la petición de la pagina o desde que la pila de alertas fue inicializada.
imap_append -- Agrega una cadena de mensaje al buzón especificado
imap_base64 -- Decodifica texto codificado en BASE64
imap_binary -- Convierte una cadena de 8bit a una cadena base64
imap_body -- Lee el cuerpo del mensaje
imap_bodystruct -- Read the structure of a specified body section of a specific message
imap_check -- Comprueba el estado del buzón actual
imap_clearflag_full -- Limpia los flags de los mensajes
imap_close -- Cierra una sesión IMAP
imap_createmailbox -- Crea un buzón nuevo
imap_delete -- Marca un mensaje para ser borrado en el buzón actual
imap_deletemailbox -- Elimina un buzón
imap_errors -- Esta función devuelve todos los errores IMAP (si hubo) que han occurrido durante la petición de la página o desde que la pila de errores se inicializó.
imap_expunge -- Elimina todos los mensajes marcados como borrados
imap_fetch_overview -- Read an overview of the information in the headers of the given message
imap_fetchbody -- Localiza una sección particular en el cuerpo del mensaje
imap_fetchheader -- Devuelve la cabecera del mensaje
imap_fetchstructure -- Lee la estructuta de un mensaje concreto
imap_get_quota -- Retrieve the quota level settings, and usage statics per mailbox
imap_get_quotaroot -- Retrieve the quota settings per user
imap_getacl -- Gets the ACL for a given mailbox
imap_getmailboxes -- Lee la lista de buzones, devolviendo informacón detallada de cada uno
imap_getsubscribed -- Lista todos los buzones subscritos
imap_header -- Lee la cabecera del mensaje
imap_headerinfo -- Read the header of the message
imap_headers -- Returns headers for all messages in a mailbox
imap_last_error -- Esta función devuelve el último error IMAP (si se produjo) que ocurrió durante la petición de esta página.
imap_list -- Read the list of mailboxes
imap_listmailbox -- Lee la lista de buzones
imap_listscan -- Read the list of mailboxes, takes a string to search for in the text of the mailbox
imap_listsubscribed -- Lista todos los buzones subscritos
imap_lsub -- List all the subscribed mailboxes
imap_mail_compose -- Create a MIME message based on given envelope and body sections
imap_mail_copy -- Copia los mensajes especificados a un buzón
imap_mail_move -- Mueve los mensajes especificados a un buzón
imap_mail -- Send an email message
imap_mailboxmsginfo -- Obtiene información acerca del buzón actual
imap_mime_header_decode -- Decode MIME header elements
imap_msgno -- Esta función devuelve el número de secuencia del mensaje para el UID dado.
imap_num_msg -- Informa del número de mensajes en el buzón actual
imap_num_recent -- Informa el número de mensajes recientes en el buzón actual
imap_open -- Abre una sesión IMAP
imap_ping -- Comprueba si la sesión IMAP está aún activa
imap_qprint -- Convierte una cadena quoted-printable a una cadena de 8 bit
imap_renamemailbox -- Renombra un buzón
imap_reopen -- Reabre una sesión IMAP a un nuevo buzón
imap_rfc822_parse_adrlist -- Examina la cadena dirección
imap_rfc822_parse_headers -- Parse mail headers from a string
imap_rfc822_write_address -- Devuleve una dirección de correo correctamente formateada dado el buzón, host, e información personal.
imap_scanmailbox -- Lee la lista de buzones y toma una cadena para buscar en el texto del buzón
imap_search -- Esta función devuelve un array de mensajes que coinciden con el criterio de busqueda dado.
imap_set_quota -- Sets a quota for a given mailbox
imap_setacl -- Sets the ACL for a giving mailbox
imap_setflag_full -- Activa flags en los mensajes
imap_sort -- Ordena un array de cabeceras de mensajes
imap_status -- Esta función devuelve el información de estado de otro buzón distinto al actual.
imap_subscribe -- Subscribe to a mailbox
imap_thread -- Return threaded by REFERENCES tree
imap_timeout -- Set or fetch imap timeout
imap_uid -- Esta función devuelve el UID del número de secuencia del mensaje dado
imap_undelete -- Desmarca los mensajes que están marcados como borrados
imap_unsubscribe -- Unsubscribe from a mailbox
imap_utf7_decode -- Decodes a modified UTF-7 encoded string.
imap_utf7_encode -- Converts ISO-8859-1 string to modified UTF-7 text.
imap_utf8 -- Converts MIME-encoded text to UTF-8

Anterior | Inicio | Siguiente
read_exif_data | Subir | imap_8bit


imap_8bit

(PHP 3, PHP 4 )

imap_8bit -- Convierte una cadena de 8bit a una cadena quoted-printable

Descripción

string imap_8bit ( string string)

Convierte una cadena de 8bit a una cadena quoted-printable.

Devuelve una cadena quoted-printable

Anterior | Inicio | Siguiente
Funciones IMAP | Subir | imap_alerts


imap_alerts

(PHP 3>= 3.0.12, PHP 4 )

imap_alerts -- Esta función devuelve todos los mensajes de alerta IMAP (si hubo) que han ocurrido durante la petición de la pagina o desde que la pila de alertas fue inicializada.

Descripción

array imap_alerts ( void )

Esta función devuelve un array con todos los mensajes de alerta IMAP generados desde la última llamada a imap_alerts(), o el comienzo de la pagina. Cuando se llama a imap_alerts(), la pila de alerta es inicializada. La especificación IMAP requiere que estos mensajes sean pasados al usuario.

Anterior | Inicio | Siguiente
imap_8bit | Subir | imap_append


imap_append

(PHP 3, PHP 4 )

imap_append -- Agrega una cadena de mensaje al buzón especificado

Descripción

int imap_append ( int imap_stream, string mbox, string message, string flags)

Devuelve TRUE si no hay error y FALSE en caso contrario.

imap_append() agrega una cadena de mensaje al buzón especificado mbox. Si se especifica el parámetro flags, escribe las opciones o condiciones establecidas en el parámetro flags al buzón.

Cuando conecte con el servidor Cyrus IMAP, debe usar "\r\n" como finalizador de linea en vez de "\n" o la operación fallará.

Anterior | Inicio | Siguiente
imap_alerts | Subir | imap_base64


imap_base64

(PHP 3, PHP 4 )

imap_base64 -- Decodifica texto codificado en BASE64

Descripción

string imap_base64 ( string text)

imap_base64() decodifica texto codificado en BASE-64. El mensaje decodificado es devuelto como una cadena.

Anterior | Inicio | Siguiente
imap_append | Subir | imap_binary


imap_binary

(PHP 3>= 3.0.2, PHP 4 )

imap_binary -- Convierte una cadena de 8bit a una cadena base64

Descripción

string imap_binary ( string string)

Convierte una cadena de 8bit a una cadena base64.

Devuleve una cadena base64.

Anterior | Inicio | Siguiente
imap_base64 | Subir | imap_body


imap_body

(PHP 3, PHP 4 )

imap_body -- Lee el cuerpo del mensaje

Descripción

string imap_body ( int imap_stream, int msg_number, int flags)

imap_body() devuelve el cuerpo del mensaje, numerado msg_number del buzón actual. Los flags opcionales son una máscara de bit con una o mas de las siguientes:

  • FT_UID - El msgno es un UID

  • FT_PEEK - No activar \Seen flag si no está ya activa

  • FT_INTERNAL - La cadena devuelta está en formato interno, no canoniza a CRLF.

Anterior | Inicio | Siguiente
imap_binary | Subir | imap_bodystruct


imap_bodystruct

(PHP 3>= 3.0.4, PHP 4 )

imap_bodystruct -- Read the structure of a specified body section of a specific message

Description

object imap_bodystruct ( resource stream_id, int msg_no, int section)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
imap_body | Subir | imap_check


imap_check

(PHP 3, PHP 4 )

imap_check -- Comprueba el estado del buzón actual

Descripción

object imap_check ( int imap_stream)

Devuelve información acerca del buzón actual. Devuelve FALSE si falla.

La función imap_check() comprueba el estado del buzón actual en el servidor y devuelve la información en un objeto con las siguientes propiedades.

Date : fecha del mensaje
Driver : controlador
Mailbox : nombre del buzón
Nmsgs : número de mensajes
Recent : número de mensajes recientes

Anterior | Inicio | Siguiente
imap_bodystruct | Subir | imap_clearflag_full


imap_clearflag_full

(PHP 3>= 3.0.3, PHP 4 )

imap_clearflag_full -- Limpia los flags de los mensajes

Descripción

string imap_clearflag_full ( int stream, string sequence, string flag, string options)

Esta funcion elimina el flag especificado del conjunto de flags activos para los mensajes en la secuencia especificada.

Las opciones son una máscara de bit con uno o más de los siguientes:

ST_UID El argumento sequence contiene UIDs en vez de
números secuenciales

Anterior | Inicio | Siguiente
imap_check | Subir | imap_close


imap_close

(PHP 3, PHP 4 )

imap_close -- Cierra una sesión IMAP

Descripción

int imap_close ( int imap_stream, int flags)

Cierra una sesión imap. Toma un parámetro flag opcional, CL_EXPUNGE, el cual purgará el buzón de forma trasparente antes de cerrarla.

Anterior | Inicio | Siguiente
imap_clearflag_full | Subir | imap_createmailbox


imap_createmailbox

(PHP 3, PHP 4 )

imap_createmailbox -- Crea un buzón nuevo

Descripción

int imap_createmailbox ( int imap_stream, string mbox)

imap_createmailbox() crea un buzón nuevo especificado por mbox (ver imap_open() para el formato del parámetro mbox).

Devuelve TRUE si no hay error y FALSE en caso contrario.

Ver También imap_renamemailbox() y imap_deletemailbox().

Anterior | Inicio | Siguiente
imap_close | Subir | imap_delete


imap_delete

(PHP 3, PHP 4 )

imap_delete -- Marca un mensaje para ser borrado en el buzón actual

Descripción

int imap_delete ( int imap_stream, int msg_number)

Devuelve TRUE.

La función imap_delete() marca el mensaje referenciado por msg_number para su eliminación. El borrado físico de los mensajes es realizado por imap_expunge().

Anterior | Inicio | Siguiente
imap_createmailbox | Subir | imap_deletemailbox


imap_deletemailbox

(PHP 3, PHP 4 )

imap_deletemailbox -- Elimina un buzón

Descripción

int imap_deletemailbox ( int imap_stream, string mbox)

imap_deletemailbox() elimina el buzón especificado (ver imap_open() para el formato del mbox).

Devuelve TRUE si no hay error y FALSE en caso contrario.

Ver También imap_createmailbox() y imap_reanmemailbox().

Anterior | Inicio | Siguiente
imap_delete | Subir | imap_errors


imap_errors

(PHP 3>= 3.0.12, PHP 4 )

imap_errors -- Esta función devuelve todos los errores IMAP (si hubo) que han occurrido durante la petición de la página o desde que la pila de errores se inicializó.

Descripción

array imap_errors ( void )

Esta función devuelve un array de todos los mensajes de error IMAP generados desde la última llamada a imap_errors(), o el principio de la página. Cuando se llama a imap_errors(), la pila de errores se inicializa.

ATENCIàN: esta función no esta disponible aún en PHP4.

Anterior | Inicio | Siguiente
imap_deletemailbox | Subir | imap_expunge


imap_expunge

(PHP 3, PHP 4 )

imap_expunge -- Elimina todos los mensajes marcados como borrados

Descripción

int imap_expunge ( int imap_stream)

imap_expunge() elimina todos los mensajes marcados por la función imap_delete().

Devuleve TRUE.

Anterior | Inicio | Siguiente
imap_errors | Subir | imap_fetch_overview


imap_fetch_overview

(PHP 3>= 3.0.4, PHP 4 )

imap_fetch_overview -- Read an overview of the information in the headers of the given message

Description

array imap_fetch_overview ( resource imap_stream, string sequence [, int options])

This function fetches mail headers for the given sequence and returns an overview of their contents. sequence will contain a sequence of message indices or UIDs, if flags contains FT_UID. The returned value is an array of objects describing one message header each:

  • subject - the messages subject

  • from - who sent it

  • date - when was it sent

  • message_id - Message-ID

  • references - is a reference to this message id

  • size - size in bytes

  • uid - UID the message has in the mailbox

  • msgno - message sequence number in the maibox

  • recent - this message is flagged as recent

  • flagged - this message is flagged

  • answered - this message is flagged as answered

  • deleted - this message is flagged for deletion

  • seen - this message is flagged as already read

  • draft - this message is flagged as being a draft

Ejemplo 1. imap_fetch_overview() example

<?php
$mbox = imap_open("{your.imap.host:143}","username","password")
     or die("can't connect: ".imap_last_error());

$overview = imap_fetch_overview($mbox,"2,4:6",0);

if(is_array($overview)) {
        reset($overview);
        while( list($key,$val) = each($overview)) {
                print     $val->msgno
                . " - " . $val->date
                . " - " . $val->subject
                . "\n";
        }
}

imap_close($mbox);
?>

Anterior | Inicio | Siguiente
imap_expunge | Subir | imap_fetchbody


imap_fetchbody

(PHP 3, PHP 4 )

imap_fetchbody -- Localiza una sección particular en el cuerpo del mensaje

Descripción

string imap_fetchbody ( int imap_stream, int msg_number, string part_number, flags flags)

Esta función busca una sección particular en el cuerpo de los mensajes especificados, como una cadena de texto y devuleve esa cadena. La especificación de la sección es una cadena de enteros delimitados por comas,los cuales indexan las partes del cuerpo como indica la especificación IMAP4. Partes del cuerpo no son decodificadas por esta función.

Las opciones para imap_fetchbody () son una máscara de bit con una o más de las siguientes

  • FT_UID - El msgono es un UID

  • FT_PEEK - No activar \Seen flag si no esta ya activa

  • FT_INTERNAL - La cadena devuelta está en formato "interno", sin ningún intento por canonizar CRLF

Anterior | Inicio | Siguiente
imap_fetch_overview | Subir | imap_fetchheader


imap_fetchheader

(PHP 3>= 3.0.3, PHP 4 )

imap_fetchheader -- Devuelve la cabecera del mensaje

Descripción

string imap_fetchheader ( int imap_stream, int msgno, int flags)

Esta función localiza el formato de la cabecera RFC 822 del mensaje especificado como una cadena de texto y devuelve esa cadena de texto.

The options are:

FT_UID El argumento msgno es un UID
FT_INTERNAL La cadena devuelta esta en formato "interno",
sin ningún intento de canonizar CRLF

FT_PREFETCHTEXT The RFC822.TEXT should be pre-fetched at the
same time. Esto evita un extra RTT en una
conexión IMAP si se desea un mensaje completo de
texto (e.g. en una operación de
"guardar a un fichero local")

Anterior | Inicio | Siguiente
imap_fetchbody | Subir | imap_fetchstructure


imap_fetchstructure

(PHP 3, PHP 4 )

imap_fetchstructure -- Lee la estructuta de un mensaje concreto

Descripción

object imap_fetchstructure ( int imap_stream, int msg_number [, int flags])

Esta función busca toda la información estructurada en el mensaje especificado. El parámetro opcional flags sólo tiene una opcion, FT_UID, la cual indica a la función que trate el argumento msg_number como un UID. El objeto devuelto incluye el sobre, la fecha interna, el tama¤o, flags y la estructura del cuerpo con un objeto similar por cada mime adjunto al mensaje. La estructura de los objetos devueltos es como sigue:

Tabla 1. Objetos Devueltos para imap_fetchstructure()

type | Tipo primario del cuerpo
encoding | Body transfer encoding
ifsubtype | TRUE si hay una cadena de subtipo
subtype | MIME subtype
ifDescripción | TRUE si hay una cadena de Descripción
Description | Conenido de la cadena de Descripción
ifid | TRUE si hay una cadena de identificación
id | Cadena de Identificación
lines | Número de lineas
bytes | Número de bytes
ifdisposition | TRUE si hay una cadena de configuración
disposition | Cadena de configuración
ifdparameters | TRUE si el array dparameters existe
dparameters [a] | Array de parametro de configuración
ifparameters | TRUE si el array de parámetros existe
parameters [b] | MIME parameters array
parts [c] | Array de objetos describiendo cada parte del mensaje
Notas: a. dparameters es un array de objetos donde cada objeto tiene un "atributo" y una propiedad "valor". b. parameter es un array de objetos donde cada objetor tiene un "atributo" y una propiedad "valor". c. parts es un array de objetos identico en estructura al objeto del primer nivel, con la limitación de que este no puede contener más objetos 'parts'.

Tabla 2. Tipo primario del cuerpo

0 | texto
1 | multiparte
2 | mensaje
3 | aplicación
4 | audio
5 | imagen
6 | video
7 | otro

Tabla 3. Codificacion para tranferencia

0 | 7BIT
1 | 8BIT
2 | BINARY
3 | BASE64
4 | QUOTED-PRINTABLE
5 | OTRO

Anterior | Inicio | Siguiente
imap_fetchheader | Subir | imap_get_quota


imap_get_quota

(PHP 4 >= 4.0.5)

imap_get_quota -- Retrieve the quota level settings, and usage statics per mailbox

Description

array imap_get_quota ( resource imap_stream, string quota_root)

Returns an array with integer values limit and usage for the given mailbox. The value of limit represents the total amount of space allowed for this mailbox. The usage value represents the mailboxes current level of capacity. Will return FALSE in the case of failure.

This function is currently only available to users of the c-client2000 or greater library.

NOTE: For this function to work, the mail stream is required to be opened as the mail-admin user. For a non-admin user version of this function, please see the imap_get_quotaroot() function of PHP.

imap_stream should be the value returned from an imap_open() call. NOTE: This stream is required to be opened as the mail admin user for the get_quota function to work. quota_root should normally be in the form of user.name where name is the mailbox you wish to retrieve information about.

Ejemplo 1. imap_get_quota() example

<?php
$mbox = imap_open("{your.imap.host}","mailadmin","password",OP_HALFOPEN)
      or die("can't connect: ".imap_last_error());

$quota_value = imap_get_quota($mbox, "user.kalowsky");
if(is_array($quota_value)) {
    print "Usage level is: " . $quota_value['usage'];
    print "Limit level is: " . $quota_value['limit'];
}

imap_close($mbox);
?>

As of PHP version 4.3, the function more properly reflects the functionality as dictated by the RFC 2087. The array return value has changed to support an unlimited number of returned resources (i.e. messages, or sub-folders) with each named resource receiving an individual array key. Each key value then contains an another array with the usage and limit values within it. The example below shows the updated returned output.

For backwards compatibility reasons, the originial access methods are still available for use, although it is suggested to update.

Ejemplo 2. imap_get_quota() 4.3 or greater example

<?php
$mbox = imap_open("{your.imap.host}","mailadmin","password",OP_HALFOPEN)
      or die("can't connect: ".imap_last_error());

$quota_values = imap_get_quota($mbox, "user.kalowsky");
if(is_array($quota_values)) {
   $storage = $quota_values['STORAGE'];
   print "STORAGE usage level is: " .  $storage['usage'];
   print "STORAGE limit level is: " .  $storage['limit'];

   $message = $quota_values['MESSAGE'];
   print "MESSAGE usage level is: " .  $message['usage'];
   print "MESSAGE limit is: " .  $message['limit'];

   /* ...  */
}

imap_close($mbox);
?>

See also imap_open(),
imap_set_quota() and
imap_get_quotaroot().

Anterior | Inicio | Siguiente
imap_fetchstructure | Subir | imap_get_quotaroot


imap_get_quotaroot

(PHP 4 >= 4.3.0)

imap_get_quotaroot -- Retrieve the quota settings per user

Description

array imap_get_quotaroot ( resource imap_stream, string quota_root)

Returns an array of integer values pertaining to the specified user mailbox. All values contain a key based upon the resource name, and a corresponding array with the usage and limit values within.

The limit value represents the total amount of space allowed for this user's total mailbox usage. The usage value represents the user's current total mailbox capacity. This function will return FALSE in the case of call failure, and an array of information about the connection upon an un-parsable response from the server.

This function is currently only available to users of the c-client2000 or greater library.

imap_stream should be the value returned from an imap_open() call. This stream should be opened as the user whose mailbox you wish to check. quota_root should normally be in the form of which mailbox (i.e. INBOX).

Ejemplo 1. imap_get_quotaroot() example

<?php
$mbox = imap_open("{your.imap.host}","kalowsky","password",OP_HALFOPEN)
      or die("can't connect: ".imap_last_error());

$quota = imap_get_quotaroot($mbox, "INBOX");
if(is_array($quota)) {
   $storage = $quota_values['STORAGE'];
   print "STORAGE usage level is: " .  $storage['usage'];
   print "STORAGE limit level is: " .  $storage['limit'];

   $message = $quota_values['MESSAGE'];
   print "MESSAGE usage level is: " .  $message['usage'];
   print "MESSAGE usage level is: " .  $message['limit'];

   /* ...  */

}

imap_close($mbox);
?>

See also imap_open(),
imap_set_quota() and
imap_get_quota().

Anterior | Inicio | Siguiente
imap_get_quota | Subir | imap_getacl


imap_getacl

(PHP 5 CVS only)

imap_getacl -- Gets the ACL for a given mailbox

Description

array imap_getacl ( resource stream_id, string mailbox)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
imap_get_quotaroot | Subir | imap_getmailboxes


imap_getmailboxes

(PHP 3>= 3.0.12, PHP 4 )

imap_getmailboxes -- Lee la lista de buzones, devolviendo informacón detallada de cada uno

Descripción

array imap_getmailboxes ( int imap_stream, string ref, string pat)

Devuelve un array de objetos coneniendo información del buzón. Cada objeto tiene los atributos name, especificando el nombre completo del buzón; delimiter, que es el delimitador jerárquico para la parte de la jerarquía dónde está este buzón; y attributes. Attributes es una máscara de bits contra la que se puede probar:

  • LATT_NOINFERIORS - Este buzón no tiene "hijos" (No ha buzones por debajo de él)

  • LATT_NOSELECT - Esto es sólo un contenedor, no un buzón - No puede abrirlo.

  • LATT_MARKED - Este buzón está marcado. Unicamente usado por UW-IMAPD.

  • LATT_UNMARKED - Este buzón no está marcado. Unicamente usado por UW-IMAPD.

ref normalmente debería ser solo el servidor IMAP, de la forma: {imap_server:imap_port}, y pattern especifica, dónde en la estructura jerárquica del buzón, para comenzar a buscar. Si quiere todo los buzones, pase el parámetro pattern como una cadena vacía.

Hay dos caracteres especiales que puede pasar como parte del parámetro pattern: '*' and '%'. '*' significa que devuelva todos los buzones. Si pasa el parámetro pattern como '*', obtendrá una lista con la jerarquía completa del buzón. %' significa que devuelva sólo el nivel actual. Pasar '%' en el parámetro pattern devolverá sólo el nivel más alto de los buzones; '~/mail/%' en UW_IMAPD devolverá cada buzón del directorio ~/mail, pero ninguno de los subdirectorios de ese directorio.

Anterior | Inicio | Siguiente
imap_getacl | Subir | imap_getsubscribed


imap_getsubscribed

(PHP 3>= 3.0.12, PHP 4 )

imap_getsubscribed -- Lista todos los buzones subscritos

Descripción

array imap_getsubscribed ( int imap_stream, string ref, string pattern)

Esta función es idéntica a imap_getmailboxes(), excepto que esta sólo devuelve los buzones a los que está subscrito el usuario.

Anterior | Inicio | Siguiente
imap_getmailboxes | Subir | imap_header


imap_header

(PHP 3, PHP 4 )

imap_header -- Lee la cabecera del mensaje

Descripción

object imap_header ( int imap_stream, int msg_number [, int fromlength [, int subjectlength [, string defaulthost]]])

Esta función devuelve un objeto con varios elementos de la cabecera.

remail, date, Date, subject, Subject, in_reply_to, message_id,
newsgroups, followup_to, references

message flags:
Recent - 'R' si es reciente y ha sido leido,
'N' si es reciente y no ha sido leido,
' ' si no es reciente
Unseen - 'U' si no ha sido leido Y no es reciente,
' ' si ha sido leido O no y es reciente
Answered -'A' si ha sido contestado,
' ' si no ha sido contestado
Deleted - 'D' si ha sido borrado,
' ' si no ha sido borrado
Draft - 'X' if draft,
' ' if not draft
Flagged - 'F' si esta if flagged,
' ' if not flagged

OBSERVE que el comportamiento Recent/Unseen es un poco extra¤o. Si quiere conocer
si un mensaje es Unseen, debe comprobarlo asi

Unseen == 'U' || Recent == 'N'

toaddress (la linea to: al completo, hasta 1024 caracteres)

to[] (devuelve un array de objetos a partir de la linea To, conteniendo:)
personal
adl
mailbox
host

fromaddress (la linea from: al completo, hasta 1024 caracteres)

from[] (devuelve un array de objetos a partir de la linea From, conteniendo:)
personal
adl
mailbox
host

ccaddress (la linea cc: al completo, hasta 1024 caracteres)
cc[] (devuelve un array de objetos a partir de la linea Cc:, conteniendo:)
personal
adl
mailbox
host

bccaddress (la linea bcc al completo, hasta 1024 caracteres)
bcc[] (devuelve un array de objetos a partir de la linea Bcc, conteniendo:)
personal
adl
mailbox
host

reply_toaddress (la linea reply_to: al completo, hasta 1024 caracteres)
reply_to[] (devuelve un array de objetos a partir de la linea Reply_to,
conteniendo:)
personal
adl
mailbox
host

senderaddress (la linea sender: al completo, hasta 1024 caracteres)
sender[] (devuelve un array de objetos a partir de la linea sender, conteniendo:)
personal
adl
mailbox
host

return_path (la linea return-path: al completo, hasta 1024 caracteres)
return_path[] (devuelve un array de objetos a partir de la linea return_path,
conteniendo:)
personal
adl
mailbox
host

udate (fecha del mensaje en formato unix)

fetchfrom (la linea from formateada hasta ajustarse a los caracteres
indicados en fromlength)

fetchsubject (la linea subject formateada hasta ajustarse a los caracteres
indicados en subjectlength)

Anterior | Inicio | Siguiente
imap_getsubscribed | Subir | imap_headerinfo


imap_headerinfo

(PHP 3, PHP 4 )

imap_headerinfo -- Read the header of the message

Description

object imap_headerinfo ( resource imap_stream, int msg_number [, int fromlength [, int subjectlength [, string defaulthost]]])

This function returns an object of various header elements.

remail, date, Date, subject, Subject, in_reply_to, message_id,
newsgroups, followup_to, references

message flags:
Recent - 'R' if recent and seen,
'N' if recent and not seen,
' ' if not recent
Unseen - 'U' if not seen AND not recent,
' ' if seen OR not seen and recent
Answered -'A' if answered,
' ' if unanswered
Deleted - 'D' if deleted,
' ' if not deleted
Draft - 'X' if draft,
' ' if not draft
Flagged - 'F' if flagged,
' ' if not flagged

NOTE that the Recent/Unseen behavior is a little odd. If you want to
know if a message is Unseen, you must check for

Unseen == 'U' || Recent == 'N'

toaddress (full to: line, up to 1024 characters)

to[] (returns an array of objects from the To line, containing):
personal
adl
mailbox
host

fromaddress (full from: line, up to 1024 characters)

from[] (returns an array of objects from the From line, containing):
personal
adl
mailbox
host

ccaddress (full cc: line, up to 1024 characters)
cc[] (returns an array of objects from the Cc line, containing):
personal
adl
mailbox
host

bccaddress (full bcc line, up to 1024 characters)
bcc[] (returns an array of objects from the Bcc line, containing):
personal
adl
mailbox
host

reply_toaddress (full reply_to: line, up to 1024 characters)
reply_to[] (returns an array of objects from the Reply_to line,
containing):
personal
adl
mailbox
host

senderaddress (full sender: line, up to 1024 characters)
sender[] (returns an array of objects from the sender line, containing):
personal
adl
mailbox
host

return_path (full return-path: line, up to 1024 characters)
return_path[] (returns an array of objects from the return_path line,
containing):
personal
adl
mailbox
host

udate (mail message date in unix time)

fetchfrom (from line formatted to fit fromlength
characters)

fetchsubject (subject line formatted to fit subjectlength characters)

Anterior | Inicio | Siguiente
imap_header | Subir | imap_headers


imap_headers

(PHP 3, PHP 4 )

imap_headers -- Returns headers for all messages in a mailbox

Descripción

array imap_headers ( int imap_stream)

Devuelve un array de cadenas formateadas con informacion de la cabecera. Un elemento por mensaje de correo.

Anterior | Inicio | Siguiente
imap_headerinfo | Subir | imap_last_error


imap_last_error

(PHP 3>= 3.0.12, PHP 4 )

imap_last_error -- Esta función devuelve el último error IMAP (si se produjo) que ocurrió durante la petición de esta página.

Descripción

string imap_last_error ( void )

Esta función devuelve el texto completo del último error IMAP que ocurrió en la pagina actual. La plia de errores The error stack is untouched; llamando despues a la función imap_last_error(), sin que se produzca un error, devolverá el mismo error.

ATENCIàN: esta función no esta disponible aún en PHP4.

Anterior | Inicio | Siguiente
imap_headers | Subir | imap_list


imap_list

(PHP 3>= 3.0.4, PHP 4 )

imap_list -- Read the list of mailboxes

Description

array imap_list ( resource imap_stream, string ref, string pattern)

Returns an array containing the names of the mailboxes. See imap_getmailboxes() for a description of ref and pattern.

Ejemplo 1. imap_list() example

<?php
$mbox = imap_open("{your.imap.host}","username","password",OP_HALFOPEN)
      or die("can't connect: ".imap_last_error());

$list = imap_list($mbox,"{your.imap.host}","*");
if(is_array($list)) {
  reset($list);
  while (list($key, $val) = each($list))
    print imap_utf7_decode($val)."<br>\n";
} else
  print "imap_list failed: ".imap_last_error()."\n";

imap_close($mbox);
?>

Anterior | Inicio | Siguiente
imap_last_error | Subir | imap_listmailbox


imap_listmailbox

(PHP 3, PHP 4 )

imap_listmailbox -- Lee la lista de buzones

Descripción

array imap_listmailbox ( int imap_stream, string ref, string pat)

Devuelve un array que contiene los nombres de los buzones.

Anterior | Inicio | Siguiente
imap_list | Subir | imap_listscan


imap_listscan

(no version information, might be only in CVS)

imap_listscan -- Read the list of mailboxes, takes a string to search for in the text of the mailbox

Description

array imap_listscan ( resource imap_stream, string ref, string pattern, string content)

Returns an array containing the names of the mailboxes that have content in the text of the mailbox. This function is similar to imap_listmailbox(), but it will additionally check for the presence of the string content inside the mailbox data. See imap_getmailboxes() for a description of ref and pattern.

Anterior | Inicio | Siguiente
imap_listmailbox | Subir | imap_listsubscribed


imap_listsubscribed

(PHP 3, PHP 4 )

imap_listsubscribed -- Lista todos los buzones subscritos

Descripción

array imap_listsubscribed ( int imap_stream, string ref, string pattern)

Devuelve un array de todos los buzones que usted tiene subscritos. Los parámetros ref y pattern especifican la localización desde donde comenzará a buscar y el patrón que el nombre del buzón debe encontrar.

Anterior | Inicio | Siguiente
imap_listscan | Subir | imap_lsub


imap_lsub

(PHP 3>= 3.0.4, PHP 4 )

imap_lsub -- List all the subscribed mailboxes

Description

array imap_lsub ( resource imap_stream, string ref, string pattern)

Returns an array of all the mailboxes that you have subscribed.

Anterior | Inicio | Siguiente
imap_listsubscribed | Subir | imap_mail_compose


imap_mail_compose

(PHP 3>= 3.0.5, PHP 4 )

imap_mail_compose -- Create a MIME message based on given envelope and body sections

Description

string imap_mail_compose ( array envelope, array body)

Ejemplo 1. imap_mail_compose() example

<?php

$envelope["from"]="joe@example.com";
$envelope["to"]="foo@example.com";
$envelope["cc"]="bar@example.com";

$part1["type"]=TYPEMULTIPART;
$part1["subtype"]="mixed";

$filename="/tmp/imap.c.gz";
$fp=fopen($filename,"r");
$contents=fread($fp,filesize($filename));
fclose($fp);

$part2["type"]=TYPEAPPLICATION;
$part2["encoding"]=ENCBINARY;
$part2["subtype"]="octet-stream";
$part2["description"]=basename($filename);
$part2["contents.data"]=$contents;

$part3["type"]=TYPETEXT;
$part3["subtype"]="plain";
$part3["description"]="description3";
$part3["contents.data"]="contents.data3\n\n\n\t";

$body[1]=$part1;
$body[2]=$part2;
$body[3]=$part3;

echo nl2br(imap_mail_compose($envelope,$body));

?>

Anterior | Inicio | Siguiente
imap_lsub | Subir | imap_mail_copy


imap_mail_copy

(PHP 3, PHP 4 )

imap_mail_copy -- Copia los mensajes especificados a un buzón

Descripción

int imap_mail_copy ( int imap_stream, string msglist, string mbox, int flags)

Devuelve TRUE si no hay error y FALSE en caso contrario.

Copia los mensajes especificados por msglist a un buzón especificado. msglist es un rango no números de mensajes.

Flags es una máscara de bit de uno o más

  • CP_UID - los números de secuencia contienen UIDS

  • CP_MOVE - Elimina los mensajes del buzon actual despues de copiarlos

Anterior | Inicio | Siguiente
imap_mail_compose | Subir | imap_mail_move


imap_mail_move

(PHP 3, PHP 4 )

imap_mail_move -- Mueve los mensajes especificados a un buzón

Descripción

int imap_mail_move ( int imap_stream, string msglist, string mbox)

Mueve los mensajes especificados por msglist al buzón especicifado. msglist es un rango no números de mensajes.

Devuelve TRUE si no hay error y FALSE en caso contrario.

Anterior | Inicio | Siguiente
imap_mail_copy | Subir | imap_mail


imap_mail

(PHP 3>= 3.0.14, PHP 4 )

imap_mail -- Send an email message

Description

bool imap_mail ( string to, string subject, string message [, string additional_headers [, string cc [, string bcc [, string rpath]]]])

This function allows sending of emails with correct handling of Cc and Bcc receivers. The parameters to, cc and bcc are all strings and are all parsed as rfc822 address lists. The receivers specified in bcc will get the mail, but are excluded from the headers. Use the rpath parameter to specify return path. This is useful when using php as a mail client for multiple users.

Anterior | Inicio | Siguiente
imap_mail_move | Subir | imap_mailboxmsginfo


imap_mailboxmsginfo

(PHP 3>= 3.0.2, PHP 4 )

imap_mailboxmsginfo -- Obtiene información acerca del buzón actual

Descripción

object imap_mailboxmsginfo ( int imap_stream)

Devuelve información acerca del buzón actual. Devuelve FALSE en caso de fallo.

La función imap_mailboxmsginfo() comprueba el estado del buzón actual en el servidor y devuelve la información en un objeto con las siguientes propiedades.

Date : fecha del mensaje
Driver : driver
Mailbox : nombre del buzón
Nmsgs : número de mensajes
Recent : número de los mensajes recientes
Unread : número de los mensajes no leidos
Size : tama¤o del buzon

Anterior | Inicio | Siguiente
imap_mail | Subir | imap_mime_header_decode


imap_mime_header_decode

(PHP 3>= 3.0.17, PHP 4 )

imap_mime_header_decode -- Decode MIME header elements

Description

array imap_mime_header_decode ( string text)

imap_mime_header_decode() function decodes MIME message header extensions that are non ASCII text (see RFC2047) The decoded elements are returned in an array of objects, where each object has two properties, "charset" & "text". If the element hasn't been encoded, and in other words is in plain US-ASCII,the "charset" property of that element is set to "default".

Ejemplo 1. imap_mime_header_decode() example

<?php
$text="=?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?= <keld@example.com>";

$elements=imap_mime_header_decode($text);
for($i=0;$i<count($elements);$i++) {
    echo "Charset: {$elements[$i]->charset}\n";
    echo "Text: {$elements[$i]->text}\n\n";
}
?>

In the above example we would have two elements, whereas the first element had previously been encoded with ISO-8859-1, and the second element would be plain US-ASCII.

Anterior | Inicio | Siguiente
imap_mailboxmsginfo | Subir | imap_msgno


imap_msgno

(PHP 3>= 3.0.3, PHP 4 )

imap_msgno -- Esta función devuelve el número de secuencia del mensaje para el UID dado.

Descripción

int imap_msgno ( int imap_stream, int uid)

Esta función devuelve el número de secuencia del mensaje para el UID dado. Esta función es la inversa a imap_uid().

Anterior | Inicio | Siguiente
imap_mime_header_decode | Subir | imap_num_msg


imap_num_msg

(PHP 3, PHP 4 )

imap_num_msg -- Informa del número de mensajes en el buzón actual

Descripción

int imap_num_msg ( int imap_stream)

Devuelve el número de mensajes en el buzón actual.

Anterior | Inicio | Siguiente
imap_msgno | Subir | imap_num_recent


imap_num_recent

(PHP 3, PHP 4 )

imap_num_recent -- Informa el número de mensajes recientes en el buzón actual

Descripción

int imap_num_recent ( int imap_stream)

Devuleve el número de mensajes recientes en el buzón actual.

Anterior | Inicio | Siguiente
imap_num_msg | Subir | imap_open


imap_open

(PHP 3, PHP 4 )

imap_open -- Abre una sesión IMAP

Descripción

int imap_open ( string mailbox, string username, string password, int flags)

Devuleve la sesion IMAP si no hay error y FALSE en caso contrario. Esta función también puede ser usada para abrir sesiones con servidores POP3 y NNTP. Para conectarse a un servidor IMAP escuchando por el puerto 143 en una máquina local, haga lo siguiente:

$mbox = imap_open("{localhost:143}INBOX","user_id","password");

Para conectarse a un servidor POP3 escuchando por el puerto 110, use:

$mbox = imap_open("{localhost/pop3:110}INBOX","user_id","password");

Para conectarse a un servidor NNTP escuchando por el puerto 119, use:

$nntp = imap_open("{localhost/nntp:119}comp.test","","");

Para conectarse a un servidor remoto sustituya "localhost", por el nombre o dirección IP del servidor al cual quiere conectarse.

Las opciones son una máscara de bit con una o más de los siguientes:

  • OP_READONLY - Abre el buzón en modo de sólo lectura

  • OP_ANONYMOUS - No usa o actualiza un .newsrc para las noticias

  • OP_HALFOPEN - Para nombres IMAP y NNTP, abre una conexión pero no abre un buzón

  • CL_EXPUNGE - Purga automaticamente el buzón antes de cerrar la sesión

Anterior | Inicio | Siguiente
imap_num_recent | Subir | imap_ping


imap_ping

(PHP 3, PHP 4 )

imap_ping -- Comprueba si la sesión IMAP está aún activa

Descripción

int imap_ping ( int imap_stream)

Devuelve TRUE si la sesión está activa, FALSE en caso contrario.

La función imap_ping() pings the stream to see it is still active. Esto puede descubrir que hay correo nuevo; este es el método preferido para hacer una comprobación periodica del buzón, asi como para mantener activa sesiones en servidores que tienen inactivity timeout.

Anterior | Inicio | Siguiente
imap_open | Subir | imap_qprint


imap_qprint

(PHP 3, PHP 4 )

imap_qprint -- Convierte una cadena quoted-printable a una cadena de 8 bit

Descripción

string imap_qprint ( string string)

Convierte una cadena quoted-printable a una cadena de 8 bit

Devuelve una cadena de 8 bit (binary)

Anterior | Inicio | Siguiente
imap_ping | Subir | imap_renamemailbox


imap_renamemailbox

(PHP 3, PHP 4 )

imap_renamemailbox -- Renombra un buzón

Descripción

int imap_renamemailbox ( int imap_stream, string old_mbox, string new_mbox)

Esta función renombra un buzon (ver imap_open() para el formato del parámetro mbox).

Devuelve TRUE si no hay error y FALSE en caso contrario.

Ver También imap_createmailbox() and imap_deletemailbox().

Anterior | Inicio | Siguiente
imap_qprint | Subir | imap_reopen


imap_reopen

(PHP 3, PHP 4 )

imap_reopen -- Reabre una sesión IMAP a un nuevo buzón

Descripción

int imap_reopen ( string imap_stream, string mailbox [, string flags])

Devuelve TRUE si no hay error y FALSE en caso contrario.

Esta funció reabre la sesión especificada con un nuevo buzón.

Las opciones son máscaras de bit con una o más de las siguientes:

  • OP_READONLY - Abre el buzón en modo de sólo lectura

  • OP_ANONYMOUS - No usa o actualiza .newsrc para noticias

  • OP_HALFOPEN - Para nombres IMAP y NNTP, abre una conexión pero no abre el buzon.

  • CL_EXPUNGE - Expurga automaticamente el buzon antes de cerra la sesión

Anterior | Inicio | Siguiente
imap_renamemailbox | Subir | imap_rfc822_parse_adrlist


imap_rfc822_parse_adrlist

(PHP 3>= 3.0.2, PHP 4 )

imap_rfc822_parse_adrlist -- Examina la cadena dirección

Descripción

string imap_rfc822_parse_adrlist ( string address, string default_host)

Esta función examina la cadena dirección y para cada dirección, devuelve un array de objetos. Los 4 objetos son:

mailbox - el nombre del buzón (username)
host - el nombre del ordenador
personal - el nombre personal
adl - ruta del dominio

Anterior | Inicio | Siguiente
imap_reopen | Subir | imap_rfc822_parse_headers


imap_rfc822_parse_headers

(PHP 4 )

imap_rfc822_parse_headers -- Parse mail headers from a string

Description

object imap_rfc822_parse_headers ( string headers [, string defaulthost])

This function returns an object of various header elements, similar to imap_header(), except without the flags and other elements that come from the IMAP server.

Anterior | Inicio | Siguiente
imap_rfc822_parse_adrlist | Subir | imap_rfc822_write_address


imap_rfc822_write_address

(PHP 3>= 3.0.2, PHP 4 )

imap_rfc822_write_address -- Devuleve una dirección de correo correctamente formateada dado el buzón, host, e información personal.

Descripción

string imap_rfc822_write_address ( string mailbox, string host, string personal)

Devuelve una dirección de correo correctamente formateada, dado el buzón, host, e información personal.

Anterior | Inicio | Siguiente
imap_rfc822_parse_headers | Subir | imap_scanmailbox


imap_scanmailbox

(PHP 3, PHP 4 )

imap_scanmailbox -- Lee la lista de buzones y toma una cadena para buscar en el texto del buzón

Descripción

array imap_scanmailbox ( int imap_stream, string string)

Devuelve un array que contiene los nombres de los buzones que tienen el parámetro string en el texto del buzón.

Anterior | Inicio | Siguiente
imap_rfc822_write_address | Subir | imap_search


imap_search

(PHP 3>= 3.0.12, PHP 4 )

imap_search -- Esta función devuelve un array de mensajes que coinciden con el criterio de busqueda dado.

Descripción

array imap_search ( int imap_stream, string criteria, int flags)

Esta función realiza una busqueda en el buzón actualmente abierto indicado por imap_stream. criteria es una cadena, delimitada por espacios, en la cual las siguientes palabras claves son permitidas. Cualquier argumento múltiple (ej. FROM "joey smith") debe estar entre comillas.

  • ALL - devuelve todos los mensajes que coinciden con el resto del criterio

  • ANSWERED - busca mensajes con el flag \\ANSWERED activado

  • BCC "string" - busca mensajes con "cadena" en el campo Bcc:

  • BEFORE "date" - busca mensajes con Date: antes de "date"

  • BODY "string" - busca mensajes con "cadena" en el cuerpo del mensaje

  • CC "string" - busca mensajes con "cadena" en el campo Cc:

  • DELETED - busca mensajes eliminados

  • FLAGGED - busca mensajes con el flag \\FLAGGED (sometimes referred to as Important or Urgent) activado

  • FROM "string" - busca mensajes con "cadena" en el campo From:

  • KEYWORD "string" - busca mensajes con "cadena" como una palabra clave

  • NEW - busca mensajes nuevos

  • OLD - busca mensajes viejos

  • ON "date" - busca mensajes con "date" igual a Date:

  • RECENT - busca mensajes con el flag \\RECENT activado

  • SEEN - busca mensajes que han sido leidos (la opcion \\SEEN activada)

  • SINCE "date" - busca mensajes conwith Date: after "date"

  • SUBJECT "string" - busca mensajes con "string" en el campo Subject:

  • TEXT "string" - busca mensajes con el texto "string"

  • TO "string" - busca mensajes con "string" en el campo To:

  • UNANSWERED - busca mensajes que no han sido respondidos

  • UNDELETED - busca mensajes que no han sido eliminados

  • UNFLAGGED - busca mensajes que no estan flagged

  • UNKEYWORD "string" - busca mensajes que no coinciden con la palabra clave "string"

  • UNSEEN - busca mensajes que no han sido leidos aún

Por ejemplo, para buscar todos los mensajes no contestados enviados por Mamá, usaría: "UNANSWERED FROM mamá". La busqueda parece ser no sensitiva. Esta lista de criterios está tomada del codigo fuente del UW c-client y puede que este incompleta o sea inexacta.

Valores validos para los flags son SE_UID, que provoca que el array devuelto contenga UIDs en vez de los numeros de secuencia de los mensajes

Anterior | Inicio | Siguiente
imap_scanmailbox | Subir | imap_set_quota


imap_set_quota

(PHP 4 >= 4.0.5)

imap_set_quota -- Sets a quota for a given mailbox

Description

bool imap_set_quota ( resource imap_stream, string quota_root, int quota_limit)

Sets an upper limit quota on a per mailbox basis. This function requires the imap_stream to have been opened as the mail administrator account. It will not work if opened as any other user.

This function is currently only available to users of the c-client2000 or greater library.

imap_stream is the stream pointer returned from a imap_open() call. This stream must be opened as the mail administrator, other wise this function will fail. quota_root is the mailbox to have a quota set. This should follow the IMAP standard format for a mailbox, 'user.name'. quota_limit is the maximum size (in KB) for the quota_root.

Returns TRUE on success and FALSE on error.

Ejemplo 1. imap_set_quota() example

<?php
$mbox = imap_open ("{your.imap.host:143}", "mailadmin", "password");

if(!imap_set_quota($mbox, "user.kalowsky", 3000)) {
    print "Error in setting quota\n";
    return;
}

imap_close($mbox);
?>

See also imap_open() and imap_set_quota().

Anterior | Inicio | Siguiente
imap_search | Subir | imap_setacl


imap_setacl

(PHP 4 >= 4.1.0)

imap_setacl -- Sets the ACL for a giving mailbox

Description

bool imap_setacl ( resource stream_id, string mailbox, string id, string rights)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
imap_set_quota | Subir | imap_setflag_full


imap_setflag_full

(PHP 3>= 3.0.3, PHP 4 )

imap_setflag_full -- Activa flags en los mensajes

Descripción

string imap_setflag_full ( int stream, string sequence, string flag, string options)

Esta función a¤ade el flag especificado al conjunto de flags activos para los mensajes en la secuencia especificada.

Los flags que puede seleccionar son "\\Seen", "\\Answered", "\\Flagged", "\\Deleted", "\\Draft", y "\\Recent" ( definidos en el RFC2060)

Las opciones son una máscara de bit con uno o más de los siguientes:

ST_UID El argumento sequence contiene UIDs en vez de
números secuenciales

Anterior | Inicio | Siguiente
imap_setacl | Subir | imap_sort


imap_sort

(PHP 3>= 3.0.3, PHP 4 )

imap_sort -- Ordena un array de cabeceras de mensajes

Descripción

string imap_sort ( int stream, int criteria, int reverse, int options)

Devuelve un array de números de mensajes ordenados por los parametros dados

Rev es 1 para una ordenación inversa.

Criteria puede ser uno (y sólo uno) de los siguientes:

SORTDATE Fecha del mensaje
SORTARRIVAL Fecha de llegada
SORTFROM mailbox in first From address
SORTSUBJECT Asunto del mensaje
SORTTO mailbox in first To address
SORTCC mailbox in first cc address
SORTSIZE tama¤o del mensaje en bytes

Las opciones son una máscara de bit con uno o más de los siguientes:

SE_UID Devuelve UIDs en vez de números secuenciales
SE_NOPREFETCH No preselecciona los mensajes buscados.

Anterior | Inicio | Siguiente
imap_setflag_full | Subir | imap_status


imap_status

(PHP 3>= 3.0.4, PHP 4 )

imap_status -- Esta función devuelve el información de estado de otro buzón distinto al actual.

Descripción

object imap_status ( int imap_stream, string mailbox, int options)

Esta función devuelve un objeto que contiene información de estado. Las opciones válidas son:

  • SA_MESSAGES - activa status->messages con el número de mensajes en el buzon

  • SA_RECENT - activa status->recent con el número de mensajes recientes en el buzón

  • SA_UNSEEN - activa status->unseen con el número de mesajes no leidos (nuevos) en el buzón

  • SA_UIDNEXT - activa status->uidnext con el próximo uid a usar en el bizón

  • SA_UIDVALIDITY - activa status->uidvalidity con una constante que cambia cuando los uids del buzon ya no son válidos

  • SA_ALL - activa todos los de arriba

status->flags contienen una máscara de bits la cual puede ser comprobada contra cualquiera de las propiedades de arriba.

Anterior | Inicio | Siguiente
imap_sort | Subir | imap_subscribe


imap_subscribe

(PHP 3, PHP 4 )

imap_subscribe -- Subscribe to a mailbox

Descripción

int imap_subscribe ( int imap_stream, string mbox)

Da de alta un nuevo buzón.

Devuleve TRUE si no hay error y FALSE en caso contrario.

Anterior | Inicio | Siguiente
imap_status | Subir | imap_thread


imap_thread

(PHP 4 >= 4.1.0)

imap_thread -- Return threaded by REFERENCES tree

Description

array imap_thread ( resource stream_id [, int options])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
imap_subscribe | Subir | imap_timeout


imap_timeout

(no version information, might be only in CVS)

imap_timeout -- Set or fetch imap timeout

Description

mixed imap_timeout ( int timeout_type [, int timeout])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
imap_thread | Subir | imap_uid


imap_uid

(PHP 3>= 3.0.3, PHP 4 )

imap_uid -- Esta función devuelve el UID del número de secuencia del mensaje dado

Descripción

int imap_uid ( int imap_stream, int msgno)

Esta función devuelve el UID del número de secuencia del mensaje dado. Esta función es la inversa a imap_msgno().

Anterior | Inicio | Siguiente
imap_timeout | Subir | imap_undelete


imap_undelete

(PHP 3, PHP 4 )

imap_undelete -- Desmarca los mensajes que están marcados como borrados

Descripción

int imap_undelete ( int imap_stream, int msg_number)

Esta funcion elimina la marca de borrado de un mensaje especifico, puesta por la función imap_delete().

Devuleve TRUE si no hay error y FALSE en caso contrario.

Anterior | Inicio | Siguiente
imap_uid | Subir | imap_unsubscribe


imap_unsubscribe

(PHP 3, PHP 4 )

imap_unsubscribe -- Unsubscribe from a mailbox

Descripción

int imap_unsubscribe ( int imap_stream, string mbox)

Da de baja el buzón especificado.

Devuelve TRUE si no hay error y FALSE en caso contrario.

Anterior | Inicio | Siguiente
imap_undelete | Subir | imap_utf7_decode


imap_utf7_decode

(PHP 3>= 3.0.15, PHP 4 )

imap_utf7_decode -- Decodes a modified UTF-7 encoded string.

Description

string imap_utf7_decode ( string text)

Decodes modified UTF-7 text into ISO-8859-1 string.

Returns a string that is encoded in ISO-8859-1 and consists of the same sequence of characters in text, or FALSE if text contains invalid modified UTF-7 sequence or text contains a character that is not part of ISO-8859-1 character set. This function is needed to decode mailbox names that contain certain characters which are not in range of printable ASCII characters. The modified UTF-7 encoding is defined in RFC 2060, section 5.1.3 (original UTF-7 was defned in RFC1642).

Anterior | Inicio | Siguiente
imap_unsubscribe | Subir | imap_utf7_encode


imap_utf7_encode

(PHP 3>= 3.0.15, PHP 4 )

imap_utf7_encode -- Converts ISO-8859-1 string to modified UTF-7 text.

Description

string imap_utf7_encode ( string data)

Converts data to modified UTF-7 text. This is needed to encode mailbox names that contain certain characters which are not in range of printable ASCII characters. Note that data is expected to be encoded in ISO-8859-1. The modified UTF-7 encoding is defined in RFC 2060, section 5.1.3 (original UTF-7 was defned in RFC1642).

Returns the modified UTF-7 text.

Anterior | Inicio | Siguiente
imap_utf7_decode | Subir | imap_utf8


imap_utf8

(PHP 3>= 3.0.13, PHP 4 )

imap_utf8 -- Converts MIME-encoded text to UTF-8

Description

string imap_utf8 ( string mime_encoded_text)

Converts the given mime_encoded_text to UTF-8. MIME encoding method and the UTF-8 specification are described in RFC2047 and RFC2044 respectively.

Anterior | Inicio | Siguiente
imap_utf7_encode | Subir | Funciones para Informix


Funciones para Informix

Manual de PHP
Anterior Siguiente

XLIII. Funciones para Informix

El conector para Informix Online (ODS) 7.x, SE 7.x y Universal Server (IUS) 9.x se encuentra implementado en "functions/ifx.ec" y "functions/php3_ifx.h". Para ODS 7.x está completado, con total soporte para columnas de tipo BYTE y TEXT. Para IUS 9.x está parcialmente finalizado: los tipos de datos nuevos están allí (en el IUS 9.x), pero la funcionalidad para SLOB y CLOB se encuentra bajo construcción todavía.

Notas de configuración:

Antes de ejecutar el guión (script) "configure", asegúrate que la variable "INFORMIXDIR" ha sido definida.

Si ejecutas "configure --with_informix=yes" entonces el guión de configuración detectará automáticamente las librerías y los directorios include. Puedes obviar esta detección definiendo las variables de entorno "IFX_LIBDIR", "IFX_LIBS" y "IFX_INCDIR". Definirás la variable de compilación condicional "HAVE_IFX_IUS" si la versión de Informix es 9.00 o superior.

Algunas notas sobre el uso de BLOBs (columnas de tipo TEXT y BYTE):

BLOBs son normalmente manipulados por enteros, los cuales representan identificadores de BLOB. Las consultas de selección devuelven un "blob id" para columnas de tipo BYTE y TEXT. Si eliges trabajar con los BLOBs en memoria (con: "ifx_blobinfile(0);") entonces puedes obtener el contenido con "string_var = ifx_get_blob($blob_id);". Si prefieres manipularlos en ficheros usa "ifx_blobinfile(1);" y "ifx_get_blob($blob_id);" devolverá el nombre del archivo. En este caso, utiliza las funciones habituales de entrada y salida de ficheros para obtener el contenido de los blob.

Para consultas de inserción y actualización debes crear estos identificadores de blob con "ifx_create_blob(..);". Entonces pondrás los identificadores de blob en un array y sustituirás en la cadena de la consulta las columnas de tipo blob por una interrogación (?). Para inserciones y actualizaciones eres responsable de definir el contenido de los blob con ifx_update_blob(...).

La conducta de columnas BLOB puede ser modificada mediante variables de configuración, las cuales pueden ser definidas en tiempo de ejecución mediante funciones.

variable de configuración: ifx.textasvarchar

variable de configuración: ifx.byteasvarchar

funciones en tiempo de ejecución:

ifx_textasvarchar(0): usa identificadores de blob para columnas de tipo TEXT en las consultas de selección

ifx_byteasvarchar(0): usa identificadores de blob para columnas de tipo BYTE en las consultas de selección

ifx_textasvarchar(1): devuelve columnas de tipo TEXT como si fueran de tipo VARCHAR, sin tener que usar identificadores de blob en las consultas de selección

ifx_byteasvarchar(1): devuelve columnas de tipo BYTE como si fueran de tipo VARCHAR, sin tener que usar identificadores de blob en las consultas de selección.

variable de configuración: ifx.blobinfile

función en tiempo de ejecución:

ifx_blobinfile_mode(0): devuelve columnas de tipo BYTE en memoria, el identificador de blob te permite obtener el contenido.

ifx_blobinfile_mode(1): devuelve columnas de tipo BYTE en un fichero, el identificador te permite saber el nombre de dicho archivo.

Si defines ifx_text/byteasvarchar a 1 entonces puedes usar columnas de tipo TEXT y BYTE en las consultas de selección como campos de tipo VARCHAR, pero teniendo en cuenta que tendrán un mayor tamaño que el habitual. Ya que en PHP todas las cadenas son posibles, esto permite datos binarios. De esta forma, se pueden manejar correctamente. La información devuelta puede contener cualquier cosa, tú eres responsable del contenido.

Si defines ifx_blobinfile a 1, utiliza el nombre del archivo devuelto por ifx_get_blob(..) para acceder a los contenidos del blobs. En este caso, ERES REPONSABLE DE ELIMINAR EL ARCHIVO TEMPORAL GENERADO POR INFORMIX cuando accedas a los registros. Cada nueva fila obtenida creará un nuevo archivo temporal para cada columna de tipo BYTE.

El directorio donde se guardan los archivos temporales puede ser definido por la variable de entorno blobdir, por defecto es ".", es decir, el directorio actual. Así, putenv(blobdir=tmpblob"); definirá un directorio donde se localizarán todos los ficheros temporales y facilitará su borrado. Todos los nombres de los archivos comienzan por "blb".

Recortado (trimming) automático de datos de tipo "char" (SQLCHAR y SQLNCHAR):

Puede ser definido con la variable de configuración

ifx.charasvarchar: si se define a 1 eliminará automáticamente los espacios en blanco al final de la cadena.

Valores NULL:

La variable de configuración ifx.nullformat (y en tiempo de ejecución ifx_nullformat()) cuando sea definida a TRUE devolverá columnas NULL como la cadena "NULL", si es definida a FALSE entonces la cadena vacía. Esto permite distinguir entre columnas NULL y vacías.

Tabla de contenidos
ifx_affected_rows -- Obtiene el número de registros procesados por una consulta
ifx_blobinfile_mode -- Define el modo por defecto para los blob en todas las consultas de selección
ifx_byteasvarchar -- Define el modo por defecto para los campos de tipo byte
ifx_close -- Cierra una conexión con Informix
ifx_connect -- Abre una conexión con un servidor Informix
ifx_copy_blob -- Duplica el objeto blob dado
ifx_create_blob -- Crea un objeto blob
ifx_create_char -- Crea un objeto char
ifx_do -- Ejecuta una sentencia SQL preparada previamente
ifx_error -- Devuelve el código de error de la última llamada a Informix
ifx_errormsg -- Devuelve el mensaje de error de la última llamada a Informix
ifx_fetch_row -- Obtiene registros como un array (vector) enumerado
ifx_fieldproperties -- Indica las propiedades de los campos de una consulta SQL
ifx_fieldtypes -- Obtiene los campos de una consulta SQL
ifx_free_blob -- Borra el objeto blob
ifx_free_char -- Elimina un objeto char
ifx_free_result -- Libera los recursos de una consulta
ifx_get_blob -- Obtiene el contenido de un objeto blob
ifx_get_char -- Obtiene el contenido de un objeto char
ifx_getsqlca -- Después de una consulta, obtiene el contenido de sqlca.sqlerrd[0..5]
ifx_htmltbl_result -- Muestra todos los registros de una consulta en una tabla HTML
ifx_nullformat -- Define el valor por defecto cuando se leen valores nulos
ifx_num_fields -- Devuelve el número de columnas en una consulta
ifx_num_rows -- Cuenta los registros ya leídos de una consulta
ifx_pconnect -- Abre una conexión permanente con Informix
ifx_prepare -- Prepara una sentencia SQL para su ejecución
ifx_query -- Envía una consulta a Informix
ifx_textasvarchar -- Define el modo por defecto para los campos de tipo text
ifx_update_blob -- Actualiza el contenido de un objeto blob
ifx_update_char -- Actualiza el contenido de un objeto char
ifxus_close_slob -- Cierra un objeto slob
ifxus_create_slob -- Crea un objeto slob y lo abre
ifx_free_slob -- Elimina un objeto slob
ifxus_open_slob -- Abre un objeto slob
ifxus_read_slob -- Lee un número de bytes (nbytes) de un objeto slob
ifxus_seek_slob -- Define el fichero o posición en memoria
ifxus_tell_slob -- Devuelve el fichero actual o la posición en memoria
ifxus_write_slob -- Escribe una cadena en un objeto slob

Anterior | Inicio | Siguiente
imap_utf8 | Subir | ifx_affected_rows


ifx_affected_rows

(PHP 3>= 3.0.3, PHP 4 )

ifx_affected_rows -- Obtiene el número de registros procesados por una consulta

Descripción

int ifx_affected_rows ( int result_id)

result_id es un identificador válido del resultado de ifx_query() o ifx_prepare().

Devuelve el número de filas procesadas por una consulta representada por un result_id (identificador de resultado).

Para inserciones, actualizaciones y borrados el número es exactamente los registros procesados (sqlerrd[2]). Para las consultas de selección es una estimación (sqlerrd[0]). No confíes en él.

Es útil llamarla después de ejecutar ifx_prepare() pues así podemos limitar las consultas a número razonable de registros.

Examina también: ifx_num_rows()

Ejemplo 1. Número de registros procesados por una consulta

$rid = ifx_prepare ("select * from emp where name like " . $name, $connid);
if (! $rid) {
    ... error ...
}
$rowcount = ifx_affected_rows ($rid);
if ($rowcount > 1000) {
    printf ("Too many rows in result set (%d)\n<br>", $rowcount);  // Demasiados registros en el resultado
    die ("Please restrict your query<br>\n");                      // Por favor, restringe tu consulta
}

Anterior | Inicio | Siguiente
Funciones para Informix | Subir | ifx_blobinfile_mode


ifx_blobinfile_mode

(PHP 3>= 3.0.4, PHP 4 )

ifx_blobinfile_mode -- Define el modo por defecto para los blob en todas las consultas de selección

Descripción

void ifx_blobinfile_mode ( int mode)

Define el modo por defecto para los blob en todas las consultas de selección. El modo (mode) "0" quiere decir que guarda en memoria los blobs de tipo BYTE y modo "1" significa guardarlos en un archivo.

Anterior | Inicio | Siguiente
ifx_affected_rows | Subir | ifx_byteasvarchar


ifx_byteasvarchar

(PHP 3>= 3.0.4, PHP 4 )

ifx_byteasvarchar -- Define el modo por defecto para los campos de tipo byte

Descripción

void ifx_byteasvarchar ( int mode)

Define el modo por defecto para los campos de tipo byte en todas las consultas de selección. Modo (mode) "0" devolverá un identificador de blob y "1" dará el contenido en un campo de tipo varchar.

Anterior | Inicio | Siguiente
ifx_blobinfile_mode | Subir | ifx_close


ifx_close

(PHP 3>= 3.0.3, PHP 4 )

ifx_close -- Cierra una conexión con Informix

Descripción

int ifx_close ( [int link_identifier])

Devuelve: TRUE siempre.

ifx_close() cierra un enlace a una base de datos Informix que esté asociado con el identificador de enlace (link_identifier). Si el identificador de enlace no es especificado, el último enlace abierto es asumido.

Observa que esto no es necesario habitualmente ya que las conexiones no permanentes son cerradas automáticamente al finalizar el guión (script).

ifx_close() no cerrará enlaces persistentes generados por ifx_pconnect().

Examina también: ifx_connect(), y ifx_pconnect().

Ejemplo 1. Cierre de una conexión a Informix

$conn_id = ifx_connect (mydb@ol_srv, "itsme", "mypassword");
... algunas consultas y código ...
ifx_close($conn_id);

Anterior | Inicio | Siguiente
ifx_byteasvarchar | Subir | ifx_connect


ifx_connect

(PHP 3>= 3.0.3, PHP 4 )

ifx_connect -- Abre una conexión con un servidor Informix

Descripción

int ifx_connect ( [string database [, string userid [, string password]]])

Si tuvo éxito, devuelve un identificador de conexión en otro caso FALSE.

ifx_connect() establece una conexión con un servidor INFORMIX. Todos los argumentos son opcionales, y si no se pasan, se toman los valores del fichero de configuración (ifx.default_host para el ordenador donde se encuentra el servidor (si no es definida, las librerías de Infomix usarán la variable de entorno INFORMIXSERVER), ifx.default_user para el usuario (userid), ifx.default_password para la contraseña (password) (ninguna, si no es definida).

Para una segunda llamada a ifx_connect() con los mismos argumentos, no se establecerá una nueva conexión, en vez de eso, el identificador de enlace de la conexión abierta será devuelto.

La conexión con el servidor será cerrada tan pronto como la ejecución del guión (script) finalice, a menos que anteriormente se haya llamando a ifx_close().

Examina también ifx_pconnect(), y ifx_close().

Ejemplo 1. Conexión a una base de datos Informix

$conn_id = ifx_pconnect (mydb@ol_srv1, "imyself", "mypassword");

Anterior | Inicio | Siguiente
ifx_close | Subir | ifx_copy_blob


ifx_copy_blob

(PHP 3>= 3.0.4, PHP 4 )

ifx_copy_blob -- Duplica el objeto blob dado

Descripción

int ifx_copy_blob ( int bid)

Duplica el objeto blob dado. bid es el identificador del objeto blob a copiar.

Devuelve FALSE si hubo error, en otro caso el identificador del nuevo objeto blob.

Anterior | Inicio | Siguiente
ifx_connect | Subir | ifx_create_blob


ifx_create_blob

(PHP 3>= 3.0.4, PHP 4 )

ifx_create_blob -- Crea un objeto blob

Descripción

int ifx_create_blob ( int type, int mode, string param)

Crea un objeto blob.

type (tipo): 1 = TEXT, 0 = BYTE

mode (modo): 0 = el contenido del objeto blob es conservado en memoria, 1 = el contenido del objeto blob es mantenido en un archivo.

param: si mode = 0: apunta al contenido en memoria, si mode = 1: contiene el nombre del fichero.

Devuelve FALSE si hubo error, en otro caso el identificador del nuevo objeto blob.

Anterior | Inicio | Siguiente
ifx_copy_blob | Subir | ifx_create_char


ifx_create_char

(PHP 3>= 3.0.6, PHP 4 )

ifx_create_char -- Crea un objeto char

Descripción

int ifx_create_char ( string param)

Crea un objeto char. param será el contenido del char.

Anterior | Inicio | Siguiente
ifx_create_blob | Subir | ifx_do


ifx_do

(PHP 3>= 3.0.4, PHP 4 )

ifx_do -- Ejecuta una sentencia SQL preparada previamente

Descripción

int ifx_do ( int result_id)

Devuelve TRUE si se realizó, FALSE si hubo algún error.

Ejecuta una consulta preparada anteriormente o abre un cursor para ella.

No libera result_id si hubo un error.

También define el número real de registros procesados para consultas que no sean de selección y se puede obtener mediante ifx_affected_rows().

Examina también: ifx_prepare() (hay un ejemplo).

Anterior | Inicio | Siguiente
ifx_create_char | Subir | ifx_error


ifx_error

(PHP 3>= 3.0.3, PHP 4 )

ifx_error -- Devuelve el código de error de la última llamada a Informix

Descripción

string ifx_error ( void )

Los códigos de error de Informix (SQLSTATE & SQLCODE) son representados como se especifica a continuación:

x [SQLSTATE = aa bbb SQLCODE=cccc]

donde x = un espacio : no hubo error

E : hubo error

N : no hay más datos

W : aviso

? : no definido

Si el carácter "x" es cualquier otra cosa diferente a un espacio, SQLSTATE y SQLCODE describen el error con mayor detalle.

Examina el manual de Informix para el significado de SQLSTATE y SQLCODE.

Devuelve en una cadena un caracter describiendo el resultado de una sentencia y los valores SQLSTATE y SQLCODE asociados con la última sentencia SQL ejecutada. El formato de la cadena es "(char) [SQLSTATE=(dos dígitos) (tres dígitos) SQLCODE=(un dígitos)]". El primer carácter puede ser ' ' (un espacio) (no hubo error), 'W' (la sentencia provocó un aviso), 'E' (la consulta produjo un error) o 'N' (la sentencia no devolvió ningún dato).

Examina también: ifx_errormsg()

Anterior | Inicio | Siguiente
ifx_do | Subir | ifx_errormsg


ifx_errormsg

(PHP 3>= 3.0.4, PHP 4 )

ifx_errormsg -- Devuelve el mensaje de error de la última llamada a Informix

Descripción

string ifx_errormsg ( [int errorcode])

Devuelve el mensaje de error asociado con el error más reciente de Informix. Si definismos el parámetro opcional "errorcode" (código de error), nos dará el mensaje de error correspondiente a ese código.

Examina también: ifx_error()

printf("%s\n<br>", ifx_errormsg(-201));

Anterior | Inicio | Siguiente
ifx_error | Subir | ifx_fetch_row


ifx_fetch_row

(PHP 3>= 3.0.3, PHP 4 )

ifx_fetch_row -- Obtiene registros como un array (vector) enumerado

Descripción

array ifx_fetch_row ( int result_id [, mixed position])

Devuelve un array (vector) correspondiente a la fila leída o FALSE si no hay más registros.

Las columnas blob son devueltas como identificadores de blob enteros (integer) para usarlos con ifx_get_blob() a menos que hayas usado ifx_textasvarchar(1) o ifx_byteasvarchar(1), en cuyo caso los blobs son devueltos como cadenas de texto. Devuelve FALSE si hubo error.

result_id es un identificador válido del resultado de ifx_query() o ifx_prepare() (sólo para consultas de selección).

position es un parámetro opcional para una operación de lectura sobre un cursor de tipo "scroll": "NEXT" (siguiente), "PREVIOUS" (anterior), "CURRENT" (actual), "FIRST" (primero), "LAST" (último) o un número. Si se especifica un número, un registro concreto es leído. Este parámetro opcional es sólo válido para cursores de tipo scroll.

ifx_fetch_row() lee el contenido de un registro de la consulta representada por el identificador de resultado indicado. La fila (registro) es devuelta en un array. Cada columna es guarda en un array, empezando éste desde cero.

Las llamadas posteriores a ifx_fetch_row() devolverán el registro siguiente en el resultado de la consulta, o FALSE si no hay más filas.

Ejemplo 1. Leer registros

$rid = ifx_prepare ("select * from emp where name like " . $name,
                     $connid, IFX_SCROLL);
if (! $rid) {
    ... error ...
}
$rowcount = ifx_affected_rows($rid);
if ($rowcount > 1000) {
    printf ("Too many rows in result set (%d)\n<br>", $rowcount);  // Demasiados registros en el resultado
    die ("Please restrict your query<br>\n");                      // Por favor, restringe tu consulta
}
if (! ifx_do ($rid)) {
   ... error ...
}
$row = ifx_fetch_row ($rid, "NEXT");
while (is_array($row)) {
    for(reset($row); $fieldname=key($row); next($row)) {
        $fieldvalue = $row[$fieldname];
        printf ("%s = %s,", $fieldname, $fieldvalue);
    }
    printf("\n<br>");
    $row = ifx_fetch_row ($rid, "NEXT");
}
ifx_free_result ($rid);

Anterior | Inicio | Siguiente
ifx_errormsg | Subir | ifx_fieldproperties


ifx_fieldproperties

(PHP 3>= 3.0.3, PHP 4 )

ifx_fieldproperties -- Indica las propiedades de los campos de una consulta SQL

Descripción

array ifx_fieldproperties ( int result_id)

Dada una consulta representada por result_id devuelve un array con los nombres de campo como llaves y las propiedades como datos. FALSE es devuelto si hubo error.

Devuelve las propiedades SQL de cada campo como un array. Las propiedades son codificadas así: "SQLTYPE;longitud;precisión;escala;ISNULLABLE" siendo SQLTYPE el tipo de dato definido en Informix como puede ser "SQLVCHAR" etc. e ISNULLABLE (puede ser nulo) igual a "Y" sí o "N" no.

Ejemplo 1. Propiedades de los campos de una consulta SQL

<?php
$properties = ifx_fieldtypes ($resultid);
if (! isset($properties)) {
  ... error ...
}
for ($i = 0; $i < count($properties); $i++) {
    $fname = key ($properties);
    printf ("%s:\t type =  %s\n", $fname, $properties[$fname]);
    next ($properties);
}
?>

Anterior | Inicio | Siguiente
ifx_fetch_row | Subir | ifx_fieldtypes


ifx_fieldtypes

(PHP 3>= 3.0.3, PHP 4 )

ifx_fieldtypes -- Obtiene los campos de una consulta SQL

Descripción

array ifx_fieldtypes ( int result_id)

Dada una consulta representada por result_id devuelve un array con los nombres de campo como llaves y los tipos como datos. Si no tuvo éxito da FALSE.

Ejemplo 1. Nombres y tipos de campos de una consulta SQL

<?php
$types = ifx_fieldtypes ($resultid);
if (! isset ($types)) {
  ... error ...
}
for ($i = 0; $i < count($types); $i++) {
    $fname = key($types);
    printf("%s :\t type =  %s\n", $fname, $types[$fname]);
    next($types);
}
?>

Anterior | Inicio | Siguiente
ifx_fieldproperties | Subir | ifx_free_blob


ifx_free_blob

(PHP 3>= 3.0.4, PHP 4 )

ifx_free_blob -- Borra el objeto blob

Descripción

int ifx_free_blob ( int bid)

Elimina el objeto blob representado por el identificador bid. Devuelve FALSE si se produjo error, en otro caso TRUE.

Anterior | Inicio | Siguiente
ifx_fieldtypes | Subir | ifx_free_char


ifx_free_char

(PHP 3>= 3.0.6, PHP 4 )

ifx_free_char -- Elimina un objeto char

Descripción

int ifx_free_char ( int bid)

Borra el objeto char representado por el identificador del char bid. Devuelve FALSE si se produjo un error, en otro caso TRUE.

Anterior | Inicio | Siguiente
ifx_free_blob | Subir | ifx_free_result


ifx_free_result

(PHP 3>= 3.0.3, PHP 4 )

ifx_free_result -- Libera los recursos de una consulta

Descripción

int ifx_free_result ( int result_id)

Libera los recursos representados por el identificador result_id de una consulta. Devuelve FALSE si hubo error.

Anterior | Inicio | Siguiente
ifx_free_char | Subir | ifx_get_blob


ifx_get_blob

(PHP 3>= 3.0.4, PHP 4 )

ifx_get_blob -- Obtiene el contenido de un objeto blob

Descripción

int ifx_get_blob ( int bid)

Devuelve el contenido de un objeto blob representado por su identificador bid.

Anterior | Inicio | Siguiente
ifx_free_result | Subir | ifx_get_char


ifx_get_char

(PHP 3>= 3.0.6, PHP 4 )

ifx_get_char -- Obtiene el contenido de un objeto char

Descripción

int ifx_get_char ( int bid)

Devuelve el contenido de un objeto char representado por su identificador bid.

Anterior | Inicio | Siguiente
ifx_get_blob | Subir | ifx_getsqlca


ifx_getsqlca

(PHP 3>= 3.0.8, PHP 4 )

ifx_getsqlca -- Después de una consulta, obtiene el contenido de sqlca.sqlerrd[0..5]

Descripción

array ifx_getsqlca ( int result_id)

result_id es un identificador válido del resultado de ifx_query() o ifx_prepare().

Devuelve una seudo fila (array asociativo) con los valores de sqlca.sqlerrd[0] a sqlca.sqlerrd[5] de una consulta ejecutada, representada ésta con un identificador de resultado result_id.

Para inserciones, actualizaciones y borrados los valores devueltos son aquellos definidos por el servidor después de que la consulta sea ejecutada. Esto da acceso al número de registros procesados y al valor de una columna de tipo serial en una consulta de inserción. Para consultas de selección, los valores son guardados cuando se prepara la sentencia. También permite conocer el número estimado de registros procesados. El uso de esta función evita el sobrecoste de ejecutar la consulta "select dbinfo('sqlca.sqlerrdx')", como obtener los valores guardados por el conector para Informix en el momento apropiado.

Ejemplo 1. Obtener los valores sqlca.sqlerrd[x]

/* suponiendo que la primera columna de la tabla 'sometable' es de tipo serial */
$qid = ifx_query("insert into sometable values(0, '2nd column', 'another column' ", $connid);
if (! $qid) {
    ... error ...
}
$sqlca = ifx_getsqlca ($qid);
$serial_value = $sqlca["sqlerrd1"];
echo "The serial value of the inserted row is : " . $serial_value<br>\n"; // El valor de tipo serial del registro insertado es:

Anterior | Inicio | Siguiente
ifx_get_char | Subir | ifx_htmltbl_result


ifx_htmltbl_result

(PHP 3>= 3.0.3, PHP 4 )

ifx_htmltbl_result -- Muestra todos los registros de una consulta en una tabla HTML

Descripción

int ifx_htmltbl_result ( int result_id [, string html_table_options])

Devuelve el número de registros leídos o FALSE si hubo error.

Muestra todas las filas de la consulta result_id dentro de una tabla html. El argumento segundo, opcional, es una cadena de parámetros del tag <table>

Ejemplo 1. Mostrar resultado como una tabla HTML

$rid = ifx_prepare ("select * from emp where name like " . $name,
                     $connid, IFX_SCROLL);
if (! $rid) {
   ... error ...
}
$rowcount = ifx_affected_rows ($rid);
if ($rowcount > 1000) {
    printf ("Too many rows in result set (%d)\n<br>", $rowcount);  // Demasiados registros en el resultado
    die ("Please restrict your query<br>\n");                      // Por favor, restringe tu consulta
}
if (! ifx_do($rid) {
  ... error ...
}

ifx_htmltbl_result ($rid, "border=\"2\"");

ifx_free_result($rid);

Anterior | Inicio | Siguiente
ifx_getsqlca | Subir | ifx_nullformat


ifx_nullformat

(PHP 3>= 3.0.4, PHP 4 )

ifx_nullformat -- Define el valor por defecto cuando se leen valores nulos

Descripción

void ifx_nullformat ( int mode)

Define el valor por defecto cuando se leen valores nulos. Modo (mode) "0" devuelve "", y modo "1" devuelve "NULL".

Anterior | Inicio | Siguiente
ifx_htmltbl_result | Subir | ifx_num_fields


ifx_num_fields

(PHP 3>= 3.0.3, PHP 4 )

ifx_num_fields -- Devuelve el número de columnas en una consulta

Descripción

int ifx_num_fields ( int result_id)

Dada una consulta representada por result_id devuelve el número de columnas o FALSE si se produjo un error.

Después de preparar o ejecutar una consulta, una llamada a esta función te da el número de columnas en la consulta.

Anterior | Inicio | Siguiente
ifx_nullformat | Subir | ifx_num_rows


ifx_num_rows

(PHP 3>= 3.0.3, PHP 4 )

ifx_num_rows -- Cuenta los registros ya leídos de una consulta

Descripción

int ifx_num_rows ( int result_id)

Da el número de registros ya leídos de una consulta representada por un result_id después de llamar a ifx_query() o ifx_do().

Anterior | Inicio | Siguiente
ifx_num_fields | Subir | ifx_pconnect


ifx_pconnect

(PHP 3>= 3.0.3, PHP 4 )

ifx_pconnect -- Abre una conexión permanente con Informix

Descripción

int ifx_pconnect ( [string database [, string userid [, string password]]])

Devuelve un identificador positivo de enlace persistente si hubo conexión, o FALSE si se produjo un error.

ifx_pconnect() actúa muy parecido a ifx_connect() con dos principales diferencias.

Esta función se comporta exactamente igual que ifx_connect() cuando PHP no es ejecutado como un módulo de Apache. La primera diferencia es cuando se conecta, la función intentará encontrar un enlace (persistente) que exista con el mismo servidor, usuario y contraseña. Si es hallado, el identificador del enlace será devuelto en vez de abrir una nueva conexión.

Segundo, la conexión al servidor no se cerrará cuando la ejecución del guión (script) finalice. En vez de esto, la conexión permanecerá abierta para usos futuros (ifx_close() no cerrará el enlace creado por ifx_pconnect()).

Este tipo de enlace es, por tanto, llamado 'persistente'

Examina también: ifx_connect().

Anterior | Inicio | Siguiente
ifx_num_rows | Subir | ifx_prepare


ifx_prepare

(PHP 3>= 3.0.4, PHP 4 )

ifx_prepare -- Prepara una sentencia SQL para su ejecución

Descripción

int ifx_prepare ( string query, int conn_id [, int cursor_def, mixed blobidarray])

Devuelve un entero (integer) result_id para usarlo con ifx_do(). Es definido "affected_rows" (registros procesados) y se puede obtener mediante la función ifx_affected_rows().

Prepara una consulta (query) sobre una conexión (link_identifier). Un cursor es definido y abierto para las consultas de selección. El parámetro opcional tipo de cursor (cursor_type) te permite que sea un cursor de tipo "scroll" y/o "hold". Es una máscara y puede ser IFX_SCROLL, IFX_HOLD o ambos.

Para cualquier tipo de consulta el número estimado de registros afectados (procesados) es guardado y puede ser obtenido mediante ifx_affected_rows().

Si tienes columnas BLOB (BYTE o TEXT) en una consulta, puedes añadir un parámetro blobidarray conteniendo los identificadores de blob y sustituir los valores de esas columnas por una "?" en el texto de la consulta.

Si el contenido de la columna de tipo TEXT (o BYTE) lo permite, puedes también usar "ifx_textasvarchar(1)" y "ifx_byteasvarchar(1)". Esto supone manejar columnas de tipo TEXT (o BYTE) como si fueran columnas normales de tipo VARCHAR (pero teniendo en cuenta que tendrán un mayor tamaño que el habitual), para consultas de selección y no necesitas preocuparte por los identificadores de blob.

La opción por defecto ifx_textasvarchar(0) o ifx_byteasvarchar(0) devuelve identificadores de blob (valores enteros) para las consultas de selección. Puedes obtener el contenido del blob como una cadena o un fichero con las funciones para blob (ver más adelante).

Examina también: ifx_do().

Anterior | Inicio | Siguiente
ifx_pconnect | Subir | ifx_query


ifx_query

(PHP 3>= 3.0.3, PHP 4 )

ifx_query -- Envía una consulta a Informix

Descripción

int ifx_query ( string query [, int link_identifier [, int cursor_type [, mixed blobidarray]]])

Devuelve un identificador positivo de resultado si tuvo éxito, FALSE en otro caso.

Un entero (integer) "result_id" usado por otras funciones para obtener el resultado de la consulta. Es definido "affected_rows" (registros procesados) y se puede obtener mediante la función ifx_affected_rows().

ifx_query() envía una consulta a la base de datos activa actualmente en el servidor, la cual está representada por el identificador de enlace especificado (link_identifier). Si el identificador no es definido, el último enlace abierto es asumido. Si el enlace no se encuentra abierto, ifx_connect() es llamado y utilizado.

Ejecuta una consulta (query) sobre una conexión (link_identifier). Un cursor es definido y abierto para las consultas de selección. El parámetro opcional tipo de cursor (cursor_type) te permite que sea un cursor de tipo "scroll" y/o "hold". Es una máscara y puede ser IFX_SCROLL, IFX_HOLD o ambos. Las consultas que no son de selección son ejecutadas inmediatamente.

Para cualquier tipo de consulta el número (estimado o real) de registros procesados es guardo y se puede obtener mediante ifx_affected_rows().

Si tienes columnas BLOB (BYTE o TEXT) en una consulta de actualización, puedes añadir un parámetro blobidarray conteniendo los identificadores de blob y sustituir los valores de esas columnas por una "?" en el texto de la consulta.

Si el contenido de la columna de tipo TEXT (o BYTE) lo permite, también puedes usar "ifx_textasvarchar(1)" y "ifx_byteasvarchar(1)". Esto supone manejar columnas de tipo TEXT (o BYTE) como si fueran columnas normales de tipo VARCHAR (pero teniendo en cuenta que tendrán un mayor tamaño que el habitual), para consultas de selección y no necesitas preocuparte por los identificadores de blob.

La opción por defecto ifx_textasvarchar(0) o ifx_byteasvarchar(0) devuelve identificadores de blob (valores enteros) para las consultas de selección. Puedes obtener el contenido del blob como una cadena o un fichero con las funciones para blob (ver más adelante).

Examina también: ifx_connect().

Ejemplo 1. Mostrar todos los registros de la tabla "orders" como una tabla html

ifx_textasvarchar(1);      // usa "modo texto" para blobs
$res_id = ifx_query("select * from orders", $conn_id);
if (! $res_id) {
    printf("Can't select orders : %s\n<br>%s<br>\n", ifx_error());
    ifx_errormsg();
    die;
}
ifx_htmltbl_result($res_id, "border=\"1\"");
ifx_free_result($res_id);

Ejemplo 2. Inserta valores en la tabla "catalog"

// crea identificadores de blob para una columna de tipo byte y otra text
$textid = ifx_create_blob(0, 0, "Text column in memory");
$byteid = ifx_create_blob(1, 0, "Byte column in memory");
                      // almacena los identificadores de blob en un array llamado blobid
$blobidarray[] = $textid;
$blobidarray[] = $byteid;
                      // lanza la consulta
$query = "insert into catalog (stock_num, manu_code, " .
         "cat_descr,cat_picture) values(1,'HRO',?,?)";
$res_id = ifx_query($query, $conn_id, $blobidarray);
if (! $res_id) {
  ... error ...
}
                     // libera el resultado
ifx_free_result($res_id);

Anterior | Inicio | Siguiente
ifx_prepare | Subir | ifx_textasvarchar


ifx_textasvarchar

(PHP 3>= 3.0.4, PHP 4 )

ifx_textasvarchar -- Define el modo por defecto para los campos de tipo text

Descripción

void ifx_textasvarchar ( int mode)

Define el modo por defecto para los campos de tipo text en todas las consultas de selección. Modo (mode) "0" devolverá un identificador de blob y "1" dará el contenido en un campo de tipo varchar.

Anterior | Inicio | Siguiente
ifx_query | Subir | ifx_update_blob


ifx_update_blob

(PHP 3>= 3.0.4, PHP 4 )

ifx_update_blob -- Actualiza el contenido de un objeto blob

Descripción

ifx_update_blob ( int bid, string content)

Actualiza el contenido de un objeto blob representado por su identificador bid. content es una cadena con el nuevo contenido. Devuelve FALSE si hubo error, en otro caso TRUE.

Anterior | Inicio | Siguiente
ifx_textasvarchar | Subir | ifx_update_char


ifx_update_char

(PHP 3>= 3.0.6, PHP 4 )

ifx_update_char -- Actualiza el contenido de un objeto char

Descripción

int ifx_update_char ( int bid, string content)

Actualiza el contenido de un objeto char representado por su identificador bid. content es una cadena con la información nueva. Devuelve FALSE si se produjo un error, en otro caso TRUE.

Anterior | Inicio | Siguiente
ifx_update_blob | Subir | ifxus_close_slob


ifxus_close_slob

(PHP 3>= 3.0.4, PHP 4 )

ifxus_close_slob -- Cierra un objeto slob

Descripción

int ifxus_close_slob ( int bid)

Cierra un objeto slob representado por su identificador de slob bid. Devuelve FALSE si hubo error, TRUE en otro caso.

Anterior | Inicio | Siguiente
ifx_update_char | Subir | ifxus_create_slob


ifxus_create_slob

(PHP 3>= 3.0.4, PHP 4 )

ifxus_create_slob -- Crea un objeto slob y lo abre

Descripción

int ifxus_create_slob ( int mode)

Crea un objeto slob y lo abre. Modos: 1 = LO_RDONLY, 2 = LO_WRONLY, 4 = LO_APPEND, 8 = LO_RDWR, 16 = LO_BUFFER, 32 = LO_NOBUFFER o una combinación de ellos. También puedes usar nombres de constantes IFX_LO_RDONLY, IFX_LO_WRONLY, etc. Devuelve FALSE si hubo error, en otro caso el identificador del nuevo objeto slob.

Anterior | Inicio | Siguiente
ifxus_close_slob | Subir | ifx_free_slob


ifx_free_slob

(no version information, might be only in CVS)

ifx_free_slob -- Elimina un objeto slob

Descripción

int ifxus_free_slob ( int bid)

Borra un objeto slob. bid es el identificador del objeto slob. Devuelve FALSE si hubo error, TRUE en otro caso.

Anterior | Inicio | Siguiente
ifxus_create_slob | Subir | ifxus_open_slob


ifxus_open_slob

(PHP 3>= 3.0.4, PHP 4 )

ifxus_open_slob -- Abre un objeto slob

Descripción

int ifxus_open_slob ( long bid, int mode)

Abre un objeto slob. bid será un identificador de slob que válido. Modos: 1 = LO_RDONLY, 2 = LO_WRONLY, 4 = LO_APPEND, 8 = LO_RDWR, 16 = LO_BUFFER, 32 = LO_NOBUFFER o una combinación de ellos. Devuelve FALSE si hubo error, en otro caso el identificador del nuevo objeto slob.

Anterior | Inicio | Siguiente
ifx_free_slob | Subir | ifxus_read_slob


ifxus_read_slob

(PHP 3>= 3.0.4, PHP 4 )

ifxus_read_slob -- Lee un número de bytes (nbytes) de un objeto slob

Descripción

int ifxus_read_slob ( long bid, long nbytes)

Lee un número de bytes (nbytes) de un objeto slob. bid es un identificador de slob válido y nbytes es el número de bytes a leer. Devuelve FALSE si hubo error, sino la cadena.

Anterior | Inicio | Siguiente
ifxus_open_slob | Subir | ifxus_seek_slob


ifxus_seek_slob

(PHP 3>= 3.0.4, PHP 4 )

ifxus_seek_slob -- Define el fichero o posición en memoria

Descripción

int ifxus_seek_blob ( long bid, int mode, long offset)

Define el fichero o posición en memoria de un objeto slob abierto, bid será un identificador de slob válido. Modos (mode): 0 = LO_SEEK_SET, 1 = LO_SEEK_CUR, 2 = LO_SEEK_END y offset es el desplazamiento en bytes. Si hubo error entonces da FALSE.

Anterior | Inicio | Siguiente
ifxus_read_slob | Subir | ifxus_tell_slob


ifxus_tell_slob

(PHP 3>= 3.0.4, PHP 4 )

ifxus_tell_slob -- Devuelve el fichero actual o la posición en memoria

Descripción

int ifxus_tell_slob ( long bid)

Devuelve el fichero actual o la posición en memoria de un objeto slob abierto, bid será un identificador de slob válido. Si hubo error entonces da FALSE.

Anterior | Inicio | Siguiente
ifxus_seek_slob | Subir | ifxus_write_slob


ifxus_write_slob

(PHP 3>= 3.0.4, PHP 4 )

ifxus_write_slob -- Escribe una cadena en un objeto slob

Descripción

int ifxus_write_slob ( long bid, string content)

Escribe una cadena en un objeto slob. bid es un identificador de slob válido y content el contenido a escribir. Devuelve FALSE si hubo error, sino el número de bytes escritos.

Anterior | Inicio | Siguiente
ifxus_tell_slob | Subir | Funciones InterBase


Funciones InterBase

Manual de PHP
Anterior Siguiente

XLIV. Funciones InterBase

Tabla de contenidos
ibase_add_user -- Add a user to a security database (only for IB6 or later)
ibase_affected_rows -- Return the number of rows that were affected by the previous query
ibase_blob_add -- Add data into a newly created blob
ibase_blob_cancel -- Cancel creating blob
ibase_blob_close -- Close blob
ibase_blob_create -- Create a new blob for adding data
ibase_blob_echo -- Output blob contents to browser
ibase_blob_get -- Get len bytes data from open blob
ibase_blob_import -- Create blob, copy file in it, and close it
ibase_blob_info -- Return blob length and other useful info
ibase_blob_open -- Open blob for retrieving data parts
ibase_close --
ibase_commit_ret -- Commit a transaction without closing it
ibase_commit -- Commit a transaction
ibase_connect --
ibase_delete_user -- Delete a user from a security database (only for IB6 or later)
ibase_drop_db -- Drops a database
ibase_errcode -- Return an error code
ibase_errmsg -- Return error messages
ibase_execute --
ibase_fetch_assoc -- Fetch a result row from a query as an associative array
ibase_fetch_object -- Get an object from a InterBase database
ibase_fetch_row --
ibase_field_info -- Get information about a field
ibase_free_event_handler -- Cancels a registered event handler
ibase_free_query --
ibase_free_result --
ibase_gen_id -- Increments the named generator and returns its new value
ibase_modify_user -- Modify a user to a security database (only for IB6 or later)
ibase_name_result -- Assigns a name to a result set
ibase_num_fields -- Get the number of fields in a result set
ibase_num_params -- Return the number of parameters in a prepared query
ibase_param_info -- Return information about a parameter in a prepared query
ibase_pconnect --
ibase_prepare --
ibase_query --
ibase_rollback_ret -- Roll back a transaction without closing it
ibase_rollback -- Roll back a transaction
ibase_set_event_handler -- Register a callback function to be called when events are posted
ibase_timefmt --
ibase_trans -- Begin a transaction
ibase_wait_event -- Wait for an event to be posted by the database

Anterior | Inicio | Siguiente
ifxus_write_slob | Subir | ibase_add_user


ibase_add_user

(PHP 4 >= 4.2.0)

ibase_add_user -- Add a user to a security database (only for IB6 or later)

Description

bool ibase_add_user ( string server, string dba_user_name, string dba_user_password, string user_name, string password [, string first_name [, string middle_name [, string last_name]]])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

See also ibase_modify_user() and ibase_delete_user().

Anterior | Inicio | Siguiente
Funciones InterBase | Subir | ibase_affected_rows


ibase_affected_rows

(no version information, might be only in CVS)

ibase_affected_rows -- Return the number of rows that were affected by the previous query

Description

int ibase_affected_rows ( resource link_identifier)

This function returns the number of rows that were affected by the previous query that was executed from within the transaction context specified by link_identifier. If link_identifier is a connection resource, its default transaction is used.

See also ibase_query() and ibase_execute().

Anterior | Inicio | Siguiente
ibase_add_user | Subir | ibase_blob_add


ibase_blob_add

(PHP 3>= 3.0.7, PHP 4 )

ibase_blob_add -- Add data into a newly created blob

Description

bool ibase_blob_add ( resource blob_handle, string data)

ibase_blob_add() adds data into a blob created with ibase_blob_create(). Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

See also
ibase_blob_cancel(),
ibase_blob_close(),
ibase_blob_create() and
ibase_blob_import().

Anterior | Inicio | Siguiente
ibase_affected_rows | Subir | ibase_blob_cancel


ibase_blob_cancel

(PHP 3>= 3.0.7, PHP 4 )

ibase_blob_cancel -- Cancel creating blob

Description

bool ibase_blob_cancel ( resource blob_handle)

This function will discard a BLOB created by ibase_create_blob() if it has not yet been closed by ibase_blob_close(). Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

See also
ibase_blob_close(),
ibase_blob_create() and
ibase_blob_import().

Anterior | Inicio | Siguiente
ibase_blob_add | Subir | ibase_blob_close


ibase_blob_close

(PHP 3>= 3.0.7, PHP 4 )

ibase_blob_close -- Close blob

Description

mixed ibase_blob_close ( resource blob_handle)

This function closes a BLOB that has either been opened for reading by ibase_open_blob() or has been opened for writing by ibase_create_blob(). If the BLOB was being read, this function returns TRUE on success, if the BLOB was being written to, this function returns a string containing the BLOB id that has been assigned to it by the database. On failure, this function returns FALSE.

See also ibase_blob_cancel() and ibase_blob_open().

Anterior | Inicio | Siguiente
ibase_blob_cancel | Subir | ibase_blob_create


ibase_blob_create

(PHP 3>= 3.0.7, PHP 4 )

ibase_blob_create -- Create a new blob for adding data

Description

resource ibase_blob_create ( [resource link_identifier])

ibase_blob_create() creates a new BLOB for filling with data. It returns a BLOB handle for later use with ibase_blob_add() or FALSE on failure.

See also
ibase_blob_add(),
ibase_blob_cancel(),
ibase_blob_close() and
ibase_blob_import().

Anterior | Inicio | Siguiente
ibase_blob_close | Subir | ibase_blob_echo


ibase_blob_echo

(PHP 3>= 3.0.7, PHP 4 )

ibase_blob_echo -- Output blob contents to browser

Description

bool ibase_blob_echo ( string blob_id)

This function opens a BLOB for reading and sends its contents directly to standard output (the browser, in most cases). Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

See also
ibase_blob_open(),
ibase_blob_close() and
ibase_blob_get().

Anterior | Inicio | Siguiente
ibase_blob_create | Subir | ibase_blob_get


ibase_blob_get

(PHP 3>= 3.0.7, PHP 4 )

ibase_blob_get -- Get len bytes data from open blob

Description

string ibase_blob_get ( resource blob_handle, int len)

This function returns at most len bytes from a BLOB that has been opened for reading by ibase_blob_open(). Returns FALSE on failure.

<?php
    $sql       = "SELECT blob_value FROM table";
    $result    = ibase_query( $sql );
    $data      = ibase_fetch_object( $result );
    $blob_data = ibase_blob_info( $data->BLOB_VALUE );
    $blob_hndl = ibase_blob_open( $data->BLOB_VALUE );
    print        ibase_blob_get( $blob_hndl, $blob_data[0] );
?>

Whilst this example doesn't do much more than a 'ibase_blob_echo( $data->BLOB_VALUE )' would do, it does show you how to get information into a $variable to manipulate as you please.

Nota: It is not possible to read from a BLOB that has been opened for writing by ibase_blob_create().

See also
ibase_blob_open(),
ibase_blob_close() and
ibase_blob_echo().

Anterior | Inicio | Siguiente
ibase_blob_echo | Subir | ibase_blob_import


ibase_blob_import

(PHP 3>= 3.0.7, PHP 4 )

ibase_blob_import -- Create blob, copy file in it, and close it

Description

string ibase_blob_import ( [resource link_identifier, resource file_handle])

This function creates a BLOB, reads an entire file into it, closes it and returns the assigned BLOB id. The file handle is a handle returned by fopen(). Returns FALSE on failure.

See also
ibase_blob_add(),
ibase_blob_cancel(),
ibase_blob_close() and
ibase_blob_create().

Anterior | Inicio | Siguiente
ibase_blob_get | Subir | ibase_blob_info


ibase_blob_info

(PHP 3>= 3.0.7, PHP 4 )

ibase_blob_info -- Return blob length and other useful info

Description

array ibase_blob_info ( string blob_id)

Returns an array containing information about a BLOB. The information returned consists of the length of the BLOB, the number of segments it contains, the size of the largest segment, and whether it is a stream BLOB or a segmented BLOB.

Anterior | Inicio | Siguiente
ibase_blob_import | Subir | ibase_blob_open


ibase_blob_open

(PHP 3>= 3.0.7, PHP 4 )

ibase_blob_open -- Open blob for retrieving data parts

Description

resource ibase_blob_open ( string blob_id)

ibase_blob_open() opens an existing BLOB for reading. It returns a BLOB handle for later use with ibase_blob_get() or FALSE on failure.

See also
ibase_blob_close(),
ibase_blob_echo() and
ibase_blob_get().

Anterior | Inicio | Siguiente
ibase_blob_info | Subir | ibase_close


ibase_close

(PHP 3>= 3.0.6, PHP 4 )

ibase_close --

Descripcion

ibase_close ( )

Anterior | Inicio | Siguiente
ibase_blob_open | Subir | ibase_commit_ret


ibase_commit_ret

(no version information, might be only in CVS)

ibase_commit_ret -- Commit a transaction without closing it

Description

bool ibase_commit_ret ( [resource link_identifier])

If called without an argument, this function commits the default transaction of the default link. If the argument is a connection identifier, the default transaction of the corresponding connection will be committed. If the argument is a transaction identifier, the corresponding transaction will be committed. The transaction context will be retained, so statements executed from within this transaction will not be invalidated. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Anterior | Inicio | Siguiente
ibase_close | Subir | ibase_commit


ibase_commit

(PHP 3>= 3.0.7, PHP 4 )

ibase_commit -- Commit a transaction

Description

bool ibase_commit ( [resource link_identifier])

If called without an argument, this function commits the default transaction of the default link. If the argument is a connection identifier, the default transaction of the corresponding connection will be committed. If the argument is a transaction identifier, the corresponding transaction will be committed. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Anterior | Inicio | Siguiente
ibase_commit_ret | Subir | ibase_connect


ibase_connect

(PHP 3>= 3.0.6, PHP 4 )

ibase_connect --

Descripcion

ibase_connect ( )

Anterior | Inicio | Siguiente
ibase_commit | Subir | ibase_delete_user


ibase_delete_user

(PHP 4 >= 4.2.0)

ibase_delete_user -- Delete a user from a security database (only for IB6 or later)

Description

bool ibase_delete_user ( string server, string dba_user_name, string dba_user_password, string user_name)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

See also ibase_add_user() and ibase_modify_user().

Anterior | Inicio | Siguiente
ibase_connect | Subir | ibase_drop_db


ibase_drop_db

(no version information, might be only in CVS)

ibase_drop_db -- Drops a database

Description

bool ibase_drop_db ( resource connection)

This functions drops a database that was opened by either ibase_connect() or ibase_pconnect(). The database is closed and deleted from the server. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

See also ibase_connect() and ibase_pconnect().

Anterior | Inicio | Siguiente
ibase_delete_user | Subir | ibase_errcode


ibase_errcode

(no version information, might be only in CVS)

ibase_errcode -- Return an error code

Description

int ibase_errcode ( void )

Returns the error code that resulted from the most recent InterBase function call. Returns FALSE if no error occurred.

See also ibase_errmsg().

Anterior | Inicio | Siguiente
ibase_drop_db | Subir | ibase_errmsg


ibase_errmsg

(PHP 3>= 3.0.7, PHP 4 )

ibase_errmsg -- Return error messages

Description

string ibase_errmsg ( void )

Returns the error message that resulted from the most recent InterBase function call. Returns FALSE if no error occurred.

See also ibase_errcode().

Anterior | Inicio | Siguiente
ibase_errcode | Subir | ibase_execute


ibase_execute

(PHP 3>= 3.0.6, PHP 4 )

ibase_execute --

Descripcion

ibase_execute ( )

Anterior | Inicio | Siguiente
ibase_errmsg | Subir | ibase_fetch_assoc


ibase_fetch_assoc

(PHP 4 >= 4.3.0)

ibase_fetch_assoc -- Fetch a result row from a query as an associative array

Description

array ibase_fetch_assoc ( resource result [, int fetch_flag])

ibase_fetch_assoc() returns an associative array that corresponds to the fetched row. Subsequent calls will return the next row in the result set, or FALSE if there are no more rows.

ibase_fetch_assoc() fetches one row of data from the result. If two or more columns of the result have the same field names, the last column will take precedence. To access the other column(s) of the same name, you either need to access the result with numeric indices by using ibase_fetch_row() or use alias names in your query.

fetch_flag is a combination of the constants IBASE_TEXT and IBASE_UNIXTIME ORed together. Passing IBASE_TEXT will cause this function to return BLOB contents instead of BLOB ids. Passing IBASE_UNIXTIME will cause this function to return date/time values as UNIX timestamps instead of as formatted strings.

See also ibase_fetch_row() and ibase_fetch_object().

Anterior | Inicio | Siguiente
ibase_execute | Subir | ibase_fetch_object


ibase_fetch_object

(PHP 3>= 3.0.7, PHP 4 )

ibase_fetch_object -- Get an object from a InterBase database

Description

object ibase_fetch_object ( resource result_id [, int fetch_flag])

Fetches a row as a pseudo-object from a result_id obtained either by ibase_query() or ibase_execute().

<?php
    $dbh = ibase_connect ($host, $username, $password);
    $stmt = 'SELECT * FROM tblname';
    $sth = ibase_query ($dbh, $stmt);
    while ($row = ibase_fetch_object ($sth)) {
        print $row->email . "\n";
    }
    ibase_close ($dbh);
?>

Subsequent calls to ibase_fetch_object() return the next row in the result set, or FALSE if there are no more rows.

fetch_flag is a combination of the constants IBASE_TEXT and IBASE_UNIXTIME ORed together. Passing IBASE_TEXT will cause this function to return BLOB contents instead of BLOB ids. Passing IBASE_UNIXTIME will cause this function to return date/time values as UNIX timestamps instead of as formatted strings.

See also ibase_fetch_row() and ibase_fetch_assoc().

Anterior | Inicio | Siguiente
ibase_fetch_assoc | Subir | ibase_fetch_row


ibase_fetch_row

(PHP 3>= 3.0.6, PHP 4 )

ibase_fetch_row --

Descripcion

ibase_fetch_row ( )

Anterior | Inicio | Siguiente
ibase_fetch_object | Subir | ibase_field_info


ibase_field_info

(PHP 3>= 3.0.7, PHP 4 )

ibase_field_info -- Get information about a field

Description

array ibase_field_info ( resource result, int field_number)

Returns an array with information about a field after a select query has been run. The array is in the form of name, alias, relation, length, type.

<?php
    $rs = ibase_query("SELECT * FROM tablename");
    $coln = ibase_num_fields($rs);
    for ($i = 0; $i < $coln; $i++) {
        $col_info = ibase_field_info($rs, $i);
        echo "name: ". $col_info['name']. "\n";
        echo "alias: ". $col_info['alias']. "\n";
        echo "relation: ". $col_info['relation']. "\n";
        echo "length: ". $col_info['length']. "\n";
        echo "type: ". $col_info['type']. "\n";
    }
?>

See also: ibase_num_fields().

Anterior | Inicio | Siguiente
ibase_fetch_row | Subir | ibase_free_event_handler


ibase_free_event_handler

(no version information, might be only in CVS)

ibase_free_event_handler -- Cancels a registered event handler

Description

bool ibase_free_event_handler ( resource event)

This function causes the registered event handler specified by event to be cancelled. The callback function will no longer be called for the events it was registered to handle. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

See also ibase_set_event_handler().

Anterior | Inicio | Siguiente
ibase_field_info | Subir | ibase_free_query


ibase_free_query

(PHP 3>= 3.0.6, PHP 4 )

ibase_free_query --

Descripcion

ibase_free_query ( )

Anterior | Inicio | Siguiente
ibase_free_event_handler | Subir | ibase_free_result


ibase_free_result

(PHP 3>= 3.0.6, PHP 4 )

ibase_free_result --

Descripcion

ibase_free_result ( )

Anterior | Inicio | Siguiente
ibase_free_query | Subir | ibase_gen_id


ibase_gen_id

(no version information, might be only in CVS)

ibase_gen_id -- Increments the named generator and returns its new value

Description

int ibase_gen_id ( [resource link_identifier [, string generator [, int increment]]])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ibase_free_result | Subir | ibase_modify_user


ibase_modify_user

(PHP 4 >= 4.2.0)

ibase_modify_user -- Modify a user to a security database (only for IB6 or later)

Description

bool ibase_modify_user ( string server, string dba_user_name, string dba_user_password, string user_name, string password [, string first_name [, string middle_name [, string last_name]]])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

See also ibase_add_user() and ibase_delete_user().

Anterior | Inicio | Siguiente
ibase_gen_id | Subir | ibase_name_result


ibase_name_result

(no version information, might be only in CVS)

ibase_name_result -- Assigns a name to a result set

Description

bool ibase_name_result ( resource result, string name)

This function assigns a name to a result set. This name can be used later in UPDATE|DELETE ... WHERE CURRENT OF name statements. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

<?php
    $result = ibase_query( "SELECT field1,field2 FROM table FOR UPDATE" );
    ibase_name_result($result,"my_cursor");

    $updateqry = ibase_prepare("UPDATE table SET field2 = ? WHERE CURRENT OF my_cursor");

    for ($i = 0; ibase_fetch_row($result); ++$i) {
        ibase_execute($updateqry,$i);
    }
?>

See also ibase_prepare() and ibase_execute().

Anterior | Inicio | Siguiente
ibase_modify_user | Subir | ibase_num_fields


ibase_num_fields

(PHP 3>= 3.0.7, PHP 4 )

ibase_num_fields -- Get the number of fields in a result set

Description

int ibase_num_fields ( resource result_id)

Returns an integer containing the number of fields in a result set.

<?php
    $rs = ibase_query("SELECT * FROM tablename");
    $coln = ibase_num_fields($rs);
    for ($i = 0; $i < $coln; $i++) {
        $col_info = ibase_field_info($rs, $i);
        echo "name: ".$col_info['name']."\n";
        echo "alias: ".$col_info['alias']."\n";
        echo "relation: ".$col_info['relation']."\n";
        echo "length: ".$col_info['length']."\n";
        echo "type: ".$col_info['type']."\n";
    }
?>

See also: ibase_field_info().

Anterior | Inicio | Siguiente
ibase_name_result | Subir | ibase_num_params


ibase_num_params

(no version information, might be only in CVS)

ibase_num_params -- Return the number of parameters in a prepared query

Description

int ibase_num_params ( resource query)

This function returns the number of parameters in the prepared query specified by query. This is the number of binding arguments that must be present when calling ibase_execute().

See also ibase_prepare() and ibase_param_info().

Anterior | Inicio | Siguiente
ibase_num_fields | Subir | ibase_param_info


ibase_param_info

(no version information, might be only in CVS)

ibase_param_info -- Return information about a parameter in a prepared query

Description

array ibase_param_info ( resource query, int param_number)

Returns an array with information about a parameter after a query has been prepared. The array is in the form of name, alias, relation, length, type.

See also ibase_field_info() and ibase_num_params().

Anterior | Inicio | Siguiente
ibase_num_params | Subir | ibase_pconnect


ibase_pconnect

(PHP 3>= 3.0.6, PHP 4 )

ibase_pconnect --

Descripcion

ibase_pconnect ( )

Anterior | Inicio | Siguiente
ibase_param_info | Subir | ibase_prepare


ibase_prepare

(PHP 3>= 3.0.6, PHP 4 )

ibase_prepare --

Descripcion

ibase_prepare ( )

Anterior | Inicio | Siguiente
ibase_pconnect | Subir | ibase_query


ibase_query

(PHP 3>= 3.0.6, PHP 4 )

ibase_query --

Descripcion

ibase_query ( )

Anterior | Inicio | Siguiente
ibase_prepare | Subir | ibase_rollback_ret


ibase_rollback_ret

(no version information, might be only in CVS)

ibase_rollback_ret -- Roll back a transaction without closing it

Description

bool ibase_rollback_ret ( [resource link_identifier])

If called without an argument, this function rolls back the default transaction of the default link. If the argument is a connection identifier, the default transaction of the corresponding connection will be rolled back. If the argument is a transaction identifier, the corresponding transaction will be rolled back. The transaction context will be retained, so statements executed from within this transaction will not be invalidated. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Anterior | Inicio | Siguiente
ibase_query | Subir | ibase_rollback


ibase_rollback

(PHP 3>= 3.0.7, PHP 4 )

ibase_rollback -- Roll back a transaction

Description

bool ibase_rollback ( [resource link_identifier])

If called without an argument, this function rolls back the default transaction of the default link. If the argument is a connection identifier, the default transaction of the corresponding connection will be rolled back. If the argument is a transaction identifier, the corresponding transaction will be rolled back. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Anterior | Inicio | Siguiente
ibase_rollback_ret | Subir | ibase_set_event_handler


ibase_set_event_handler

(no version information, might be only in CVS)

ibase_set_event_handler -- Register a callback function to be called when events are posted

Description

resource ibase_set_event_handler ( [resource connection, callback event_handler, string event_name1 [, string event_name2 [, string ...]]])

This function registers a PHP user function as event handler for the specified events. The callback is called with the event name and the link resource as arguments whenever one of the specified events is posted by the database. The callback must return FALSE if the event handler should be canceled. Any other return value is ignored.

<?php

    function event_handler($event_name, $link)
    {
        if ($event_name=="NEW ORDER") {
            // process new order
            ibase_query($link, "UPDATE orders SET status='handled'");
        } else if ($event_name=="DB_SHUTDOWN") {
            // free event handler
            return false;
        }
    }

    ibase_set_event_handler($link,"event_handler","NEW_ORDER","DB_SHUTDOWN");
?>

The return value is an event resource. This resource can be used to free the event handler using ibase_free_event_handler().

See also ibase_free_event_handler() and ibase_wait_event().

Anterior | Inicio | Siguiente
ibase_rollback | Subir | ibase_timefmt


ibase_timefmt

(PHP 3>= 3.0.6, PHP 4 )

ibase_timefmt --

Descripcion

ibase_timefmt ( )

Anterior | Inicio | Siguiente
ibase_set_event_handler | Subir | ibase_trans


ibase_trans

(PHP 3>= 3.0.7, PHP 4 )

ibase_trans -- Begin a transaction

Description

resource ibase_trans ( [int trans_args [, resource link_identifier]])

Begins a transaction.

trans_args can be a combination of IBASE_READ, IBASE_WRITE, IBASE_COMMITED, IBASE_CONSISTENCY, IBASE_CONCURRENCY, IBASE_REC_VERSION, IBASE_REC_NO_VERSION, IBASE_WAIT and IBASE_NOWAIT.

Nota: The behaviour of this function has been changed in PHP 5.0.0. The first call to ibase_trans() will not return the default transaction of a connection. All transactions started by ibase_trans() will be rolled back at the end of the script if they were not committed or rolled back by either ibase_commit() or ibase_rollback().

Nota: In PHP 5.0.0. and up, this function will accept multiple trans_args and link_identifier arguments. This allows transactions over multiple database connections, which are committed using a 2-phase commit algorithm. This means you can rely on the updates to either succeed in every database, or fail in every database. It does NOT mean you can use tables from different databases in the same query!

If you use transactions over multiple databases, you will have to specify both the link_id and transaction_id in calls to ibase_query() and ibase_prepare().

Anterior | Inicio | Siguiente
ibase_timefmt | Subir | ibase_wait_event


ibase_wait_event

(no version information, might be only in CVS)

ibase_wait_event -- Wait for an event to be posted by the database

Description

string ibase_wait_event ( [resource connection, string event_name1 [, string event_name2 [, string ...]]])

This function suspends execution of the script until one of the specified events is posted by the database. The name of the event that was posted is returned. This function accepts up to 15 event arguments.

See also ibase_set_event_handler() and ibase_free_event_handler().

Anterior | Inicio | Siguiente
ibase_trans | Subir | Ingres II functions


Ingres II functions

Manual de PHP
Anterior Siguiente

XLV. Ingres II functions

Aviso

Esta extensión es EXPERIMENTAL. Esto significa que el comportamiento de esta extensión, los nombre de sus funciones y en definitiva TODO lo documentado sobre esta extensión, puede cambiar en una futura versión de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

These functions allow you to access Ingres II database servers.

In order to have these functions available, you must compile php with Ingres support by using the --with-ingres option. You need the Open API library and header files included with Ingres II. If the II_SYSTEM environment variable isn't correctly set you may have to use --with-ingres=DIR to specify your Ingres installation directory.

When using this extension with Apache, if Apache does not start and complains with "PHP Fatal error: Unable to start ingres_ii module in Unknown on line 0" then make sure the environement variable II_SYSTEM is correctly set. Adding "export II_SYSTEM="/home/ingres/II" in the script that starts Apache, just before launching httpd, should be fine.

Nota: If you already used PHP extensions to access other database servers, note that Ingres doesn't allow concurrent queries and/or transaction over one connection, thus you won't find any result or transaction handle in this extension. The result of a query must be treated before sending another query, and a transaction must be commited or rolled back before opening another transaction (which is automaticaly done when sending the first query).

Tabla de contenidos
ingres_autocommit -- Switch autocommit on or off.
ingres_close -- Close an Ingres II database connection
ingres_commit -- Commit a transaction.
ingres_connect -- Open a connection to an Ingres II database.
ingres_fetch_array -- Fetch a row of result into an array.
ingres_fetch_object -- Fetch a row of result into an object.
ingres_fetch_row -- Fetch a row of result into an enumerated array.
ingres_field_length -- Get the length of a field.
ingres_field_name -- Get the name of a field in a query result.
ingres_field_nullable -- Test if a field is nullable.
ingres_field_precision -- Get the precision of a field.
ingres_field_scale -- Get the scale of a field.
ingres_field_type -- Get the type of a field in a query result.
ingres_num_fields -- Get the number of fields returned by the last query
ingres_num_rows -- Get the number of rows affected or returned by the last query
ingres_pconnect -- Open a persistent connection to an Ingres II database.
ingres_query -- Send a SQL query to Ingres II
ingres_rollback -- Roll back a transaction.

Anterior | Inicio | Siguiente
ibase_wait_event | Subir | ingres_autocommit


ingres_autocommit

(PHP 4 >= 4.0.2)

ingres_autocommit -- Switch autocommit on or off.

Description

bool ingres_autocommit ( [resource link])

ingres_autocommit() is called before opening a transaction (before the first call to ingres_query() or just after a call to ingres_rollback() or ingres_autocommit()) to switch the "autocommit" mode of the server on or off (when the script begins the autocommit mode is off).

When the autocommit mode is on, every query is automaticaly commited by the server, as if ingres_commit() was called after every call to ingres_query().

See also
ingres_query(),
ingres_rollback() and
ingres_commit().

Anterior | Inicio | Siguiente
Ingres II functions | Subir | ingres_close


ingres_close

(PHP 4 >= 4.0.2)

ingres_close -- Close an Ingres II database connection

Description

bool ingres_close ( [resource link])

Returns TRUE on success, or FALSE on failure.

ingres_close() closes the connection to the Ingres server that's associated with the specified link. If the link parameter isn't specified, the last opened link is used.

ingres_close() isn't usually necessary, as it won't close persistent connections and all non-persistent connections are automatically closed at the end of the script.

See also ingres_connect(), and ingres_pconnect().

Anterior | Inicio | Siguiente
ingres_autocommit | Subir | ingres_commit


ingres_commit

(PHP 4 >= 4.0.2)

ingres_commit -- Commit a transaction.

Description

bool ingres_commit ( [resource link])

ingres_commit() commits the currently open transaction, making all changes made to the database permanent.

This closes the transaction. A new one can be open by sending a query with ingres_query().

You can also have the server commit automaticaly after every query by calling ingres_autocommit() before opening the transaction.

See also
ingres_query(),
ingres_rollback() and
ingres_autocommit().

Anterior | Inicio | Siguiente
ingres_close | Subir | ingres_connect


ingres_connect

(PHP 4 >= 4.0.2)

ingres_connect -- Open a connection to an Ingres II database.

Description

resource ingres_connect ( [string database [, string username [, string password]]])

Returns a Ingres II link resource on success, or FALSE on failure.

ingres_connect() opens a connection with the Ingres database designated by database, which follows the syntax [node_id::]dbname[/svr_class].

If some parameters are missing, ingres_connect() uses the values in php.ini for ingres.default_database, ingres.default_user and ingres.default_password.

The connection is closed when the script ends or when ingres_close() is called on this link.

All the other ingres functions use the last opened link as a default, so you need to store the returned value only if you use more than one link at a time.

Ejemplo 1. ingres_connect() example

<?php
    $link = ingres_connect ("mydb", "user", "pass")
        or die ("Could not connect");
    print ("Connected successfully");
    ingres_close ($link);
?>

Ejemplo 2. ingres_connect() example using default link

<?php
    ingres_connect ("mydb", "user", "pass")
        or die ("Could not connect");
    print ("Connected successfully");
    ingres_close ();
?>

See also ingres_pconnect(), and ingres_close().

Anterior | Inicio | Siguiente
ingres_commit | Subir | ingres_fetch_array


ingres_fetch_array

(PHP 4 >= 4.0.2)

ingres_fetch_array -- Fetch a row of result into an array.

Description

array ingres_fetch_array ( [int result_type [, resource link]])

ingres_fetch_array() Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

This function is an extended version of ingres_fetch_row(). In addition to storing the data in the numeric indices of the result array, it also stores the data in associative indices, using the field names as keys.

If two or more columns of the result have the same field names, the last column will take precedence. To access the other column(s) of the same name, you must use the numeric index of the column or make an alias for the column.

ingres_query(select t1.f1 as foo t2.f1 as bar from t1, t2);
$result = ingres_fetch_array();
$foo = $result["foo"];
$bar = $result["bar"];

result_type can be II_NUM for enumerated array, II_ASSOC for associative array, or II_BOTH (default).

Speed-wise, the function is identical to ingres_fetch_object(), and almost as quick as ingres_fetch_row() (the difference is insignificant).

Ejemplo 1. ingres_fetch_array() example

<?php
ingres_connect ($database, $user, $password);

ingres_query ("select * from table");
while ($row = ingres_fetch_array()) {
    echo $row["user_id"];  # using associative array
    echo $row["fullname"];
    echo $row[1];          # using enumerated array
    echo $row[2];
}
?>

See also
ingres_query(),
ingres_num_fields(),
ingres_field_name(),
ingres_fetch_object() and
ingres_fetch_row().

Anterior | Inicio | Siguiente
ingres_connect | Subir | ingres_fetch_object


ingres_fetch_object

(PHP 4 >= 4.0.2)

ingres_fetch_object -- Fetch a row of result into an object.

Description

object ingres_fetch_object ( [int result_type [, resource link]])

ingres_fetch_object() Returns an object that corresponds to the fetched row, or FALSE if there are no more rows.

This function is similar to ingres_fetch_array(), with one difference - an object is returned, instead of an array. Indirectly, that means that you can only access the data by the field names, and not by their offsets (numbers are illegal property names).

The optional argument result_type is a constant and can take the following values: II_ASSOC, II_NUM, and II_BOTH.

Speed-wise, the function is identical to ingres_fetch_array(), and almost as quick as ingres_fetch_row() (the difference is insignificant).

Ejemplo 1. ingres_fetch_object() example

<?php
ingres_connect ($database, $user, $password);
ingres_query ("select * from table");
while ($row = ingres_fetch_object()) {
    echo $row->user_id;
    echo $row->fullname;
}
?>

See also
ingres_query(),
ingres_num_fields(),
ingres_field_name(),
ingres_fetch_array() and
ingres_fetch_row().

Anterior | Inicio | Siguiente
ingres_fetch_array | Subir | ingres_fetch_row


ingres_fetch_row

(PHP 4 >= 4.0.2)

ingres_fetch_row -- Fetch a row of result into an enumerated array.

Description

array ingres_fetch_row ( [resource link])

ingres_fetch_row() returns an array that corresponds to the fetched row, or FALSE if there are no more rows. Each result column is stored in an array offset, starting at offset 1.

Subsequent call to ingres_fetch_row() would return the next row in the result set, or FALSE if there are no more rows.

Ejemplo 1. ingres_fetch_row() example

<?php
ingres_connect ($database, $user, $password);

ingres_query ("select * from table");
while ($row = ingres_fetch_row()) {
    echo $row[1];
    echo $row[2];
}
?>

See also
ingres_num_fields(),
ingres_query(),
ingres_fetch_array() and
ingres_fetch_object().

Anterior | Inicio | Siguiente
ingres_fetch_object | Subir | ingres_field_length


ingres_field_length

(PHP 4 >= 4.0.2)

ingres_field_length -- Get the length of a field.

Description

int ingres_field_length ( int index [, resource link])

ingres_field_length() returns the length of a field. This is the number of bytes used by the server to store the field. For detailed information, see the Ingres/OpenAPI User Guide - Appendix C.

index is the number of the field and must be between 1 and the value given by ingres_num_fields().

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object() and
ingres_fetch_row().

Anterior | Inicio | Siguiente
ingres_fetch_row | Subir | ingres_field_name


ingres_field_name

(PHP 4 >= 4.0.2)

ingres_field_name -- Get the name of a field in a query result.

Description

string ingres_field_name ( int index [, resource link])

ingres_field_name() returns the name of a field in a query result, or FALSE on failure.

index is the number of the field and must be between 1 and the value given by ingres_num_fields().

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object() and
ingres_fetch_row().

Anterior | Inicio | Siguiente
ingres_field_length | Subir | ingres_field_nullable


ingres_field_nullable

(PHP 4 >= 4.0.2)

ingres_field_nullable -- Test if a field is nullable.

Description

bool ingres_field_nullable ( int index [, resource link])

ingres_field_nullable() returns TRUE if the field can be set to the NULL value and FALSE if it can't.

index is the number of the field and must be between 1 and the value given by ingres_num_fields().

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object() and
ingres_fetch_row().

Anterior | Inicio | Siguiente
ingres_field_name | Subir | ingres_field_precision


ingres_field_precision

(PHP 4 >= 4.0.2)

ingres_field_precision -- Get the precision of a field.

Description

int ingres_field_precision ( int index [, resource link])

ingres_field_precision() returns the precision of a field. This value is used only for decimal, float and money SQL data types. For detailed information, see the Ingres/OpenAPI User Guide - Appendix C.

index is the number of the field and must be between 1 and the value given by ingres_num_fields().

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object() and
ingres_fetch_row().

Anterior | Inicio | Siguiente
ingres_field_nullable | Subir | ingres_field_scale


ingres_field_scale

(PHP 4 >= 4.0.2)

ingres_field_scale -- Get the scale of a field.

Description

int ingres_field_scale ( int index [, resource link])

ingres_field_scale() returns the scale of a field. This value is used only for the decimal SQL data type. For detailed information, see the Ingres/OpenAPI User Guide - Appendix C.

index is the number of the field and must be between 1 and the value given by ingres_num_fields().

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object() and
ingres_fetch_row().

Anterior | Inicio | Siguiente
ingres_field_precision | Subir | ingres_field_type


ingres_field_type

(PHP 4 >= 4.0.2)

ingres_field_type -- Get the type of a field in a query result.

Description

string ingres_field_type ( int index [, resource link])

ingres_field_type() returns the type of a field in a query result, or FALSE on failure. Examples of types returned are "IIAPI_BYTE_TYPE", "IIAPI_CHA_TYPE", "IIAPI_DTE_TYPE", "IIAPI_FLT_TYPE", "IIAPI_INT_TYPE", "IIAPI_VCH_TYPE". Some of these types can map to more than one SQL type depending on the length of the field (see ingres_field_length()). For example "IIAPI_FLT_TYPE" can be a float4 or a float8. For detailed information, see the Ingres/OpenAPI User Guide - Appendix C.

index is the number of the field and must be between 1 and the value given by ingres_num_fields().

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object() and
ingres_fetch_row().

Anterior | Inicio | Siguiente
ingres_field_scale | Subir | ingres_num_fields


ingres_num_fields

(PHP 4 >= 4.0.2)

ingres_num_fields -- Get the number of fields returned by the last query

Description

int ingres_num_fields ( [resource link])

ingres_num_fields() returns the number of fields in the results returned by the Ingres server after a call to ingres_query()

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object() and
ingres_fetch_row().

Anterior | Inicio | Siguiente
ingres_field_type | Subir | ingres_num_rows


ingres_num_rows

(PHP 4 >= 4.0.2)

ingres_num_rows -- Get the number of rows affected or returned by the last query

Description

int ingres_num_rows ( [resource link])

For delete, insert or update queries, ingres_num_rows() returns the number of rows affected by the query. For other queries, ingres_num_rows() returns the number of rows in the query's result.

Nota: This function is mainly meant to get the number of rows modified in the database. If this function is called before using ingres_fetch_array(), ingres_fetch_object() or ingres_fetch_row() the server will delete the result's data and the script won't be able to get them.

You should instead retrieve the result's data using one of these fetch functions in a loop until it returns FALSE, indicating that no more results are available.

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object() and
ingres_fetch_row().

Anterior | Inicio | Siguiente
ingres_num_fields | Subir | ingres_pconnect


ingres_pconnect

(PHP 4 >= 4.0.2)

ingres_pconnect -- Open a persistent connection to an Ingres II database.

Description

resource ingres_pconnect ( [string database [, string username [, string password]]])

Returns a Ingres II link resource on success, or FALSE on failure.

See ingres_connect() for parameters details and examples. There are only 2 differences between ingres_pconnect() and ingres_connect() : First, when connecting, the function will first try to find a (persistent) link that's already opened with the same parameters. If one is found, an identifier for it will be returned instead of opening a new connection. Second, the connection to the Ingres server will not be closed when the execution of the script ends. Instead, the link will remain open for future use (ingres_close() will not close links established by ingres_pconnect()). This type of link is therefore called 'persistent'.

See also ingres_connect(), and ingres_close().

Anterior | Inicio | Siguiente
ingres_num_rows | Subir | ingres_query


ingres_query

(PHP 4 >= 4.0.2)

ingres_query -- Send a SQL query to Ingres II

Description

bool ingres_query ( string query [, resource link])

Returns TRUE on success, or FALSE on failure.

ingres_query() sends the given query to the Ingres server. This query must be a valid SQL query (see the Ingres SQL reference guide)

The query becomes part of the currently open transaction. If there is no open transaction, ingres_query() opens a new transaction. To close the transaction, you can either call ingres_commit() to commit the changes made to the database or ingres_rollback() to cancel these changes. When the script ends, any open transaction is rolled back (by calling ingres_rollback()). You can also use ingres_autocommit() before opening a new transaction to have every SQL query immediatly commited.

Some types of SQL queries can't be sent with this function :

  • close (see ingres_close()).

  • commit (see ingres_commit()).

  • connect (see ingres_connect()).

  • disconnect (see ingres_close()).

  • get dbevent

  • prepare to commit

  • rollback (see ingres_rollback()).

  • savepoint

  • set autocommit (see ingres_autocommit()).

  • all cursor related queries are unsupported

Ejemplo 1. ingres_query() example

<?php
ingres_connect ($database, $user, $password);

ingres_query ("select * from table");
while ($row = ingres_fetch_row()) {
    echo $row[1];
    echo $row[2];
}
?>

See also
ingres_fetch_array(),
ingres_fetch_object(),
ingres_fetch_row(),
ingres_commit(),
ingres_rollback() and
ingres_autocommit().

Anterior | Inicio | Siguiente
ingres_pconnect | Subir | ingres_rollback


ingres_rollback

(PHP 4 >= 4.0.2)

ingres_rollback -- Roll back a transaction.

Description

bool ingres_rollback ( [resource link])

ingres_rollback() rolls back the currently open transaction, actualy canceling all changes made to the database during the transaction.

This closes the transaction. A new one can be open by sending a query with ingres_query().

See also
ingres_query(),
ingres_commit() and
ingres_autocommit().

Anterior | Inicio | Siguiente
ingres_query | Subir | IRC Gateway Functions


IRC Gateway Functions

Manual de PHP
Anterior Siguiente

XLVI. IRC Gateway Functions

Introducción

With IRCG you can rapidly stream XML data to thousands of concurrently connected users. This can be used to build powerful, extensible interactive platforms such as online games and webchats. IRCG also features support for a non-streaming mode where a helper application reformats incoming data and supplies static file snippets in special formats such as cHTML (i-mode) or WML (WAP). These static files are then delivered by the high-performance web server.

Up to v3, IRCG runs under these platforms:

  • AIX

  • FreeBSD

  • HP-UX

  • Irix

  • Linux

  • Solaris

  • Tru64

Instalación

Detailed installation instructions can be found here. We urge you to use the provided installation script.

It is not recommended, but you can try enable IRCG support yourself. Provide the path to the ircg-config script, --with-ircg-config=path/to/irc-config and in addition add --with-ircg to your configure line.

Configuración en tiempo de ejecución

Esta extensión no tiene directivas de configuración en php.ini.

Tipos de recursos

Constantes predefinidas

Esta extensión no tiene ninguna constante definida.

Tabla de contenidos
ircg_channel_mode -- Set channel mode flags for user
ircg_disconnect -- Close connection to server
ircg_fetch_error_msg -- Returns the error from previous IRCG operation
ircg_get_username -- Get username for connection
ircg_html_encode -- Encodes HTML preserving output
ircg_ignore_add -- Add a user to your ignore list on a server
ircg_ignore_del -- Remove a user from your ignore list on a server
ircg_is_conn_alive -- Check connection status
ircg_join -- Join a channel on a connected server
ircg_kick -- Kick a user out of a channel on server
ircg_lookup_format_messages -- Check for the existence of a format message set
ircg_msg -- Send message to channel or user on server
ircg_nick -- Change nickname on server
ircg_nickname_escape -- Encode special characters in nickname to be IRC-compliant
ircg_nickname_unescape -- Decodes encoded nickname
ircg_notice -- Send a notice to a user on server
ircg_part -- Leave a channel on server
ircg_pconnect -- Connect to an IRC server
ircg_register_format_messages -- Register a format message set
ircg_set_current -- Set current connection for output
ircg_set_file -- Set logfile for connection
ircg_set_on_die -- Set action to be executed when connection dies
ircg_topic -- Set topic for channel on server
ircg_whois -- Query server for user information

Anterior | Inicio | Siguiente
ingres_rollback | Subir | ircg_channel_mode


ircg_channel_mode

(PHP 4 >= 4.0.5)

ircg_channel_mode -- Set channel mode flags for user

Description

bool ircg_channel_mode ( resource connection, string channel, string mode_spec, string nick)

Set channel mode flags for channel on server connected to by connection. Mode flags are passed in mode_spec and are applied to the user specified by nick.

Mode flags are set or cleared by specifying a mode character and prepending it with a plus or minus character, respectively. E.g. operator mode is granted by '+o' and revoked by '-o', as passed as mode_spec.

Anterior | Inicio | Siguiente
IRC Gateway Functions | Subir | ircg_disconnect


ircg_disconnect

(PHP 4 >= 4.0.4)

ircg_disconnect -- Close connection to server

Description

bool ircg_disconnect ( resource connection, string reason)

ircg_disconnect() will close a connection to a server previously established with ircg_pconnect().

See also: ircg_pconnect().

Anterior | Inicio | Siguiente
ircg_channel_mode | Subir | ircg_fetch_error_msg


ircg_fetch_error_msg

(PHP 4 >= 4.1.0)

ircg_fetch_error_msg -- Returns the error from previous IRCG operation

Description

array ircg_fetch_error_msg ( resource connection)

ircg_fetch_error_msg() returns the error from a failed connection.

Nota: Error code is stored in first array element, error text in second. The error code is equivalent to IRC reply codes as defined by RFC 2812.

Ejemplo 1. ircg_fetch_error_msg() example

<?php
if (!ircg_join ($id, "#php")) {
    $error = ircg_fetch_error_msg($id);
    print ("Can't join channel #php. Error code:
            $error[0] Description: $error[1]");
}
?>

Anterior | Inicio | Siguiente
ircg_disconnect | Subir | ircg_get_username


ircg_get_username

(PHP 4 >= 4.1.0)

ircg_get_username -- Get username for connection

Description

string ircg_get_username ( resource connection)

Function ircg_get_username() returns the username for the specified connection connection. Returns FALSE if connection died or is not valid.

Anterior | Inicio | Siguiente
ircg_fetch_error_msg | Subir | ircg_html_encode


ircg_html_encode

(PHP 4 >= 4.0.5)

ircg_html_encode -- Encodes HTML preserving output

Description

bool ircg_html_encode ( string html_string)

Encodes a HTML string html_string for output. This exposes the interface which the IRCG extension uses internally to reformat data coming from an IRC link. The function causes IRC color/font codes to be encoded in HTML and escapes certain entities.

Anterior | Inicio | Siguiente
ircg_get_username | Subir | ircg_ignore_add


ircg_ignore_add

(PHP 4 >= 4.0.5)

ircg_ignore_add -- Add a user to your ignore list on a server

Description

bool ircg_ignore_add ( resource connection, string nick)

This function adds user nick to the ignore list of connection connection. Afterwards, IRCG will suppress all messages from this user through the associated connection.

See also: ircg_ignore_del().

Anterior | Inicio | Siguiente
ircg_html_encode | Subir | ircg_ignore_del


ircg_ignore_del

(PHP 4 >= 4.0.5)

ircg_ignore_del -- Remove a user from your ignore list on a server

Description

bool ircg_ignore_del ( resource connection, string nick)

This function removes user nick from the IRCG ignore list associated with connection.

See also: ircg_ignore_add().

Anterior | Inicio | Siguiente
ircg_ignore_add | Subir | ircg_is_conn_alive


ircg_is_conn_alive

(PHP 4 >= 4.0.5)

ircg_is_conn_alive -- Check connection status

Description

bool ircg_is_conn_alive ( resource connection)

ircg_is_conn_alive() returns TRUE if connection is still alive and working or FALSE, if the connection has died for some reason.

Anterior | Inicio | Siguiente
ircg_ignore_del | Subir | ircg_join


ircg_join

(PHP 4 >= 4.0.4)

ircg_join -- Join a channel on a connected server

Description

bool ircg_join ( resource connection, string channel [, string key])

Join the channel channel on the server connected to by connection. IRCG will optionally pass the room key key.

Anterior | Inicio | Siguiente
ircg_is_conn_alive | Subir | ircg_kick


ircg_kick

(PHP 4 >= 4.0.5)

ircg_kick -- Kick a user out of a channel on server

Description

bool ircg_kick ( resource connection, string channel, string nick, string reason)

Kick user nick from channel on server connected to by connection. reason should give a short message describing why this action was performed.

Anterior | Inicio | Siguiente
ircg_join | Subir | ircg_lookup_format_messages


ircg_lookup_format_messages

(PHP 4 >= 4.0.5)

ircg_lookup_format_messages -- Check for the existence of a format message set

Description

bool ircg_lookup_format_messages ( string name)

Check for the existence of the format message set name. Sets may be registered with ircg_register_format_messages(), a default set named ircg is always available. Returns TRUE, if the set exists and FALSE otherwise.

See also: ircg_register_format_messages()

Anterior | Inicio | Siguiente
ircg_kick | Subir | ircg_msg


ircg_msg

(PHP 4 >= 4.0.4)

ircg_msg -- Send message to channel or user on server

Description

bool ircg_msg ( resource connection, string recipient, string message [, boolean suppress])

ircg_msg() will send the message to a channel or user on the server connected to by connection. A recipient starting with # or & will send the message to a channel, anything else will be interpreted as a username.

Setting the optional parameter suppress to a TRUE value will suppress output of your message to your own connection. This so-called loopback is necessary, because the IRC server does not echo PRIVMSG commands back to us.

Anterior | Inicio | Siguiente
ircg_lookup_format_messages | Subir | ircg_nick


ircg_nick

(PHP 4 >= 4.0.5)

ircg_nick -- Change nickname on server

Description

bool ircg_nick ( resource connection, string nick)

Change your nickname on the given connection to the one given in nick, if possible.

Will return TRUE on success and FALSE on failure.

Anterior | Inicio | Siguiente
ircg_msg | Subir | ircg_nickname_escape


ircg_nickname_escape

(PHP 4 >= 4.0.6)

ircg_nickname_escape -- Encode special characters in nickname to be IRC-compliant

Description

string ircg_nickname_escape ( string nick)

Function ircg_nickname_escape() returns an encoded nickname specified by nick which is IRC-compliant.

See also: ircg_nickname_unescape()

Anterior | Inicio | Siguiente
ircg_nick | Subir | ircg_nickname_unescape


ircg_nickname_unescape

(PHP 4 >= 4.0.6)

ircg_nickname_unescape -- Decodes encoded nickname

Description

string ircg_nickname_unescape ( string nick)

Function ircg_nickname_unescape() returns a decoded nickname, which is specified in nick.

See also: ircg_nickname_escape()

Anterior | Inicio | Siguiente
ircg_nickname_escape | Subir | ircg_notice


ircg_notice

(PHP 4 >= 4.0.5)

ircg_notice -- Send a notice to a user on server

Description

bool ircg_notice ( resource connection, string , string message)

This function will send the message text to the user nick on the server connected to by connection. IRC servers and other software will not automatically generate replies to NOTICEs in contrast to other message types.

Anterior | Inicio | Siguiente
ircg_nickname_unescape | Subir | ircg_part


ircg_part

(PHP 4 >= 4.0.4)

ircg_part -- Leave a channel on server

Description

bool ircg_part ( resource connection, string channel)

Leave the channel channel on the server connected to by connection.

Anterior | Inicio | Siguiente
ircg_notice | Subir | ircg_pconnect


ircg_pconnect

(PHP 4 >= 4.0.4)

ircg_pconnect -- Connect to an IRC server

Description

resource ircg_pconnect ( string username [, string server_ip [, int server_port [, string msg_format [, array ctcp_messages [, array user_settings]]]]])

ircg_pconnect() will try to establish a connection to an IRC server and return a connection resource handle for further use.

The only mandatory parameter is username, this will set your initial nickname on the server. server_ip and server_port are optional and default to 127.0.0.1 and 6667.

Nota: For now parameter server_ip will not do any hostname lookups and will only accept IP addresses in numerical form. DNS lookups are expensive and should be done in the context of IRCG.

You can customize the output of IRC messages and events by selecting a format message set previously created with ircg_register_format_messages() by specifying the set's name in msg_format.

If you want to handle CTCP messages such as ACTION (/me), you need to define a mapping from CTCP type (e.g. ACTION) to a custom format string. Do this by passing an associative array as ctcp_messages. The keys of the array are the CTCP type and the respective value is the format message.

You can define "ident", "password", and "realname" tokens which are sent to the IRC server by setting these in an associative array. Pass that array as user_settings.

See also: ircg_disconnect(),
ircg_is_conn_alive(),
ircg_register_format_messages().

Anterior | Inicio | Siguiente
ircg_part | Subir | ircg_register_format_messages


ircg_register_format_messages

(PHP 4 >= 4.0.5)

ircg_register_format_messages -- Register a format message set

Description

bool ircg_register_format_messages ( string name, array messages)

With ircg_register_format_messages() you can customize the way your IRC output looks like or which script functions are invoked on the client side.

  • Plain channel message

  • Private message received

  • Private message sent

  • Some user leaves channel

  • Some user enters channel

  • Some user was kicked from the channel

  • Topic has been changed

  • Error

  • Fatal error

  • Join list end(?)

  • Self part(?)

  • Some user changes his nick

  • Some user quits his connection

  • Mass join begin

  • Mass join element

  • Mass join end

  • Whois user

  • Whois server

  • Whois idle

  • Whois channel

  • Whois end

  • Voice status change on user

  • Operator status change on user

  • Banlist

  • Banlist end

  • %f - from

  • %t - to

  • %c - channel

  • %r - plain message

  • %m - encoded message

  • %j - js encoded message

  • 1 - mod encode

  • 2 - nickname decode

See also: ircg_lookup_format_messages().

Anterior | Inicio | Siguiente
ircg_pconnect | Subir | ircg_set_current


ircg_set_current

(PHP 4 >= 4.0.4)

ircg_set_current -- Set current connection for output

Description

bool ircg_set_current ( resource connection)

Select the current HTTP connection for output in this execution context. Every output sent from the server connected to by connection will be copied to standard output while using default formatting or a format message set specified by ircg_register_format_messages().

See also: ircg_register_format_messages().

Anterior | Inicio | Siguiente
ircg_register_format_messages | Subir | ircg_set_file


ircg_set_file

(PHP 4 >= 4.2.0)

ircg_set_file -- Set logfile for connection

Description

bool ircg_set_file ( resource connection, string path)

Function ircg_set_file() specifies a logfile path in which all output from connection connection will be logged. Returns TRUE on success, otherwise FALSE.

Anterior | Inicio | Siguiente
ircg_set_current | Subir | ircg_set_on_die


ircg_set_on_die

(PHP 4 >= 4.2.0)

ircg_set_on_die -- Set action to be executed when connection dies

Description

bool ircg_set_on_die ( resource connection, string host, int port, string data)

In case of the termination of connection connection IRCG will connect to host at port (Note: host must be an IPv4 address, IRCG does not resolve host-names due to blocking issues), send data to the new host connection and will wait until the remote part closes connection. This can be used to trigger a PHP script for example.

This feature requires IRCG 3.

Anterior | Inicio | Siguiente
ircg_set_file | Subir | ircg_topic


ircg_topic

(PHP 4 >= 4.0.5)

ircg_topic -- Set topic for channel on server

Description

bool ircg_topic ( resource connection, string channel, string new_topic)

Change the topic for channel channel on the server connected to by connection to new_topic.

Anterior | Inicio | Siguiente
ircg_set_on_die | Subir | ircg_whois


ircg_whois

(PHP 4 >= 4.0.5)

ircg_whois -- Query server for user information

Description

bool ircg_whois ( resource connection, string nick)

Sends a query to the connected server connection to ask for information about the specified user nick.

Anterior | Inicio | Siguiente
ircg_topic | Subir | Integración de Java y PHP


Integración de Java y PHP

Manual de PHP
Anterior Siguiente

XLVII. Integración de Java y PHP

Introducción

Existen dos formas diferentes de integrar Java y PHP: en primer lugar, se puede integrar PHP dentro de un entorno de ejecución de servlets de Java, que en estos momentos es una solución mas estable y mas eficiente. La segunda opción es la de integrar Java dentro de PHP. La primera forma de integración se realiza a traves de un modulo SAPI que actua como interfaz del servidor de servlets. La segunda forma se realiza mediante esta extensión de Java.

Esta extensión de Java proporciona de forma sencilla los medios necesarios para crear e invocar métodos sobre objetos de Java desde PHP. La JVM se crea utilizando JNI y todo se ejecuta en un unico proceso.

Aviso

Esta extensión es EXPERIMENTAL. Esto significa que el comportamiento de esta extensión, los nombre de sus funciones y en definitiva TODO lo documentado sobre esta extensión, puede cambiar en una futura versión de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Requerimientos

Para utilizar esta extensión es necesario disponer de una máquina virtual java (JVM) instalada en el sistema.

Instalación

Para incluir el soporte de Java en PHP, es necesario añadir el parámetro --with-java[=DIR] a las opciones de configuración de PHP. Ademas, es necesario indicarle a traves de la opción DIR, el lugar donde se encuentra el directorio base de la instalación del JDK. Esta extensión solamente puede ser construida como un modulo compartido. En el archivo php4/ext/java/README se incluye mas información sobre como construir esta extensión.

Nota para los usuarios de Windows: Para poder trabajar con este modulo en un entorno Windows con una versión de PHP <= 4.0.6, se debe copiar el archivo jvm.dll que se encuentra en el subdirectorio DLL del directorio PHP/Win32 de la distribución binaria de PHP, en el directorio SYSTEM32 de Windows (Normalmente es C:\WINNT\SYSTEM32 o C:\WINDOWS\SYSTEM32). Para versiones de PHP > 4.0.6 no es necesario realizar esta operación.

Configuración en tiempo de ejecución

El comportamiento de estas funciones está afectado por los valores definidos en php.ini.

Tabla 1. Opciones de configuraci??? de Java

Nombre | Valor por defecto | Donde se cambia
java.class.path | NULL | PHP_INI_ALL
java.home | NULL | PHP_INI_ALL
java.library.path | NULL | PHP_INI_ALL
java.library | JAVALIB | PHP_INI_ALL
Para conocer todos los detalles y las definiciones de las constantes de PHP_INI_* se debe consultar la función ini_set().

Tipos de recursos

Esta extensión no tiene ningún tipo de recurso definido.

Constantes predefinidas

Esta extensión no tiene ninguna constante definida.

Ejemplos

Ejemplo 1. Ejemplo de Java

<?php
  // se obtiene la instancia de la clase de Java java.lang.System desde PHP
  $system = new Java('java.lang.System');

  // se muestran las propiedades del acceso que se realiza a Java
  print 'Version de Java='.$system->getProperty('java.version').' <br>';
  print 'Desarrollador de la JVM=' .$system->getProperty('java.vendor').' <br>';
  print 'Sistema Operativo='.$system->getProperty('os.name').' '.
              $system->getProperty('os.version').' on '.
              $system->getProperty('os.arch').' <br>';

  // ejemplo de java.util.Date
  $formatter = new Java('java.text.SimpleDateFormat',
                        "EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");

  print $formatter->format(new Java('java.util.Date'));
?>

Ejemplo 2. Ejemplo de AWT

<?php
  // Este ejemplo solo puede ser ejecutado como CGI.

  $frame  = new Java('java.awt.Frame', 'PHP');
  $button = new Java('java.awt.Button', 'Hola Mundo de Java!');

  $frame->add('North', $button);
  $frame->validate();
  $frame->pack();
  $frame->visible = True;

  $thread = new Java('java.lang.Thread');
  $thread->sleep(10000);

  $frame->dispose();
?>
Notas:

  • new Java() crea una nueva instancia de una clase solamente si existe un constructor adecuado. Si no se le pasan parámetros y existe un constructor por defecto adecuado (como por ejemplo en el caso de java.lang.System) se podrá acceder a la mayor parte de sus metodos, ya que son estáticos.

  • Al acceder a los miembros de una instancia, en primer lugar se buscarán las propiedades del bean y en segundo lugar los miembros publicos. En otras palabras, print $date.time se intentara resolver en primer lugar como $date.getTime() y posteriormente como $date.time.

  • Tanto los miembros estaticos como los miembros de una instancia de un objeto pueden ser accedidos utilizando la misma sintaxis. Ademas, si el objeto es de tipo java.lang.Class, entonces se puede acceder a los miembros estaticos de la clase (tanto los atributos como los metodos).

  • Las excepciones que se lanzan durante la ejecución se transforman en avisos de tipo "warning" de PHP y en resultados de tipo NULL. Los avisos de tipo "warning" se pueden eliminar añadiendo el prefijo "@" a la llamada del metodo. Las siguientes funciones de la API se pueden utilizar para obtener y borrar el ultimo error surgido

    • java_last_exception_get()

    • java_last_exception_clear()

  • La resolución de la sobrecarga es uno de los problemas mas dificiles de resolver dadas las grandes diferencias entre PHP y Java en el tema del "tipado" de las variables. Esta extensión utiliza un metodo simple pero muy efectivo para determinar cual es la mejor decisión a tomar cuando se produce la sobrecarga.

    Ademas, los nombres de los metodos en PHP no distinguen entre mayusculas y minusculas, por lo que se aumenta la probabilidad de que se produzcan situaciones de sobrecarga.

    Una vez seleccionado el metodo, los parámetros se transforman si es necesario, incluso con la posibilidad de perder datos (por ejemplo, los numeros de tipo "double" se transforman en tipo boolean) (Nota del traductor: esta conversion parece totalmente absurda, asi que puede tratarse de un fallo de la documentacion de la version original).

  • Las variables de tipo "array" y "hashtable" pueden ser utilizadas de forma indistinta. En PHP, las hashtables solo pueden incluir en las claves variables de tipo integer o string. Ademas, en Java los arrays cuyas variables son de algun tipo primitivo, no pueden contener huecos. Por ultimo, se debe recordar que este tipo de variables se pasan por valor, por lo que pueden llegar a consumir una cantidad apreciable de memoria y de tiempo.

SAPI de los servlets Java

Basandose en el mismo mecanismo que la extension de Java de PHP, la SAPI de los servlets Java permite ejecutar PHP como un servlet de Java. La ventaja mas significativa de esta forma de actuar es que se aprovechan las caracteristicas de "pooling" y de reutilizacion implementadas por la mayoria de servidores que permiten ejecutar servlets. El archivo php4/sapi/README contiene las instrucciones necesarias para compilar el modulo SAPI para los servlets Java. Notas:

  • Aunque, en principio, este codigo podria ser ejecutado en cualquier servidor que permita la ejecucion de servlets, solo se ha probado en el servidor Jakarta/Tomcat desarrollado por la fundacion Apache. Por ese motivo, cualquier informacion sobre la forma de ejecutarlo en otros servidores, los errores encontrados, las soluciones planteadas, etc...sera una informacion muy apreciada y que animamos a que los desarrolladores envien a los responsables del desarrollo del proyecto PHP.

  • Se pueden producir conflictos entre PHP y SAPI con respecto al directorio de trabajo. Mientras PHP se esta ejecutando, el servidor de servlets no podra cargar ninguna clase que se encuentre en el CLASSPATH si su ruta se especifica de forma relativa y tampoco podra encontrar el directorio de trabajo utilizado para las tareas de administracion y compilacion de JSP.

Tabla de contenidos
java_last_exception_clear -- Borra la última excepción de Java
java_last_exception_get -- Obtiene la última excepción de Java

Anterior | Inicio | Siguiente
ircg_whois | Subir | java_last_exception_clear


java_last_exception_clear

(PHP 4 >= 4.0.2)

java_last_exception_clear -- Borra la última excepción de Java

Descripción

void java_last_exception_clear ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Ver la función java_last_exception_get() para obtener un ejemplo completo del uso de esta función.

Anterior | Inicio | Siguiente
Integración de Java y PHP | Subir | java_last_exception_get


java_last_exception_get

(PHP 4 >= 4.0.2)

java_last_exception_get -- Obtiene la última excepción de Java

Descripción

exception java_last_exception_get ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

El siguiente ejemplo muestra el manejo de las excepciones de Java dentro de PHP:

Ejemplo 1. Manejando las excepciones de Java

<?php
  $stack = new Java('java.util.Stack');
  $stack->push(1);

  // Lo siguiente deberia tener exito
  $result = $stack->pop();
  $ex = java_last_exception_get();
  if (!$ex) print "$result\n";

  // Lo siguiente deberia fallar (se suprime el error con el simbolo @)
  $result = @$stack->pop();
  $ex = java_last_exception_get();
  if ($ex) print $ex->toString();

  // Borrado de la ultima excepcion
  java_last_exception_clear();
?>

Anterior | Inicio | Siguiente
java_last_exception_clear | Subir | Funciones LDAP


Funciones LDAP

Manual de PHP
Anterior Siguiente

XLVIII. Funciones LDAP

Introducción

LDAP es el protocolo de acceso a directorios ligero (Lightweight Directory Access Protocol), un protocolo usado para acceder a "Servidores de Directorio". El directorio es una clase especial de base de datos que contiene información estructurada en forma de árbol.

El concepto es similar a la estructura de directorios de los discos duros, pero en este caso, el directorio raiz es "El Mundo" y los subdirectorios de primer nivel son los "países". Niveles inferiores de la estructura de directorio contienen entradas para compañías, organizaciones o lugares, y en niveles aún inferiores se encuentran las entradas para la gente, y quizás de equipos informáticos y documentos.

Para referirse a un fichero en un subdirectorio del disco duro se usa algo como

/usr/local/misapps/docs

Las barras marcan cada división en la referencia al fichero, y la secuencia es leida de izquierda a derecha.

El equivalente a la referencia a un fichero en LDAP es el "distinguished name" (nombre distinguible), abreviado como "db". Un ejemplo de dn podría ser.

cn=Pedro Pérez,ou=Contabilidad,o=Mi Compañía,c=ES

Las comas marcan cada división en la referencia, y la secuencia se lee de derecha a izquierda. Este dn se leería como:

country = ES
organization = Mi Compañía
organizationalUnit = Contabilidad
commonName = Pedro Pérez

De la misma manera que no hay reglas estrictas sobre como organizar la estructura de directorios de un disco duro, un administrador de un servidor de directorio puede establecer cualquier estructura que sea útil para sus propósitos. Sin embargo hay algunos acuerdos tácitos que siempre deben seguirse. El mensaje es que no se puede escribir código para acceder un directorio si no se conoce algo de su estructura, igual que no se puede usar una base de datos sin algún conocimiento sobre lo que está disponible en ella.

Información sobre LDAP se puede encontrar en:

  • Netscape

  • OpenLDAP Project

  • LDAP World

Netscape SDK tiene una Guia de programación muy buena en HTML.

Requerimientos

Se necesita obtener y compilar las bibliotecas LDAP cliente de la Universidad de Michigan ldap-3.3 package, Netscape Directory SDK 3.0 ó OpenLDAP si queremos que PHP soporte LDAP.

Instalación

LDAP support in PHP is not enabled by default. You will need to use the --with-ldap[=DIR] configuration option when compiling PHP to enable LDAP support. DIR is the LDAP base install directory.

Note to Win32 Users: In order to enable this module on a Windows environment, you must copy several files from the DLL folder of the PHP/Win32 binary package to the SYSTEM folder of your windows machine. (Ex: C:\WINNT\SYSTEM32, C:\WINDOWS\SYSTEM32 or c:\WINDOWS\SYSTEM). For PHP <= 4.2.0 copy libsasl.dll, for PHP >= 4.3.0 copy libeay32.dll and ssleay32.dll to your SYSTEM folder.

Configuración en tiempo de ejecución

El comportamiento de estas funciones está afectado por los valores definidos en php.ini.

Tabla 1. LDAP configuration options

Name | Default | Changeable
ldap.max_links | "-1" | PHP_INI_SYSTEM
For further details and definition of the PHP_INI_* constants see ini_set().

Tipos de recursos

Esta extensión no tiene ningún tipo de recurso definido.

Constantes predefinidas

Estas constantes están definidas por esta extensión y estarán disponibles solamente cuando la extensión ha sido o bien compilada dentro de PHP o grabada dinámicamente en tiempo de ejecución.

LDAP_DEREF_NEVER (integer)

LDAP_DEREF_SEARCHING (integer)

LDAP_DEREF_FINDING (integer)

LDAP_DEREF_ALWAYS (integer)

LDAP_OPT_DEREF (integer)

LDAP_OPT_SIZELIMIT (integer)

LDAP_OPT_TIMELIMIT (integer)

LDAP_OPT_PROTOCOL_VERSION (integer)

LDAP_OPT_ERROR_NUMBER (integer)

LDAP_OPT_REFERRALS (integer)

LDAP_OPT_RESTART (integer)

LDAP_OPT_HOST_NAME (integer)

LDAP_OPT_ERROR_STRING (integer)

LDAP_OPT_MATCHED_DN (integer)

LDAP_OPT_SERVER_CONTROLS (integer)

LDAP_OPT_CLIENT_CONTROLS (integer)

LDAP_OPT_DEBUG_LEVEL (integer)

GSLC_SSL_NO_AUTH (integer)

GSLC_SSL_ONEWAY_AUTH (integer)

GSLC_SSL_TWOWAY_AUTH (integer)

Ejemplos

Recuperar informacion para todas las entradas donde el apellido empiece por "P" de un servidor de directorio, mostrando un extracto con el nombre y dirección de correo electrónico.

Ejemplo 1. Ejemplo de búsqueda LDAP

<?php
// La secuencia b&aacute;sica para trabajar con LDAP es conectar, autentificarse,
// buscar, interpretar el resultado de la b&uacute;squeda y cerrar la conexi&oacute;n.

echo "&lt;h3>Prueba de consulta LDAP&lt;/h3>";
echo "Conectando ...";
$ds=ldap_connect("localhost");  // Debe ser un servidor LDAP v&aacute;lido!
echo "El resultado de la conexi&oacute;n es ".$ds."&lt;p>";

if ($ds) {
    echo "Autentificandose  ...";
    $r=ldap_bind($ds);     // Autentificaci&oacute;n an&oacute;nima, t&iacute;picamente con
                           // acceso de lectura
    echo "El resultado de la autentificaci&oacute;n es ".$r."&lt;p>";

    echo "Buscando (sn=P*) ...";
    // Busqueda de entradas por apellidos
    $sr=ldap_search($ds,"o=Mi Compa&ntilde;ia, c=ES", "sn=P*");
    echo "El resultado de la b&uacute;squeda es ".$sr."&lt;p>";

    echo "El n&uacute;mero de entradas devueltas es ".ldap_count_entries($ds,$sr)."&lt;p>";

    echo "Recuperando entradas ...&lt;p>";
    $info = ldap_get_entries($ds, $sr);
    echo "Devueltos datos de ".$info["count"]." entradas:&lt;p>";

    for ($i=0; $i<$info["count"]; $i++) {
        echo "dn es: ". $info[$i]["dn"] ."&lt;br>";
        echo "La primera entrada cn es: ". $info[$i]["cn"][0] ."&lt;br>";
        echo "La primera entrada email es: ". $info[$i]["mail"][0] ."&lt;p>";
    }

    echo "Cerrando conexi&oacute;n";
    ldap_close($ds);

} else {
    echo "&lt;h4>Ha sido imposible conectar al servidor LDAP&lt;/h4>";
}
?>

Usando las llamadas LDAP de PHP

Antes de usarse las llamadas LDAP se debe saber ..

  • El nombre o dirección del servidor de directorio que se va a usar

  • El "dn base" del servidor (la parte del directorio global contenida en ese servidor, que puede ser por ejemplo "o=Mi Compañia,c=ES")

  • Si es necesaria contraseña para acceder al servidor (muchos servidores ofrecen acceso de lectura para usuarios anónimos pero requieren un password para cualquier otro acceso)

La secuencia típica de llamadas LDAP suele implementarse en aplicaciones que siguen el siguiente patrón:

ldap_connect() // establecer la conexión con el servidor
|
ldap_bind() // login anónimo o autentificado
|
Hacer búsquedas o actualizaciones en el directorio
y mostrar los resultados
|
ldap_close() // Cerrar la conexión

Tabla de contenidos
ldap_8859_to_t61 -- Translate 8859 characters to t61 characters
ldap_add -- Añade entradas a un directorio LDAP
ldap_bind -- Autentifica en un directorio LDAP
ldap_close -- Cierra una conexión a un servidor LDAP
ldap_compare -- Compare value of attribute found in entry specified with DN
ldap_connect -- Conecta con un servidor LDAP
ldap_count_entries -- Cuenta el número de entradas de una búsqueda
ldap_delete -- Borra una entrada de un directorio
ldap_dn2ufn -- Convierte un dn al formato User Friendly Naming
ldap_err2str -- Convierte un código numérico de error LDAP en un mensaje.
ldap_errno -- Devuelve el código numérico de error para el último comando LDAP.
ldap_error -- Devuelte el mensaje de error del último comando LDAP
ldap_explode_dn -- Divide un DN en las partes que le componen
ldap_first_attribute -- Devuelte el primer atributo
ldap_first_entry -- Devuelve el identificador del primer resultado
ldap_first_reference -- Return first reference
ldap_free_result -- Libera la memoria que almacena los resultados
ldap_get_attributes -- Obtiene los atributos de una entrada de un resultado de búsqueda
ldap_get_dn -- Obtiene el DN de una entrada de un resultado
ldap_get_entries -- Obtiene todas las entradas de un resultado
ldap_get_option -- Get the current value for given option
ldap_get_values_len -- Obtiene todos los valores binarios de un atributo de una entrada
ldap_get_values -- Obtiene todos los valores de un atributo de una entrada
ldap_list -- Búsqueda Single-level (Nivel Único)
ldap_mod_add -- Añade valores de atributos
ldap_mod_del -- Borra valores de atributos
ldap_mod_replace -- Reemplaza valores de atributos
ldap_modify -- Modifica una entrada LDAP
ldap_next_attribute -- Obtiene el siguiente atributo de una entrada
ldap_next_entry -- Obtiene la siguiente entrada de un resultado
ldap_next_reference -- Get next reference
ldap_parse_reference -- Extract information from reference entry
ldap_parse_result -- Extract information from result
ldap_read -- Lee una entrada
ldap_rename -- Modify the name of an entry
ldap_search -- Busca en un arbol LDAP
ldap_set_option -- Set the value of the given option
ldap_set_rebind_proc -- Set a callback function to do re-binds on referral chasing.
ldap_sort -- Sort LDAP result entries
ldap_start_tls -- Start TLS
ldap_t61_to_8859 -- Translate t61 characters to 8859 characters
ldap_unbind -- Hace logout de un directorio LDAP

Anterior | Inicio | Siguiente
java_last_exception_get | Subir | ldap_8859_to_t61


ldap_8859_to_t61

(PHP 4 >= 4.0.2)

ldap_8859_to_t61 -- Translate 8859 characters to t61 characters

Description

string ldap_8859_to_t61 ( string value)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
Funciones LDAP | Subir | ldap_add


ldap_add

(PHP 3, PHP 4 )

ldap_add -- Añade entradas a un directorio LDAP

Descripción

int ldap_add ( int identificador_de_conexion, string dn, array entrada)

Devuelve verdadero cuando finaliza correctamente y falso se produce un error.

La función ldap_add() se usa para añadir entradas o registros a un directorio LDAP. El DN ("distinguished name", nombre distinguible, la referencia de cualquier entrada LDAP) es especificado por dn. El array entrada especifica la información que quiere añadirse. Los valores del array son indexados por sus propios atributos. En caso de valores múltiples para un mismo atributo, son indexados usando enteros empezando con 0.

entry["atributo1"] = valor
entry["atributo2"][0] = valor1
entry["atributo2"][1] = valor2

Ejemplo 1. Ejemplo completo con login atentificado

<?php
$ds=ldap_connect("localhost");  // Asumimos que el servidor LDAP está en el
                                // servidor local

if ($ds) {
    // autentificarse con el dn apropiado para tener permisos de modificación
    $r=ldap_bind($ds,"cn=root, o=Mi Compañia, c=ES", "secreto");

    // prepare data
    $info["cn"]="Pedro Pérez";
    $info["sn"]="Pedro";
    $info["mail"]="pedro.p@algun.sitio";
    $info["objectclass"]="persona";

    // add data to directory
    $r=ldap_add($ds, "cn=Pedro Pérez, o=Mi Compañia, c=ES", $info);

    ldap_close($ds);
} else {
    echo "Ha sido imposible conectar al servidor LDAP";
}
?>

Anterior | Inicio | Siguiente
ldap_8859_to_t61 | Subir | ldap_bind


ldap_bind

(PHP 3, PHP 4 )

ldap_bind -- Autentifica en un directorio LDAP

Descripción

int ldap_bind ( int identificador_de_conexion [, string rdn_del_usuario [, string contraseña]])

Se conecta a un directorio LDAP con un RDN y su contraseña. Devuelve verdadero cuando finaliza correctamente y falso se produce un error.

ldap_bind() se conecta al directorio con un determinado usuario. rdn_de_usuario y contraseña son opcionales. Si no son especificados, se intenta el acceso anónimo.

Anterior | Inicio | Siguiente
ldap_add | Subir | ldap_close


ldap_close

(PHP 3, PHP 4 )

ldap_close -- Cierra una conexión a un servidor LDAP

Descripción

int ldap_close ( int identificador_de_conexion)

Devuelve verdadero cuando finaliza correctamente y falso se produce un error.

ldap_close() cierra la conexión con el servidor LDAP asociada con el identificador_de_conexion especificado.

Esta llamada es idéntica internamente a ldap_unbind(). La API LDAP usa la llamada ldap_unbind(), y por lo tanto quizás deba usar esta llamada en lugar de ldap_close().

Anterior | Inicio | Siguiente
ldap_bind | Subir | ldap_compare


ldap_compare

(PHP 4 >= 4.0.2)

ldap_compare -- Compare value of attribute found in entry specified with DN

Description

bool ldap_compare ( resource link_identifier, string dn, string attribute, string value)

Returns TRUE if value matches otherwise returns FALSE. Returns -1 on error.

ldap_compare() is used to compare value of attribute to value of same attribute in LDAP directory entry specified with dn.

The following example demonstrates how to check whether or not given password matches the one defined in DN specified entry.

Ejemplo 1. Complete example of password check

<?php

$ds=ldap_connect("localhost");  // assuming the LDAP server is on this host

if ($ds) {

    // bind
    if(ldap_bind($ds)) {

        // prepare data
        $dn = "cn=Matti Meikku, ou=My Unit, o=My Company, c=FI";
        $value = "secretpassword";
        $attr = "password";

        // compare value
        $r=ldap_compare($ds, $dn, $attr, $value);

        if ($r === -1) {
            echo "Error: ".ldap_error($ds);
        } elseif ($r === TRUE) {
            echo "Password correct.";
        } elseif ($r === FALSE) {
            echo "Wrong guess! Password incorrect.";
        }

    } else {
        echo "Unable to bind to LDAP server.";
    }

    ldap_close($ds);

} else {
    echo "Unable to connect to LDAP server.";
}
?>

Aviso

ldap_compare() can NOT be used to compare BINARY values!

Nota: This function was added in 4.0.2.

Anterior | Inicio | Siguiente
ldap_close | Subir | ldap_connect


ldap_connect

(PHP 3, PHP 4 )

ldap_connect -- Conecta con un servidor LDAP

Descripción

int ldap_connect ( [string nombre_host [, int puerto]])

Devuelve un identificador de conexión positivo en caso de éxito, ó falso si ocurre algún error.

ldap_connect() establece una conexión con el servidor LDAP especificado en nombre_host y puerto. Ambos argumentos son opcionales. Si no se especifican, el identificador de la conexión LDAP actualmente abierta es devuelto. Si sólo es especificado nombre_host el puerto tomado por defecto es el 389.

Anterior | Inicio | Siguiente
ldap_compare | Subir | ldap_count_entries


ldap_count_entries

(PHP 3, PHP 4 )

ldap_count_entries -- Cuenta el número de entradas de una búsqueda

Descripción

int ldap_count_entries ( int identificador_de_conexion, int identificador_de_resultado)

Devuelve el número de entradas del resultado o falso si ha ocurrido algún error.

ldap_count_entries() devuelce el número de entradas almacenadas en el resultado de operaciones de búsqueda previas. identificador_de_resultado identifica el resultado ldap interno al que hacemos referencia.

Anterior | Inicio | Siguiente
ldap_connect | Subir | ldap_delete


ldap_delete

(PHP 3, PHP 4 )

ldap_delete -- Borra una entrada de un directorio

Descripción

int ldap_delete ( int identificador_de_conexion, string dn)

Devuelve verdadero cuando finaliza correctamente y falso se produce un error.

La función ldap_delete() borra la entrada particular dn del directorio LDAP.

Anterior | Inicio | Siguiente
ldap_count_entries | Subir | ldap_dn2ufn


ldap_dn2ufn

(PHP 3, PHP 4 )

ldap_dn2ufn -- Convierte un dn al formato User Friendly Naming

Descripción

string ldap_dn2ufn ( string dn)

La función ldap_dn2ufn() es usada para convertir un DN en un formato más amigable para el usuario.

Anterior | Inicio | Siguiente
ldap_delete | Subir | ldap_err2str


ldap_err2str

(PHP 3>= 3.0.13, PHP 4 )

ldap_err2str -- Convierte un código numérico de error LDAP en un mensaje.

Descripción

string ldap_err2str ( int numerr)

Devuelve una cadena con el mensaje de error.

Esta función devuelve una cadena con el mensaje de error explicativo del código numérico de error numerr. Aunque los códigos de error LDAP están estandarizados, diferentes librerías devuelven mensajes textuales de error diferentes o incluso localizados. Nunca se debe comprobar la existencia de un error específico por el mensaje textual, sino por el código numérico.

Var también ldap_errno() y ldap_error().

Ejemplo 1. Enumerando todos los mensajes de error LDAP

<?php
  for($i=0; $i<100; $i++) {
    printf("Error $i: %s<br />\n", ldap_str2err($i));
  }
?>

Anterior | Inicio | Siguiente
ldap_dn2ufn | Subir | ldap_errno


ldap_errno

(PHP 3>= 3.0.12, PHP 4 )

ldap_errno -- Devuelve el código numérico de error para el último comando LDAP.

Descripción

int ldap_errno ( int identificador_de_conexión)

Devuelve el código de error del último comando LDAP para la conexión especificada.

Esta función devuelve el código numérico de error, que está estandarizado, producido por el último comando LDAP y en la conexión especificada. Este número puede ser convertido en un mensaje textual de error usando ldap_err2str().

A menos que decremente el nivel de alerta en su fichero php3.ini (ó php.ini) o anteponga a los comandos LDAP en símbolo @ (arroba) para suprimir las alertas y warnings, los errores producidos serán mostrados automáticamente en el código HTML generado.

Ejemplo 1. Generando y capturando un error

<?php
// Este ejemplo contiene un error, que será capturado.
$ld = ldap_connect("localhost");
$bind = ldap_bind($ld);
// error de sintaxis en la expresión del filtro (codigo
// de error 87). Debería ser "objectclass=*".
$res =  @ldap_search($ld, "o=Mi Compañía, c=ES", "objectclass");
if (!$res) {
    printf("LDAP-Código  Error: %s<br>\n", ldap_errno($ld));
    printf("LDAP-Mensaje Error: %s<br>\n", ldap_error($ld));
    die("Argh!<br>\n");
}
$info = ldap_get_entries($ld, $res);
printf("%d entradas encontradas.<br>\n", $info["count"]);
?>

Ver también ldap_err2str() y ldap_error().

Anterior | Inicio | Siguiente
ldap_err2str | Subir | ldap_error


ldap_error

(PHP 3>= 3.0.12, PHP 4 )

ldap_error -- Devuelte el mensaje de error del último comando LDAP

Descripción

string ldap_error ( int identificador_de_conexión)

Devuelve una cadena con el mensaje de error.

Esta función devuelve una cadena con el mensaje de error explicativo del error generado por el último comando LDAP en la conexión especificada. Aunque los códigos de error LDAP están estandarizados, diferentes librerías devuelven mensajes textuales de error diferentes o incluso localizados. Nunca se debe comprobar la existencia de un error específico por el mensaje textual, sino por el código numérico.

A menos que decremente el nivel de alerta en su fichero php3.ini (ó php.ini) o anteponga a los comandos LDAP en símbolo @ (arroba) para suprimir las alertas y warnings, los errores producidos serán mostrados automáticamente en el código HTML generado.

Ver también ldap_err2str() y ldap_errno().

Anterior | Inicio | Siguiente
ldap_errno | Subir | ldap_explode_dn


ldap_explode_dn

(PHP 3, PHP 4 )

ldap_explode_dn -- Divide un DN en las partes que le componen

Descripción

array ldap_explode_dn ( string dn, int con_atributos)

La función ldap_explode_dn() es usada para dividir un DN devuelto por ldap_get_dn() en las partes que le componen. Cada parte es conocida como Relative Distinguished Name (Nombre Relativo Distinguible) abreviado como RDN. ldap_explode_dn() devuelve un array con todos esos componentes. con_atributos sirve para especificar si los RDN se devuelven sólo como valores o con sus atributos también (es decir, en un formato atributo=valor). Hay que poner with_attrib a 0 para obtener también los atributos y a 1 para obtener sólo los valores.

Anterior | Inicio | Siguiente
ldap_error | Subir | ldap_first_attribute


ldap_first_attribute

(PHP 3, PHP 4 )

ldap_first_attribute -- Devuelte el primer atributo

Descripción

string ldap_first_attribute ( int identificador_de_conexion, int identificador_de_entrada_en_resultado, int identificador_ber)

Devuelte el primer atributo en la entrada o falso si ocurre algún error.

De manera similar a leer entradas, los atributos también son leidos de uno en uno de una entrada en particular del directorio. ldap_first_attribute() devuelve el primer atributo en la entrada a la que apunta el identificador_de_entrada_en_resultado El resto de los atributos son obtenidos llamanda a la función ldap_next_attribute() sucesivamente. El parámetro indetificador_ber es el identificador del puntero interno a memoria. Es pasado por referencia. El mismo indetificador_ber es pasado a la función ldap_next_attribute() que modifica dicho puntero.

Ver también ldap_get_attributes()

Anterior | Inicio | Siguiente
ldap_explode_dn | Subir | ldap_first_entry


ldap_first_entry

(PHP 3, PHP 4 )

ldap_first_entry -- Devuelve el identificador del primer resultado

Descripción

int ldap_first_entry ( int identificador_de_conexion, int identificador_de_resultado)

Devuelve el identificador de la primera entrada del resultado ó falso en caso de error.

Las entradas en un resultado LDAP son leidas secuencialmente usando las funciones ldap_first_entry() y ldap_next_entry(). ldap_first_entry() devuelve el identificador de la primera entrada del resultado. Este identificador es entonces suministrado a la rutina lap_next_entry() pata obtener sucesivas entradas del resultado.

Ver también ldap_get_entries().

Anterior | Inicio | Siguiente
ldap_first_attribute | Subir | ldap_first_reference


ldap_first_reference

(PHP 4 >= 4.0.5)

ldap_first_reference -- Return first reference

Description

resource ldap_first_reference ( resource link, resource result)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ldap_first_entry | Subir | ldap_free_result


ldap_free_result

(PHP 3, PHP 4 )

ldap_free_result -- Libera la memoria que almacena los resultados

Descripción

int ldap_free_result ( int identificador_de_resultado)

Devuelve verdadero cuando finaliza correctamente y falso se produce un error.

ldap_free_result() libera la memoria reservada internamente para almacenar el resultado de búsquedas LDAP asociada al identificador identificador_de_resultado. Toda la memoria de resultados es automáticamente liberada al finalizarse la ejecución de un script.

Normalmente la memoria reservada para resultados ldap se libera al final del script. En caso de que el script realice sucesivas búsquedas que devuelvan conjuntos de resultados grandes, puede utilizarse ldap_free_result() para mantener bajo el uso de memoria del script durante su ejecución.

Anterior | Inicio | Siguiente
ldap_first_reference | Subir | ldap_get_attributes


ldap_get_attributes

(PHP 3, PHP 4 )

ldap_get_attributes -- Obtiene los atributos de una entrada de un resultado de búsqueda

Descripción

array ldap_get_attributes ( int identificador_de_conexion, int identificador_de_entrada_de_resultado)

Devuelve una completa información de la entrada en un array multidimensional o falso en caso de error.

La función ldap_get_attributes() es usada para simplificar el leer atributos y valores de una entrada de un resultado de búsqueda. El valor de retorno es un array multidimensional de atributos y sus valores.

Teniendo localizado una entrada específica en el directorio se puede conseguir la información que contiene dicha entrada usando esta llamada. Puede usar esta función para aplicaciones que naveguen por las entradas del directorio y/o cuando no se conoce la estructura de las entradas del directorio. En otras aplicaciones se busca un atributo específico, como la dirección de email o los apellidos y no importa el resto de información contenida..

valor_devuelto["count"] = número de atributos en la entrada
valor_devuelto[0] = primer atributo
valor_devuelto[n] = enésimo atributo

valor_devuelto["atributo"]["count"] = número de vaslores del atributo
valor_devuelto["atributo"][0] = primer valor del atributo
valor_devuelto["atributo"][i] = iésimo valor del atributo

Ejemplo 1. Mostrar la lista de atributos contenida en una entrada específica de un directorio

// $ds es un identificador de conexión al directorio

// $sr es un resultado de búsqueda válido de una llamada
// anterior a una de las funciones de búsqueda en directorios
// ldap.

$entrada = ldap_first_entry($ds, $sr);

$atributos = ldap_get_attributes($ds, $entrada);

echo $atributos["count"]." atributos contenidos en esta entrada:<p>";

for ($i=0; $i < $atributos["count"]; $i++)
    echo $atributos[$i]."<br>";

Ver también ldap_first_attribute() y ldap_next_attribute()

Anterior | Inicio | Siguiente
ldap_free_result | Subir | ldap_get_dn


ldap_get_dn

(PHP 3, PHP 4 )

ldap_get_dn -- Obtiene el DN de una entrada de un resultado

Descripción

string ldap_get_dn ( int indentificador_de_conexion, int indentificador_de_entrada_de_resultado)

Devuelve el DN de la entrada del resultado o falso en caso de error.

La función ldap_get_dn() se utiliza para obtener el DN de una entrada de un resultado de búsqueda.

Anterior | Inicio | Siguiente
ldap_get_attributes | Subir | ldap_get_entries


ldap_get_entries

(PHP 3, PHP 4 )

ldap_get_entries -- Obtiene todas las entradas de un resultado

Descripción

array ldap_get_entries ( int indentificador_de_conexion, int indentificador_de_resultado)

Devuelve una completa información de un resultado de búsqueda en un array multidimensional o falso en caso de error.

La función ldap_get_entries() es usada para simplificar el leer múltiples entradas de de un resultado y después leer sus atributos y multiples valores. Toda la información es devuelta por una llamada a una función en forma de array multidimensional. La estructura del array es como se muestra más abajo.

Los indices de atributos son convertidos a minúsculas. (Los atributos de servidores de directorios son indiferentes a las mayusculas/minusculas, pero no cuando son usados como indices de arrays)

valor_devuelto["count"] = número de entradas del resultado
valor_devuelto[0] : contiene los detalles de la primera entrada

valor_devuelto[i]["dn"] = DN de la entrada iésima del resultado

valor_devuelto[i]["count"] = número de atributos de la entrada iésima
valor_devuelto[i][j] = jésimo atributo de la iésima entrada del resultado

valor_devuelto[i]["atributo"]["count"] = número de valores para "atributo"
en la entrada iésima
valor_devuelto[i]["atributo"][j] = jésimo valor de "atributo" en la entrada
iésima

Ver también ldap_first_entry() y ldap_next_entry()

Anterior | Inicio | Siguiente
ldap_get_dn | Subir | ldap_get_option


ldap_get_option

(PHP 4 >= 4.0.4)

ldap_get_option -- Get the current value for given option

Description

bool ldap_get_option ( resource link_identifier, int option, mixed retval)

Sets retval to the value of the specified option. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

The parameter option can be one of: LDAP_OPT_DEREF, LDAP_OPT_SIZELIMIT, LDAP_OPT_TIMELIMIT, LDAP_OPT_PROTOCOL_VERSION, LDAP_OPT_ERROR_NUMBER, LDAP_OPT_REFERRALS, LDAP_OPT_RESTART, LDAP_OPT_HOST_NAME, LDAP_OPT_ERROR_STRING, LDAP_OPT_MATCHED_DN. These are described in draft-ietf-ldapext-ldap-c-api-xx.txt

Nota: This function is only available when using OpenLDAP 2.x.x OR Netscape Directory SDK x.x, and was added in PHP 4.0.4

Ejemplo 1. Check protocol version

<?php
// $ds is a valid link identifier for a directory server
if (ldap_get_option($ds, LDAP_OPT_PROTOCOL_VERSION, $version))
    echo "Using protocol version $version\n";
else
    echo "Unable to determine protocol version\n";
?>

See also ldap_set_option().

Anterior | Inicio | Siguiente
ldap_get_entries | Subir | ldap_get_values_len


ldap_get_values_len

(PHP 3>= 3.0.13, PHP 4 )

ldap_get_values_len -- Obtiene todos los valores binarios de un atributo de una entrada

Description

array ldap_get_values_len ( int indentificador_de_conexion, int indentificador_de_entrada_de_resultado, string atributo)

Devuelve un array de valores del atributo o falso en caso de error.

La función ldap_get_values_len() se utiliza para obtener todos los valores de un atributo de una entrada de un resultado de búsqueda. La entrada es especificada por el indentificador_de_entrada_de_resultado. El número de valores se almacena en el índice "count" del array devuelto. Los valores individuales se almacenan con índices enteros en el array. El primer índice es 0.

Esta función se utiliza exactamente como ldap_get_values() salvo que permite manejar datos binarios y no cadenas de caracteres.

Anterior | Inicio | Siguiente
ldap_get_option | Subir | ldap_get_values


ldap_get_values

(PHP 3, PHP 4 )

ldap_get_values -- Obtiene todos los valores de un atributo de una entrada

Descripción

array ldap_get_values ( int identificador_de_conexion, int identificador_de_entrada_de_resultado, string atributo)

Devuelve un array de valores del atributo o falso en caso de error.

La función ldap_get_values() se utiliza para obtener todos los valores de un atributo de una entrada. La entrada del resultado es especificada por el identificador_de_entrada_de_resultado. El número de valores se almacena en el índice "count" del array devuelto. Los valores individuales se almacenan con índices enteros en el array. El primer índice es 0.

Esta llamada necesita un identificador_de_entrada_de_resultado, por lo que necesita ser precedida por una de las llamadas de búsqueda ldap y una llamada para obtener una entrada en particular del resultado.

La aplicación debe ser o bien programada específicamente para buscar ciertos atributos (como apellidos o email) o bien utilizar la función ldap_get_attributes() para averiguar que atributos existen para una entrada dada, antes de llamar a ldap_get_values().

LDAP permite mas de un valor para cada atributo, por lo que se puede, por ejemplo, almacenar varias direcciones de email para una persona en el directorio y nombrar a ese atributo como "email"

valor_devuelto["count"] = número de valores del atributo
valor_devuelto[0] = primer valor del atributo
valor_devuelto[i] = iésimo valor del atributo

Ejemplo 1. Listar todos los valores del atributo "email" de una entrada de un directorio

// $ds es un identificador de conexión al directorio

// $sr es un resultado de búsqueda válido de una llamada
// anterior a una de las funciones de búsqueda en directorios
// ldap.

// $entrada es un identificador de entrada válido de una llamada
// anterior a una de las funciones que devuelven una entrada de
// directorio

$valores = ldap_get_values($ds, $entrada,"email");

echo $valores["count"]." direcciones de email para esta entrada.<p>";

for ($i=0; $i < $valores["count"]; $i++)
    echo $valores[$i]."<br>";

Anterior | Inicio | Siguiente
ldap_get_values_len | Subir | ldap_list


ldap_list

(PHP 3, PHP 4 )

ldap_list -- Búsqueda Single-level (Nivel Único)

Descripción

int ldap_list ( int identificador_de_conexion, string dn_base, string filtro [, array atributos])

Devuelve un identificador de resultado de búsqueda o falso en caso de error.

ldap_list() realiza la búsqueda según el filtro especificado en el directorio con el alcance LDAP_SCOPE_ONELEVEL.

LDAP_SCOPE_ONELEVEL significa que la búsqueda solo devuelve información que se encuentre en el nivel inmediatamente inferior al dn_base especificado en la llamada a la función. (Equivalente a ejecutar "ls" en un unix y obtener un listado de ficheros y carpetas en el directorio de trabajo actual.)

Esta llamada toma un cuarto parámetro opcional, que es un array de los atributos requeridos. Consulte las notas de la función ldap_search().

Ejemplo 1. Produce una lista de todas las unidades organizativas de una compañía

// $ds es un identificador de conexión válido.

$dnbase = "o=Mi Compañía, c=ES";
$solonecesito = array("ou");

$sr=ldap_list($ds, $dnbase, "ou=*", $solonecesito);

$info = ldap_get_entries($ds, $sr);

for ($i=0; $i < $info["count"]; $i++)
    echo $info[$i]["ou"][0] ;

Anterior | Inicio | Siguiente
ldap_get_values | Subir | ldap_mod_add


ldap_mod_add

(PHP 3>= 3.0.8, PHP 4 )

ldap_mod_add -- Añade valores de atributos

Descripción

int ldap_mod_add ( int identificador_de_conexion, string dn, array entrada)

Devuelve verdadero cuando finaliza correctamente y falso se produce un error.

Esta función añadir uno o varios atributos al dn especificado. Realiza la modificación al nivel de atributos, en vez de hacerlo al nivel de objetos. Las modificaciones a nivel de objeto son propocionadas por la función ldap_add().

Anterior | Inicio | Siguiente
ldap_list | Subir | ldap_mod_del


ldap_mod_del

(PHP 3>= 3.0.8, PHP 4 )

ldap_mod_del -- Borra valores de atributos

Descripción

int ldap_mod_del ( int identificador_de_conexion, string dn, array entrada)

returns TRUE on success and FALSE on error.

Esta función elimina atributos del dn especificado. Realiza la modificación a nivel de atributos, en vez de hacerlo a nivel de objetos. Las modificaciones a nivel de objeto son proporcionadas por la función ldap_del().

Anterior | Inicio | Siguiente
ldap_mod_add | Subir | ldap_mod_replace


ldap_mod_replace

(PHP 3>= 3.0.8, PHP 4 )

ldap_mod_replace -- Reemplaza valores de atributos

Descripción

int ldap_mod_replace ( int identificador_de_conexion, string dn, array entrada)

Devuelve verdadero cuando finaliza correctamente y falso se produce un error.

Esta función reemplaza atributos del dn especificado. Realiza la modificación a nivel de atributos, en vez de hacerlo a nivel de objetos. Las modificaciones a nivel de objeto son proporcionadas por la función ldap_modify().

Anterior | Inicio | Siguiente
ldap_mod_del | Subir | ldap_modify


ldap_modify

(PHP 3, PHP 4 )

ldap_modify -- Modifica una entrada LDAP

Descripción

int ldap_modify ( int identificador_de_conexion, string dn, array entrada)

Devuelve verdadero cuando finaliza correctamente y falso se produce un error.

La función ldap_modify() se utiliza para modificar entradas existentes en un directorio LDAP. La estructura de la entrada es igual a la de ldap_add().

Anterior | Inicio | Siguiente
ldap_mod_replace | Subir | ldap_next_attribute


ldap_next_attribute

(PHP 3, PHP 4 )

ldap_next_attribute -- Obtiene el siguiente atributo de una entrada

Descripción

string ldap_next_attribute ( int identificador_de_conexion, int identificador_de_entrada_de_resultado, int identificador_ber)

Devuelve el siguiente atributo de una entrada o falso en caso de error.

ldap_next_attribute() es llamado para recuperar los atributos de una entrada. El estado interno del puntero es mantenido por el identificador_ber, que es pasado por referencia a la función. La primera llamada a ldap_next_attribute() es realizada con el identificador_de_entrada_de_resultado devuelto por la función ldap_first_attribute().

Ver también ldap_get_attributes()

Anterior | Inicio | Siguiente
ldap_modify | Subir | ldap_next_entry


ldap_next_entry

(PHP 3, PHP 4 )

ldap_next_entry -- Obtiene la siguiente entrada de un resultado

Descripción

int ldap_next_entry ( int identificador_de_conexion, int identificador_de_entrada_de_resultado)

Devuelve el identificador de la siguiente entrada del resultado. Las entradas deben haber sido leidas al principio con ldap_first_entry(). Si no hay más entradas en el resultado devuelve falso.

La función ldap_next_entry() se utiliza para obtener las entradas almacenadas en un resultado. Llamadas sucesivas a la función ldap_next_entry() devuelven las entradas una a una hasta que ya no queden más entradas. La primera llamada a ldap_next_entry() se realiza después de llamar a ldap_first_entry().

Ver también ldap_get_entries()

Anterior | Inicio | Siguiente
ldap_next_attribute | Subir | ldap_next_reference


ldap_next_reference

(PHP 4 >= 4.0.5)

ldap_next_reference -- Get next reference

Description

resource ldap_next_reference ( resource link, resource entry)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ldap_next_entry | Subir | ldap_parse_reference


ldap_parse_reference

(PHP 4 >= 4.0.5)

ldap_parse_reference -- Extract information from reference entry

Description

bool ldap_parse_reference ( resource link, resource entry, array referrals)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ldap_next_reference | Subir | ldap_parse_result


ldap_parse_result

(PHP 4 >= 4.0.5)

ldap_parse_result -- Extract information from result

Description

bool ldap_parse_result ( resource link, resource result, int errcode, string matcheddn, string errmsg, array referrals)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ldap_parse_reference | Subir | ldap_read


ldap_read

(PHP 3, PHP 4 )

ldap_read -- Lee una entrada

Descripción

int ldap_read ( int identificador_de_conexión, string dn_base, string filtro [, array atributos])

Devuelve un identificador de resultado de búsqueda o falso en caso de error.

ldap_read() realiza la búsqueda según el filtro especificado con alcance LDAP_SCOPE_BASE, por lo que es equivalente a leer cualquier entrada del directorio.

No se permiten filtros vacios. Si se pretende obtener absolutamente toda la información, se debe usar un filtro del tipo "objectClass=*". Si conoce que tipos de entradas son usadas en el servidor de directorio es conveniente usar el filtro apropiado, como por ejemplo "objectClass=inetOrgPerson".

Esta llamada toma un cuarto parámetro opcional que es un array de los atributos requeridos. Consulte las notas de la función ldap_search().

Anterior | Inicio | Siguiente
ldap_parse_result | Subir | ldap_rename


ldap_rename

(PHP 4 >= 4.0.5)

ldap_rename -- Modify the name of an entry

Description

bool ldap_rename ( resource link_identifier, string dn, string newrdn, string newparent, bool deleteoldrdn)

The entry specified by dn is renamed/moved. The new RDN is specified by newrdn and the new parent/superior entry is specified by newparent. If the parameter deleteoldrdn is TRUE the old RDN value(s) is removed, else the old RDN value(s) is retained as non-distinguished values of the entry. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Nota: This function currently only works with LDAPv3. You may have to use ldap_set_option() prior to binding to use LDAPv3. This function is only available when using OpenLDAP 2.x.x OR Netscape Directory SDK x.x, and was added in PHP 4.0.5.

Anterior | Inicio | Siguiente
ldap_read | Subir | ldap_search


ldap_search

(PHP 3, PHP 4 )

ldap_search -- Busca en un arbol LDAP

Descripción

int ldap_search ( int identificador_de_conexion, string dn_base, string filtro [, array atributos])

Devuelve un identificador de resultado de búsqueda o falso en caso de error.

ldap_search() realiza la búsqueda según el filtro especificado con alcance LDAP_SCOPE_SUBTREE. Esto es equivalente a buscar en el directorio entero. dn_base especifica el DN base para el directorio.

Existe un cuarto parámetro opcional que puede ser añadido para restringir los atributos y valores devueltos por el servidor a sólo los requeridos. Es mucho más eficiente que la acción por defecto (que devolverá todos los atributos y sus valores asociados). El uso del cuarto parámetro debe ser por tanto considerado una práctica recomendable.

El cuerto parámetro es un array estándar de PHP con los atributos requeridos, por ejemplo array("email","sn","cn"). Nota: "dn" siempre es devuelto independientemente de que tipos de atributos sean solicitados.

También es necesario resaltar que algunos servidores de directorio están configurados para devolver un cierto número de entradas como máximo. Si esto ocurre, el servidor indicará que solo devuelve un conjunto de resultados parcial.

El filtro de búsqueda puede ser simple o avanzado, usando operadores booleanos en el formato descrito en la documentación sobre LDAP (Consulte el Netscape Directory SDK para obtener completa información sobre filtros).

El ejemplo de abajo recupera la unidad organizativa (ou), apellidos nombre común y dirección de email para todas las personas de "Mi Compañía" donde los apellidos o el nombre común contiene la subcadena $persona. Este ejemplo usa un filtro booleano para indicar al servidor que busque la información en más de un atributo.

Ejemplo 1. Búsqueda LDAP

// $ds es un identificador de conexión válido

// $persona es todo o parte del nombre de una persona, por ejemplo "Pe"

$dn = "o=Mi Compañía, c=ES";
$filtro="(|(sn=$persona*)(givenname=$persona*))";
$solonecesito = array( "ou", "sn", "givenname", "mail");

$sr=ldap_search($ds, $dn, $filtro, $solonecesito);

$info = ldap_get_entries($ds, $sr);

print $info["count"]." entradas devueltas<p>";

Anterior | Inicio | Siguiente
ldap_rename | Subir | ldap_set_option


ldap_set_option

(PHP 4 >= 4.0.4)

ldap_set_option -- Set the value of the given option

Description

bool ldap_set_option ( resource link_identifier, int option, mixed newval)

Sets the value of the specified option to be newval. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo. on error.

The parameter option can be one of: LDAP_OPT_DEREF, LDAP_OPT_SIZELIMIT, LDAP_OPT_TIMELIMIT, LDAP_OPT_PROTOCOL_VERSION, LDAP_OPT_ERROR_NUMBER, LDAP_OPT_REFERRALS, LDAP_OPT_RESTART, LDAP_OPT_HOST_NAME, LDAP_OPT_ERROR_STRING, LDAP_OPT_MATCHED_DN, LDAP_OPT_SERVER_CONTROLS, LDAP_OPT_CLIENT_CONTROLS. Here's a brief description, see draft-ietf-ldapext-ldap-c-api-xx.txt for details.

The options LDAP_OPT_DEREF, LDAP_OPT_SIZELIMIT, LDAP_OPT_TIMELIMIT, LDAP_OPT_PROTOCOL_VERSION and LDAP_OPT_ERROR_NUMBER have integer value, LDAP_OPT_REFERRALS and LDAP_OPT_RESTART have boolean value, and the options LDAP_OPT_HOST_NAME, LDAP_OPT_ERROR_STRING and LDAP_OPT_MATCHED_DN have string value. The first example illustrates their use. The options LDAP_OPT_SERVER_CONTROLS and LDAP_OPT_CLIENT_CONTROLS require a list of controls, this means that the value must be an array of controls. A control consists of an oid identifying the control, an optional value, and an optional flag for criticality. In PHP a control is given by an array containing an element with the key oid and string value, and two optional elements. The optional elements are key value with string value and key iscritical with boolean value. iscritical defaults to FALSE if not supplied. See also the second example below.

Nota: This function is only available when using OpenLDAP 2.x.x OR Netscape Directory SDK x.x, and was added in PHP 4.0.4.

Ejemplo 1. Set protocol version

<?php
// $ds is a valid link identifier for a directory server
if (ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3))
    echo "Using LDAPv3";
else
    echo "Failed to set protocol version to 3";
?>

Ejemplo 2. Set server controls

<?php
// $ds is a valid link identifier for a directory server
// control with no value
$ctrl1 = array("oid" => "1.2.752.58.10.1", "iscritical" => TRUE);
// iscritical defaults to FALSE
$ctrl2 = array("oid" => "1.2.752.58.1.10", "value" => "magic");
// try to set both controls
if (!ldap_set_option($ds, LDAP_OPT_SERVER_CONTROLS, array($ctrl1, $ctrl2)))
    echo "Failed to set server controls";
?>

See also ldap_get_option().

Anterior | Inicio | Siguiente
ldap_search | Subir | ldap_set_rebind_proc


ldap_set_rebind_proc

(PHP 4 >= 4.2.0)

ldap_set_rebind_proc -- Set a callback function to do re-binds on referral chasing.

Description

bool ldap_set_rebind_proc ( resource link, string callback)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ldap_set_option | Subir | ldap_sort


ldap_sort

(PHP 4 >= 4.2.0)

ldap_sort -- Sort LDAP result entries

Description

bool ldap_sort ( resource link, resource result, string sortfilter)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ldap_set_rebind_proc | Subir | ldap_start_tls


ldap_start_tls

(PHP 4 >= 4.2.0)

ldap_start_tls -- Start TLS

Description

bool ldap_start_tls ( resource link)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ldap_sort | Subir | ldap_t61_to_8859


ldap_t61_to_8859

(PHP 4 >= 4.0.2)

ldap_t61_to_8859 -- Translate t61 characters to 8859 characters

Description

string ldap_t61_to_8859 ( string value)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ldap_start_tls | Subir | ldap_unbind


ldap_unbind

(PHP 3, PHP 4 )

ldap_unbind -- Hace logout de un directorio LDAP

Descripción

int ldap_unbind ( int identificador_de_conexion)

Devuelve verdadero cuando finaliza correctamente y falso se produce un error.

La función ldap_unbind() hace logout, desautentifica de un directorio LDAP.

Anterior | Inicio | Siguiente
ldap_t61_to_8859 | Subir | Funciones de Correo


Funciones de Correo

Manual de PHP
Anterior Siguiente

XLIX. Funciones de Correo

The mail() Funciones que permiten enviar correo.

Tabla de contenidos
ezmlm_hash -- Calcular el valor hash que necesita EZMLM
mail -- Envía correo

Anterior | Inicio | Siguiente
ldap_unbind | Subir | ezmlm_hash


ezmlm_hash

(PHP 3>= 3.0.17, PHP 4 >= 4.0.2)

ezmlm_hash -- Calcular el valor hash que necesita EZMLM

Descripción

int ezmlm_hash ( string dir)

ezmlm_hash() calcula el valor de hash que se necesita cuando se administran listas de correo EZMLM en una base de datos MySQL.

Ejemplo 1. Cálculo de hash y suscripción de un usuario

<?php

$usuario  = "joecool@example.com";
$hash     = ezmlm_hash ($usuario);
$consulta = sprintf ("INSERT INTO ejemplo VALUES (%s, '%s')", $hash, $usuario);
$db->query($consulta); // usando la interfaz de bd PHPLIB

?>

Anterior | Inicio | Siguiente
Funciones de Correo | Subir | mail


mail

(PHP 3, PHP 4 )

mail -- Envía correo

Descripción

bool mail ( string para, string sobre, string mensaje [, string cabeceras_adicionales])

mail() envía automáticamente el mensaje especificado en mensage al destinatario especificado en para. Para especificar múltiples destinatarios se puede hacer incluyendo una coma entre las direcciones en para.

Ejemplo 1. Enviando correo.

mail("pepito@loquesea.es", "Sobre este tema", "Linea 1\nLinea 2\nLinea 3");

Si se añadiera una cadena como cuarto argumento, esta cadena sería enviada al final de la cabecera. Esto se usa normalmente para enviar cabeceras extra en los mensajes. Si se desea enviar varias cabeceras extra el mecanismo será el mismo separándolas una linea.

Ejemplo 2. Enviando correo con varias cabeceras.

mail("pepito@loquesea.es", "El tema", $message,
     "From: webmaster@$SERVER_NAME\nReply-To: webmaster@$SERVER_NAME\nX-Mailer: PHP/" . phpversion());

Anterior | Inicio | Siguiente
ezmlm_hash | Subir | Funciones mailparse


Funciones mailparse

Manual de PHP
Anterior Siguiente

L. Funciones mailparse

Introducción

Aviso

Esta extensión es EXPERIMENTAL. Esto significa que el comportamiento de esta extensión, los nombre de sus funciones y en definitiva TODO lo documentado sobre esta extensión, puede cambiar en una futura versión de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Esta extensión ha sido movida desde PHP a partir de PHP 4.2.0 y ahora mailparse existe en PECL.

Instalación

Estas funciones están disponibles únicamente si PHP fue configurado con la opción --enable-mailparse.

Tabla de contenidos
mailparse_determine_best_xfer_encoding -- Encuentra la mejor forma de codificar el contenido leído desde el apuntador de archivo fp, el cual debe tener capacidades de búsqueda
mailparse_msg_create -- Devuelve un gestor que puede ser usado para procesar un mensaje
mailparse_msg_extract_part_file -- Extrae/decodifica una sección de mensaje, operando sobre la codificación de transferencia
mailparse_msg_extract_part -- Extrae/decodifica una sección de mensaje. Si no se especifica una llamada de retorno, el contenido será enviado a "stdout"
mailparse_msg_free -- Libera un gestor ubicado por mailparse_msg_create()
mailparse_msg_get_part_data -- Devuelve una matriz asociativa de información sobre el mensaje
mailparse_msg_get_part -- Devuelve un gestor sobre una sección dada en un mensaje mime
mailparse_msg_get_structure -- Devuelve una matriz de nombres de sección mime en el mensaje dado
mailparse_msg_parse_file -- Procesar un archivo y devolver un recurso que represente la estructura
mailparse_msg_parse -- Procesar datos incrementalmente sobre un búfer
mailparse_rfc822_parse_addresses -- Procesar direcciones y devolver una matriz asociativa que contenga los datos
mailparse_stream_encode -- Secuencia datos desde un apuntador de archivo, codifica y escribe a fp_destino
mailparse_uudecode_all -- Procesa los datos desde un apuntador a archivo y extrae cada archivo embebido con codificación uu. Devuelve una matriz que lista la información de nombres de archivo

Anterior | Inicio | Siguiente
mail | Subir | mailparse_determine_best_xfer_encoding


mailparse_determine_best_xfer_encoding

(4.1.0 - 4.1.2 only)

mailparse_determine_best_xfer_encoding -- Encuentra la mejor forma de codificar el contenido leído desde el apuntador de archivo fp, el cual debe tener capacidades de búsqueda

Descripción

int mailparse_determine_best_xfer_encoding ( resource fp)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
Funciones mailparse | Subir | mailparse_msg_create


mailparse_msg_create

(4.1.0 - 4.1.2 only)

mailparse_msg_create -- Devuelve un gestor que puede ser usado para procesar un mensaje

Descripción

int mailparse_msg_create ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mailparse_determine_best_xfer_encoding | Subir | mailparse_msg_extract_part_file


mailparse_msg_extract_part_file

(4.1.0 - 4.1.2 only)

mailparse_msg_extract_part_file -- Extrae/decodifica una sección de mensaje, operando sobre la codificación de transferencia

Descripción

string mailparse_msg_extract_part_file ( resource rfc2045, string nombre_archivo [, string llamada_retorno])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mailparse_msg_create | Subir | mailparse_msg_extract_part


mailparse_msg_extract_part

(4.1.0 - 4.1.2 only)

mailparse_msg_extract_part -- Extrae/decodifica una sección de mensaje. Si no se especifica una llamada de retorno, el contenido será enviado a "stdout"

Descripción

void mailparse_msg_extract_part ( resource rfc2045, string cuerpo_mensaje [, string llamada_retorno])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mailparse_msg_extract_part_file | Subir | mailparse_msg_free


mailparse_msg_free

(4.1.0 - 4.1.2 only)

mailparse_msg_free -- Libera un gestor ubicado por mailparse_msg_create()

Descripción

void mailparse_msg_free ( resource rfc2045buf)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mailparse_msg_extract_part | Subir | mailparse_msg_get_part_data


mailparse_msg_get_part_data

(4.1.0 - 4.1.2 only)

mailparse_msg_get_part_data -- Devuelve una matriz asociativa de información sobre el mensaje

Descripción

array mailparse_msg_get_part_data ( resource rfc2045)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mailparse_msg_free | Subir | mailparse_msg_get_part


mailparse_msg_get_part

(4.1.0 - 4.1.2 only)

mailparse_msg_get_part -- Devuelve un gestor sobre una sección dada en un mensaje mime

Descripción

int mailparse_msg_get_part ( resource rfc2045, string seccion_mime)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mailparse_msg_get_part_data | Subir | mailparse_msg_get_structure


mailparse_msg_get_structure

(4.1.0 - 4.1.2 only)

mailparse_msg_get_structure -- Devuelve una matriz de nombres de sección mime en el mensaje dado

Descripción

array mailparse_msg_get_structure ( resource rfc2045)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mailparse_msg_get_part | Subir | mailparse_msg_parse_file


mailparse_msg_parse_file

(4.1.0 - 4.1.2 only)

mailparse_msg_parse_file -- Procesar un archivo y devolver un recurso que represente la estructura

Descripción

resource mailparse_msg_parse_file ( string nombre_archivo)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mailparse_msg_get_structure | Subir | mailparse_msg_parse


mailparse_msg_parse

(4.1.0 - 4.1.2 only)

mailparse_msg_parse -- Procesar datos incrementalmente sobre un búfer

Descripción

void mailparse_msg_parse ( resource rfc2045buf, string datos)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mailparse_msg_parse_file | Subir | mailparse_rfc822_parse_addresses


mailparse_rfc822_parse_addresses

(4.1.0 - 4.1.2 only)

mailparse_rfc822_parse_addresses -- Procesar direcciones y devolver una matriz asociativa que contenga los datos

Descripción

array mailparse_rfc822_parse_addresses ( string direcciones)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mailparse_msg_parse | Subir | mailparse_stream_encode


mailparse_stream_encode

(4.1.0 - 4.1.2 only)

mailparse_stream_encode -- Secuencia datos desde un apuntador de archivo, codifica y escribe a fp_destino

Descripción

bool mailparse_stream_encode ( resource fp_fuente, resource fp_destino, string codificacion)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mailparse_rfc822_parse_addresses | Subir | mailparse_uudecode_all


mailparse_uudecode_all

(no version information, might be only in CVS)

mailparse_uudecode_all -- Procesa los datos desde un apuntador a archivo y extrae cada archivo embebido con codificación uu. Devuelve una matriz que lista la información de nombres de archivo

Descripción

array mailparse_uudecode_all ( resource fp)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mailparse_stream_encode | Subir | Funciones matemáticas


Funciones matemáticas

Manual de PHP
Anterior Siguiente

LI. Funciones matemáticas

Introducción

Estas funciones matemáticas solo manejan valores dentro de los rangos de los tipos long y double de su ordenador. Si necesita manejar números mayores, pege un vistazo a funciones matemáticas de precisión arbitraria.

Constantes matemáticas

Los siguientes valores estan definidos como constantes en PHP por la extensión matemática:

Tabla 1. Constantes matemáticas

Constante | Valor | Descripción
M_PI | 3.14159265358979323846 | El valor de ¶ (pi)

Tabla de contenidos
abs -- Valor absoluto
acos -- Arco coseno
acosh -- Coseno hiperbólico inverso
asin -- Arco seno
asinh -- Seno hiperbólico inverso
atan2 -- Arco tangente de dos variables
atan -- Arco tangente
atanh -- Tangente hiperbólica inversa
base_convert -- Convierte un número entre bases arbitrarias
BinDec -- binario a decimal
ceil -- Redondea fracciones hacia arriba
cos -- coseno
cosh -- Coseno hiperbólico
DecBin -- decimal a binario
DecHex -- decimal a hexadecimal
DecOct -- decimal a octal
deg2rad -- Convierte el número en grados a su equivalente en radianes
exp -- e elevado a...
expm1 -- Devuelve exp(number) - 1, computado de una forma que es precisa incluso cuando el valor del número es cercano a cero
floor -- redondea fracciones hacia abajo
fmod -- Devuelve el residuo de punto flotante (módulo) de la división de los argumentos
getrandmax -- Muestra el mayor valor aleatorio posible
HexDec -- hexadecimal a decimal
hypot -- Devuelve sqrt( num1*num1 + num2*num2)
is_finite -- Encuentra si un valor es un número finito legal
is_infinite -- Encuentra si un valor es infinito
is_nan -- Encuentra si un valor no es un número
lcg_value -- Generador lineal congruente combinado
log10 -- Logaritmo en base-10
log1p -- Devuelve log(1 + numero), computado en una forma que es precisa incluso cuando el valor del número es cercano a cero
log -- Logaritmo natural
max -- encuentra el valor mayor
min -- encuentra el valor menor
mt_getrandmax -- muestra el mayor valor aleatorio posible
mt_rand -- genera un valor aleatorio mejorado
mt_srand -- Introduce la semilla del generador de números aleatorios mejorado
OctDec -- octal a decimal
pi -- devuelve el valor de pi
pow -- expresión exponencial
rad2deg -- Convierte el número en radianes a su equivalente en grados
rand -- genera un valor aleatorio
round -- Redondea un float.
sin -- seno
sinh -- Seno hiperbólico
sqrt -- Raíz cuadrada
srand -- introduce la semilla del generador de números aleatorios
tan -- tangente
tanh -- Tangente hiperbólica

Anterior | Inicio | Siguiente
mailparse_uudecode_all | Subir | abs


abs

(PHP 3, PHP 4 )

abs -- Valor absoluto

Descripción

mixed abs ( mixed number)

Devuelve el valor absoluto de un número. Si el número del argumento es decimal, el tipo de retorno también es decimal, de otra manera devuelve un entero.

Anterior | Inicio | Siguiente
Funciones matemáticas | Subir | acos


acos

(PHP 3, PHP 4 )

acos -- Arco coseno

Descripción

float acos ( float arg)

Devuelve el arco coseno de arg en radianes.

Vea también asin() y atan().

Anterior | Inicio | Siguiente
abs | Subir | acosh


acosh

(PHP 4 >= 4.1.0)

acosh -- Coseno hiperbólico inverso

Descripción

float acosh ( float arg)

Devuelve el coseno hiperbólico inverso de arg, esto es, el valor de cuyo coseno hiperbólico es arg.

Nota: Esta función no está implementada en plataformas Windows.

Vea también acos(), asinh() y atanh().

Anterior | Inicio | Siguiente
acos | Subir | asin


asin

(PHP 3, PHP 4 )

asin -- Arco seno

Descripción

float asin ( float arg)

Devuelve el arco seno de arg en radianes.

Vea también acos() y atan().

Anterior | Inicio | Siguiente
acosh | Subir | asinh


asinh

(PHP 4 >= 4.1.0)

asinh -- Seno hiperbólico inverso

Descripción

float asinh ( float arg)

Devuelve el seno hiperbólico inverso de arg, esto es, el valor de cuyo seno hiperbólico es arg.

Nota: Esta función no está implementada en plataformas Windows.

Vea también asin(), acosh() y atanh().

Anterior | Inicio | Siguiente
asin | Subir | atan2


atan2

(PHP 3>= 3.0.5, PHP 4 )

atan2 -- Arco tangente de dos variables

Descripción

float atan2 ( float y, float x)

Esta función calcula la arco tangente de las dos variables x e y. Es similar a el cálculo de la arco tangente de y / x, excepto que los signos de ambos argumentos son usados para determinar el cuadrante del resultado

La función devuelve el resultado en radianes, el cual está entre -PI y PI (inclusive).

Vea también acos() y atan().

Anterior | Inicio | Siguiente
asinh | Subir | atan


atan

(PHP 3, PHP 4 )

atan -- Arco tangente

Descripción

float atan ( float arg)

Devuelve la arco tangente de arg en radianes.

Vea también acos() y atan().

Anterior | Inicio | Siguiente
atan2 | Subir | atanh


atanh

(PHP 4 >= 4.1.0)

atanh -- Tangente hiperbólica inversa

Descripción

float atanh ( float arg)

Devuelve la tangente hiperbólica inversa de arg, esto es, el valor de cuya tangente hiperbólica es arg.

Nota: Esta función no está implementada en plataformas Windows.

Vea también atan(), asinh() y acosh().

Anterior | Inicio | Siguiente
atan | Subir | base_convert


base_convert

(PHP 3>= 3.0.6, PHP 4 )

base_convert -- Convierte un número entre bases arbitrarias

Descripción

strin base_convert ( string number, int frombase, int tobase)

Devuelve una cadena conteniendo el number representado en base tobase. La base en la cual number es dado viene especificada en frombase. Tanto frombase y tobase tienen que estar entre 2 y 36, inclusive. Los dígitos en números con una base mayor que 10 serán representados con las letras a-z, a vale 10, b vale 11 y z vale 36.

Ejemplo 1. base_convert()

$binary = base_convert($hexadecimal, 16, 2);

Anterior | Inicio | Siguiente
atanh | Subir | BinDec


BinDec

(PHP 3, PHP 4 )

BinDec -- binario a decimal

Descripción

int bindec ( string binary_string)

Devuelve el equivalente decimal del número binario representado por el argumento binary_string.

BinDec convierte un número binario en un número decimal. El mayor número que puede ser convertido son 31 bits de unos o 2147483647 en decimal.

Vea también la función decbin() .

Anterior | Inicio | Siguiente
base_convert | Subir | ceil


ceil

(PHP 3, PHP 4 )

ceil -- Redondea fracciones hacia arriba

Descripción

int ceil ( float number)

Devuelve el valor entero superior más cercano a number. El uso de ceil() con enteros es una perdida de tiempo absoluta.

NOTA: PHP/FI 2's ceil() devuelve un float. Use: $new = (double)ceil($number); para tener el comportamiento antiguo.

Vea también floor() y round().

Anterior | Inicio | Siguiente
BinDec | Subir | cos


cos

(PHP 3, PHP 4 )

cos -- coseno

Descripción

float cos ( float arg)

Devuelve el coseno de arg en radianes.

Vea también sin() y tan().

Anterior | Inicio | Siguiente
ceil | Subir | cosh


cosh

(PHP 4 >= 4.1.0)

cosh -- Coseno hiperbólico

Descripción

float cosh ( float arg)

Devuelve el coseno hiperbólico de arg, definido como (exp(arg) + exp(-arg))/2.

Vea también cos(), acosh(), sin() y tan().

Anterior | Inicio | Siguiente
cos | Subir | DecBin


DecBin

(PHP 3, PHP 4 )

DecBin -- decimal a binario

Descripción

string decbin ( int number)

Devuelve una cadena conteniendo la representación en binario de el número dado en el argumento. El número mayor que puede ser convertido es 2147483647 en decimal que resulta una cadena de 31 unos.

Vea también la función bindec() .

Anterior | Inicio | Siguiente
cosh | Subir | DecHex


DecHex

(PHP 3, PHP 4 )

DecHex -- decimal a hexadecimal

Descripción

string dechex ( int number)

Devuelve una cadena conteniendo la representación hexadecimal del número dado en el argumento. El mayor número que puede ser convertido es 2147483647 en decimal resultando "7fffffff".

Vea también la función hexdec() .

Anterior | Inicio | Siguiente
DecBin | Subir | DecOct


DecOct

(PHP 3, PHP 4 )

DecOct -- decimal a octal

Descripción

string decoct ( int number)

Devuelve una cadena conteniendo la representación octal del número dado en el argumento. Returns a string containing an octal representation of the given number argument. El mayor número que puede ser ocnvertido es 2147483647 en decimal resultando "17777777777". Vea también octdec().

Anterior | Inicio | Siguiente
DecHex | Subir | deg2rad


deg2rad

(PHP 3>= 3.0.4, PHP 4 )

deg2rad -- Convierte el número en grados a su equivalente en radianes

Descripción

float deg2rad ( float numero)

Esta función convierte a numero desde grados a su equivalente en radianes.

Ejemplo 1. Ejemplo de deg2rad()

<?php

echo deg2rad(45); // 0.785398163397
var_dump(deg2rad(45) === M_PI_4); // bool(true)

?>

Vea también rad2deg().

Anterior | Inicio | Siguiente
DecOct | Subir | exp


exp

(PHP 3, PHP 4 )

exp -- e elevado a...

Descripción

float exp ( float arg)

Devuelve el número e elevado a la potencia de arg.

Vea también pow().

Anterior | Inicio | Siguiente
deg2rad | Subir | expm1


expm1

(PHP 4 >= 4.1.0)

expm1 -- Devuelve exp(number) - 1, computado de una forma que es precisa incluso cuando el valor del número es cercano a cero

Descripción

float expm1 ( float numero)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
exp | Subir | floor


floor

(PHP 3, PHP 4 )

floor -- redondea fracciones hacia abajo

Descripción

float floor ( float number)

Devuelve el valor entero inferior más cercano a number. El uso de floor() con enteros es una perdida de tiempo absoluta.

NOTA: PHP/FI 2's floor() devuelve un float. Use: $new = (double)floor($number); para tener el comportamiento antiguo.

Vea también ceil() y round().

Anterior | Inicio | Siguiente
expm1 | Subir | fmod


fmod

(PHP 4 >= 4.2.0)

fmod -- Devuelve el residuo de punto flotante (módulo) de la división de los argumentos

Descripción

float fmod ( float x, float y)

Devuelve el residuo de punto flotante de dividir el dividendo (x) por el divisor (y). El residuo (r) es definido como: x = i * y + r, para algún entero i. Si y es diferente de cero, r tiene el mismo signo que x y una magnitud menor que la magnitud de y.

Ejemplo 1. Uso de fmod()

<?php
$x = 5.7;
$y = 1.3;
$r = fmod($x, $y);
// $r es igual a 0.5, ya que 4 * 1.3 + 0.5 = 5.7
?>

Anterior | Inicio | Siguiente
floor | Subir | getrandmax


getrandmax

(PHP 3, PHP 4 )

getrandmax -- Muestra el mayor valor aleatorio posible

Descripción

int getrandmax ( void )

Devuelve el valor máximo que puede devolver una llamada a rand().

Vea también rand(),
srand()
mt_rand(),
mt_srand() y
mt_getrandmax().

Anterior | Inicio | Siguiente
fmod | Subir | HexDec


HexDec

(PHP 3, PHP 4 )

HexDec -- hexadecimal a decimal

Descripción

int hexdec ( string hex_string)

Devuelve el equivalente decimal de el número hexadecimal representado por el argumento hex_string. HexDec convierte una cadena hexadecimal en un número decimal. El número mayor que puede ser convertido es 7fffffff o 2147483647 en decimal.

Vea también la función dechex() .

Anterior | Inicio | Siguiente
getrandmax | Subir | hypot


hypot

(PHP 4 >= 4.1.0)

hypot -- Devuelve sqrt( num1*num1 + num2*num2)

Descripción

float hypot ( float num1, float num2)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
HexDec | Subir | is_finite


is_finite

(PHP 4 >= 4.2.0)

is_finite -- Encuentra si un valor es un número finito legal

Descripción

bool is_finite ( float val)

Devuelve TRUE si val es un número finito legal entre el rango permitido para un flotante PHP en esta plataforma.

Vea también is_infinite() y is_nan().

Anterior | Inicio | Siguiente
hypot | Subir | is_infinite


is_infinite

(PHP 4 >= 4.2.0)

is_infinite -- Encuentra si un valor es infinito

Descripción

bool is_infinite ( float val)

Devuelve TRUE si val es infinito (positivo o negativo), como el resultado de log(0) o cualquier valor demasiado grande para caber en un flotante en esta plataforma.

Vea también is_finite() y is_nan().

Anterior | Inicio | Siguiente
is_finite | Subir | is_nan


is_nan

(PHP 4 >= 4.2.0)

is_nan -- Encuentra si un valor no es un número

Descripción

bool is_nan ( float val)

Devuelve TRUE si val no es un número ('not a number'), como el resultado de acos(1.01).

Vea también is_finite() y is_infinite().

Anterior | Inicio | Siguiente
is_infinite | Subir | lcg_value


lcg_value

(PHP 4 )

lcg_value -- Generador lineal congruente combinado

Descripción

float lcg_value ( void )

lcg_value() devuelve un número pseudo-aleatorio en el rango (0, 1). La función combina dos generadores congruentes con periodos de 2^31 - 85 y 2^31 - 249. El periodo de esta función es igual al producto de ambos primos.

Anterior | Inicio | Siguiente
is_nan | Subir | log10


log10

(PHP 3, PHP 4 )

log10 -- Logaritmo en base-10

Descripción

float log10 ( float arg)

Devuelve el logaritmo en base-10 de arg.

Anterior | Inicio | Siguiente
lcg_value | Subir | log1p


log1p

(PHP 4 >= 4.1.0)

log1p -- Devuelve log(1 + numero), computado en una forma que es precisa incluso cuando el valor del número es cercano a cero

Descripción

float log1p ( float numero)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
log10 | Subir | log


log

(PHP 3, PHP 4 )

log -- Logaritmo natural

Descripción

float log ( float arg)

Devuelve el logaritmo de arg.

Anterior | Inicio | Siguiente
log1p | Subir | max


max

(PHP 3, PHP 4 )

max -- encuentra el valor mayor

Descripción

mixed max ( mixed arg1, mixed arg2, mixed argn)

max() devuelve el número mayor de los valores de los parámetros.

Si el primer parámetro es un array, max() devuelve el mayor valor en ese array. Si el primer parámetro es un entero, string o double, necesita al menos dos parámetros y max() devuelve el mayor número de estos valores. Puede comparar un número ilimitado de valores.

Si uno o más de los valores es un double, todos los valores serán tratados como doubles, y devolverá un double. Si ninguno de los valores es un double, todos ellos serán tratados como enteros, y se devolverá un entero.

Anterior | Inicio | Siguiente
log | Subir | min


min

(PHP 3, PHP 4 )

min -- encuentra el valor menor

Descripción

mixed min ( mixed arg1, mixed arg2, mixed argn)

min() returns the numerically lowest of the parameter values.

Si el primer parámetro es un array, min() devuelve el menor valor en ese array. Si el primer parámetro es un entero, string o double, necesita al menos dos parámetros y min() devuelve el número menor de estos valores. Puede comparar un número ilimitado de valores.

Si uno o más de los valores es un double, todos los valores serán tratados como doubles, y devolverá un double. Si ninguno de los valores es un double, todos ellos serán tratados como enteros, y se devolverá un entero.

Anterior | Inicio | Siguiente
max | Subir | mt_getrandmax


mt_getrandmax

(PHP 3>= 3.0.6, PHP 4 )

mt_getrandmax -- muestra el mayor valor aleatorio posible

Descripción

int mt_getrandmax ( void )

Devuelve el valor máximo que se puede obtener con una llamada a mt_rand().

Vea también mt_rand(),
mt_srand()
rand(),
srand() y
getrandmax().

Anterior | Inicio | Siguiente
min | Subir | mt_rand


mt_rand

(PHP 3>= 3.0.6, PHP 4 )

mt_rand -- genera un valor aleatorio mejorado

Descripción

int mt_rand ( [int min [, int max]])

Muchos generadores de números aleatorios de libcs antiguas tienen características dudosas o desconocidas y son lentas. Por defecto, PHP usa el generador de números aleatorios de libc con la función rand(). La función mt_rand() es un reemplazo para esta. Usa un generador de números aleatorios con características conocidas, el Tornado de Mersenne, que es capaz de producir números aleatorios que incluso se pueden emplear para propósitos criptográficos y es cuatro veces más rápido que la media de los que provee libc. La página principal del Tornado de Mersenne puede encontrarse en http://www.math.keio.ac.jp/~matumoto/emt.html, y una versión optimizada del código del TM esta disponible en http://www.scp.syr.edu/~marc/hawk/twister.html.

Si es llamada sin los parámetros opcionales min y max mt_rand() devuelve un valor pseudo-aleatorio entre 0 y RAND_MAX. Si quiere un número aleatorio entre 5 y 15 (inclusive), use mt_rand(5,15).

Recuerde introducir la semilla del generador de números aleatorios antes de usar la instrucción con mt_srand().

Vea también mt_srand(),
mt_getrandmax(),
srand(),
rand() y
getrandmax().

Anterior | Inicio | Siguiente
mt_getrandmax | Subir | mt_srand


mt_srand

(PHP 3>= 3.0.6, PHP 4 )

mt_srand -- Introduce la semilla del generador de números aleatorios mejorado

Descripción

void mt_srand ( int seed)

Introduce la semilla seed en el generador de números aleatorios mejorado.

// seed son los microsegundos desde el último segundo "entero"
mt_srand((double)microtime()*1000000);
$randval = mt_rand();

Vea también mt_rand(),
mt_getrandmax(),
srand(),
rand() y
getrandmax().

Anterior | Inicio | Siguiente
mt_rand | Subir | OctDec


OctDec

(PHP 3, PHP 4 )

OctDec -- octal a decimal

Descripción

int octdec ( string octal_string)

Devuelve el equivalente decimal del número octal representado por el argumento octal_string. OctDec convierte una cadena octal en un número decimal. El mayor número que puede ser convertido es 17777777777 o 2147483647 en decimal.

Vea también decoct().

Anterior | Inicio | Siguiente
mt_srand | Subir | pi


pi

(PHP 3, PHP 4 )

pi -- devuelve el valor de pi

Descripción

double pi ( void )

Devuelve una aproximación de pi.

Anterior | Inicio | Siguiente
OctDec | Subir | pow


pow

(PHP 3, PHP 4 )

pow -- expresión exponencial

Descripción

float pow ( float base, float exp)

Devuelve base elevado a la potencia de exp.

Vea también exp().

Anterior | Inicio | Siguiente
pi | Subir | rad2deg


rad2deg

(PHP 3>= 3.0.4, PHP 4 )

rad2deg -- Convierte el número en radianes a su equivalente en grados

Descripción

float rad2deg ( float numero)

Esta función convierte a numero desde radianes a grados.

Ejemplo 1. Ejemplo de rad2deg()

<?php

echo rad2deg(M_PI_4); // 45

?>

Vea también deg2rad().

Anterior | Inicio | Siguiente
pow | Subir | rand


rand

(PHP 3, PHP 4 )

rand -- genera un valor aleatorio

Descripción

int rand ( [int min [, int max]])

Si es llamada sin los argumentos opcionales min y max, rand() devuelve un valor pseudo-aleatorio entre 0 y RAND_MAX. Si quiere un número aleatorio entre 5 y 15 (inclusive), por ejemplo, use rand(5,15).

Recuerde introducir la semilla del generador de números aleatorios antes de usar srand().

Vea también srand(),
getrandmax(),
mt_rand(),
mt_srand() y
mt_getrandmax().

Anterior | Inicio | Siguiente
rad2deg | Subir | round


round

(PHP 3, PHP 4 )

round -- Redondea un float.

Descripción

double round ( double val)

Devuelve el valor redondeado de val.

$foo = round( 3.4 );   // $foo == 3.0
$foo = round( 3.5 );   // $foo == 4.0
$foo = round( 3.6 );   // $foo == 4.0

Vea también ceil() y floor().

Anterior | Inicio | Siguiente
rand | Subir | sin


sin

(PHP 3, PHP 4 )

sin -- seno

Descripción

float sin ( float arg)

Devuelve el seno de arg en radianes.

Vea también cos() y tan().

Anterior | Inicio | Siguiente
round | Subir | sinh


sinh

(PHP 4 >= 4.1.0)

sinh -- Seno hiperbólico

Descripción

float sinh ( float arg)

Devuelve el seno hiperbólico de arg, definido como (exp(arg) - exp(-arg))/2.

Vea también sin(), asinh(), cos() y tan().

Anterior | Inicio | Siguiente
sin | Subir | sqrt


sqrt

(PHP 3, PHP 4 )

sqrt -- Raíz cuadrada

Descripción

float sqrt ( float arg)

Devuelve la raíz cuadrada de arg.

Anterior | Inicio | Siguiente
sinh | Subir | srand


srand

(PHP 3, PHP 4 )

srand -- introduce la semilla del generador de números aleatorios

Descripción

void srand ( int seed)

Inicializa el generador de números aleatorios con seed.

// seed son los microsegundos desde el último segundo "entero"
srand((double)microtime()*1000000);
$randval = rand();

Vea también rand(),
getrandmax(),
mt_rand(),
mt_srand() y
mt_getrandmax().

Anterior | Inicio | Siguiente
sqrt | Subir | tan


tan

(PHP 3, PHP 4 )

tan -- tangente

Descripción

float tan ( float arg)

Devuelve la tangente de arg en radianes.

Vea también sin() y cos().

Anterior | Inicio | Siguiente
srand | Subir | tanh


tanh

(PHP 4 >= 4.1.0)

tanh -- Tangente hiperbólica

Descripción

float tanh ( float arg)

Devuelve la tangente hiporbólica de arg, definida como sinh(arg)/cosh(arg).

Vea también tan(), atanh(), sin() y cos().

Anterior | Inicio | Siguiente
tan | Subir | Multi-Byte String Functions


Multi-Byte String Functions

Manual de PHP
Anterior Siguiente

LII. Multi-Byte String Functions

Introducción

There are many languages in which all characters can be expressed by single byte. Multi-byte character codes are used to express many characters for many languages. mbstring is developed to handle Japanese characters. However, many mbstring functions are able to handle character encoding other than Japanese.

A multi-byte character encoding represents single character with consecutive bytes. Some character encoding has shift(escape) sequences to start/end multi-byte character strings. Therefore, a multi-byte character string may be destroyed when it is divided and/or counted unless multi-byte character encoding safe method is used. This module provides multi-byte character safe string functions and other utility functions such as conversion functions.

Since PHP is basically designed for ISO-8859-1, some multi-byte character encoding does not work well with PHP. Therefore, it is important to set mbstring.language to appropriate language (i.e. "Japanese" for japanese) and mbstring.internal_encoding to a character encoding that works with PHP.

PHP4 Character Encoding Requirements

  • Per byte encoding

  • Single byte characters in range of 00h-7fh which is compatible with ASCII

  • Multi-byte characters without 00h-7fh

These are examples of internal character encoding that works with PHP and does NOT work with PHP.

Character encodings work with PHP:
ISO-8859-*, EUC-JP, UTF-8

Character encodings do NOT work with PHP:
JIS, SJIS

Character encoding, that does not work with PHP, may be converted with mbstring's HTTP input/output conversion feature/function.

Nota: SJIS should not be used for internal encoding unless the reader is familiar with parser/compiler, character encoding and character encoding issues.

Nota: If you use databases with PHP, it is recommended that you use the same character encoding for both database and internal encoding for ease of use and better performance.

If you are using PostgreSQL, it supports character encoding that is different from backend character encoding. See the PostgreSQL manual for details.

Instalación

mbstring is an extended module. You must enable the module with the configure script. Refer to the Install section for details.

The following configure options are related to the mbstring module.

  • --enable-mbstring=LANG: Enable mbstring functions. This option is required to use mbstring functions.

    As of PHP 4.3.0, mbstring extension provides
enhanced support for Simplified Chinese, Traditional Chinese,
Korean, and Russian in addition to Japanese.
To enable that feature, you will have to supply either one of the
following options to the LANG parameter;
--enable-mbstring=cn for Simplified Chinese support,
--enable-mbstring=tw for Traditional Chinese support,
--enable-mbstring=kr for Korean support,
--enable-mbstring=ru for Russian support, and
--enable-mbstring=ja for Japanese support.

    Also --enable-mbstring=all is convenient for you to enable all the supported languages listed above.

    Nota: Japanese language support is also enabled by --enable-mbstring without any options for the sake of backwards compatibility.

  • --enable-mbstr-enc-trans : Enable HTTP input character encoding conversion using mbstring conversion engine. If this feature is enabled, HTTP input character encoding may be converted to mbstring.internal_encoding automatically.

    Nota: As of PHP 4.3.0, the option --enable-mbstr-enc-trans will be eliminated and replaced with mbstring.encoding_translation. HTTP input character encoding conversion is enabled when this is set to On (the default is Off).

  • --enable-mbregex: Enable regular expression functions with multibyte character support.

Configuración en tiempo de ejecución

El comportamiento de estas funciones está afectado por los valores definidos en php.ini.

Tabla 1. Multi-Byte String configuration options

Name | Default | Changeable
mbstring.language | NULL | PHP_INI_ALL
mbstring.detect_order | NULL | PHP_INI_ALL
mbstring.http_input | NULL | PHP_INI_ALL
mbstring.http_output | NULL | PHP_INI_ALL
mbstring.internal_encoding | NULL | PHP_INI_ALL
mbstring.script_encoding | NULL | PHP_INI_ALL
mbstring.substitute_character | NULL | PHP_INI_ALL
mbstring.func_overload | "0" | PHP_INI_SYSTEM
mbstring.encoding_translation | "0" | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

A continuación se presenta una corta explicación de las directivas de configuración

  • mbstring.language defines default language used in mbstring. Note that this option defines mbstring.internal_encoding and mbstring.internal_encoding should be placed after mbstring.language in php.ini

  • mbstring.encoding_translation enables HTTP input character encoding detection and translation into internal chatacter encoding.

  • mbstring.internal_encoding defines default internal character encoding.

  • mbstring.http_input defines default HTTP input character encoding.

  • mbstring.http_output defines default HTTP output character encoding.

  • mbstring.detect_order defines default character code detection order. See also mb_detect_order().

  • mbstring.substitute_character defines character to substitute for invalid character encoding.

  • mbstring.func_overloadoverload(replace) single byte functions by mbstring functions. mail(), ereg(), etc. are overloaded by mb_send_mail(), mb_ereg(), etc. Possible values are 0, 1, 2, 4 or a combination of them. For example, 7 for overload everything. 0: No overload, 1: Overload mail() function, 2: Overload str*() functions, 4: Overload ereg*() functions.

Web Browsers are supposed to use the same character encoding when submitting form. However, browsers may not use the same character encoding. See mb_http_input() to detect character encoding used by browsers.

If enctype is set to multipart/form-data in HTML forms, mbstring does not convert character encoding in POST data. The user must convert them in the script, if conversion is needed.

Although, browsers are smart enough to detect character encoding in HTML. charset is better to be set in HTTP header. Change default_charset according to character encoding.

Ejemplo 1. php.ini setting example

; Set default language
mbstring.language        = Neutral; Set default language to Neutral(UTF-8) (default)
mbstring.language        = English; Set default language to English
mbstring.language        = Japanese; Set default language to Japanese

;; Set default internal encoding
;; Note: Make sure to use character encoding works with PHP
mbstring.internal_encoding    = UTF-8  ; Set internal encoding to UTF-8

;; HTTP input encoding translation is enabled.
mbstring.encoding_translation = On

;; Set default HTTP input character encoding
;; Note: Script cannot change http_input setting.
mbstring.http_input           = pass    ; No conversion.
mbstring.http_input           = auto    ; Set HTTP input to auto
                                ; "auto" is expanded to "ASCII,JIS,UTF-8,EUC-JP,SJIS"
mbstring.http_input           = SJIS    ; Set HTTP2 input to  SJIS
mbstring.http_input           = UTF-8,SJIS,EUC-JP ; Specify order

;; Set default HTTP output character encoding
mbstring.http_output          = pass    ; No conversion
mbstring.http_output          = UTF-8   ; Set HTTP output encoding to UTF-8

;; Set default character encoding detection order
mbstring.detect_order         = auto    ; Set detect order to auto
mbstring.detect_order         = ASCII,JIS,UTF-8,SJIS,EUC-JP ; Specify order

;; Set default substitute character
mbstring.substitute_character = 12307   ; Specify Unicode value
mbstring.substitute_character = none    ; Do not print character
mbstring.substitute_character = long    ; Long Example: U+3000,JIS+7E7E

Ejemplo 2. php.ini setting for EUC-JP users

;; Disable Output Buffering
output_buffering      = Off

;; Set HTTP header charset
default_charset       = EUC-JP

;; Set default language to Japanese
mbstring.language = Japanese

;; HTTP input encoding translation is enabled.
mbstring.encoding_translation = On

;; Set HTTP input encoding conversion to auto
mbstring.http_input   = auto

;; Convert HTTP output to EUC-JP
mbstring.http_output  = EUC-JP

;; Set internal encoding to EUC-JP
mbstring.internal_encoding = EUC-JP

;; Do not print invalid characters
mbstring.substitute_character = none

Ejemplo 3. php.ini setting for SJIS users

;; Enable Output Buffering
output_buffering     = On

;; Set mb_output_handler to enable output conversion
output_handler       = mb_output_handler

;; Set HTTP header charset
default_charset      = Shift_JIS

;; Set default language to Japanese
mbstring.language = Japanese

;; Set http input encoding conversion to auto
mbstring.http_input  = auto

;; Convert to SJIS
mbstring.http_output = SJIS

;; Set internal encoding to EUC-JP
mbstring.internal_encoding = EUC-JP

;; Do not print invalid characters
mbstring.substitute_character = none

Tipos de recursos

Esta extensión no tiene ningún tipo de recurso definido.

Constantes predefinidas

Estas constantes están definidas por esta extensión y estarán disponibles solamente cuando la extensión ha sido o bien compilada dentro de PHP o grabada dinámicamente en tiempo de ejecución.

MB_OVERLOAD_MAIL (integer)

MB_OVERLOAD_STRING (integer)

MB_OVERLOAD_REGEX (integer)

HTTP Input and Output

HTTP input/output character encoding conversion may convert binary data also. Users are supposed to control character encoding conversion if binary data is used for HTTP input/output.

Nota: For PHP 4.3.2 or earlier, if enctype for HTML form is set to multipart/form-data, mbstring does not convert character encoding in POST data. If it is the case, strings are needed to be converted to internal character encoding.

Nota: Since PHP 4.3.3, if enctype for HTML form is set to multipart/form-data, and, mbstring.encoding_translation is set to On in php.ini POST variables and uploaded filename will be converted to internal character encoding. But, characters specified in 'name' of HTML form will not be converted.

  • HTTP Input

    There is no way to control HTTP input character conversion from PHP script. To disable HTTP input character conversion, it has to be done in php.ini.

    Ejemplo 4. Disable HTTP input conversion in php.ini

    ;; Disable HTTP Input conversion
mbstring.http_input = pass
;; Disable HTTP Input conversion (PHP 4.3.0 or higher)
mbstring.encoding_translation = Off

    When using PHP as an Apache module, it is possible to override PHP ini setting per Virtual Host in httpd.conf or per directory with .htaccess. Refer to the Configuration section and Apache Manual for details.

  • HTTP Output

    There are several ways to enable output character encoding conversion. One is using php.ini, another is using ob_start() with mb_output_handler() as ob_start callback function.

    Nota: For PHP3-i18n users, mbstring's output conversion differs from PHP3-i18n. Character encoding is converted using output buffer.

Ejemplo 5. php.ini setting example

;; Enable output character encoding conversion for all PHP pages

;; Enable Output Buffering
output_buffering    = On

;; Set mb_output_handler to enable output conversion
output_handler      = mb_output_handler

Ejemplo 6. Script example

<?php

// Enable output character encoding conversion only for this page

// Set HTTP output character encoding to SJIS
mb_http_output('SJIS');

// Start buffering and specify "mb_output_handler" as
// callback function
ob_start('mb_output_handler');

?>

Supported Character Encodings

Currently, the following character encoding is supported by the mbstring module. Character encoding may be specified for mbstring functions' encoding parameter.

The following character encoding is supported in this PHP extension:

UCS-4, UCS-4BE, UCS-4LE, UCS-2, UCS-2BE, UCS-2LE, UTF-32, UTF-32BE, UTF-32LE, UCS-2LE, UTF-16, UTF-16BE, UTF-16LE, UTF-8, UTF-7, ASCII, EUC-JP, SJIS, eucJP-win, SJIS-win, ISO-2022-JP, JIS, ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-10, ISO-8859-13, ISO-8859-14, ISO-8859-15, byte2be, byte2le, byte4be, byte4le, BASE64, 7bit, 8bit and UTF7-IMAP.

As of PHP 4.3.0, the following character encoding support will be added experimentally : EUC-CN, CP936, HZ, EUC-TW, CP950, BIG-5, EUC-KR, UHC (CP949), ISO-2022-KR, Windows-1251 (CP1251), Windows-1252 (CP1252), CP866, KOI8-R.

php.ini entry, which accepts encoding name, accepts "auto" and "pass" also. mbstring functions, which accepts encoding name, and accepts "auto".

If "pass" is set, no character encoding conversion is performed.

If "auto" is set, it is expanded to "ASCII,JIS,UTF-8,EUC-JP,SJIS".

See also mb_detect_order()

Nota: "Supported character encoding" does not mean that it works as internal character code.

Overloading PHP string functions with multi byte string functions

Because almost PHP application written for language using single-byte character encoding, there are some difficulties for multibyte string handling including japanese. Almost PHP string functions such as substr() do not support multibyte string.

Multibyte extension (mbstring) has some PHP string functions with multibyte support (ex. substr() supports mb_substr()).

Multibyte extension (mbstring) also supports 'function overloading' to add multibyte string functionality without code modification. Using function overloading, some PHP string functions will be oveloaded multibyte string functions. For example, mb_substr() is called instead of substr() if function overloading is enabled. Function overload makes easy to port application supporting only single-byte encoding for multibyte application.

mbstring.func_overload in php.ini should be set some positive value to use function overloading. The value should specify the category of overloading functions, sbould be set 1 to enable mail function overloading. 2 to enable string functions, 4 to regular expression functions. For example, if is set for 7, mail, strings, regex functions should be overloaded. The list of overloaded functions are shown in below.

Tabla 2. Functions to be overloaded

value of mbstring.func_overload | original function | overloaded function
1 | mail() | mb_send_mail()
2 | strlen() | mb_strlen()
2 | strpos() | mb_strpos()
2 | strrpos() | mb_strrpos()
2 | substr() | mb_substr()
2 | strtolower() | mb_strtolower()
2 | strtoupper() | mb_strtoupper()
2 | substr_count() | mb_substr_count()
4 | ereg() | mb_ereg()
4 | eregi() | mb_eregi()
4 | ereg_replace() | mb_ereg_replace()
4 | eregi_replace() | mb_eregi_replace()
4 | split() | mb_split()

Basics of Japanese multi-byte characters

Most Japanese characters need more than 1 byte per character. In addition, several character encoding schemas are used under a Japanese environment. There are EUC-JP, Shift_JIS(SJIS) and ISO-2022-JP(JIS) character encoding. As Unicode becomes popular, UTF-8 is used also. To develop Web applications for a Japanese environment, it is important to use the character set for the task in hand, whether HTTP input/output, RDBMS and E-mail.

  • Storage for a character can be up to six bytes

  • A multi-byte character is usually twice of the width compared to single-byte characters. Wider characters are called "zen-kaku" - meaning full width, narrower characters are called "han-kaku" - meaning half width. "zen-kaku" characters are usually fixed width.

  • Some character encoding defines shift(escape) sequence for entering/exiting multi-byte character strings.

  • ISO-2022-JP must be used for SMTP/NNTP.

  • "i-mode" web site is supposed to use SJIS.

References

Multi-byte character encoding and its related issues are very complex. It is impossible to cover in sufficient detail here. Please refer to the following URLs and other resources for further readings.

  • Unicode/UTF/UCS/etc

    http://www.unicode.org/

  • Japanese/Korean/Chinese character information

    ftp://ftp.ora.com/pub/examples/nutshell/ujip/doc/cjk.inf

Tabla de contenidos
mb_convert_case -- Perform case folding on a string
mb_convert_encoding -- Convert character encoding
mb_convert_kana -- Convert "kana" one from another ("zen-kaku" ,"han-kaku" and more)
mb_convert_variables -- Convert character code in variable(s)
mb_decode_mimeheader -- Decode string in MIME header field
mb_decode_numericentity -- Decode HTML numeric string reference to character
mb_detect_encoding -- Detect character encoding
mb_detect_order -- Set/Get character encoding detection order
mb_encode_mimeheader -- Encode string for MIME header
mb_encode_numericentity -- Encode character to HTML numeric string reference
mb_ereg_match -- Regular expression match for multibyte string
mb_ereg_replace -- Replace regular expression with multibyte support
mb_ereg_search_getpos -- Returns start point for next regular expression match
mb_ereg_search_getregs -- Retrieve the result from the last multibyte regular expression match
mb_ereg_search_init -- Setup string and regular expression for multibyte regular expression match
mb_ereg_search_pos -- Return position and length of matched part of multibyte regular expression for predefined multibyte string
mb_ereg_search_regs -- Returns the matched part of multibyte regular expression
mb_ereg_search_setpos -- Set start point of next regular expression match
mb_ereg_search -- Multibyte regular expression match for predefined multibyte string
mb_ereg -- Regular expression match with multibyte support
mb_eregi_replace -- Replace regular expression with multibyte support ignoring case
mb_eregi -- Regular expression match ignoring case with multibyte support
mb_get_info -- Get internal settings of mbstring
mb_http_input -- Detect HTTP input character encoding
mb_http_output -- Set/Get HTTP output character encoding
mb_internal_encoding -- Set/Get internal character encoding
mb_language -- Set/Get current language
mb_output_handler -- Callback function converts character encoding in output buffer
mb_parse_str -- Parse GET/POST/COOKIE data and set global variable
mb_preferred_mime_name -- Get MIME charset string
mb_regex_encoding -- Returns current encoding for multibyte regex as string
mb_regex_set_options -- Set/Get the default options for mbregex functions
mb_send_mail -- Send encoded mail.
mb_split -- Split multibyte string using regular expression
mb_strcut -- Get part of string
mb_strimwidth -- Get truncated string with specified width
mb_strlen -- Get string length
mb_strpos -- Find position of first occurrence of string in a string
mb_strrpos -- Find position of last occurrence of a string in a string
mb_strtolower -- Make a string lowercase
mb_strtoupper -- Make a string uppercase
mb_strwidth -- Return width of string
mb_substitute_character -- Set/Get substitution character
mb_substr_count -- Count the number of substring occurrences
mb_substr -- Get part of string

Anterior | Inicio | Siguiente
tanh | Subir | mb_convert_case


mb_convert_case

(PHP 4 >= 4.3.0)

mb_convert_case -- Perform case folding on a string

Description

string mb_convert_case ( string str, int mode [, string encoding])

mb_convert_case() returns case folded version of string converted in the way specified by mode.

mode can be one of MB_CASE_UPPER, MB_CASE_LOWER or MB_CASE_TITLE.

encoding specifies the encoding of str; if omitted, the internal character encoding value will be used.

The return value is str with the appropriate case folding applied.

By contrast to the standard case folding functions such as strtolower() and strtoupper(), case folding is performed on the basis of the Unicode character properties. Thus the behaviour of this function is not affected by locale settings and it can convert any characters that have 'alphabetic' property, such as A-umlaut (Ä).

For more information about the Unicode properties, please see http://www.unicode.org/unicode/reports/tr21/.

Ejemplo 1. mb_convert_case() example

<?php
$str = "mary had a Little lamb and she loved it so";
$str = mb_convert_case($str, MB_CASE_UPPER, "UTF-8");
print $str; # Prints MARY HAD A LITTLE LAMB AND SHE LOVED IT SO
$str = mb_convert_case($str, MB_CASE_TITLE, "UTF-8");
print $str; # Prints Mary Had A Little Lamb And She Loved It So
?>

See also mb_strtolower(),
mb_strtoupper(),
strtolower() and
strtoupper().

Anterior | Inicio | Siguiente
Multi-Byte String Functions | Subir | mb_convert_encoding


mb_convert_encoding

(PHP 4 >= 4.0.6)

mb_convert_encoding -- Convert character encoding

Description

string mb_convert_encoding ( string str, string to-encoding [, mixed from-encoding])

mb_convert_encoding() converts character encoding of string str from from-encoding to to-encoding.

str : String to be converted.

from-encoding is specified by character code name before conversion. it can be array or string - comma separated enumerated list. If it is not specified, the internal encoding will be used.

Ejemplo 1. mb_convert_encoding() example

<?php
/* Convert internal character encoding to SJIS */
$str = mb_convert_encoding($str, "SJIS");

/* Convert EUC-JP to UTF-7 */
$str = mb_convert_encoding($str, "UTF-7", "EUC-JP");

/* Auto detect encoding from JIS, eucjp-win, sjis-win, then convert str to UCS-2LE */
$str = mb_convert_encoding($str, "UCS-2LE", "JIS, eucjp-win, sjis-win");

/* "auto" is expanded to "ASCII,JIS,UTF-8,EUC-JP,SJIS" */
$str = mb_convert_encoding($str, "EUC-JP", "auto");
?>

See also mb_detect_order().

Anterior | Inicio | Siguiente
mb_convert_case | Subir | mb_convert_kana


mb_convert_kana

(PHP 4 >= 4.0.6)

mb_convert_kana -- Convert "kana" one from another ("zen-kaku" ,"han-kaku" and more)

Description

string mb_convert_kana ( string str, string option [, mixed encoding])

mb_convert_kana() performs "han-kaku" - "zen-kaku" conversion for string str. It returns converted string. This function is only useful for Japanese.

option is conversion option. Default value is "KV".

encoding is character encoding. If it is omitted, internal character encoding is used.

Specify with combinaison of following options. Default value is KV.

Tabla 1. Applicable Conversion Options

Option | Meaning
r | Convert "zen-kaku" alphabets to "han-kaku"
R | Convert "han-kaku" alphabets to "zen-kaku"
n | Convert "zen-kaku" numbers to "han-kaku"
N | Convert "han-kaku" numbers to "zen-kaku"
a | Convert "zen-kaku" alphabets and numbers to "han-kaku"
A | Convert "han-kaku" alphabets and numbers to "zen-kaku" (Characters included in "a", "A" options are U+0021 - U+007E excluding U+0022, U+0027, U+005C, U+007E)
s | Convert "zen-kaku" space to "han-kaku" (U+3000 -> U+0020)
S | Convert "han-kaku" space to "zen-kaku" (U+0020 -> U+3000)
k | Convert "zen-kaku kata-kana" to "han-kaku kata-kana"
K | Convert "han-kaku kata-kana" to "zen-kaku kata-kana"
h | Convert "zen-kaku hira-gana" to "han-kaku kata-kana"
H | Convert "han-kaku kata-kana" to "zen-kaku hira-gana"
c | Convert "zen-kaku kata-kana" to "zen-kaku hira-gana"
C | Convert "zen-kaku hira-gana" to "zen-kaku kata-kana"
V | Collapse voiced sound notation and convert them into a character. Use with "K","H"

Ejemplo 1. mb_convert_kana() example

<?php
/* Convert all "kana" to "zen-kaku" "kata-kana" */
$str = mb_convert_kana($str, "KVC");

/* Convert "han-kaku" "kata-kana" to "zen-kaku" "kata-kana"
   and "zen-kaku" alpha-numeric to "han-kaku" */
$str = mb_convert_kana($str, "KVa");
?>

Anterior | Inicio | Siguiente
mb_convert_encoding | Subir | mb_convert_variables


mb_convert_variables

(PHP 4 >= 4.0.6)

mb_convert_variables -- Convert character code in variable(s)

Description

string mb_convert_variables ( string to-encoding, mixed from-encoding, mixed vars)

mb_convert_variables() convert character encoding of variables vars in encoding from-encoding to encoding to-encoding. It returns character encoding before conversion for success, FALSE for failure.

mb_convert_variables() join strings in Array or Object to detect encoding, since encoding detection tends to fail for short strings. Therefore, it is impossible to mix encoding in single array or object.

It from-encoding is specified by array or comma separated string, it tries to detect encoding from from-coding. When encoding is omitted, detect_order is used.

vars (3rd and larger) is reference to variable to be converted. String, Array and Object are accepted. mb_convert_variables() assumes all parameters have the same encoding.

Ejemplo 1. mb_convert_variables() example

<?php
/* Convert variables $post1, $post2 to internal encoding */
$interenc = mb_internal_encoding();
$inputenc = mb_convert_variables($interenc, "ASCII,UTF-8,SJIS-win", $post1, $post2);
?>

Anterior | Inicio | Siguiente
mb_convert_kana | Subir | mb_decode_mimeheader


mb_decode_mimeheader

(PHP 4 >= 4.0.6)

mb_decode_mimeheader -- Decode string in MIME header field

Description

string mb_decode_mimeheader ( string str)

mb_decode_mimeheader() decodes encoded-word string str in MIME header.

It returns decoded string in internal character encoding.

See also mb_encode_mimeheader().

Anterior | Inicio | Siguiente
mb_convert_variables | Subir | mb_decode_numericentity


mb_decode_numericentity

(PHP 4 >= 4.0.6)

mb_decode_numericentity -- Decode HTML numeric string reference to character

Description

string mb_decode_numericentity ( string str, array convmap [, string encoding])

Convert numeric string reference of string str in specified block to character. It returns converted string.

convmap is array to specifies code area to convert.

encoding is character encoding. If it is omitted, internal character encoding is used.

Ejemplo 1. convmap example

$convmap = array (
   int start_code1, int end_code1, int offset1, int mask1,
   int start_code2, int end_code2, int offset2, int mask2,
   ........
   int start_codeN, int end_codeN, int offsetN, int maskN );
// Specify Unicode value for start_codeN and end_codeN
// Add offsetN to value and take bit-wise 'AND' with maskN,
// then convert value to numeric string reference.

See also mb_encode_numericentity().

Anterior | Inicio | Siguiente
mb_decode_mimeheader | Subir | mb_detect_encoding


mb_detect_encoding

(PHP 4 >= 4.0.6)

mb_detect_encoding -- Detect character encoding

Description

string mb_detect_encoding ( string str [, mixed encoding-list])

mb_detect_encoding() detects character encoding in string str. It returns detected character encoding.

encoding-list is list of character encoding. Encoding order may be specified by array or comma separated list string.

If encoding_list is omitted, detect_order is used.

Ejemplo 1. mb_detect_encoding() example

<?php
/* Detect character encoding with current detect_order */
echo mb_detect_encoding($str);

/* "auto" is expanded to "ASCII,JIS,UTF-8,EUC-JP,SJIS" */
echo mb_detect_encoding($str, "auto");

/* Specify encoding_list character encoding by comma separated list */
echo mb_detect_encoding($str, "JIS, eucjp-win, sjis-win");

/* Use array to specify encoding_list  */
$ary[] = "ASCII";
$ary[] = "JIS";
$ary[] = "EUC-JP";
echo mb_detect_encoding($str, $ary);
?>

See also mb_detect_order().

Anterior | Inicio | Siguiente
mb_decode_numericentity | Subir | mb_detect_order


mb_detect_order

(PHP 4 >= 4.0.6)

mb_detect_order -- Set/Get character encoding detection order

Description

array mb_detect_order ( [mixed encoding-list])

mb_detect_order() sets automatic character encoding detection order to encoding-list. It returns TRUE for success, FALSE for failure.

encoding-list is array or comma separated list of character encoding. ("auto" is expanded to "ASCII, JIS, UTF-8, EUC-JP, SJIS")

If encoding-list is omitted, it returns current character encoding detection order as array.

This setting affects mb_detect_encoding() and mb_send_mail().

Nota: mbstring currently implements following encoding detection filters. If there is an invalid byte sequence for following encoding, encoding detection will fail.

Nota: UTF-8, UTF-7, ASCII, EUC-JP,SJIS, eucJP-win, SJIS-win, JIS, ISO-2022-JP

For ISO-8859-*, mbstring always detects as ISO-8859-*.

For UTF-16, UTF-32, UCS2 and UCS4, encoding detection will fail always.

Ejemplo 1. Useless detect order example

; Always detect as ISO-8859-1
detect_order = ISO-8859-1, UTF-8

; Always detect as UTF-8, since ASCII/UTF-7 values are
; valid for UTF-8
detect_order = UTF-8, ASCII, UTF-7

Ejemplo 2. mb_detect_order() examples

<?php
/* Set detection order by enumerated list */
mb_detect_order("eucjp-win,sjis-win,UTF-8");

/* Set detection order by array */
$ary[] = "ASCII";
$ary[] = "JIS";
$ary[] = "EUC-JP";
mb_detect_order($ary);

/* Display current detection order */
echo implode(", ", mb_detect_order());
?>

See also mb_internal_encoding(),
mb_http_input(),
mb_http_output() and
mb_send_mail().

Anterior | Inicio | Siguiente
mb_detect_encoding | Subir | mb_encode_mimeheader


mb_encode_mimeheader

(PHP 4 >= 4.0.6)

mb_encode_mimeheader -- Encode string for MIME header

Description

string mb_encode_mimeheader ( string str [, string charset [, string transfer-encoding [, string linefeed]]])

mb_encode_mimeheader() converts string str to encoded-word for header field. It returns converted string in ASCII encoding.

charset is character encoding name. Default is ISO-2022-JP.

transfer-encoding is transfer encoding. It should be one of "B" (Base64) or "Q" (Quoted-Printable). Default is "B".

linefeed is end of line marker. Default is "\r\n" (CRLF).

Ejemplo 1. mb_convert_kana() example

<?php
$name = ""; // kanji
$mbox = "kru";
$doma = "gtinn.mon";
$addr = mb_encode_mimeheader($name, "UTF-7", "Q") . " <" . $mbox . "@" . $doma . ">";
echo $addr;
?>

See also mb_decode_mimeheader().

Anterior | Inicio | Siguiente
mb_detect_order | Subir | mb_encode_numericentity


mb_encode_numericentity

(PHP 4 >= 4.0.6)

mb_encode_numericentity -- Encode character to HTML numeric string reference

Description

string mb_encode_numericentity ( string str, array convmap [, string encoding])

mb_encode_numericentity() converts specified character codes in string str from HTML numeric character reference to character code. It returns converted string.

convmap is array specifies code area to convert.

encoding is character encoding.

Ejemplo 1. convmap example

$convmap = array (
 int start_code1, int end_code1, int offset1, int mask1,
 int start_code2, int end_code2, int offset2, int mask2,
 ........
 int start_codeN, int end_codeN, int offsetN, int maskN );
// Specify Unicode value for start_codeN and end_codeN
// Add offsetN to value and take bit-wise 'AND' with maskN, then
// it converts value to numeric string reference.

Ejemplo 2. mb_encode_numericentity() example

<?php
/* Convert Left side of ISO-8859-1 to HTML numeric character reference */
$convmap = array(0x80, 0xff, 0, 0xff);
$str = mb_encode_numericentity($str, $convmap, "ISO-8859-1");

/* Convert user defined SJIS-win code in block 95-104 to numeric
   string reference */
$convmap = array(
       0xe000, 0xe03e, 0x1040, 0xffff,
       0xe03f, 0xe0bb, 0x1041, 0xffff,
       0xe0bc, 0xe0fa, 0x1084, 0xffff,
       0xe0fb, 0xe177, 0x1085, 0xffff,
       0xe178, 0xe1b6, 0x10c8, 0xffff,
       0xe1b7, 0xe233, 0x10c9, 0xffff,
       0xe234, 0xe272, 0x110c, 0xffff,
       0xe273, 0xe2ef, 0x110d, 0xffff,
       0xe2f0, 0xe32e, 0x1150, 0xffff,
       0xe32f, 0xe3ab, 0x1151, 0xffff );
$str = mb_encode_numericentity($str, $convmap, "sjis-win");
?>

See also mb_decode_numericentity().

Anterior | Inicio | Siguiente
mb_encode_mimeheader | Subir | mb_ereg_match


mb_ereg_match

(4.2.0 - 4.3.2 only)

mb_ereg_match -- Regular expression match for multibyte string

Description

bool mb_ereg_match ( string pattern, string string [, string option])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

mb_ereg_match() returns TRUE if string matches regular expression pattern, FALSE if not.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Nota: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg().

Anterior | Inicio | Siguiente
mb_encode_numericentity | Subir | mb_ereg_replace


mb_ereg_replace

(4.2.0 - 4.3.2 only)

mb_ereg_replace -- Replace regular expression with multibyte support

Description

string mb_ereg_replace ( string pattern, string replacement, string string [, array option])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

mb_ereg_replace() scans string for matches to pattern, then replaces the matched text with replacement and returns the result string or FALSE on error. Multibyte character can be used in pattern.

Matching condition can be set by option parameter. If i is specified for this parameter, the case will be ignored. If x is specified, white space will be ignored. If m is specified, match will be executed in multiline mode and line break will be included in '.'. If p is specified, match will be executed in POSIX mode, line break will be considered as normal character. If e is specified, replacement string will be evaluated as PHP expression.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Nota: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_eregi_replace().

Anterior | Inicio | Siguiente
mb_ereg_match | Subir | mb_ereg_search_getpos


mb_ereg_search_getpos

(4.2.0 - 4.3.2 only)

mb_ereg_search_getpos -- Returns start point for next regular expression match

Description

array mb_ereg_search_getpos ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

mb_ereg_search_getpos() returns
the point to start regular expression match for
mb_ereg_search(),
mb_ereg_search_pos(),
mb_ereg_search_regs(). The position is
represented by bytes from the head of string.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Nota: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg_search_setpos().

Anterior | Inicio | Siguiente
mb_ereg_replace | Subir | mb_ereg_search_getregs


mb_ereg_search_getregs

(4.2.0 - 4.3.2 only)

mb_ereg_search_getregs -- Retrieve the result from the last multibyte regular expression match

Description

array mb_ereg_search_getregs ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

mb_ereg_search_getregs() returns an array including the sub-string of matched part by last mb_ereg_search(), mb_ereg_search_pos(), mb_ereg_search_regs(). If there are some maches, the first element will have the matched sub-string, the second element will have the first part grouped with brackets, the third element will have the second part grouped with brackets, and so on. It returns FALSE on error;

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Nota: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg_search_init().

Anterior | Inicio | Siguiente
mb_ereg_search_getpos | Subir | mb_ereg_search_init


mb_ereg_search_init

(4.2.0 - 4.3.2 only)

mb_ereg_search_init -- Setup string and regular expression for multibyte regular expression match

Description

array mb_ereg_search_init ( string string [, string pattern [, string option]])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

mb_ereg_search_init() sets string and pattern for multibyte regular expression. These values are used for mb_ereg_search(), mb_ereg_search_pos(), mb_ereg_search_regs(). It returns TRUE for success, FALSE for error.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Nota: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg_search_regs().

Anterior | Inicio | Siguiente
mb_ereg_search_getregs | Subir | mb_ereg_search_pos


mb_ereg_search_pos

(4.2.0 - 4.3.2 only)

mb_ereg_search_pos -- Return position and length of matched part of multibyte regular expression for predefined multibyte string

Description

array mb_ereg_search_pos ( [string pattern [, string option]])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

mb_ereg_search_pos() returns an array including position of matched part for multibyte regular expression. The first element of the array will be the beggining of matched part, the second element will be length (bytes) of matched part. It returns FALSE on error.

The string for match is specified by mb_ereg_search_init(). It it is not specified, the previous one will be used.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Nota: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg_search_init().

Anterior | Inicio | Siguiente
mb_ereg_search_init | Subir | mb_ereg_search_regs


mb_ereg_search_regs

(4.2.0 - 4.3.2 only)

mb_ereg_search_regs -- Returns the matched part of multibyte regular expression

Description

array mb_ereg_search_regs ( [string pattern [, string option]])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

mb_ereg_search_regs() executes the multibyte regular expression match, and if there are some matched part, it returns an array including substring of matched part as first element, the first grouped part with brackets as second element, the second grouped part as third element, and so on. It returns FALSE on error.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Nota: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg_search_init().

Anterior | Inicio | Siguiente
mb_ereg_search_pos | Subir | mb_ereg_search_setpos


mb_ereg_search_setpos

(4.2.0 - 4.3.2 only)

mb_ereg_search_setpos -- Set start point of next regular expression match

Description

array mb_ereg_search_setpos ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

mb_ereg_search_setpos() sets the starting point of match for mb_ereg_search().

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Nota: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg_search_init().

Anterior | Inicio | Siguiente
mb_ereg_search_regs | Subir | mb_ereg_search


mb_ereg_search

(4.2.0 - 4.3.2 only)

mb_ereg_search -- Multibyte regular expression match for predefined multibyte string

Description

bool mb_ereg_search ( [string pattern [, string option]])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

mb_ereg_search() returns TRUE if the multibyte string matches with the regular expression, FALSE for otherwise. The string for matching is set by mb_ereg_search_init(). If pattern is not specified, the previous one is used.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Nota: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg_search_init().

Anterior | Inicio | Siguiente
mb_ereg_search_setpos | Subir | mb_ereg


mb_ereg

(4.2.0 - 4.3.2 only)

mb_ereg -- Regular expression match with multibyte support

Description

int mb_ereg ( string pattern, string string [, array regs])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

mb_ereg() executes the regular expression match with multibyte support, and returns 1 if matches are found. If the optional third parameter was specified, the function returns the byte length of matched part, and therarray regs will contain the substring of matched string. The functions returns 1 if it matches with the empty string. It no matche found or error happend, FALSE will be returned.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Nota: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_eregi()

Anterior | Inicio | Siguiente
mb_ereg_search | Subir | mb_eregi_replace


mb_eregi_replace

(4.2.0 - 4.3.2 only)

mb_eregi_replace -- Replace regular expression with multibyte support ignoring case

Description

string mb_eregi_replace ( string pattern, string replace, string string)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

mb_ereg_replace() scans string for matches to pattern, then replaces the matched text with replacement and returns the result string or FALSE on error. Multibyte character can be used in pattern. The case will be ignored.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Nota: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg_replace().

Anterior | Inicio | Siguiente
mb_ereg | Subir | mb_eregi


mb_eregi

(4.2.0 - 4.3.2 only)

mb_eregi -- Regular expression match ignoring case with multibyte support

Description

int mb_eregi ( string pattern, string string [, array regs])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

mb_eregi() executes the regular expression match with multibyte support, and returns 1 if matches are found. This function ignore case. If the optional third parameter was specified, the function returns the byte length of matched part, and therarray regs will contain the substring of matched string. The functions returns 1 if it matches with the empty string. It no matche found or error happend, FALSE will be returned.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Nota: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg().

Anterior | Inicio | Siguiente
mb_eregi_replace | Subir | mb_get_info


mb_get_info

(PHP 4 >= 4.2.0)

mb_get_info -- Get internal settings of mbstring

Description

string mb_get_info ( [string type])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

mb_get_info() returns internal setting parameter of mbstring.

If type isn't specified or is specified to "all", an array having the elements "internal_encoding", "http_output", "http_input", "func_overload" will be returned.

If type is specified for "http_output", "http_input", "internal_encoding", "func_overload", the specified setting parameter will be returned.

See also mb_internal_encoding(), mb_http_output().

Anterior | Inicio | Siguiente
mb_eregi | Subir | mb_http_input


mb_http_input

(PHP 4 >= 4.0.6)

mb_http_input -- Detect HTTP input character encoding

Description

string mb_http_input ( [string type])

mb_http_input() returns result of HTTP input character encoding detection.

type: Input string specifies input type. "G" for GET, "P" for POST, "C" for COOKIE. If type is omitted, it returns last input type processed.

Return Value: Character encoding name. If mb_http_input() does not process specified HTTP input, it returns FALSE.

See also mb_internal_encoding(),
mb_http_output(),
mb_detect_order().

Anterior | Inicio | Siguiente
mb_get_info | Subir | mb_http_output


mb_http_output

(PHP 4 >= 4.0.6)

mb_http_output -- Set/Get HTTP output character encoding

Description

string mb_http_output ( [string encoding])

If encoding is set, mb_http_output() sets HTTP output character encoding to encoding. Output after this function is converted to encoding. mb_http_output() returns TRUE for success and FALSE for failure.

If encoding is omitted, mb_http_output() returns current HTTP output character encoding.

See also mb_internal_encoding(),
mb_http_input(),
mb_detect_order().

Anterior | Inicio | Siguiente
mb_http_input | Subir | mb_internal_encoding


mb_internal_encoding

(PHP 4 >= 4.0.6)

mb_internal_encoding -- Set/Get internal character encoding

Description

string mb_internal_encoding ( [string encoding])

mb_internal_encoding() sets internal character encoding to encoding If parameter is omitted, it returns current internal encoding.

encoding is used for HTTP input character encoding conversion, HTTP output character encoding conversion and default character encoding for string functions defined by mbstring module.

encoding: Character encoding name

Return Value: If encoding is set,mb_internal_encoding() returns TRUE for success, otherwise returns FALSE. If encoding is omitted, it returns current character encoding name.

Ejemplo 1. mb_internal_encoding() example

<?php
/* Set internal character encoding to UTF-8 */
mb_internal_encoding("UTF-8");

/* Display current internal character encoding */
echo mb_internal_encoding();
?>

See also mb_http_input(),
mb_http_output() and
mb_detect_order().

Anterior | Inicio | Siguiente
mb_http_output | Subir | mb_language


mb_language

(PHP 4 >= 4.0.6)

mb_language -- Set/Get current language

Description

string mb_language ( [string language])

mb_language() sets language. If language is omitted, it returns current language as string.

language setting is used for encoding e-mail messages. Valid languages are "Japanese", "ja","English","en" and "uni" (UTF-8). mb_send_mail() uses this setting to encode e-mail.

Language and its setting is ISO-2022-JP/Base64 for Japanese, UTF-8/Base64 for uni, ISO-8859-1/quoted printable for English.

Return Value: If language is set and language is valid, it returns TRUE. Otherwise, it returns FALSE. When language is omitted, it returns language name as string. If no language is set previously, it returns FALSE.

See also mb_send_mail().

Anterior | Inicio | Siguiente
mb_internal_encoding | Subir | mb_output_handler


mb_output_handler

(PHP 4 >= 4.0.6)

mb_output_handler -- Callback function converts character encoding in output buffer

Description

string mb_output_handler ( string contents, int status)

mb_output_handler() is
ob_start() callback
function. mb_output_handler() converts
characters in output buffer from internal character encoding to
HTTP output character encoding.

4.1.0 or later version, this hanlder adds charset HTTP header when following conditions are met:

  • Does not set Content-Type by header()

  • Default MIME type begins with text/

  • http_output setting is other than pass

contents : Output buffer contents

status : Output buffer status

Return Value: String converted

Ejemplo 1. mb_output_handler() example

<?php
mb_http_output("UTF-8");
ob_start("mb_output_handler");
?>

Nota: If you want to output some binary data such as image from PHP script with PHP 4.3.0 or later, Content-Type: header must be send using header() before any binary data was send to client (e.g. header("Content-Type: image/png")). If Content-Type: header was send, output character encoding conversion will not be performed.

Note that if 'Content-Type: text/*' was send using header(), the sending data is regarded as text, encoding conversion will be performed using character encoding settings.

If you want to output some binary data such as image from PHP script with PHP 4.2.x or earlier, you must set output encoding to "pass" using mb_http_output().

See also ob_start().

Anterior | Inicio | Siguiente
mb_language | Subir | mb_parse_str


mb_parse_str

(PHP 4 >= 4.0.6)

mb_parse_str -- Parse GET/POST/COOKIE data and set global variable

Description

bool mb_parse_str ( string encoded_string [, array result])

mb_parse_str() parses GET/POST/COOKIE data and sets global variables. Since PHP does not provide raw POST/COOKIE data, it can only used for GET data for now. It preses URL encoded data, detects encoding, converts coding to internal encoding and set values to result array or global variables.

encoded_string: URL encoded data.

result: Array contains decoded and character encoding converted values.

Return Value: It returns TRUE for success or FALSE for failure.

See also mb_detect_order(), mb_internal_encoding().

Anterior | Inicio | Siguiente
mb_output_handler | Subir | mb_preferred_mime_name


mb_preferred_mime_name

(PHP 4 >= 4.0.6)

mb_preferred_mime_name -- Get MIME charset string

Description

string mb_preferred_mime_name ( string encoding)

mb_preferred_mime_name() returns MIME charset string for character encoding encoding. It returns charset string.

Ejemplo 1. mb_preferred_mime_string() example

<?php
$outputenc = "sjis-win";
mb_http_output($outputenc);
ob_start("mb_output_handler");
header("Content-Type: text/html; charset=" . mb_preferred_mime_name($outputenc));
?>

Anterior | Inicio | Siguiente
mb_parse_str | Subir | mb_regex_encoding


mb_regex_encoding

(4.2.0 - 4.3.2 only)

mb_regex_encoding -- Returns current encoding for multibyte regex as string

Description

string mb_regex_encoding ( [string encoding])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

mb_regex_encoding() returns the character encoding used by multibyte regex functions.

If the optional parameter encoding is specified, it is set to the character encoding for multibyte regex. The default value is the internal character encoding.

Nota: This function is supported in PHP 4.2.0 or higher.

See also: mb_internal_encoding(), mb_ereg()

Anterior | Inicio | Siguiente
mb_preferred_mime_name | Subir | mb_regex_set_options


mb_regex_set_options

(4.3.0 - 4.3.2 only)

mb_regex_set_options -- Set/Get the default options for mbregex functions

Description

string mb_regex_set_options ( [string options])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

mb_regex_set_options() sets the default options described by options for multibyte regex functions.

Returns the previous options. If options is omitted, it returns the string that describes the current options.

Nota: This function is supported in PHP 4.3.0 or higher.

See also
mb_split(),
mb_ereg() and
mb_eregi()

Anterior | Inicio | Siguiente
mb_regex_encoding | Subir | mb_send_mail


mb_send_mail

(PHP 4 >= 4.0.6)

mb_send_mail -- Send encoded mail.

Description

bool mb_send_mail ( string to, string subject, string message [, string additional_headers [, string additional_parameter]])

mb_send_mail() sends email. Headers and
message are converted and encoded according to
mb_language() setting.
mb_send_mail() is wrapper
function of mail(). See
mail() for details.

to is mail addresses send to. Multiple recipients can be specified by putting a comma between each address in to. This parameter is not automatically encoded.

subject is subject of mail.

message is mail message.

additional_headers is inserted at the end of the header. This is typically used to add extra headers. Multiple extra headers are separated with a newline ("\n").

additional_parameter is a MTA command line parameter. It is useful when setting the correct Return-Path header when using sendmail.

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

See also mail(),
mb_encode_mimeheader(), and
mb_language().

Anterior | Inicio | Siguiente
mb_regex_set_options | Subir | mb_split


mb_split

(4.2.0 - 4.3.2 only)

mb_split -- Split multibyte string using regular expression

Description

array mb_split ( string pattern, string string [, int limit])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

mb_split() split multibyte string using regular expression pattern and returns the result as an array.

If optional parameter limit is specified, it will be split in limit elements as maximum.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Nota: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg().

Anterior | Inicio | Siguiente
mb_send_mail | Subir | mb_strcut


mb_strcut

(PHP 4 >= 4.0.6)

mb_strcut -- Get part of string

Description

string mb_strcut ( string str, int start [, int length [, string encoding]])

mb_strcut() returns the portion of str specified by the start and length parameters.

mb_strcut() performs equivalent operation as mb_substr() with different method. If start position is multi-byte character's second byte or larger, it starts from first byte of multi-byte character.

It subtracts string from str that is shorter than length AND character that is not part of multi-byte string or not being middle of shift sequence.

encoding is character encoding. If it is not set, internal character encoding is used.

See also mb_substr(), mb_internal_encoding().

Anterior | Inicio | Siguiente
mb_split | Subir | mb_strimwidth


mb_strimwidth

(PHP 4 >= 4.0.6)

mb_strimwidth -- Get truncated string with specified width

Description

string mb_strimwidth ( string str, int start, int width, string trimmarker [, string encoding])

mb_strimwidth() truncates string str to specified width. It returns truncated string.

If trimmarker is set, trimmarker is appended to return value.

start is start position offset. Number of characters from the beginning of string. (First character is 0)

trimmarker is string that is added to the end of string when string is truncated.

encoding is character encoding. If it is omitted, internal encoding is used.

Ejemplo 1. mb_strimwidth() example

<?php
$str = mb_strimwidth($str, 0, 40, "..>");
?>

See also mb_strwidth() and mb_internal_encoding().

Anterior | Inicio | Siguiente
mb_strcut | Subir | mb_strlen


mb_strlen

(PHP 4 >= 4.0.6)

mb_strlen -- Get string length

Description

string mb_strlen ( string str [, string encoding])

mb_strlen() returns number of characters in string str having character encoding encoding. A multi-byte character is counted as 1.

encoding is character encoding for str. If encoding is omitted, internal character encoding is used.

See also mb_internal_encoding(), strlen().

Anterior | Inicio | Siguiente
mb_strimwidth | Subir | mb_strpos


mb_strpos

(PHP 4 >= 4.0.6)

mb_strpos -- Find position of first occurrence of string in a string

Description

int mb_strpos ( string haystack, string needle [, int offset [, string encoding]])

mb_strpos() returns the numeric position of the first occurrence of needle in the haystack string. If needle is not found, it returns FALSE.

mb_strpos() performs multi-byte safe strpos() operation based on number of characters. needle position is counted from the beginning of the haystack. First character's position is 0. Second character position is 1, and so on.

If encoding is omitted, internal character encoding is used. mb_strrpos() accepts string for needle where strrpos() accepts only character.

offset is search offset. If it is not specified, 0 is used.

encoding is character encoding name. If it is omitted, internal character encoding is used.

See also mb_strpos(),
mb_internal_encoding(),
strpos()

Anterior | Inicio | Siguiente
mb_strlen | Subir | mb_strrpos


mb_strrpos

(PHP 4 >= 4.0.6)

mb_strrpos -- Find position of last occurrence of a string in a string

Description

int mb_strrpos ( string haystack, string needle [, string encoding])

mb_strrpos() returns the numeric position of the last occurrence of needle in the haystack string. If needle is not found, it returns FALSE.

mb_strrpos() performs multi-byte safe strrpos() operation based on number of characters. needle position is counted from the beginning of haystack. First character's position is 0. Second character position is 1.

If encoding is omitted, internal encoding is assumed. mb_strrpos() accepts string for needle where strrpos() accepts only character.

encoding is character encoding. If it is not specified, internal character encoding is used.

See also mb_strpos(),
mb_internal_encoding(),
strrpos().

Anterior | Inicio | Siguiente
mb_strpos | Subir | mb_strtolower


mb_strtolower

(PHP 4 >= 4.3.0)

mb_strtolower -- Make a string lowercase

Description

string mb_strtolower ( string str [, string encoding])

mb_strtolower() returns str with all alphabetic characters converted to lowercase.

encoding specifies the encoding of str; if omitted, the internal character encoding value will be used.

For more information about the Unicode properties, please see http://www.unicode.org/unicode/reports/tr21/.

By contrast to strtolower(), 'alphabetic' is determined by the Unicode character properties. Thus the behaviour of this function is not affected by locale settings and it can convert any characters that have 'alphabetic' property, such as A-umlaut (Ä).

Ejemplo 1. mb_strtolower() example

<?php
$str = "Mary Had A Little Lamb and She LOVED It So";
$str = mb_strtolower($str);
print $str; # Prints mary had a little lamb and she loved it so
?>

See also strtolower(),
mb_strtoupper() and
mb_convert_case().

Anterior | Inicio | Siguiente
mb_strrpos | Subir | mb_strtoupper


mb_strtoupper

(PHP 4 >= 4.3.0)

mb_strtoupper -- Make a string uppercase

Description

string mb_strtoupper ( string str [, string encoding])

mb_strtoupper() returns str with all alphabetic characters converted to uppercase.

encoding specifies the encoding of str; if omitted, the internal character encoding value will be used.

By contrast to strtoupper(), 'alphabetic' is determined by the Unicode character properties. Thus the behaviour of this function is not affected by locale settings and it can convert any characters that have 'alphabetic' property, such as a-umlaut (ä).

For more information about the Unicode properties, please see http://www.unicode.org/unicode/reports/tr21/.

Ejemplo 1. mb_strtoupper() example

<?php
$str = "Mary Had A Little Lamb and She LOVED It So";
$str = mb_strtoupper($str);
print $str; # Prints MARY HAD A LITTLE LAMB AND SHE LOVED IT SO
?>

See also strtoupper(),
mb_strtolower() and
mb_convert_case().

Anterior | Inicio | Siguiente
mb_strtolower | Subir | mb_strwidth


mb_strwidth

(PHP 4 >= 4.0.6)

mb_strwidth -- Return width of string

Description

int mb_strwidth ( string str [, string encoding])

mb_strwidth() returns width of string str.

Multi-byte character usually twice of width compare to single byte character.

Tabla 1. Characters width

Chars | Width
U+0000 - U+0019 | 0
U+0020 - U+1FFF | 1
U+2000 - U+FF60 | 2
U+FF61 - U+FF9F | 1
U+FFA0 - | 2

encoding is character encoding. If it is omitted, internal encoding is used.

See also: mb_strimwidth(), mb_internal_encoding().

Anterior | Inicio | Siguiente
mb_strtoupper | Subir | mb_substitute_character


mb_substitute_character

(PHP 4 >= 4.0.6)

mb_substitute_character -- Set/Get substitution character

Description

mixed mb_substitute_character ( [mixed substrchar])

mb_substitute_character() specifies substitution character when input character encoding is invalid or character code is not exist in output character encoding. Invalid characters may be substituted NULL(no output), string or integer value (Unicode character code value).

This setting affects mb_detect_encoding() and mb_send_mail().

substchar : Specify Unicode value as integer or specify as string as follows

  • "none" : no output

  • "long" : Output character code value (Example: U+3000,JIS+7E7E)

Return Value: If substchar is set, it returns TRUE for success, otherwise returns FALSE. If substchar is not set, it returns Unicode value or "none"/"long".

Ejemplo 1. mb_substitute_character() example

<?php
/* Set with Unicode U+3013 (GETA MARK) */
mb_substitute_character(0x3013);

/* Set hex format */
mb_substitute_character("long");

/* Display current setting */
echo mb_substitute_character();
?>

Anterior | Inicio | Siguiente
mb_strwidth | Subir | mb_substr_count


mb_substr_count

(PHP 4 >= 4.3.0)

mb_substr_count -- Count the number of substring occurrences

Description

int mb_substr_count ( string haystack, string needle [, string encoding])

mb_substr_count() returns the number of times the needle substring occurs in the haystack string.

encoding specifies the encoding for needle and haystack. If omitted, internal character encoding is used.

Ejemplo 1. mb_substr_count() example

<?php
print mb_substr_count("This is a test", "is"); // prints out 2
?>

See also substr_count(), mb_strpos(), mb_substr().

Anterior | Inicio | Siguiente
mb_substitute_character | Subir | mb_substr


mb_substr

(PHP 4 >= 4.0.6)

mb_substr -- Get part of string

Description

string mb_substr ( string str, int start [, int length [, string encoding]])

mb_substr() returns the portion of str specified by the start and length parameters.

mb_substr() performs multi-byte safe substr() operation based on number of characters. Position is counted from the beginning of str. First character's position is 0. Second character position is 1, and so on.

If encoding is omitted, internal encoding is assumed.

encoding is character encoding. If it is omitted, internal character encoding is used.

See also mb_strcut(), mb_internal_encoding().

Anterior | Inicio | Siguiente
mb_substr_count | Subir | MCAL functions


MCAL functions

Manual de PHP
Anterior Siguiente

LIII. MCAL functions

MCAL stands for Modular Calendar Access Library.

Libmcal is a C library for accessing calendars. It's written to be very modular, with plugable drivers. MCAL is the calendar equivalent of the IMAP module for mailboxes.

With mcal support, a calendar stream can be opened much like the mailbox stream with the IMAP support. Calendars can be local file stores, remote ICAP servers, or other formats that are supported by the mcal library.

Calendar events can be pulled up, queried, and stored. There is also support for calendar triggers (alarms) and reoccuring events.

With libmcal, central calendar servers can be accessed and used, removing the need for any specific database or local file programming.

To get these functions to work, you have to compile PHP with --with-mcal. That requires the mcal library to be installed. Grab the latest version from http://mcal.chek.com/ and compile and install it.

The following constants are defined when using the MCAL module: MCAL_SUNDAY, MCAL_MONDAY, MCAL_TUESDAY, MCAL_WEDNESDAY, MCAL_THURSDAY, MCAL_FRIDAY, MCAL_SATURDAY, MCAL_RECUR_NONE, MCAL_RECUR_DAILY, MCAL_RECUR_WEEKLY, MCAL_RECUR_MONTHLY_MDAY, MCAL_RECUR_MONTHLY_WDAY, MCAL_RECUR_YEARLY, MCAL_JANUARY, MCAL_FEBRUARY, MCAL_MARCH, MCAL_APRIL, MCAL_MAY, MCAL_JUNE, MCAL_JULY, MCAL_AUGUGT, MCAL_SEPTEMBER, MCAL_OCTOBER, MCAL_NOVEMBER, and MCAL_DECEMBER. Most of the functions use an internal event structure that is unique for each stream. This alleviates the need to pass around large objects between functions. There are convenience functions for setting, initializing, and retrieving the event structure values.

Tabla de contenidos
mcal_append_event -- Store a new event into an MCAL calendar
mcal_close -- Close an MCAL stream
mcal_create_calendar -- Create a new MCAL calendar
mcal_date_compare -- Compares two dates
mcal_date_valid -- Returns TRUE if the given year, month, day is a valid date
mcal_day_of_week -- Returns the day of the week of the given date
mcal_day_of_year -- Returns the day of the year of the given date
mcal_days_in_month -- Returns the number of days in the given month
mcal_delete_calendar -- Delete an MCAL calendar
mcal_delete_event -- Delete an event from an MCAL calendar
mcal_event_add_attribute -- Adds an attribute and a value to the streams global event structure
mcal_event_init -- Initializes a streams global event structure
mcal_event_set_alarm -- Sets the alarm of the streams global event structure
mcal_event_set_category -- Sets the category of the streams global event structure
mcal_event_set_class -- Sets the class of the streams global event structure
mcal_event_set_description -- Sets the description of the streams global event structure
mcal_event_set_end -- Sets the end date and time of the streams global event structure
mcal_event_set_recur_daily -- Sets the recurrence of the streams global event structure
mcal_event_set_recur_monthly_mday -- Sets the recurrence of the streams global event structure
mcal_event_set_recur_monthly_wday -- Sets the recurrence of the streams global event structure
mcal_event_set_recur_none -- Sets the recurrence of the streams global event structure
mcal_event_set_recur_weekly -- Sets the recurrence of the streams global event structure
mcal_event_set_recur_yearly -- Sets the recurrence of the streams global event structure
mcal_event_set_start -- Sets the start date and time of the streams global event structure
mcal_event_set_title -- Sets the title of the streams global event structure
mcal_expunge -- Deletes all events marked for being expunged.
mcal_fetch_current_stream_event -- Returns an object containing the current streams event structure
mcal_fetch_event -- Fetches an event from the calendar stream
mcal_is_leap_year -- Returns if the given year is a leap year or not
mcal_list_alarms -- Return a list of events that has an alarm triggered at the given datetime
mcal_list_events -- Return a list of events between two given datetimes
mcal_next_recurrence -- Returns the next recurrence of the event
mcal_open -- Opens up an MCAL connection
mcal_popen -- Opens up a persistent MCAL connection
mcal_rename_calendar -- Rename an MCAL calendar
mcal_reopen -- Reopens an MCAL connection
mcal_snooze -- Turn off an alarm for an event
mcal_store_event -- Modify an existing event in an MCAL calendar
mcal_time_valid -- Returns TRUE if the given year, month, day is a valid time
mcal_week_of_year -- Returns the week number of the given date

Anterior | Inicio | Siguiente
mb_substr | Subir | mcal_append_event


mcal_append_event

(PHP 4 )

mcal_append_event -- Store a new event into an MCAL calendar

Description

int mcal_append_event ( int mcal_stream)

mcal_append_event() Stores the global event into an MCAL calendar for the given stream.

Returns the uid of the newly inserted event.

Anterior | Inicio | Siguiente
MCAL functions | Subir | mcal_close


mcal_close

(PHP 3>= 3.0.13, PHP 4 )

mcal_close -- Close an MCAL stream

Description

int mcal_close ( int mcal_stream, int flags)

Closes the given mcal stream.

Anterior | Inicio | Siguiente
mcal_append_event | Subir | mcal_create_calendar


mcal_create_calendar

(PHP 3>= 3.0.13, PHP 4 )

mcal_create_calendar -- Create a new MCAL calendar

Description

bool mcal_create_calendar ( int stream, string calendar)

Creates a new calendar named calendar.

Anterior | Inicio | Siguiente
mcal_close | Subir | mcal_date_compare


mcal_date_compare

(PHP 3>= 3.0.13, PHP 4 )

mcal_date_compare -- Compares two dates

Description

int mcal_date_compare ( int a_year, int a_month, int a_day, int b_year, int b_month, int b_day)

mcal_date_compare() Compares the two given dates, returns <0, 0, >0 if a<b, a==b, a>b respectively

Anterior | Inicio | Siguiente
mcal_create_calendar | Subir | mcal_date_valid


mcal_date_valid

(PHP 3>= 3.0.13, PHP 4 )

mcal_date_valid -- Returns TRUE if the given year, month, day is a valid date

Description

int mcal_date_valid ( int year, int month, int day)

mcal_date_valid() Returns TRUE if the given year, month and day is a valid date, FALSE if not.

Anterior | Inicio | Siguiente
mcal_date_compare | Subir | mcal_day_of_week


mcal_day_of_week

(PHP 3>= 3.0.13, PHP 4 )

mcal_day_of_week -- Returns the day of the week of the given date

Description

int mcal_ ( int year, int month, int day)

mcal_day_of_week() returns the day of the week of the given date

Anterior | Inicio | Siguiente
mcal_date_valid | Subir | mcal_day_of_year


mcal_day_of_year

(PHP 3>= 3.0.13, PHP 4 )

mcal_day_of_year -- Returns the day of the year of the given date

Description

int mcal_ ( int year, int month, int day)

mcal_day_of_year() returns the day of the year of the given date

Anterior | Inicio | Siguiente
mcal_day_of_week | Subir | mcal_days_in_month


mcal_days_in_month

(PHP 3>= 3.0.13, PHP 4 )

mcal_days_in_month -- Returns the number of days in the given month

Description

int mcal_days_in_month ( int month, int leap year)

mcal_days_in_month() Returns the number of days in the given month, taking into account if the given year is a leap year or not.

Anterior | Inicio | Siguiente
mcal_day_of_year | Subir | mcal_delete_calendar


mcal_delete_calendar

(PHP 3>= 3.0.13, PHP 4 )

mcal_delete_calendar -- Delete an MCAL calendar

Description

string mcal_delete_calendar ( int stream, string calendar)

Deletes the calendar named calendar.

Anterior | Inicio | Siguiente
mcal_days_in_month | Subir | mcal_delete_event


mcal_delete_event

(PHP 3>= 3.0.13, PHP 4 )

mcal_delete_event -- Delete an event from an MCAL calendar

Description

int mcal_delete_event ( int uid)

mcal_delete_event() deletes the calendar event specified by the uid.

Returns TRUE.

Anterior | Inicio | Siguiente
mcal_delete_calendar | Subir | mcal_event_add_attribute


mcal_event_add_attribute

(PHP 3>= 3.0.15, PHP 4 )

mcal_event_add_attribute -- Adds an attribute and a value to the streams global event structure

Description

void mcal_event_add_attribute ( int stream, string attribute, string value)

mcal_event_add_attribute() adds an attribute to the stream's global event structure with the value given by "value" .

Anterior | Inicio | Siguiente
mcal_delete_event | Subir | mcal_event_init


mcal_event_init

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_init -- Initializes a streams global event structure

Description

int mcal_event_init ( int stream)

mcal_event_init() initializes a streams global event structure. this effectively sets all elements of the structure to 0, or the default settings.

Returns TRUE.

Anterior | Inicio | Siguiente
mcal_event_add_attribute | Subir | mcal_event_set_alarm


mcal_event_set_alarm

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_alarm -- Sets the alarm of the streams global event structure

Description

int mcal_event_set_alarm ( int stream, int alarm)

mcal_event_set_alarm() sets the streams global event structure's alarm to the given minutes before the event.

Returns TRUE.

Anterior | Inicio | Siguiente
mcal_event_init | Subir | mcal_event_set_category


mcal_event_set_category

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_category -- Sets the category of the streams global event structure

Description

int mcal_event_set_category ( int stream, string category)

mcal_event_set_category() sets the streams global event structure's category to the given string.

Returns TRUE.

Anterior | Inicio | Siguiente
mcal_event_set_alarm | Subir | mcal_event_set_class


mcal_event_set_class

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_class -- Sets the class of the streams global event structure

Description

int mcal_event_set_class ( int stream, int class)

mcal_event_set_class() sets the streams global event structure's class to the given value. The class is either 1 for public, or 0 for private.

Returns TRUE.

Anterior | Inicio | Siguiente
mcal_event_set_category | Subir | mcal_event_set_description


mcal_event_set_description

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_description -- Sets the description of the streams global event structure

Description

int mcal_event_set_description ( int stream, string description)

mcal_event_set_description() sets the streams global event structure's description to the given string.

Returns TRUE.

Anterior | Inicio | Siguiente
mcal_event_set_class | Subir | mcal_event_set_end


mcal_event_set_end

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_end -- Sets the end date and time of the streams global event structure

Description

int mcal_event_set_end ( int stream, int year, int month [, int day [, int hour [, int min [, int sec]]]])

mcal_event_set_end() sets the streams global event structure's end date and time to the given values.

Returns TRUE.

Anterior | Inicio | Siguiente
mcal_event_set_description | Subir | mcal_event_set_recur_daily


mcal_event_set_recur_daily

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_recur_daily -- Sets the recurrence of the streams global event structure

Description

int mcal_event_set_recur_daily ( int stream, int year, int month, int day, int interval)

mcal_event_set_recur_daily() sets the streams global event structure's recurrence to the given value to be reoccuring on a daily basis, ending at the given date.

Anterior | Inicio | Siguiente
mcal_event_set_end | Subir | mcal_event_set_recur_monthly_mday


mcal_event_set_recur_monthly_mday

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_recur_monthly_mday -- Sets the recurrence of the streams global event structure

Description

int mcal_event_set_recur_monthly_mday ( int stream, int year, int month, int day, int interval)

mcal_event_set_recur_monthly_mday() sets the streams global event structure's recurrence to the given value to be reoccuring on a monthly by month day basis, ending at the given date.

Anterior | Inicio | Siguiente
mcal_event_set_recur_daily | Subir | mcal_event_set_recur_monthly_wday


mcal_event_set_recur_monthly_wday

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_recur_monthly_wday -- Sets the recurrence of the streams global event structure

Description

int mcal_event_set_recur_monthly_wday ( int stream, int year, int month, int day, int interval)

mcal_event_set_recur_monthly_wday() sets the streams global event structure's recurrence to the given value to be reoccuring on a monthly by week basis, ending at the given date.

Anterior | Inicio | Siguiente
mcal_event_set_recur_monthly_mday | Subir | mcal_event_set_recur_none


mcal_event_set_recur_none

(PHP 3>= 3.0.15, PHP 4 )

mcal_event_set_recur_none -- Sets the recurrence of the streams global event structure

Description

int mcal_event_set_recur_none ( int stream)

mcal_event_set_recur_none() sets the streams global event structure to not recur (event->recur_type is set to MCAL_RECUR_NONE).

Anterior | Inicio | Siguiente
mcal_event_set_recur_monthly_wday | Subir | mcal_event_set_recur_weekly


mcal_event_set_recur_weekly

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_recur_weekly -- Sets the recurrence of the streams global event structure

Description

int mcal_event_set_recur_weekly ( int stream, int year, int month, int day, int interval, int weekdays)

mcal_event_set_recur_weekly() sets the streams global event structure's recurrence to the given value to be reoccuring on a weekly basis, ending at the given date.

Anterior | Inicio | Siguiente
mcal_event_set_recur_none | Subir | mcal_event_set_recur_yearly


mcal_event_set_recur_yearly

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_recur_yearly -- Sets the recurrence of the streams global event structure

Description

int mcal_event_set_recur_yearly ( int stream, int year, int month, int day, int interval)

mcal_event_set_recur_yearly() sets the streams global event structure's recurrence to the given value to be reoccuring on a yearly basis,ending at the given date .

Anterior | Inicio | Siguiente
mcal_event_set_recur_weekly | Subir | mcal_event_set_start


mcal_event_set_start

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_start -- Sets the start date and time of the streams global event structure

Description

int mcal_event_set_start ( int stream, int year, int month [, int day [, int hour [, int min [, int sec]]]])

mcal_event_set_start() sets the streams global event structure's start date and time to the given values.

Returns TRUE.

Anterior | Inicio | Siguiente
mcal_event_set_recur_yearly | Subir | mcal_event_set_title


mcal_event_set_title

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_title -- Sets the title of the streams global event structure

Description

int mcal_event_set_title ( int stream, string title)

mcal_event_set_title() sets the streams global event structure's title to the given string.

Returns TRUE.

Anterior | Inicio | Siguiente
mcal_event_set_start | Subir | mcal_expunge


mcal_expunge

(no version information, might be only in CVS)

mcal_expunge -- Deletes all events marked for being expunged.

Description

int mcal_expunge ( int stream)

mcal_expunge() deletes all events which have been previously marked for deletion.

Anterior | Inicio | Siguiente
mcal_event_set_title | Subir | mcal_fetch_current_stream_event


mcal_fetch_current_stream_event

(PHP 3>= 3.0.13, PHP 4 )

mcal_fetch_current_stream_event -- Returns an object containing the current streams event structure

Description

int mcal_fetch_current_stream_event ( int stream)

mcal_event_fetch_current_stream_event() returns the current stream's event structure as an object containing:

  • int id - ID of that event.

  • int public - TRUE if the event if public, FALSE if it is private.

  • string category - Category string of the event.

  • string title - Title string of the event.

  • string description - Description string of the event.

  • int alarm - number of minutes before the event to send an alarm/reminder.

  • object start - Object containing a datetime entry.

  • object end - Object containing a datetime entry.

  • int recur_type - recurrence type

  • int recur_interval - recurrence interval

  • datetime recur_enddate - recurrence end date

  • int recur_data - recurrence data

All datetime entries consist of an object that contains:

  • int year - year

  • int month - month

  • int mday - day of month

  • int hour - hour

  • int min - minutes

  • int sec - seconds

  • int alarm - minutes before event to send an alarm

Anterior | Inicio | Siguiente
mcal_expunge | Subir | mcal_fetch_event


mcal_fetch_event

(PHP 3>= 3.0.13, PHP 4 )

mcal_fetch_event -- Fetches an event from the calendar stream

Description

object mcal_fetch_event ( int mcal_stream, int event_id [, int options])

mcal_fetch_event() fetches an event from the calendar stream specified by id.

Returns an event object consisting of:

  • int id - ID of that event.

  • int public - TRUE if the event if public, FALSE if it is private.

  • string category - Category string of the event.

  • string title - Title string of the event.

  • string description - Description string of the event.

  • int alarm - number of minutes before the event to send an alarm/reminder.

  • object start - Object containing a datetime entry.

  • object end - Object containing a datetime entry.

  • int recur_type - recurrence type

  • int recur_interval - recurrence interval

  • datetime recur_enddate - recurrence end date

  • int recur_data - recurrence data

All datetime entries consist of an object that contains:

  • int year - year

  • int month - month

  • int mday - day of month

  • int hour - hour

  • int min - minutes

  • int sec - seconds

  • int alarm - minutes before event to send an alarm

Anterior | Inicio | Siguiente
mcal_fetch_current_stream_event | Subir | mcal_is_leap_year


mcal_is_leap_year

(PHP 3>= 3.0.13, PHP 4 )

mcal_is_leap_year -- Returns if the given year is a leap year or not

Description

int mcal_is_leap_year ( int year)

mcal_is_leap_year() returns 1 if the given year is a leap year, 1 if not.

Anterior | Inicio | Siguiente
mcal_fetch_event | Subir | mcal_list_alarms


mcal_list_alarms

(PHP 3>= 3.0.13, PHP 4 )

mcal_list_alarms -- Return a list of events that has an alarm triggered at the given datetime

Description

array mcal_list_events ( int mcal_stream [, int begin_year [, int begin_month [, int begin_day [, int end_year [, int end_month [, int end_day]]]]]])

Returns an array of event ID's that has an alarm going off between the start and end dates, or if just a stream is given, uses the start and end dates in the global event structure.

mcal_list_events() function takes in an optional beginning date and an end date for a calendar stream. An array of event id's that are between the given dates or the internal event dates are returned.

Anterior | Inicio | Siguiente
mcal_is_leap_year | Subir | mcal_list_events


mcal_list_events

(PHP 3>= 3.0.13, PHP 4 )

mcal_list_events -- Return a list of events between two given datetimes

Description

array mcal_list_events ( int mcal_stream [, int begin_year [, int begin_month [, int begin_day [, int end_year [, int end_month [, int end_day]]]]]])

Returns an array of event ID's that are between the start and end dates, or if just a stream is given, uses the start and end dates in the global event structure.

mcal_list_events() function takes in an optional beginning date and an end date for a calendar stream. An array of event id's that are between the given dates or the internal event dates are returned.

Anterior | Inicio | Siguiente
mcal_list_alarms | Subir | mcal_next_recurrence


mcal_next_recurrence

(PHP 3>= 3.0.13, PHP 4 )

mcal_next_recurrence -- Returns the next recurrence of the event

Description

int mcal_next_recurrence ( int stream, int weekstart, array next)

mcal_next_recurrence() returns an object filled with the next date the event occurs, on or after the supplied date. Returns empty date field if event does not occur or something is invalid. Uses weekstart to determine what day is considered the beginning of the week.

Anterior | Inicio | Siguiente
mcal_list_events | Subir | mcal_open


mcal_open

(PHP 3>= 3.0.13, PHP 4 )

mcal_open -- Opens up an MCAL connection

Description

int mcal_open ( string calendar, string username, string password, string options)

Returns an MCAL stream on success, FALSE on error.

mcal_open() opens up an MCAL connection to the specified calendar store. If the optional options is specified, passes the options to that mailbox also. The streams internal event structure is also initialized upon connection.

Anterior | Inicio | Siguiente
mcal_next_recurrence | Subir | mcal_popen


mcal_popen

(PHP 3>= 3.0.13, PHP 4 )

mcal_popen -- Opens up a persistent MCAL connection

Description

int mcal_popen ( string calendar, string username, string password [, int options])

Returns an MCAL stream on success, FALSE on error.

mcal_popen() opens up an MCAL connection to the specified calendar store. If the optional options is specified, passes the options to that mailbox also. The streams internal event structure is also initialized upon connection.

Anterior | Inicio | Siguiente
mcal_open | Subir | mcal_rename_calendar


mcal_rename_calendar

(PHP 3>= 3.0.13, PHP 4 )

mcal_rename_calendar -- Rename an MCAL calendar

Description

string mcal_rename_calendar ( int stream, string old_name, string new_name)

Renames the calendar old_name to new_name.

Anterior | Inicio | Siguiente
mcal_popen | Subir | mcal_reopen


mcal_reopen

(PHP 3>= 3.0.13, PHP 4 )

mcal_reopen -- Reopens an MCAL connection

Description

int mcal_reopen ( string calendar [, int options])

Reopens an MCAL stream to a new calendar.

mcal_reopen() reopens an MCAL connection to the specified calendar store. If the optional options is specified, passes the options to that mailbox also.

Anterior | Inicio | Siguiente
mcal_rename_calendar | Subir | mcal_snooze


mcal_snooze

(PHP 3>= 3.0.13, PHP 4 )

mcal_snooze -- Turn off an alarm for an event

Description

int mcal_snooze ( int uid)

mcal_snooze() turns off an alarm for a calendar event specified by the uid.

Returns TRUE.

Anterior | Inicio | Siguiente
mcal_reopen | Subir | mcal_store_event


mcal_store_event

(PHP 3>= 3.0.13, PHP 4 )

mcal_store_event -- Modify an existing event in an MCAL calendar

Description

int mcal_store_event ( int mcal_stream)

mcal_store_event() Stores the modifications to the current global event for the given stream.

Returns TRUE on success and FALSE on error.

Anterior | Inicio | Siguiente
mcal_snooze | Subir | mcal_time_valid


mcal_time_valid

(PHP 3>= 3.0.13, PHP 4 )

mcal_time_valid -- Returns TRUE if the given year, month, day is a valid time

Description

int mcal_time_valid ( int hour, int minutes, int seconds)

mcal_time_valid() Returns TRUE if the given hour, minutes and seconds is a valid time, FALSE if not.

Anterior | Inicio | Siguiente
mcal_store_event | Subir | mcal_week_of_year


mcal_week_of_year

(PHP 4 )

mcal_week_of_year -- Returns the week number of the given date

Description

int mcal_week_of_year ( int day, int month, int year)

Anterior | Inicio | Siguiente
mcal_time_valid | Subir | Funciones Criptográficas


Funciones Criptográficas

Manual de PHP
Anterior Siguiente

LIV. Funciones Criptográficas

Estas funciones trabajan usando mcrypt.

Esta es una interfaz a la librería mcrypt, que soporta una gran variedad de algoritmos de bloque como DES, TripleDES, Blowfish (por defecto), 3-WAY, SAFER-SK64, SAFER-SK128, TWOFISH, TEA, RC2 y GOST en los modos de cifrado CBC, OFB, CFB y ECB. Adicionalmente, soporta RC6 e IDEA que se consideran "no-libres".

Para usarlos, descarga libmcrypt-x.x.tar.gz de aquí y sigue las instrucciones de instalación incluidas. Necesitas compilar PHP con el parámetro --with-mcrypt para activar esta extensión.

mcrypt puede usarse para encriptar y desencriptar usando los cifrados mencionados arriba. Los cuatro comandos importantes de mcrypt (mcrypt_cfb(), mcrypt_cbc(), mcrypt_ecb(), y mcrypt_ofb()) pueden operar en ambos modos que se llaman MCRYPT_ENCRYPT y MCRYPT_DECRYPT, respectivamente.

Ejemplo 1. Encripta un valor de entrada con TripleDES en modo ECB

<?php
$key = "esta es una clave muy secreta";
$input = "Nos vemos a las 9 en punto en el lugar secreto.";

$encrypted_data = mcrypt_ecb(MCRYPT_TripleDES, $key, $input, MCRYPT_ENCRYPT);
?>
Este ejemplo devolverá los datos encriptados como una cadena en $encrypted_data.

mcrypt puede operar en cuatro modos de cifrado (CBC, OFB, CFB y ECB). Perfilaremos el uso normal de cada uno de estos modos. Para una mejor referencia y una discusión más completa ver Applied Cryptography by Schneier (ISBN 0-471-11709-9).

  • ECB (electronic codebook o libro de códigos electrónico) va bien para datos aleatorios, tales como encriptar otras claves. Puesto que los datos son cortos y aleatorios, las desventajas de ECB tienen un efecto negativo favorable.

  • CBC (cipher block chaining o cifrado en bloque encadenado) es especialmente útil para encriptar ficheros, donde incrementa significativamente la seguridad por encima de ECB.

  • CFB (cipher feedback o cifrado realimentado) es el mejor modo de encriptar flujos de bytes donde cada byte debe ser encriptado.

  • OFB (output feedback o salida realimentada) es comparable al CFB, pero puede usarse en aplicaciones donde la propagación de errores no puede tolerarse.

Actualmente PHP no soporta el encriptado/desencriptado de flujos de bits. Por ahora, sólo soporta el manejo de cadenas.

Para una lista completa de los cifrados soportados, ver las definiciones al final de mcrypt.h. La regla general es que se puede acceder al cifrado desde PHP con MCRYPT_nombredelcifrado.

Aquí hay una pequeña lista de los cifrados que estan soportados actualmente por la extensión mcrypt. Si un cifrado no está listado aquí, pero está listado por mcrypt como soportado, puedes asumir con seguridad que ésta documentación está caduca.

  • MCRYPT_BLOWFISH

  • MCRYPT_DES

  • MCRYPT_TripleDES

  • MCRYPT_ThreeWAY

  • MCRYPT_GOST

  • MCRYPT_CRYPT

  • MCRYPT_DES_COMPAT

  • MCRYPT_SAFER64

  • MCRYPT_SAFER128

  • MCRYPT_CAST128

  • MCRYPT_TEAN

  • MCRYPT_RC2

  • MCRYPT_TWOFISH (para las antiguas versiones mcrypt 2.x)

  • MCRYPT_TWOFISH128 (TWOFISHxxx está disponible en las versiones más nuevas 2.x)

  • MCRYPT_TWOFISH192

  • MCRYPT_TWOFISH256

  • MCRYPT_RC6

  • MCRYPT_IDEA

Debes (en los modos CFB y OFB) o puedes (en el modo CBC) suministrar un vector de inicialización (IV) a la correspondiente función de cifrado. El IV debe ser único y debe ser el mismo cuando desencriptas o encriptas. Con datos que son guardados encriptados, puedes cojer la salida de una función de índice bajo la cual los datos son almacenados (ej. la clave MD5 de un fichero). Alternativamente, puedes transmitir el IV junto con los datos encriptados (ver capítulo 9.3 de Applied Cryptography by Schneier (ISBN 0-471-11709-9) para una discusión de éste asunto).

Tabla de contenidos
mcrypt_cbc -- Encripta/desencripta datos en modo CBC
mcrypt_cfb -- Encripta/desencripta datos en modo CFB
mcrypt_create_iv -- Crea un vector de inicialización (IV) a partir de una fuente aleatoria
mcrypt_decrypt -- Decrypts crypttext with given parameters
mcrypt_ecb -- Encripta/desencripta datos en modo ECB
mcrypt_enc_get_algorithms_name -- Returns the name of the opened algorithm
mcrypt_enc_get_block_size -- Returns the blocksize of the opened algorithm
mcrypt_enc_get_iv_size -- Returns the size of the IV of the opened algorithm
mcrypt_enc_get_key_size -- Returns the maximum supported keysize of the opened mode
mcrypt_enc_get_modes_name -- Returns the name of the opened mode
mcrypt_enc_get_supported_key_sizes -- Returns an array with the supported keysizes of the opened algorithm
mcrypt_enc_is_block_algorithm_mode -- Checks whether the encryption of the opened mode works on blocks
mcrypt_enc_is_block_algorithm -- Checks whether the algorithm of the opened mode is a block algorithm
mcrypt_enc_is_block_mode -- Checks whether the opened mode outputs blocks
mcrypt_enc_self_test -- This function runs a self test on the opened module
mcrypt_encrypt -- Encrypts plaintext with given parameters
mcrypt_generic_deinit -- This function deinitializes an encryption module
mcrypt_generic_end -- This function terminates encryption
mcrypt_generic_init -- This function initializes all buffers needed for encryption
mcrypt_generic -- This function encrypts data
mcrypt_get_block_size -- Obtiene el tamaño de bloque del cifrado indicado
mcrypt_get_cipher_name -- Obtiene el nombre del cifrado especificado
mcrypt_get_iv_size -- Returns the size of the IV belonging to a specific cipher/mode combination
mcrypt_get_key_size -- Obtiene el tamaño de la clave de un cifrado
mcrypt_list_algorithms -- Get an array of all supported ciphers
mcrypt_list_modes -- Get an array of all supported modes
mcrypt_module_close -- Close the mcrypt module
mcrypt_module_get_algo_block_size -- Returns the blocksize of the specified algorithm
mcrypt_module_get_algo_key_size -- Returns the maximum supported keysize of the opened mode
mcrypt_module_get_supported_key_sizes -- Returns an array with the supported keysizes of the opened algorithm
mcrypt_module_is_block_algorithm_mode -- This function returns if the the specified module is a block algorithm or not
mcrypt_module_is_block_algorithm -- This function checks whether the specified algorithm is a block algorithm
mcrypt_module_is_block_mode -- This function returns if the the specified mode outputs blocks or not
mcrypt_module_open -- Opens the module of the algorithm and the mode to be used
mcrypt_module_self_test -- This function runs a self test on the specified module
mcrypt_ofb -- Encripta/desencripta datos en modo OFB
mdecrypt_generic -- Decrypt data

Anterior | Inicio | Siguiente
mcal_week_of_year | Subir | mcrypt_cbc


mcrypt_cbc

(PHP 3>= 3.0.8, PHP 4 )

mcrypt_cbc -- Encripta/desencripta datos en modo CBC

Descripción

int mcrypt_cbc ( int cipher, string key, string data, int mode [, string iv])

mcrypt_cbc() encripta o desencripta (dependiendo de mode) los datos data con el cifrado cipher y la clave key en el modo de cifrado CBC y devuelve la cadena resultante.

El parámetro cipher es una de las constantes con nombre MCRYPT_nombrecifrado.

key es la clave suministrada al algoritmo. Debe guardarse en secreto.

data son los datos que serán encriptados/desencriptados.

mode es MCRYPT_ENCRYPT o MCRYPT_DECRYPT.

iv es el vector de inicialización opcional.

Ver también:
mcrypt_cfb(),
mcrypt_ecb(),
mcrypt_ofb()

Anterior | Inicio | Siguiente
Funciones Criptográficas | Subir | mcrypt_cfb


mcrypt_cfb

(PHP 3>= 3.0.8, PHP 4 )

mcrypt_cfb -- Encripta/desencripta datos en modo CFB

Descripción

int mcrypt_cfb ( int cipher, string key, string data, int mode, string iv)

mcrypt_cfb() encripta o desencripta (dependiendo de mode) los datos data con el cifrado cipher y la clave key en el modo de cifrado CFB y devuelve la cadena resultante.

El parámetro cipher es una de las constantes con nombre MCRYPT_nombrecifrado.

key es la clave suministrada al algoritmo. Debe guardarse en secreto.

data son los datos que serán encriptados/desencriptados.

mode es MCRYPT_ENCRYPT o MCRYPT_DECRYPT.

iv es el vector de inicialización.

Ver también:
mcrypt_cbc(),
mcrypt_ecb(),
mcrypt_ofb()

Anterior | Inicio | Siguiente
mcrypt_cbc | Subir | mcrypt_create_iv


mcrypt_create_iv

(PHP 3>= 3.0.8, PHP 4 )

mcrypt_create_iv -- Crea un vector de inicialización (IV) a partir de una fuente aleatoria

Descripción

string mcrypt_create_iv ( int size, int source)

mcrypt_create_iv() se usa para crear un IV.

mcrypt_create_iv() toma dos argumentos, size determina el tamaño del IV, source especifica la fuente del IV.

La fuente puede ser MCRYPT_RAND (generador de números aleatorios del sistema), MCRYPT_DEV_RANDOM (que lee datos de /dev/random) y MCRYPT_DEV_URANDOM (que lee datos de /dev/urandom). Si usas MCRYPT_RAND, asegurate de llamar antes a srand() para inicializar el generador de números aleatorios.

Ejemplo 1. Ejemplo de mcrypt_create_iv

<?php
$cipher = MCRYPT_TripleDES;
$block_size = mcrypt_get_block_size($cipher);
$iv = mcrypt_create_iv($block_size, MCRYPT_DEV_RANDOM);
?>

Anterior | Inicio | Siguiente
mcrypt_cfb | Subir | mcrypt_decrypt


mcrypt_decrypt

(PHP 4 >= 4.0.2)

mcrypt_decrypt -- Decrypts crypttext with given parameters

Description

string mcrypt_decrypt ( string cipher, string key, string data, string mode [, string iv])

mcrypt_decrypt() decrypts the data and returns the unencrypted data.

Cipher is one of the MCRYPT_ciphername constants of the name of the algorithm as string.

Key is the key with which the data is encrypted. If it's smaller that the required keysize, it is padded with '\0'.

Data is the data that will be decrypted with the given cipher and mode. If the size of the data is not n * blocksize, the data will be padded with '\0'.

Mode is one of the MCRYPT_MODE_modename constants of one of "ecb", "cbc", "cfb", "ofb", "nofb" or "stream".

The IV parameter is used for the initialisation in CBC, CFB, OFB modes, and in some algorithms in STREAM mode. If you do not supply an IV, while it is needed for an algorithm, the function issues a warning and uses an IV with all bytes set to '\0'.

Anterior | Inicio | Siguiente
mcrypt_create_iv | Subir | mcrypt_ecb


mcrypt_ecb

(PHP 3>= 3.0.8, PHP 4 )

mcrypt_ecb -- Encripta/desencripta datos en modo ECB

Descripción

int mcrypt_ecb ( int cipher, string key, string data, int mode)

mcrypt_ecb() encripta o desencripta (dependiendo de mode) los datos data con el cifrado cipher y la clave key en el modo de cifrado ECB y devuelve la cadena resultante.

El parámetro cipher es una de las constantes con nombre MCRYPT_nombrecifrado.

key es la clave suministrada al algoritmo. Debe guardarse en secreto.

data son los datos que serán encriptados/desencriptados.

mode es MCRYPT_ENCRYPT o MCRYPT_DECRYPT.

Ver también:
mcrypt_cbc(),
mcrypt_cfb(),
mcrypt_ofb()

Anterior | Inicio | Siguiente
mcrypt_decrypt | Subir | mcrypt_enc_get_algorithms_name


mcrypt_enc_get_algorithms_name

(PHP 4 >= 4.0.2)

mcrypt_enc_get_algorithms_name -- Returns the name of the opened algorithm

Description

string mcrypt_enc_get_algorithms_name ( resource td)

This function returns the name of the algorithm.

Ejemplo 1. mcrypt_enc_get_algorithms_name() example

<?php
    $td = mcrypt_module_open (MCRYPT_CAST_256, '', MCRYPT_MODE_CFB, '');
    echo mcrypt_enc_get_algorithms_name($td). "\n";

    $td = mcrypt_module_open ('cast-256', '', MCRYPT_MODE_CFB, '');
    echo mcrypt_enc_get_algorithms_name($td). "\n";
?>

Prints:
CAST-256
CAST-256

Anterior | Inicio | Siguiente
mcrypt_ecb | Subir | mcrypt_enc_get_block_size


mcrypt_enc_get_block_size

(PHP 4 >= 4.0.2)

mcrypt_enc_get_block_size -- Returns the blocksize of the opened algorithm

Description

int mcrypt_enc_get_block_size ( resource td)

This function returns the block size of the algorithm specified by the encryption descriptor td in bytes.

Anterior | Inicio | Siguiente
mcrypt_enc_get_algorithms_name | Subir | mcrypt_enc_get_iv_size


mcrypt_enc_get_iv_size

(PHP 4 >= 4.0.2)

mcrypt_enc_get_iv_size -- Returns the size of the IV of the opened algorithm

Description

int mcrypt_enc_get_iv_size ( resource td)

This function returns the size of the iv of the algorithm specified by the encryption descriptor in bytes. If it returns '0' then the IV is ignored in the algorithm. An IV is used in cbc, cfb and ofb modes, and in some algorithms in stream mode.

Anterior | Inicio | Siguiente
mcrypt_enc_get_block_size | Subir | mcrypt_enc_get_key_size


mcrypt_enc_get_key_size

(PHP 4 >= 4.0.2)

mcrypt_enc_get_key_size -- Returns the maximum supported keysize of the opened mode

Description

int mcrypt_enc_get_key_size ( resource td)

This function returns the maximum supported key size of the algorithm specified by the encryption descriptor td in bytes.

Anterior | Inicio | Siguiente
mcrypt_enc_get_iv_size | Subir | mcrypt_enc_get_modes_name


mcrypt_enc_get_modes_name

(PHP 4 >= 4.0.2)

mcrypt_enc_get_modes_name -- Returns the name of the opened mode

Description

string mcrypt_enc_get_modes_name ( resource td)

This function returns the name of the mode.

Ejemplo 1. mcrypt_enc_get_modes_name() example

<?php
    $td = mcrypt_module_open (MCRYPT_CAST_256, '', MCRYPT_MODE_CFB, '');
    echo mcrypt_enc_get_modes_name($td). "\n";

    $td = mcrypt_module_open ('cast-256', '', 'ecb', '');
    echo mcrypt_enc_get_modes_name($td). "\n";
?>

Prints:
CFB
ECB

Anterior | Inicio | Siguiente
mcrypt_enc_get_key_size | Subir | mcrypt_enc_get_supported_key_sizes


mcrypt_enc_get_supported_key_sizes

(PHP 4 >= 4.0.2)

mcrypt_enc_get_supported_key_sizes -- Returns an array with the supported keysizes of the opened algorithm

Description

array mcrypt_enc_get_supported_key_sizes ( resource td)

Returns an array with the key sizes supported by the algorithm specified by the encryption descriptor. If it returns an empty array then all key sizes between 1 and mcrypt_enc_get_key_size() are supported by the algorithm.

Ejemplo 1. mcrypt_enc_get_supported_key_sizes() example

<?php
    $td = mcrypt_module_open ('rijndael-256', '', 'ecb', '');
    var_dump (mcrypt_enc_get_supported_key_sizes($td));
?>

This will print:

array(3) {
  [0]=>
  int(16)
  [1]=>
  int(24)
  [2]=>
  int(32)
}
?>

Anterior | Inicio | Siguiente
mcrypt_enc_get_modes_name | Subir | mcrypt_enc_is_block_algorithm_mode


mcrypt_enc_is_block_algorithm_mode

(PHP 4 >= 4.0.2)

mcrypt_enc_is_block_algorithm_mode -- Checks whether the encryption of the opened mode works on blocks

Description

bool mcrypt_enc_is_block_algorithm_mode ( resource td)

This function returns TRUE if the mode is for use with block algorithms, otherwise it returns FALSE. (eg. FALSE for stream, and TRUE for cbc, cfb, ofb).

Anterior | Inicio | Siguiente
mcrypt_enc_get_supported_key_sizes | Subir | mcrypt_enc_is_block_algorithm


mcrypt_enc_is_block_algorithm

(PHP 4 >= 4.0.2)

mcrypt_enc_is_block_algorithm -- Checks whether the algorithm of the opened mode is a block algorithm

Description

bool mcrypt_enc_is_block_algorithm ( resource td)

This function returns TRUE if the algorithm is a block algorithm, or FALSE if it is a stream algorithm.

Anterior | Inicio | Siguiente
mcrypt_enc_is_block_algorithm_mode | Subir | mcrypt_enc_is_block_mode


mcrypt_enc_is_block_mode

(PHP 4 >= 4.0.2)

mcrypt_enc_is_block_mode -- Checks whether the opened mode outputs blocks

Description

bool mcrypt_enc_is_block_mode ( resource td)

This function returns TRUE if the mode outputs blocks of bytes or FALSE if it outputs bytes. (eg. TRUE for cbc and ecb, and FALSE for cfb and stream).

Anterior | Inicio | Siguiente
mcrypt_enc_is_block_algorithm | Subir | mcrypt_enc_self_test


mcrypt_enc_self_test

(PHP 4 >= 4.0.2)

mcrypt_enc_self_test -- This function runs a self test on the opened module

Description

bool mcrypt_enc_self_test ( resource td)

This function runs the self test on the algorithm specified by the descriptor td. If the self test succeeds it returns FALSE. In case of an error, it returns TRUE.

Anterior | Inicio | Siguiente
mcrypt_enc_is_block_mode | Subir | mcrypt_encrypt


mcrypt_encrypt

(PHP 4 >= 4.0.2)

mcrypt_encrypt -- Encrypts plaintext with given parameters

Description

string mcrypt_encrypt ( string cipher, string key, string data, string mode [, string iv])

mcrypt_encrypt() encrypts the data and returns the encrypted data.

Cipher is one of the MCRYPT_ciphername constants of the name of the algorithm as string.

Key is the key with which the data will be encrypted. If it's smaller that the required keysize, it is padded with '\0'. It is better not to use ASCII strings for keys. It is recommended to use the mhash functions to create a key from a string.

Data is the data that will be encrypted with the given cipher and mode. If the size of the data is not n * blocksize, the data will be padded with '\0'. The returned crypttext can be larger that the size of the data that is given by data.

Mode is one of the MCRYPT_MODE_modename constants of one of "ecb", "cbc", "cfb", "ofb", "nofb" or "stream".

The IV parameter is used for the initialisation in CBC, CFB, OFB modes, and in some algorithms in STREAM mode. If you do not supply an IV, while it is needed for an algorithm, the function issues a warning and uses an IV with all bytes set to '\0'.

Ejemplo 1. mcrypt_encrypt() Example

<?php
    $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
    $key = "This is a very secret key";
    $text = "Meet me at 11 o'clock behind the monument.";
    echo strlen($text)."\n";

    $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv);
    echo strlen($crypttext)."\n";
?>

The above example will print out:
42
64

See also mcrypt_module_open() for a more advanced API and an example.

Anterior | Inicio | Siguiente
mcrypt_enc_self_test | Subir | mcrypt_generic_deinit


mcrypt_generic_deinit

(PHP 4 >= 4.1.1)

mcrypt_generic_deinit -- This function deinitializes an encryption module

Description

bool mcrypt_generic_deinit ( resource td)

This function terminates encryption specified by the encryption descriptor (td). It clears all buffers, but does not close the module. You need to call mcrypt_module_close() yourself. (But PHP does this for you at the end of the script.) Returns FALSE on error, or TRUE on success.

See for an example mcrypt_module_open() and the entry on mcrypt_generic_init().

Anterior | Inicio | Siguiente
mcrypt_encrypt | Subir | mcrypt_generic_end


mcrypt_generic_end

(PHP 4 >= 4.0.2)

mcrypt_generic_end -- This function terminates encryption

Description

bool mcrypt_generic_end ( resource td)

Aviso

This function is deprecated, use mcrypt_generic_deinit() instead. It can cause crashes when used with mcrypt_module_close() due to multiple buffer frees.

This function terminates encryption specified by the encryption descriptor (td). Actually it clears all buffers, and closes all the modules used. Returns FALSE on error, or TRUE on success.

Anterior | Inicio | Siguiente
mcrypt_generic_deinit | Subir | mcrypt_generic_init


mcrypt_generic_init

(PHP 4 >= 4.0.2)

mcrypt_generic_init -- This function initializes all buffers needed for encryption

Description

int mcrypt_generic_init ( resource td, string key, string iv)

The maximum length of the key should be the one obtained by calling mcrypt_enc_get_key_size() and every value smaller than this is legal. The IV should normally have the size of the algorithms block size, but you must obtain the size by calling mcrypt_enc_get_iv_size(). IV is ignored in ECB. IV MUST exist in CFB, CBC, STREAM, nOFB and OFB modes. It needs to be random and unique (but not secret). The same IV must be used for encryption/decryption. If you do not want to use it you should set it to zeros, but this is not recommended.

The function returns a negative value on error, -3 when the key length was incorrect, -4 when there was a memory allocation problem and any other return value is an unknown error. If an error occurs a warning will be displayed accordingly.

You need to call this function before every call to mcrypt_generic() or mdecrypt_generic().

See for an example mcrypt_module_open() and the entry on mcrypt_generic_deinit().

Anterior | Inicio | Siguiente
mcrypt_generic_end | Subir | mcrypt_generic


mcrypt_generic

(PHP 4 >= 4.0.2)

mcrypt_generic -- This function encrypts data

Description

string mcrypt_generic ( resource td, string data)

This function encrypts data. The data is padded with "\0" to make sure the length of the data is n * blocksize. This function returns the encrypted data. Note that the length of the returned string can in fact be longer then the input, due to the padding of the data.

If you want to store the encrypted data in a database make sure to store the entire string as returned by mcrypt_generic, or the string will not entirely decrypt properly. If your original string is 10 characters long and the block size is 8 (use mcrypt_enc_get_block_size() to determine the blocksize), you would need at least 16 characters in your database field. Note the string returned by mdecrypt_generic() will be 16 characters as well...use rtrim()($str, "\0") to remove the padding.

If you are for example storing the data in a MySQL database remember tha varchar fields automatically have trailing spaces removed during insertion. As encrypted data can end in a space (ASCII 32), the data will be damaged by this removal. Store data in a tinyblob/tinytext (or larger) field instead.

The encryption handle should always be initialized with mcrypt_generic_init() with a key and an IV before calling this function. Where the encryption is done, you should free the encryption buffers by calling mcrypt_generic_deinit(). See mcrypt_module_open() for an example.

See also mdecrypt_generic(),
mcrypt_generic_init(), and
mcrypt_generic_deinit().

Anterior | Inicio | Siguiente
mcrypt_generic_init | Subir | mcrypt_get_block_size


mcrypt_get_block_size

(PHP 3>= 3.0.8, PHP 4 )

mcrypt_get_block_size -- Obtiene el tamaño de bloque del cifrado indicado

Descripción

int mcrypt_get_block_size ( int cipher)

mcrypt_get_block_size() se usa para obtener el tamaño de bloque del cifrado indicado en cipher.

mcrypt_get_block_size() toma un argumento, el cifrado cipher y devuelve el tamaño en bytes.

Ver también: mcrypt_get_key_size()

Anterior | Inicio | Siguiente
mcrypt_generic | Subir | mcrypt_get_cipher_name


mcrypt_get_cipher_name

(PHP 3>= 3.0.8, PHP 4 )

mcrypt_get_cipher_name -- Obtiene el nombre del cifrado especificado

Descripción

string mcrypt_get_cipher_name ( int cipher)

mcrypt_get_cipher_name() se usa para obtener el nombre del cifrado especificado.

mcrypt_get_cipher_name() toma como argumento el número de cifrado y devuelve el nombre del cifrado o FALSE, si el cifrado no existe.

Ejemplo 1. Ejemplo de mcrypt_get_cipher_name

<?php
$cipher = MCRYPT_TripleDES;

print mcrypt_get_cipher_name($cipher);
?>

El ejemplo de más arriba da como resultado:
TripleDES

Anterior | Inicio | Siguiente
mcrypt_get_block_size | Subir | mcrypt_get_iv_size


mcrypt_get_iv_size

(PHP 4 >= 4.0.2)

mcrypt_get_iv_size -- Returns the size of the IV belonging to a specific cipher/mode combination

Description

int mcrypt_get_iv_size ( resource td)

int mcrypt_get_iv_size ( string cipher, string mode)

The first prototype is when linked against libmcrypt 2.2.x, the second when linked against libmcrypt 2.4.x or higher.

mcrypt_get_iv_size() returns the size of the Initialisation Vector (IV) in bytes. On error the function returns FALSE. If the IV is ignored in the specified cipher/mode combination zero is returned.

cipher is one of the MCRYPT_ciphername constants of the name of the algorithm as string.

mode is one of the MCRYPT_MODE_modename constants or one of "ecb", "cbc", "cfb", "ofb", "nofb" or "stream". The IV is ignored in ECB mode as this mode does not require it. You will need to have the same IV (think: starting point) both at encryption and decryption stages, otherwise your encryption will fail.

td is the resource that is returned by mcrypt_module_open().

Ejemplo 1. mcrypt_create_iv() example

<?php
    $size = mcrypt_get_iv_size (MCRYPT_CAST_256, MCRYPT_MODE_CFB);

    $size = mcrypt_get_iv_size ('des', 'ecb');
?>

See also mcrypt_get_block_size(), and mcrypt_create_iv().

Anterior | Inicio | Siguiente
mcrypt_get_cipher_name | Subir | mcrypt_get_key_size


mcrypt_get_key_size

(PHP 3>= 3.0.8, PHP 4 )

mcrypt_get_key_size -- Obtiene el tamaño de la clave de un cifrado

Descripción

int mcrypt_get_key_size ( int cipher)

mcrypt_get_key_size() se usa para obtener el tamaño de la clave del cifrado indicado en cipher.

mcrypt_get_key_size() toma un argumento, el cifrado cipher y devuelve el tamaño de la clave en bytes.

Ver también: mcrypt_get_block_size()

Anterior | Inicio | Siguiente
mcrypt_get_iv_size | Subir | mcrypt_list_algorithms


mcrypt_list_algorithms

(PHP 4 >= 4.0.2)

mcrypt_list_algorithms -- Get an array of all supported ciphers

Description

array mcrypt_list_algorithms ( [string lib_dir])

mcrypt_list_algorithms() is used to get an array of all supported algorithms in the lib_dir parameter.

mcrypt_list_algorithms() takes an optional lib_dir parameter which specifies the directory where all algorithms are located. If not specifies, the value of the mcrypt.algorithms_dir php.ini directive is used.

Ejemplo 1. mcrypt_list_algorithms() Example

<?php
    $algorithms = mcrypt_list_algorithms ("/usr/local/lib/libmcrypt");

    foreach ($algorithms as $cipher) {
        echo "$cipher<br />\n";
    }
?>

The above example will produce a list with all supported algorithms in the "/usr/local/lib/libmcrypt" directory.

Anterior | Inicio | Siguiente
mcrypt_get_key_size | Subir | mcrypt_list_modes


mcrypt_list_modes

(PHP 4 >= 4.0.2)

mcrypt_list_modes -- Get an array of all supported modes

Description

array mcrypt_list_modes ( [string lib_dir])

mcrypt_list_modes() is used to get an array of all supported modes in the lib_dir.

mcrypt_list_modes() takes as optional parameter a directory which specifies the directory where all modes are located. If not specifies, the value of the mcrypt.modes_dir php.ini directive is used.

Ejemplo 1. mcrypt_list_modes() Example

<?php
    $modes = mcrypt_list_modes ();

    foreach ($modes as $mode) {
        echo "$mode <br />\n";
    }
?>

The above example will produce a list with all supported algorithms in the default mode directory. If it is not set with the ini directive mcrypt.modes_dir, the default directory of mcrypt is used (which is /usr/local/lib/libmcrypt).

Anterior | Inicio | Siguiente
mcrypt_list_algorithms | Subir | mcrypt_module_close


mcrypt_module_close

(PHP 4 >= 4.0.2)

mcrypt_module_close -- Close the mcrypt module

Description

bool mcrypt_module_close ( resource td)

This function closes the specified encryption handle.

See mcrypt_module_open() for an example.

Anterior | Inicio | Siguiente
mcrypt_list_modes | Subir | mcrypt_module_get_algo_block_size


mcrypt_module_get_algo_block_size

(PHP 4 >= 4.0.2)

mcrypt_module_get_algo_block_size -- Returns the blocksize of the specified algorithm

Description

int mcrypt_module_get_algo_block_size ( string algorithm [, string lib_dir])

This function returns the block size of the algorithm specified in bytes. The optional lib_dir parameter can contain the location where the mode module is on the system.

Anterior | Inicio | Siguiente
mcrypt_module_close | Subir | mcrypt_module_get_algo_key_size


mcrypt_module_get_algo_key_size

(PHP 4 >= 4.0.2)

mcrypt_module_get_algo_key_size -- Returns the maximum supported keysize of the opened mode

Description

int mcrypt_module_get_algo_key_size ( string algorithm [, string lib_dir])

This function returns the maximum supported key size of the algorithm specified in bytes. The optional lib_dir parameter can contain the location where the mode module is on the system.

Anterior | Inicio | Siguiente
mcrypt_module_get_algo_block_size | Subir | mcrypt_module_get_supported_key_sizes


mcrypt_module_get_supported_key_sizes

(PHP 4 >= 4.0.2)

mcrypt_module_get_supported_key_sizes -- Returns an array with the supported keysizes of the opened algorithm

Description

array mcrypt_module_get_supported_key_sizes ( string algorithm [, string lib_dir])

Returns an array with the key sizes supported by the specified algorithm. If it returns an empty array then all key sizes between 1 and mcrypt_module_get_algo_key_size() are supported by the algorithm. The optional lib_dir parameter can contain the location where the mode module is on the system.

See also mcrypt_enc_get_supported_key_sizes() which is used on open encryption modules.

Anterior | Inicio | Siguiente
mcrypt_module_get_algo_key_size | Subir | mcrypt_module_is_block_algorithm_mode


mcrypt_module_is_block_algorithm_mode

(PHP 4 >= 4.0.2)

mcrypt_module_is_block_algorithm_mode -- This function returns if the the specified module is a block algorithm or not

Description

bool mcrypt_module_is_block_algorithm_mode ( string mode [, string lib_dir])

This function returns TRUE if the mode is for use with block algorithms, otherwise it returns FALSE. (eg. FALSE for stream, and TRUE for cbc, cfb, ofb). The optional lib_dir parameter can contain the location where the mode module is on the system.

Anterior | Inicio | Siguiente
mcrypt_module_get_supported_key_sizes | Subir | mcrypt_module_is_block_algorithm


mcrypt_module_is_block_algorithm

(PHP 4 >= 4.0.2)

mcrypt_module_is_block_algorithm -- This function checks whether the specified algorithm is a block algorithm

Description

bool mcrypt_module_is_block_algorithm ( string algorithm [, string lib_dir])

This function returns TRUE if the specified algorithm is a block algorithm, or FALSE is it is a stream algorithm. The optional lib_dir parameter can contain the location where the algorithm module is on the system.

Anterior | Inicio | Siguiente
mcrypt_module_is_block_algorithm_mode | Subir | mcrypt_module_is_block_mode


mcrypt_module_is_block_mode

(PHP 4 >= 4.0.2)

mcrypt_module_is_block_mode -- This function returns if the the specified mode outputs blocks or not

Description

bool mcrypt_module_is_block_mode ( string mode [, string lib_dir])

This function returns TRUE if the mode outputs blocks of bytes or FALSE if it outputs just bytes. (eg. TRUE for cbc and ecb, and FALSE for cfb and stream). The optional lib_dir parameter can contain the location where the mode module is on the system.

Anterior | Inicio | Siguiente
mcrypt_module_is_block_algorithm | Subir | mcrypt_module_open


mcrypt_module_open

(PHP 4 >= 4.0.2)

mcrypt_module_open -- Opens the module of the algorithm and the mode to be used

Description

resource mcrypt_module_open ( string algorithm, string algorithm_directory, string mode, string mode_directory)

This function opens the module of the algorithm and the mode to be used. The name of the algorithm is specified in algorithm, eg. "twofish" or is one of the MCRYPT_ciphername constants. The module is closed by calling mcrypt_module_close(). Normally it returns an encryption descriptor, or FALSE on error.

The algorithm_directory and mode_directory are used to locate the encryption modules. When you supply a directory name, it is used. When you set one of these to the empty string (""), the value set by the mcrypt.algorithms_dir or mcrypt.modes_dir ini-directive is used. When these are not set, the default directories that are used are the ones that were compiled in into libmcrypt (usally /usr/local/lib/libmcrypt).

Ejemplo 1. mcrypt_module_open() examples

<?php
    $td = mcrypt_module_open (MCRYPT_DES, '',
        MCRYPT_MODE_ECB, '/usr/lib/mcrypt-modes');

    $td = mcrypt_module_open ('rijndael-256', '', 'ofb', '');
?>

The first line in the example above will try to open the DES cipher from the default directory and the EBC mode from the directory /usr/lib/mcrypt-modes. The second example uses strings as name for the cipher an dmode, this only works when the extension is linked against libmcrypt 2.4.x or 2.5.x.

Ejemplo 2. Using mcrypt_module_open() in encryption

<?php
    /* Open the cipher */
    $td = mcrypt_module_open ('rijndael-256', '', 'ofb', '');

    /* Create the IV and determine the keysize length */
    $iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_DEV_RANDOM);
    $ks = mcrypt_enc_get_key_size ($td);

    /* Create key */
    $key = substr (md5 ('very secret key'), 0, $ks);

    /* Intialize encryption */
    mcrypt_generic_init ($td, $key, $iv);

    /* Encrypt data */
    $encrypted = mcrypt_generic ($td, 'This is very important data');

    /* Terminate encryption handler */
    mcrypt_generic_deinit ($td);

    /* Initialize encryption module for decryption */
    mcrypt_generic_init ($td, $key, $iv);

    /* Decrypt encrypted string */
    $decrypted = mdecrypt_generic ($td, $encrypted);

    /* Terminate decryption handle and close module */
    mcrypt_generic_deinit ($td);
    mcrypt_module_close ($td);

    /* Show string */
    echo trim ($decrypted)."\n";
?>

The first line in the example above will try to open the DES cipher from the default directory and the EBC mode from the directory /usr/lib/mcrypt-modes. The second example uses strings as name for the cipher and mode, this only works when the extension is linked against libmcrypt 2.4.x or 2.5.x.

See also
mcrypt_module_close(),
mcrypt_generic(),
mdecrypt_generic(),
mcrypt_generic_init(), and
mcrypt_generic_deinit().

Anterior | Inicio | Siguiente
mcrypt_module_is_block_mode | Subir | mcrypt_module_self_test


mcrypt_module_self_test

(PHP 4 >= 4.0.2)

mcrypt_module_self_test -- This function runs a self test on the specified module

Description

bool mcrypt_module_self_test ( string algorithm [, string lib_dir])

This function runs the self test on the algorithm specified. The optional lib_dir parameter can contain the location of where the algorithm module is on the system.

The function returns TRUE if the self test succeeds, or FALSE when if fails.

Anterior | Inicio | Siguiente
mcrypt_module_open | Subir | mcrypt_ofb


mcrypt_ofb

(PHP 3>= 3.0.8, PHP 4 )

mcrypt_ofb -- Encripta/desencripta datos en modo OFB

Descripción

int mcrypt_ofb ( int cipher, string key, string data, int mode, string iv)

mcrypt_ofb() encripta o desencripta (dependiendo de mode) los datos data con el cifrado cipher y la clave key en el modo de cifrado OFB y devuelve la cadena resultante.

El parámetro cipher es una de las constantes con nombre MCRYPT_nombrecifrado.

key es la clave suministrada al algoritmo. Debe guardarse en secreto.

data son los datos que serán encriptados/desencriptados.

mode es MCRYPT_ENCRYPT o MCRYPT_DECRYPT.

iv es el vector de inicialización.

Ver también:
mcrypt_cbc(),
mcrypt_cfb(),
mcrypt_ecb()

Anterior | Inicio | Siguiente
mcrypt_module_self_test | Subir | mdecrypt_generic


mdecrypt_generic

(PHP 4 >= 4.0.2)

mdecrypt_generic -- Decrypt data

Description

string mdecrypt_generic ( resource td, string data)

This function decrypts data. Note that the length of the returned string can in fact be longer then the unencrypted string, due to the padding of the data.

Ejemplo 1. mdecrypt_generic() example

<?php
    /* Data */
    $key = 'this is a very long key, even too long for the cipher';
    $plain_text = 'very important data';

    /* Open module, and create IV */
    $td = mcrypt_module_open ('des', '', 'ecb', '');
    $key = substr ($key, 0, mcrypt_enc_get_key_size ($td));
    $iv_size = mcrypt_enc_get_iv_size ($td);
    $iv = mcrypt_create_iv ($iv_size, MCRYPT_RAND);

    /* Initialize encryption handle */
    if (mcrypt_generic_init ($td, $key, $iv) != -1) {

        /* Encrypt data */
        $c_t = mcrypt_generic ($td, $plain_text);
        mcrypt_generic_deinit ($td);

        /* Reinitialize buffers for decryption */
        mcrypt_generic_init ($td, $key, $iv);
        $p_t = mdecrypt_generic ($td, $c_t);

        /* Clean up */
        mcrypt_generic_deinit ($td);
        mcrypt_module_close ($td);
    }

    if (strncmp ($p_t, $plain_text, strlen($plain_text)) == 0) {
        echo "ok\n";
    } else {
        echo "error\n";
    }
?>

The above example shows how to check if the data before the encryption is the same as the data after the decryption. It is very important to reinitialize the encryption buffer with mcrypt_generic_init() before you try to decrypt the data.

The decryption handle should alwayws be initialized with mcrypt_generic_init() with a key and an IV before calling this function. Where the encryption is done, you should free the encryption buffers by calling mcrypt_generic_deinit(). See mcrypt_module_open() for an example.

See also mcrypt_generic(),
mcrypt_generic_init(), and
mcrypt_generic_deinit().

Anterior | Inicio | Siguiente
mcrypt_ofb | Subir | MCVE Payment Functions


MCVE Payment Functions

Manual de PHP
Anterior Siguiente

LV. MCVE Payment Functions

Introducción

These functions interface the MCVE API (libmcve), allowing you to work directly with MCVE from your PHP scripts. MCVE is Main Street Softworks' solution to direct credit card processing for Linux / Unix ( http://www.mainstreetsoftworks.com/ ). It lets you directly address the credit card clearing houses via your *nix box, modem and/or internet connection (bypassing the need for an additional service such as Authorize.Net or Pay Flow Pro). Using the MCVE module for PHP, you can process credit cards directly through MCVE via your PHP scripts. The following references will outline the process.

Nota: MCVE is the replacement for RedHat's CCVS. They contracted with RedHat in late 2001 to migrate all existing clientelle to the MCVE platform.

Nota: Esta extensión no está disponible en plataformas Windows

Instalación

To enable MCVE Support in PHP, first verify your LibMCVE installation directory. You will then need to configure PHP with the --with-mcve option. If you use this option without specifying the path to your MCVE installation, PHP will attempt to look in the default LibMCVE Install location (/usr/local). If MCVE is in a non-standard location, run configure with: --with-mcve=$mcve_path, where $mcve_path is the path to your MCVE installation. Please note that MCVE support requires that $mcve_path/lib and $mcve_path/include exist, and include mcve.h under the include directory and libmcve.so and/or libmcve.a under the lib directory.

Since MCVE has true server/client separation, there are no additional requirements for running PHP with MCVE support. To test your MCVE extension in PHP, you may connect to testbox.mcve.com on port 8333 for IP, or port 8444 for SSL using the MCVE PHP API. Use 'vitale' for your username, and 'test' for your password. Additional information about test facilities are available at http://www.mainstreetsoftworks.com/.

Ver también

Additional documentation about MCVE's PHP API can be found at http://www.mainstreetsoftworks.com/docs/phpapi.pdf. Main Street's documentation is complete and should be the primary reference for functions.

Constantes predefinidas

Estas constantes están definidas por esta extensión y estarán disponibles solamente cuando la extensión ha sido o bien compilada dentro de PHP o grabada dinámicamente en tiempo de ejecución.

MC_TRANTYPE (integer)

MC_USERNAME (integer)

MC_PASSWORD (integer)

MC_ACCOUNT (integer)

MC_TRACKDATA (integer)

MC_EXPDATE (integer)

MC_STREET (integer)

MC_ZIP (integer)

MC_CV (integer)

MC_COMMENTS (integer)

MC_CLERKID (integer)

MC_STATIONID (integer)

MC_APPRCODE (integer)

MC_AMOUNT (integer)

MC_PTRANNUM (integer)

MC_TTID (integer)

MC_USER (integer)

MC_PWD (integer)

MC_ACCT (integer)

MC_BDATE (integer)

MC_EDATE (integer)

MC_BATCH (integer)

MC_FILE (integer)

MC_ADMIN (integer)

MC_AUDITTYPE (integer)

MC_CUSTOM (integer)

MC_EXAMOUNT (integer)

MC_EXCHARGES (integer)

MC_RATE (integer)

MC_RENTERNAME (integer)

MC_RETURNCITY (integer)

MC_RETURNSTATE (integer)

MC_RETURNLOCATION (integer)

MC_PRIORITY (integer)

MC_INQUIRY (integer)

MC_CARDTYPES (integer)

MC_SUB (integer)

MC_MARKER (integer)

MC_DEVICETYPE (integer)

MC_ERRORCODE (integer)

MC_NEWBATCH (integer)

MC_CURR (integer)

MC_DESCMERCH (integer)

MC_DESCLOC (integer)

MC_ORIGTYPE (integer)

MC_PIN (integer)

MC_VOIDORIGTYPE (integer)

MC_TIMESTAMP (integer)

MC_PRIO_HIGH (integer)

MC_PRIO_NORMAL (integer)

MC_PRIO_LOW (integer)

MC_USER_PROC (integer)

MC_USER_USER (integer)

MC_USER_PWD (integer)

MC_USER_INDCODE (integer)

MC_USER_MERCHID (integer)

MC_USER_BANKID (integer)

MC_USER_TERMID (integer)

MC_USER_CLIENTNUM (integer)

MC_USER_STOREID (integer)

MC_USER_AGENTID (integer)

MC_USER_CHAINID (integer)

MC_USER_ZIPCODE (integer)

MC_USER_TIMEZONE (integer)

MC_USER_MERCHCAT (integer)

MC_USER_MERNAME (integer)

MC_USER_MERCHLOC (integer)

MC_USER_STATECODE (integer)

MC_USER_PHONE (integer)

MC_USER_SUB (integer)

MC_USER_CARDTYPES (integer)

MC_USER_MODE (integer)

MC_USER_VNUMBER (integer)

MC_USER_ROUTINGID (integer)

MC_USER_PPROPERTY (integer)

MC_USER_PID (integer)

MC_USER_PIDPWD (integer)

MC_USER_SMID (integer)

MC_USER_SMIDPWD (integer)

MC_USER_USDDIV (integer)

MC_USER_AUDDIV (integer)

MC_USER_DKKDIV (integer)

MC_USER_GBPDIV (integer)

MC_USER_HKDDIV (integer)

MC_USER_JPYDIV (integer)

MC_USER_NZDDIV (integer)

MC_USER_NOKDIV (integer)

MC_USER_SGDDIV (integer)

MC_USER_ZARDIV (integer)

MC_USER_SEKDIV (integer)

MC_USER_CHFDIV (integer)

MC_USER_CADDIV (integer)

MC_USER_DIVNUM (integer)

MC_CARD_VISA (integer)

MC_CARD_MC (integer)

MC_CARD_AMEX (integer)

MC_CARD_DISC (integer)

MC_CARD_JCB (integer)

MC_CARD_CB (integer)

MC_CARD_DC (integer)

MC_CARD_GIFT (integer)

MC_CARD_OTHER (integer)

MC_CARD_ALL (integer)

MC_MODE_AUTH (integer)

MC_MODE_SETTLE (integer)

MC_MODE_BOTH (integer)

MC_MODE_ALL (integer)

MC_EXCHARGES_REST (integer)

MC_EXCHARGES_GIFT (integer)

MC_EXCHARGES_MINI (integer)

MC_EXCHARGES_TELE (integer)

MC_EXCHARGES_OTHER (integer)

MC_EXCHARGES_LAUND (integer)

MC_EXCHARGES_NONE (integer)

MC_EXCHARGES_GAS (integer)

MC_EXCHARGES_MILE (integer)

MC_EXCHARGES_LATE (integer)

MC_EXCHARGES_1WAY (integer)

MC_EXCHARGES_VIOL (integer)

MC_TRAN_SALE (integer)

MC_TRAN_REDEMPTION (integer)

MC_TRAN_PREAUTH (integer)

MC_TRAN_VOID (integer)

MC_TRAN_PREAUTHCOMPLETE (integer)

MC_TRAN_FORCE (integer)

MC_TRAN_OVERRIDE (integer)

MC_TRAN_RETURN (integer)

MC_TRAN_RELOAD (integer)

MC_TRAN_CREDIT (integer)

MC_TRAN_SETTLE (integer)

MC_TRAN_INCREMENTAL (integer)

MC_TRAN_REVERSAL (integer)

MC_TRAN_ACTIVATE (integer)

MC_TRAN_BALANCEINQ (integer)

MC_TRAN_CASHOUT (integer)

MC_TRAN_TOREVERSAL (integer)

MC_TRAN_SETTLERFR (integer)

MC_TRAN_ISSUE (integer)

MC_TRAN_TIP (integer)

MC_TRAN_MERCHRETURN (integer)

MC_TRAN_IVRREQ (integer)

MC_TRAN_IVRRESP (integer)

MC_TRAN_ADMIN (integer)

MC_TRAN_PING (integer)

MC_TRAN_CHKPWD (integer)

MC_TRAN_CHNGPWD (integer)

MC_TRAN_LISTSTATS (integer)

MC_TRAN_LISTUSERS (integer)

MC_TRAN_GETUSERINFO (integer)

MC_TRAN_ADDUSER (integer)

MC_TRAN_EDITUSER (integer)

MC_TRAN_DELUSER (integer)

MC_TRAN_ENABLEUSER (integer)

MC_TRAN_DISABLEUSER (integer)

MC_TRAN_IMPORT (integer)

MC_TRAN_EXPORT (integer)

MC_TRAN_ERRORLOG (integer)

MC_TRAN_CLEARERRORLOG (integer)

MC_TRAN_GETSUBACCTS (integer)

MC_ADMIN_GUT (integer)

MC_ADMIN_GL (integer)

MC_ADMIN_GFT (integer)

MC_ADMIN_BT (integer)

MC_ADMIN_UB (integer)

MC_ADMIN_QC (integer)

MC_ADMIN_RS (integer)

MC_ADMIN_CTH (integer)

MC_ADMIN_CFH (integer)

MC_ADMIN_FORCESETTLE (integer)

MC_ADMIN_SETBATCHNUM (integer)

MC_ADMIN_RENUMBERBATCH (integer)

MC_ADMIN_FIELDEDIT (integer)

MC_ADMIN_CLOSEBATCH (integer)

MCVE_UNUSED (integer)

MCVE_NEW (integer)

MCVE_PENDING (integer)

MCVE_DONE (integer)

MCVE_GOOD (integer)

MCVE_BAD (integer)

MCVE_STREET (integer)

MCVE_ZIP (integer)

MCVE_UNKNOWN (integer)

MCVE_ERROR (integer)

MCVE_FAIL (integer)

MCVE_SUCCESS (integer)

MCVE_AUTH (integer)

MCVE_DENY (integer)

MCVE_CALL (integer)

MCVE_DUPL (integer)

MCVE_PKUP (integer)

MCVE_RETRY (integer)

MCVE_SETUP (integer)

MCVE_TIMEOUT (integer)

MCVE_SALE (integer)

MCVE_PREAUTH (integer)

MCVE_FORCE (integer)

MCVE_OVERRIDE (integer)

MCVE_RETURN (integer)

MCVE_SETTLE (integer)

MCVE_PROC (integer)

MCVE_USER (integer)

MCVE_PWD (integer)

MCVE_INDCODE (integer)

MCVE_MERCHID (integer)

MCVE_BANKID (integer)

MCVE_TERMID (integer)

MCVE_CLIENTNUM (integer)

MCVE_STOREID (integer)

MCVE_AGENTID (integer)

MCVE_CHAINID (integer)

MCVE_ZIPCODE (integer)

MCVE_TIMEZONE (integer)

MCVE_MERCHCAT (integer)

MCVE_MERNAME (integer)

MCVE_MERCHLOC (integer)

MCVE_STATECODE (integer)

MCVE_SERVICEPHONE (integer)

Tabla de contenidos
mcve_adduser -- Add an MCVE user using usersetup structure
mcve_adduserarg -- Add a value to user configuration structure
mcve_bt -- Get unsettled batch totals
mcve_checkstatus -- Check to see if a transaction has completed
mcve_chkpwd -- Verify Password
mcve_chngpwd -- Change the system administrator's password
mcve_completeauthorizations -- Number of complete authorizations in queue, returning an array of their identifiers
mcve_connect -- Establish the connection to MCVE
mcve_connectionerror -- Get a textual representation of why a connection failed
mcve_deleteresponse -- Delete specified transaction from MCVE_CONN structure
mcve_deletetrans -- Delete specified transaction from MCVE_CONN structure
mcve_deleteusersetup -- Deallocate data associated with usersetup structure
mcve_deluser -- Delete an MCVE user account
mcve_destroyconn -- Destroy the connection and MCVE_CONN structure
mcve_destroyengine -- Free memory associated with IP/SSL connectivity
mcve_disableuser -- Disable an active MCVE user account
mcve_edituser -- Edit MCVE user using usersetup structure
mcve_enableuser -- Enable an inactive MCVE user account
mcve_force -- Send a FORCE to MCVE. (typically, a phone-authorization)
mcve_getcell -- Get a specific cell from a comma delimited response by column name
mcve_getcellbynum -- Get a specific cell from a comma delimited response by column number
mcve_getcommadelimited -- Get the RAW comma delimited data returned from MCVE
mcve_getheader -- Get the name of the column in a comma-delimited response
mcve_getuserarg -- Grab a value from usersetup structure
mcve_getuserparam -- Get a user response parameter
mcve_gft -- Audit MCVE for Failed transactions
mcve_gl -- Audit MCVE for settled transactions
mcve_gut -- Audit MCVE for Unsettled Transactions
mcve_initconn -- Create and initialize an MCVE_CONN structure
mcve_initengine -- Ready the client for IP/SSL Communication
mcve_initusersetup -- Initialize structure to store user data
mcve_iscommadelimited -- Checks to see if response is comma delimited
mcve_liststats -- List statistics for all users on MCVE system
mcve_listusers -- List all users on MCVE system
mcve_maxconntimeout -- The maximum amount of time the API will attempt a connection to MCVE
mcve_monitor -- Perform communication with MCVE (send/receive data) Non-blocking
mcve_numcolumns -- Number of columns returned in a comma delimited response
mcve_numrows -- Number of rows returned in a comma delimited response
mcve_override -- Send an OVERRIDE to MCVE
mcve_parsecommadelimited -- Parse the comma delimited response so mcve_getcell, etc will work
mcve_ping -- Send a ping request to MCVE
mcve_preauth -- Send a PREAUTHORIZATION to MCVE
mcve_preauthcompletion -- Complete a PREAUTHORIZATION... Ready it for settlement
mcve_qc -- Audit MCVE for a list of transactions in the outgoing queue
mcve_responseparam -- Get a custom response parameter
mcve_return -- Issue a RETURN or CREDIT to MCVE
mcve_returncode -- Grab the exact return code from the transaction
mcve_returnstatus -- Check to see if the transaction was successful
mcve_sale -- Send a SALE to MCVE
mcve_setblocking -- Set blocking/non-blocking mode for connection
mcve_setdropfile -- Set the connection method to Drop-File
mcve_setip -- Set the connection method to IP
mcve_setssl_files -- Set certificate key files and certificates if server requires client certificate verification
mcve_setssl -- Set the connection method to SSL
mcve_settimeout -- Set maximum transaction time (per trans)
mcve_settle -- Issue a settlement command to do a batch deposit
mcve_text_avs -- Get a textual representation of the return_avs
mcve_text_code -- Get a textual representation of the return_code
mcve_text_cv -- Get a textual representation of the return_cv
mcve_transactionauth -- Get the authorization number returned for the transaction (alpha-numeric)
mcve_transactionavs -- Get the Address Verification return status
mcve_transactionbatch -- Get the batch number associated with the transaction
mcve_transactioncv -- Get the CVC2/CVV2/CID return status
mcve_transactionid -- Get the unique system id for the transaction
mcve_transactionitem -- Get the ITEM number in the associated batch for this transaction
mcve_transactionssent -- Check to see if outgoing buffer is clear
mcve_transactiontext -- Get verbiage (text) return from MCVE or processing institution
mcve_transinqueue -- Number of transactions in client-queue
mcve_transnew -- Start a new transaction
mcve_transparam -- Add a parameter to a transaction
mcve_transsend -- Finalize and send the transaction
mcve_ub -- Get a list of all Unsettled batches
mcve_uwait -- Wait x microsecs
mcve_verifyconnection -- Set whether or not to PING upon connect to verify connection
mcve_verifysslcert -- Set whether or not to verify the server ssl certificate
mcve_void -- VOID a transaction in the settlement queue

Anterior | Inicio | Siguiente
mdecrypt_generic | Subir | mcve_adduser


mcve_adduser

(PHP 4 >= 4.2.0)

mcve_adduser -- Add an MCVE user using usersetup structure

Description

int mcve_adduser ( resource conn, string admin_password, int usersetup)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
MCVE Payment Functions | Subir | mcve_adduserarg


mcve_adduserarg

(PHP 4 >= 4.2.0)

mcve_adduserarg -- Add a value to user configuration structure

Description

int mcve_adduserarg ( resource usersetup, int argtype, string argval)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_adduser | Subir | mcve_bt


mcve_bt

(PHP 4 >= 4.2.0)

mcve_bt -- Get unsettled batch totals

Description

int mcve_bt ( resource conn, string username, string password)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_adduserarg | Subir | mcve_checkstatus


mcve_checkstatus

(PHP 4 >= 4.2.0)

mcve_checkstatus -- Check to see if a transaction has completed

Description

int mcve_checkstatus ( resource conn, int identifier)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_bt | Subir | mcve_chkpwd


mcve_chkpwd

(PHP 4 >= 4.2.0)

mcve_chkpwd -- Verify Password

Description

int mcve_chkpwd ( resource conn, string username, string password)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_checkstatus | Subir | mcve_chngpwd


mcve_chngpwd

(PHP 4 >= 4.2.0)

mcve_chngpwd -- Change the system administrator's password

Description

int mcve_chngpwd ( resource conn, string admin_password, string new_password)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_chkpwd | Subir | mcve_completeauthorizations


mcve_completeauthorizations

(PHP 4 >= 4.2.0)

mcve_completeauthorizations -- Number of complete authorizations in queue, returning an array of their identifiers

Description

int mcve_completeauthorizations ( resource conn, int &array)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_chngpwd | Subir | mcve_connect


mcve_connect

(PHP 4 >= 4.2.0)

mcve_connect -- Establish the connection to MCVE

Description

int mcve_connect ( resource conn)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_completeauthorizations | Subir | mcve_connectionerror


mcve_connectionerror

(PHP 4 >= 4.3.0)

mcve_connectionerror -- Get a textual representation of why a connection failed

Description

string mcve_connectionerror ( resource conn)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_connect | Subir | mcve_deleteresponse


mcve_deleteresponse

(PHP 4 >= 4.2.0)

mcve_deleteresponse -- Delete specified transaction from MCVE_CONN structure

Description

bool mcve_deleteresponse ( resource conn, int identifier)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_connectionerror | Subir | mcve_deletetrans


mcve_deletetrans

(PHP 4 >= 4.3.0)

mcve_deletetrans -- Delete specified transaction from MCVE_CONN structure

Description

bool mcve_deletetrans ( resource conn, int identifier)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_deleteresponse | Subir | mcve_deleteusersetup


mcve_deleteusersetup

(PHP 4 >= 4.2.0)

mcve_deleteusersetup -- Deallocate data associated with usersetup structure

Description

void mcve_deleteusersetup ( resource usersetup)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_deletetrans | Subir | mcve_deluser


mcve_deluser

(PHP 4 >= 4.2.0)

mcve_deluser -- Delete an MCVE user account

Description

int mcve_deluser ( resource conn, string admin_password, string username)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_deleteusersetup | Subir | mcve_destroyconn


mcve_destroyconn

(PHP 4 >= 4.2.0)

mcve_destroyconn -- Destroy the connection and MCVE_CONN structure

Description

void mcve_destroyconn ( resource conn)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_deluser | Subir | mcve_destroyengine


mcve_destroyengine

(PHP 4 >= 4.2.0)

mcve_destroyengine -- Free memory associated with IP/SSL connectivity

Description

void mcve_destroyengine ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_destroyconn | Subir | mcve_disableuser


mcve_disableuser

(PHP 4 >= 4.2.0)

mcve_disableuser -- Disable an active MCVE user account

Description

int mcve_disableuser ( resource conn, string admin_password, string username)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_destroyengine | Subir | mcve_edituser


mcve_edituser

(PHP 4 >= 4.2.0)

mcve_edituser -- Edit MCVE user using usersetup structure

Description

int mcve_edituser ( resource conn, string admin_password, int usersetup)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_disableuser | Subir | mcve_enableuser


mcve_enableuser

(PHP 4 >= 4.2.0)

mcve_enableuser -- Enable an inactive MCVE user account

Description

int mcve_enableuser ( resource conn, string admin_password, string username)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_edituser | Subir | mcve_force


mcve_force

(PHP 4 >= 4.2.0)

mcve_force -- Send a FORCE to MCVE. (typically, a phone-authorization)

Description

int mcve_force ( resource conn, string username, string password, string trackdata, string account, string expdate, float amount, string authcode, string comments, string clerkid, string stationid, int ptrannum)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_enableuser | Subir | mcve_getcell


mcve_getcell

(PHP 4 >= 4.2.0)

mcve_getcell -- Get a specific cell from a comma delimited response by column name

Description

string mcve_getcell ( resource conn, int identifier, string column, int row)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_force | Subir | mcve_getcellbynum


mcve_getcellbynum

(PHP 4 >= 4.2.0)

mcve_getcellbynum -- Get a specific cell from a comma delimited response by column number

Description

string mcve_getcellbynum ( resource conn, int identifier, int column, int row)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_getcell | Subir | mcve_getcommadelimited


mcve_getcommadelimited

(PHP 4 >= 4.2.0)

mcve_getcommadelimited -- Get the RAW comma delimited data returned from MCVE

Description

string mcve_getcommadelimited ( resource conn, int identifier)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_getcellbynum | Subir | mcve_getheader


mcve_getheader

(PHP 4 >= 4.2.0)

mcve_getheader -- Get the name of the column in a comma-delimited response

Description

string mcve_getheader ( resource conn, int identifier, int column_num)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_getcommadelimited | Subir | mcve_getuserarg


mcve_getuserarg

(PHP 4 >= 4.2.0)

mcve_getuserarg -- Grab a value from usersetup structure

Description

string mcve_getuserarg ( resource usersetup, int argtype)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_getheader | Subir | mcve_getuserparam


mcve_getuserparam

(PHP 4 >= 4.3.0)

mcve_getuserparam -- Get a user response parameter

Description

string mcve_getuserparam ( resource conn, long identifier, int key)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_getuserarg | Subir | mcve_gft


mcve_gft

(PHP 4 >= 4.2.0)

mcve_gft -- Audit MCVE for Failed transactions

Description

int mcve_gft ( resource conn, string username, string password, int type, string account, string clerkid, string stationid, string comments, int ptrannum, string startdate, string enddate)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_getuserparam | Subir | mcve_gl


mcve_gl

(PHP 4 >= 4.2.0)

mcve_gl -- Audit MCVE for settled transactions

Description

int mcve_gl ( int conn, string username, string password, int type, string account, string batch, string clerkid, string stationid, string comments, int ptrannum, string startdate, string enddate)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_gft | Subir | mcve_gut


mcve_gut

(PHP 4 >= 4.2.0)

mcve_gut -- Audit MCVE for Unsettled Transactions

Description

int mcve_gut ( resource conn, string username, string password, int type, string account, string clerkid, string stationid, string comments, int ptrannum, string startdate, string enddate)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_gl | Subir | mcve_initconn


mcve_initconn

(PHP 4 >= 4.2.0)

mcve_initconn -- Create and initialize an MCVE_CONN structure

Description

resource mcve_initconn ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_gut | Subir | mcve_initengine


mcve_initengine

(PHP 4 >= 4.2.0)

mcve_initengine -- Ready the client for IP/SSL Communication

Description

int mcve_initengine ( string location)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_initconn | Subir | mcve_initusersetup


mcve_initusersetup

(PHP 4 >= 4.2.0)

mcve_initusersetup -- Initialize structure to store user data

Description

resource mcve_initusersetup ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_initengine | Subir | mcve_iscommadelimited


mcve_iscommadelimited

(PHP 4 >= 4.2.0)

mcve_iscommadelimited -- Checks to see if response is comma delimited

Description

int mcve_iscommadelimited ( resource conn, int identifier)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_initusersetup | Subir | mcve_liststats


mcve_liststats

(PHP 4 >= 4.2.0)

mcve_liststats -- List statistics for all users on MCVE system

Description

int mcve_liststats ( resource conn, string admin_password)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_iscommadelimited | Subir | mcve_listusers


mcve_listusers

(PHP 4 >= 4.2.0)

mcve_listusers -- List all users on MCVE system

Description

int mcve_listusers ( resource conn, string admin_password)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_liststats | Subir | mcve_maxconntimeout


mcve_maxconntimeout

(PHP 4 >= 4.3.0)

mcve_maxconntimeout -- The maximum amount of time the API will attempt a connection to MCVE

Description

bool mcve_maxconntimeout ( resource conn, int secs)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_listusers | Subir | mcve_monitor


mcve_monitor

(PHP 4 >= 4.2.0)

mcve_monitor -- Perform communication with MCVE (send/receive data) Non-blocking

Description

int mcve_monitor ( resource conn)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_maxconntimeout | Subir | mcve_numcolumns


mcve_numcolumns

(PHP 4 >= 4.2.0)

mcve_numcolumns -- Number of columns returned in a comma delimited response

Description

int mcve_numcolumns ( resource conn, int identifier)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_monitor | Subir | mcve_numrows


mcve_numrows

(PHP 4 >= 4.2.0)

mcve_numrows -- Number of rows returned in a comma delimited response

Description

int mcve_numrows ( resource conn, int identifier)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_numcolumns | Subir | mcve_override


mcve_override

(PHP 4 >= 4.2.0)

mcve_override -- Send an OVERRIDE to MCVE

Description

int mcve_override ( resource conn, string username, string password, string trackdata, string account, string expdate, float amount, string street, string zip, string cv, string comments, string clerkid, string stationid, int ptrannum)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_numrows | Subir | mcve_parsecommadelimited


mcve_parsecommadelimited

(PHP 4 >= 4.2.0)

mcve_parsecommadelimited -- Parse the comma delimited response so mcve_getcell, etc will work

Description

int mcve_parsecommadelimited ( resource conn, int identifier)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_override | Subir | mcve_ping


mcve_ping

(PHP 4 >= 4.3.0)

mcve_ping -- Send a ping request to MCVE

Description

int mcve_ping ( resource conn)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_parsecommadelimited | Subir | mcve_preauth


mcve_preauth

(PHP 4 >= 4.2.0)

mcve_preauth -- Send a PREAUTHORIZATION to MCVE

Description

int mcve_preauth ( resource conn, string username, string password, string trackdata, string account, string expdate, float amount, string street, string zip, string cv, string comments, string clerkid, string stationid, int ptrannum)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_ping | Subir | mcve_preauthcompletion


mcve_preauthcompletion

(PHP 4 >= 4.2.0)

mcve_preauthcompletion -- Complete a PREAUTHORIZATION... Ready it for settlement

Description

int mcve_preauthcompletion ( resource conn, string username, string password, float finalamount, int sid, int ptrannum)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_preauth | Subir | mcve_qc


mcve_qc

(PHP 4 >= 4.2.0)

mcve_qc -- Audit MCVE for a list of transactions in the outgoing queue

Description

int mcve_qc ( resource conn, string username, string password, string clerkid, string stationid, string comments, int ptrannum)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_preauthcompletion | Subir | mcve_responseparam


mcve_responseparam

(PHP 4 >= 4.3.0)

mcve_responseparam -- Get a custom response parameter

Description

string mcve_responseparam ( resource conn, long identifier, string key)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_qc | Subir | mcve_return


mcve_return

(PHP 4 >= 4.2.0)

mcve_return -- Issue a RETURN or CREDIT to MCVE

Description

int mcve_return ( int conn, string username, string password, string trackdata, string account, string expdate, float amount, string comments, string clerkid, string stationid, int ptrannum)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_responseparam | Subir | mcve_returncode


mcve_returncode

(PHP 4 >= 4.2.0)

mcve_returncode -- Grab the exact return code from the transaction

Description

int mcve_returncode ( resource conn, int identifier)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_return | Subir | mcve_returnstatus


mcve_returnstatus

(PHP 4 >= 4.2.0)

mcve_returnstatus -- Check to see if the transaction was successful

Description

int mcve_returnstatus ( resource conn, int identifier)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_returncode | Subir | mcve_sale


mcve_sale

(PHP 4 >= 4.2.0)

mcve_sale -- Send a SALE to MCVE

Description

int mcve_sale ( resource conn, string username, string password, string trackdata, string account, string expdate, float amount, string street, string zip, string cv, string comments, string clerkid, string stationid, int ptrannum)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_returnstatus | Subir | mcve_setblocking


mcve_setblocking

(PHP 4 >= 4.3.0)

mcve_setblocking -- Set blocking/non-blocking mode for connection

Description

int mcve_setblocking ( resource conn, int tf)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_sale | Subir | mcve_setdropfile


mcve_setdropfile

(PHP 4 >= 4.2.0)

mcve_setdropfile -- Set the connection method to Drop-File

Description

int mcve_setdropfile ( resource conn, string directory)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_setblocking | Subir | mcve_setip


mcve_setip

(PHP 4 >= 4.2.0)

mcve_setip -- Set the connection method to IP

Description

int mcve_setip ( resource conn, string host, int port)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_setdropfile | Subir | mcve_setssl_files


mcve_setssl_files

(no version information, might be only in CVS)

mcve_setssl_files -- Set certificate key files and certificates if server requires client certificate verification

Description

int mcve_setssl_files ( string sslkeyfile, string sslcertfile)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_setip | Subir | mcve_setssl


mcve_setssl

(PHP 4 >= 4.2.0)

mcve_setssl -- Set the connection method to SSL

Description

int mcve_setssl ( resource conn, string host, int port)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_setssl_files | Subir | mcve_settimeout


mcve_settimeout

(PHP 4 >= 4.2.0)

mcve_settimeout -- Set maximum transaction time (per trans)

Description

int mcve_settimeout ( resource conn, int seconds)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_setssl | Subir | mcve_settle


mcve_settle

(PHP 4 >= 4.2.0)

mcve_settle -- Issue a settlement command to do a batch deposit

Description

int mcve_settle ( resource conn, string username, string password, string batch)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_settimeout | Subir | mcve_text_avs


mcve_text_avs

(PHP 4 >= 4.3.0)

mcve_text_avs -- Get a textual representation of the return_avs

Description

string mcve_text_avs ( string code)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_settle | Subir | mcve_text_code


mcve_text_code

(PHP 4 >= 4.3.0)

mcve_text_code -- Get a textual representation of the return_code

Description

string mcve_text_code ( string code)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_text_avs | Subir | mcve_text_cv


mcve_text_cv

(PHP 4 >= 4.3.0)

mcve_text_cv -- Get a textual representation of the return_cv

Description

string mcve_text_cv ( int code)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_text_code | Subir | mcve_transactionauth


mcve_transactionauth

(PHP 4 >= 4.2.0)

mcve_transactionauth -- Get the authorization number returned for the transaction (alpha-numeric)

Description

string mcve_transactionauth ( resource conn, int identifier)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_text_cv | Subir | mcve_transactionavs


mcve_transactionavs

(PHP 4 >= 4.2.0)

mcve_transactionavs -- Get the Address Verification return status

Description

int mcve_transactionavs ( resource conn, int identifier)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_transactionauth | Subir | mcve_transactionbatch


mcve_transactionbatch

(PHP 4 >= 4.2.0)

mcve_transactionbatch -- Get the batch number associated with the transaction

Description

int mcve_transactionbatch ( resource conn, int identifier)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_transactionavs | Subir | mcve_transactioncv


mcve_transactioncv

(PHP 4 >= 4.2.0)

mcve_transactioncv -- Get the CVC2/CVV2/CID return status

Description

int mcve_transactioncv ( resource conn, int identifier)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_transactionbatch | Subir | mcve_transactionid


mcve_transactionid

(PHP 4 >= 4.2.0)

mcve_transactionid -- Get the unique system id for the transaction

Description

int mcve_transactionid ( resource conn, int identifier)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_transactioncv | Subir | mcve_transactionitem


mcve_transactionitem

(PHP 4 >= 4.2.0)

mcve_transactionitem -- Get the ITEM number in the associated batch for this transaction

Description

int mcve_transactionitem ( resource conn, int identifier)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_transactionid | Subir | mcve_transactionssent


mcve_transactionssent

(PHP 4 >= 4.2.0)

mcve_transactionssent -- Check to see if outgoing buffer is clear

Description

int mcve_transactionssent ( resource conn)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_transactionitem | Subir | mcve_transactiontext


mcve_transactiontext

(PHP 4 >= 4.2.0)

mcve_transactiontext -- Get verbiage (text) return from MCVE or processing institution

Description

string mcve_transactiontext ( resource conn, int identifier)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_transactionssent | Subir | mcve_transinqueue


mcve_transinqueue

(PHP 4 >= 4.2.0)

mcve_transinqueue -- Number of transactions in client-queue

Description

int mcve_transinqueue ( resource conn)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_transactiontext | Subir | mcve_transnew


mcve_transnew

(PHP 4 >= 4.3.0)

mcve_transnew -- Start a new transaction

Description

int mcve_transnew ( resource conn)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_transinqueue | Subir | mcve_transparam


mcve_transparam

(PHP 4 >= 4.3.0)

mcve_transparam -- Add a parameter to a transaction

Description

int mcve_transparam ( resource conn, long identifier, int key)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_transnew | Subir | mcve_transsend


mcve_transsend

(PHP 4 >= 4.3.0)

mcve_transsend -- Finalize and send the transaction

Description

int mcve_transsend ( resource conn, long identifier)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_transparam | Subir | mcve_ub


mcve_ub

(PHP 4 >= 4.2.0)

mcve_ub -- Get a list of all Unsettled batches

Description

int mcve_ub ( resource conn, string username, string password)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_transsend | Subir | mcve_uwait


mcve_uwait

(PHP 4 >= 4.3.0)

mcve_uwait -- Wait x microsecs

Description

int mcve_uwait ( long microsecs)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_ub | Subir | mcve_verifyconnection


mcve_verifyconnection

(PHP 4 >= 4.3.0)

mcve_verifyconnection -- Set whether or not to PING upon connect to verify connection

Description

bool mcve_verifyconnection ( resource conn, int tf)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_uwait | Subir | mcve_verifysslcert


mcve_verifysslcert

(PHP 4 >= 4.3.0)

mcve_verifysslcert -- Set whether or not to verify the server ssl certificate

Description

bool mcve_verifysslcert ( resource conn, int tf)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_verifyconnection | Subir | mcve_void


mcve_void

(PHP 4 >= 4.2.0)

mcve_void -- VOID a transaction in the settlement queue

Description

int mcve_void ( resource conn, string username, string password, int sid, int ptrannum)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mcve_verifysslcert | Subir | Funciones Hash


Funciones Hash

Manual de PHP
Anterior Siguiente

LVI. Funciones Hash

Estas funciones han sido realizadas para trabajar con mhash.

Esta es una interfaz con al librería mhash. mhash soporta una amplia variedad de algoritmos hash como MD5, SHA1, GOST, y muchos otros.

Para usarla, hay que descargar la distribución desde su sitio web y seguir las intrucciones de instalación. Se necesita compilar PHP con el parámetro --with-mhash para activar esta extensión.

mhash puede ser usado para crear checksums, message digests, y más.

Ejemplo 1. Generar una clave SHA1 e imprimirla en hexadecimal

<?php
$entrada = "Coincidamos a las 9 en punto en el lugar secreto.";
$hash = mhash(MHASH_SHA1, $entrada);

print "El hash es ".bin2hex($hash)."\n";

?>
Esto generará:
El hash es 3e90dc924e8e4a03dc075daa720374d09c3b5920
Para una lista completa de hash soportados, refiérase a la documentación de mhash. La regla general es que se puede acceder a los algoritmos hash desde PHP con MHASH_HASHNAME. Como ejemplo, para acceder a HAVAL se debe usar la constante de PHP llamada MHASH_HAVAL.

Aquí hay una lista de hashes que está actualmente soportada por mhash. Si un hash no está en dicha lista pero aparece como soportado por mhash, entonces se asume con plena seguridad que esta documentación esta desactualizada.

  • MHASH_MD5

  • MHASH_SHA1

  • MHASH_HAVAL

  • MHASH_RIPEMD160

  • MHASH_RIPEMD128

  • MHASH_SNEFRU

  • MHASH_TIGER

  • MHASH_GOST

  • MHASH_CRC32

  • MHASH_CRC32B

Tabla de contenidos
mhash_count -- Obtener el valor mayor del id hash disponible
mhash_get_block_size -- Conseguir el tamaño de bloque de el hash especificado
mhash_get_hash_name -- Conseguir el nombre de un hash especifico
mhash_keygen_s2k -- Genera una llave
mhash -- Calcular el hash

Anterior | Inicio | Siguiente
mcve_void | Subir | mhash_count


mhash_count

(PHP 3>= 3.0.9, PHP 4 )

mhash_count -- Obtener el valor mayor del id hash disponible

Descripcion

int mhash_count ( void )

mhash_count() devuelve el valor mas alto id hash disponible. Los hash estan numerados desde 0 hasta este valor.

Ejemplo 1. Recorriendo todos los hash

<?php

$nr = mhash_count();

for($i = 0; $i <= $nr; $i++) {
    echo sprintf("The blocksize of %s is %d\n",
            mhash_get_hash_name($i),
            mhash_get_block_size($i));
}
?>

Anterior | Inicio | Siguiente
Funciones Hash | Subir | mhash_get_block_size


mhash_get_block_size

(PHP 3>= 3.0.9, PHP 4 )

mhash_get_block_size -- Conseguir el tamaño de bloque de el hash especificado

Descripcion

int mhash_get_block_size ( int hash)

mhash_get_block_size() es usado para obtener el tamaño de un bloque de el hash determinado.

mhash_get_block_size() toma un argumento, el hash y devuelve el tamaño en bytes o FALSE, si el hash no existe.

Anterior | Inicio | Siguiente
mhash_count | Subir | mhash_get_hash_name


mhash_get_hash_name

(PHP 3>= 3.0.9, PHP 4 )

mhash_get_hash_name -- Conseguir el nombre de un hash especifico

Descripcion

string mhash_get_hash_name ( int hash)

mhash_get_hash_name() es usado para conseguir el nombre de el hash determinado.

mhash_get_hash_name() toma el id del hash como un argumento y devuelve el nombre de el hash o FALSE, si el hash no existe.

Ejemplo 1. mhash_get_hash_name example

<?php
$hash = MHASH_MD5;

print mhash_get_hash_name($hash);
?>
El ejemplo anterior mostrara:
MD5

Anterior | Inicio | Siguiente
mhash_get_block_size | Subir | mhash_keygen_s2k


mhash_keygen_s2k

(PHP 4 >= 4.0.4)

mhash_keygen_s2k -- Genera una llave

Descripción

string mhash_keygen_s2k ( int hash, string contrasenya, string sal, int bytes)

mhash_keygen_s2k() genera una llave con una longitud indicada por bytes, a partir de una contraseña entregada por el usuario. Este es el algoritmo con sal S2K, tal y como se encuentra especificado en el documento OpenPGP (RFC 2440). Ese algoritmo usará el algoritmo hash especificado para crear la llave. La sal debe ser diferente y suficientemente aleatoria para cada llave que genere para crear diferentes llaves. La sal debe conocerse cuando chequee las llaves, de modo que es una buena idea adicionarle la llave al final. La sal tiene un tamaño fijo de 8 bytes y será rellenada con ceros si usted suple menos bytes.

Tenga en mente que las contraseñas entregadas por el usuario no son realmente apropiadas para ser usadas como llaves en algoritmos criptográficos, ya que los usuarios normalmente eligen llaves que pueden escribir con el teclado. Estas contreseñas usan solo 6 o 7 bits por caracter (o menos). Es bastante recomendable usar algún tipo de transformación (como esta función) sobre la llave entregada por el usuario.

Anterior | Inicio | Siguiente
mhash_get_hash_name | Subir | mhash


mhash

(PHP 3>= 3.0.9, PHP 4 )

mhash -- Calcular el hash

Descripcion

string mhash ( int hash, string data)

mhash() aplica una funcion hash especificada por hash a data y devuelve el valor hash resultante (tambien llamdo digest).

Anterior | Inicio | Siguiente
mhash_keygen_s2k | Subir | Funciones Mimetype


Funciones Mimetype

Manual de PHP
Anterior Siguiente

LVII. Funciones Mimetype

Introducción

Las funciones de este módulo intentan adivinar el tipo de contenido y la codificación de un archivo, mirando ciertas secuencias de bytes mágicas en posiciones específicas dentro del archivo. Aunque éste no es un enfoque completamente seguro, la heurística usada cumple un muy buen trabajo.

Esta extensión es derivada del módulo de Apache mod_mime_magic, el cual a su vez está basado en el comando file, administrado por Ian F. Darwin. Vea el código fuente para consultar más datos históricos y la información de copyright.

Requerimientos

No se necesitan bibliotecas externas para construir esta extensión

Instalación

Debe compilar PHP con la opción de configuración --with-mime-magic para contar con soporte para funciones mime-type. La extensión necesita una copia del archivo magic simplificado, que es distribuido con el servidor web Apache.

Nota: La opción de configuración ha cambiado de --enable-mime-magic a --with-mime-magic a partir de PHP 4.3.2.

Nota: Esta extensión no es capaz de gestionar el archivo magic completamente decorado que generalmente viene con las distribuciones normales de Linux, y es utilizado por lo general con versiones recientes del comando file.

Nota para Usuarios de Win32: Para usar este módulo en un entorno Windows, debe definir la ruta hacia el archivo magic.mime distribuido en su php.ini.

Ejemplo 1. Definición de la ruta hacia magic.mime

mime_magic.magicfile ="$PHP_INSTALL_DIR\magic.mime"
Recuerde sustituir el valor $PHP_INSTALL_DIR con su ruta real hacia PHP en el anterior ejemplo. Por ejemplo, c:\php

Configuración en tiempo de ejecución

El comportamiento de estas funciones está afectado por los valores definidos en php.ini.

Tabla 1. Opciones de configuración de Mimetype

Nombre | Predeterminado | Modificable
mime_magic.magicfile | "/usr/share/misc/magic.mime" | PHP_INI_SYSTEM
Para más detalles sobre las constantes PHP_INI_* y su definición, vea ini_set().

Tipos de recursos

Esta extensión no tiene ningún tipo de recurso definido.

Constantes predefinidas

Esta extensión no tiene ninguna constante definida.

Tabla de contenidos
mime_content_type -- Detectar el tipo de contenido MIME de un archivo

Anterior | Inicio | Siguiente
mhash | Subir | mime_content_type


mime_content_type

(PHP 4 >= 4.3.0)

mime_content_type -- Detectar el tipo de contenido MIME de un archivo

Descripción

string mime_content_type ( string nombre_archivo)

Devuelve el tipo de contenido MIME de un archivo, tal y como sea determinado por medio del uso de información tomada del archivo magic.mime. Los tipos de contenido son devueltos en formato MIME, como text/plain o application/octet-stream.

Anterior | Inicio | Siguiente
Funciones Mimetype | Subir | Funciones de Microsoft SQL Server


Funciones de Microsoft SQL Server

Manual de PHP
Anterior Siguiente

LVIII. Funciones de Microsoft SQL Server

Tabla de contenidos
mssql_bind -- Adds a parameter to a stored procedure or a remote stored procedure
mssql_close -- cierra una conexión con MS SQL Server
mssql_connect -- abre una conexión con MS SQL server
mssql_data_seek -- mueve el puntero interno de las filas
mssql_execute -- Executes a stored procedure on a MS SQL server database
mssql_fetch_array -- Captura la fila en un array
mssql_fetch_assoc -- Returns an associative array of the current row in the result set specified by result_id
mssql_fetch_batch -- Returns the next batch of records
mssql_fetch_field -- obtiene la información de los campos
mssql_fetch_object -- captura la fila como un objeto
mssql_fetch_row -- obtiene la fila como un array numerado
mssql_field_length -- Get the length of a field
mssql_field_name -- Get the name of a field
mssql_field_seek -- set field offset
mssql_field_type -- Gets the type of a field
mssql_free_result -- libera de la memoria el resultado de una consulta
mssql_free_statement -- Free statement memory
mssql_get_last_message -- Returns the last message from the server
mssql_guid_string -- Converts a 16 byte binary GUID to a string
mssql_init -- Initializes a stored procedure or a remote stored procedure
mssql_min_error_severity -- Sets the lower error severity
mssql_min_message_severity -- Sets the lower message severity
mssql_next_result -- Move the internal result pointer to the next result
mssql_num_fields -- obtiene el número de campos de la consulta
mssql_num_rows -- obtiene el número de filas de la consulta
mssql_pconnect -- abre una conexión persistenete con MS SQL
mssql_query -- envia una consulta MS SQL
mssql_result -- get result data
mssql_rows_affected -- Returns the number of records affected by the query
mssql_select_db -- selecciona una base de datos MS SQL

Anterior | Inicio | Siguiente
mime_content_type | Subir | mssql_bind


mssql_bind

(PHP 4 >= 4.1.0)

mssql_bind -- Adds a parameter to a stored procedure or a remote stored procedure

Description

bool mssql_bind ( resource stmt, string param_name, mixed var, int type [, int is_output [, int is_null [, int maxlen]]])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

See also mssql_execute(),
mssql_free_statement(), and
mssql_init().

Anterior | Inicio | Siguiente
Funciones de Microsoft SQL Server | Subir | mssql_close


mssql_close

(PHP 3, PHP 4 )

mssql_close -- cierra una conexión con MS SQL Server

Descripción

int mssql_close ( int link_identifier)

Devuleve: TRUE si se finaliza con éxito, FALSE si se produce un error

mssql_close() cierra la conexión con una base de datos MS SQL Server que está asociada al identificador especificado. Si el identificador no se especifica, se asume la última conexión abierta.

Observe que normalmente esto no es necesario, ya que las conexiones no-persistentes abiertas se cierran automaticamente en cuanto finaliza el script.

mssql_close() no cerrará conexiones persistentes generadas por mssql_pconnect().

Ver también: mssql_connect(), mssql_pconnect().

Anterior | Inicio | Siguiente
mssql_bind | Subir | mssql_connect


mssql_connect

(PHP 3, PHP 4 )

mssql_connect -- abre una conexión con MS SQL server

Descripción

int mssql_connect ( string servername, string username, string password)

Devuelve: Un identificador de MSSQL si se ejecuta correctamente, o FALSE si se produce un error.

mssql_connect() establece una conexión con MS SQL server. El argumento servername debe ser un nombre de servidor válido, que está definido en el fichero 'interfaces'.

En caso de hacer una segunda llamada a mssql_connect() con los mismos argumentos, no se establecerá una nueva conexión, sino que se devolverá el identificador de la conexión establecida anteriormente.

La conexión con el servidor se cerrará tan pronto como finalice el script, a menos que se cierre antes, mediante una llamada explicita a la función mssql_close().

Ver también mssql_pconnect(), mssql_close().

Anterior | Inicio | Siguiente
mssql_close | Subir | mssql_data_seek


mssql_data_seek

(PHP 3, PHP 4 )

mssql_data_seek -- mueve el puntero interno de las filas

Descripción

int mssql_data_seek ( int result_identifier, int row_number)

Devuelve: TRUE si se ejecuta con éxito, FALSE si falla.

mssql_data_seek() mueve el puntero interno de la consulta MS SQL asociada al result_identifier especificado, para que apunte al número de fila especificada. La siguiente llamada a mssql_fetch_row() devolverá esa fila.

Ver también: mssql_data_seek().

Anterior | Inicio | Siguiente
mssql_connect | Subir | mssql_execute


mssql_execute

(PHP 4 >= 4.1.0)

mssql_execute -- Executes a stored procedure on a MS SQL server database

Description

mixed mssql_execute ( resource stmt [, bool skip_results])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Nota: If the stored procedure returns parameters or a return value these will be available after the call to mssql_execute() unless the stored procedure returns more than one result set. In that case use mssql_next_result() to shift through the results. When the last result has been processed the output parameters and return values will be available.

See also mssql_bind(),
mssql_free_statement(), and
mssql_init().

Anterior | Inicio | Siguiente
mssql_data_seek | Subir | mssql_fetch_array


mssql_fetch_array

(PHP 3, PHP 4 )

mssql_fetch_array -- Captura la fila en un array

Descripción

int mssql_fetch_array ( int result)

Devuelve: Un array que corresponde a la fila capturada, o FALSE si no hay más filas.

mssql_fetch_array() es una versión extendida de mssql_fetch_row(). A¤ade el almacenar los datos en los índices numéricos del array resultante, también almacena los datos en índices asociativos, usando los nombres de los campos como claves.

Una observación a tener en cuenta es, que usar mssql_fetch_array() NO es más lento que usar mssql_fetch_row(), mientras que esta provee un valor a¤adido significativo.

Para más detalles, ver también mssql_fetch_row()

Anterior | Inicio | Siguiente
mssql_execute | Subir | mssql_fetch_assoc


mssql_fetch_assoc

(PHP 4 >= 4.2.0)

mssql_fetch_assoc -- Returns an associative array of the current row in the result set specified by result_id

Description

array mssql_fetch_assoc ( resource result_id)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mssql_fetch_array | Subir | mssql_fetch_batch


mssql_fetch_batch

(PHP 4 >= 4.0.4)

mssql_fetch_batch -- Returns the next batch of records

Description

int mssql_fetch_batch ( resource result_index)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mssql_fetch_assoc | Subir | mssql_fetch_field


mssql_fetch_field

(PHP 3, PHP 4 )

mssql_fetch_field -- obtiene la información de los campos

Descripción

object mssql_fetch_field ( int result, int field_offset)

Devuleve un objeto que contiene información de los campos.

mssql_fetch_field() se puede usar para obtener información acerca de los campos pertenecientes al resultado de una consulta. Si el parámetro field_offset no es especificado, se devuelve la información del siguiente campo que todavía no ha sido devuelto por mssql_fetch_field().

Las propiedades de este objeto son:

  • name - nombre de la columna. si la columna es el resultado de una función, esta propiedad vale #N, donde #N es un número de serie.

  • column_source - la tabla de donde se tomó la columna

  • max_length - longitud máxima de columna

  • numeric - 1 si la columna es numérica

Ver también mssql_field_seek()

Anterior | Inicio | Siguiente
mssql_fetch_batch | Subir | mssql_fetch_object


mssql_fetch_object

(PHP 3)

mssql_fetch_object -- captura la fila como un objeto

Descripción

int mssql_fetch_object ( int result)

Devuelve: Un objeto con propiedades que se corresponden con la fila capturada, o FALSE si no hay más filas.

mssql_fetch_object() es parecida a mssql_fetch_array(), con una diferencia - devuelve un objeto en vez de un array. Indirectamente, esto significa que sólo se puede acceder a los datos por el nombre de los campos, y no por sus posiciones en el objeto (los números no son nombres de propiedades válidas).

La función es idéntica a mssql_fetch_array(), y casi tan rápida como mssql_fetch_row() (la diferencia es insignificante).

Ver también: mssql_fetch-array() and mssql_fetch-row().

Anterior | Inicio | Siguiente
mssql_fetch_field | Subir | mssql_fetch_row


mssql_fetch_row

(PHP 3, PHP 4 )

mssql_fetch_row -- obtiene la fila como un array numerado

Descripción

array mssql_fetch_row ( int result)

Devuleve: Un array que corresponde a la fila capturada, o FALSE si no hay más filas.

mssql_fetch_row() captura una fila de datos pertenecientes al resultado asociado con el identificador de resultado especificado. La fila es devuelta como un array. Cada columna de resultados es almacenada en una posición del array, comenzando en la posición 0.

Siguientes llamadas a mssql_fetch_rows() devolverían las filas siguientes del result set, o FALSE si no hay mas filas.

Ver también: mssql_fetch_array(),
          mssql_fetch_object(),
          mssql_data_seek(),
          mssql_fetch_lengths(), and
          mssql_result().

Anterior | Inicio | Siguiente
mssql_fetch_object | Subir | mssql_field_length


mssql_field_length

(PHP 3>= 3.0.3, PHP 4 )

mssql_field_length -- Get the length of a field

Description

int mssql_field_length ( resource result [, int offset])

This function returns the length of field no. offset in result result. If offset is omitted, the current field is used.

Note to Win32 Users: Due to a limitation in the underlying API used by PHP (MS DbLib C API), the length of VARCHAR fields is limited to 255. If you need to store more data, use a TEXT field instead.

Anterior | Inicio | Siguiente
mssql_fetch_row | Subir | mssql_field_name


mssql_field_name

(PHP 3>= 3.0.3, PHP 4 )

mssql_field_name -- Get the name of a field

Description

string mssql_field_name ( resource result [, int offset])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mssql_field_length | Subir | mssql_field_seek


mssql_field_seek

(PHP 3, PHP 4 )

mssql_field_seek -- set field offset

Descripción

int mssql_field_seek ( int result, int field_offset)

Se posiciona en el campo especificado por el parámetro field_offset. Si la siguiente llamada a mssql_fetch_field() no incluye el parámetro field_offset, lo que devuelve la función es el campo.

Ver también: mssql_fetch_field().

Anterior | Inicio | Siguiente
mssql_field_name | Subir | mssql_field_type


mssql_field_type

(PHP 3>= 3.0.3, PHP 4 )

mssql_field_type -- Gets the type of a field

Description

string mssql_field_type ( resource result [, int offset])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mssql_field_seek | Subir | mssql_free_result


mssql_free_result

(PHP 3, PHP 4 )

mssql_free_result -- libera de la memoria el resultado de una consulta

Descripción

int mssql_free_result ( int result)

mssql_free_result() sólo se necesita llamarla si le preocupa el estar usando mucha memoria mientras se está ejecutando el script. Toda el resultado en memoria será liberado automaticamente cuando finalice el script, puede llamar a mssql_free_result() con el identificador de la consulta como argumento y la consulta asociada será liberada de la memoria.

Anterior | Inicio | Siguiente
mssql_field_type | Subir | mssql_free_statement


mssql_free_statement

(PHP 4 >= 4.3.2)

mssql_free_statement -- Free statement memory

Description

bool mssql_free_statement ( resource statement)

mssql_free_statement() only needs to be called if you are worried about using too much memory while your script is running. All statement memory will automatically be freed when the script ends. You may call mssql_free_statement() with the statement identifier as an argument and the associated statement memory will be freed.

See also mssql_bind(),
mssql_execute(), and
mssql_init()

Anterior | Inicio | Siguiente
mssql_free_result | Subir | mssql_get_last_message


mssql_get_last_message

(PHP 3, PHP 4 )

mssql_get_last_message -- Returns the last message from the server

Description

string mssql_get_last_message ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mssql_free_statement | Subir | mssql_guid_string


mssql_guid_string

(PHP 4 >= 4.1.0)

mssql_guid_string -- Converts a 16 byte binary GUID to a string

Description

string mssql_guid_string ( string binary [, int short_format])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mssql_get_last_message | Subir | mssql_init


mssql_init

(PHP 4 >= 4.1.0)

mssql_init -- Initializes a stored procedure or a remote stored procedure

Description

int mssql_init ( string sp_name [, resource conn_id])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

See also mssql_bind(),
mssql_execute(), and
mssql_free_statement()

Anterior | Inicio | Siguiente
mssql_guid_string | Subir | mssql_min_error_severity


mssql_min_error_severity

(PHP 3, PHP 4 )

mssql_min_error_severity -- Sets the lower error severity

Description

void mssql_min_error_severity ( int severity)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mssql_init | Subir | mssql_min_message_severity


mssql_min_message_severity

(PHP 3, PHP 4 )

mssql_min_message_severity -- Sets the lower message severity

Description

void mssql_min_message_severity ( int severity)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mssql_min_error_severity | Subir | mssql_next_result


mssql_next_result

(PHP 4 >= 4.0.5)

mssql_next_result -- Move the internal result pointer to the next result

Description

bool mssql_next_result ( resource result_id)

When sending more than one SQL statement to the server or executing a stored procedure with multiple results, it will cause the server to return multiple result sets. This function will test for additional results available form the server. If an additional result set exists it will free the existing result set and prepare to fetch the rows from the new result set. The function will return TRUE if an additional result set was available or FALSE otherwise.

Ejemplo 1. mssql_next_result() example

<?php
    $link = mssql_connect ("localhost", "userid", "secret");
    mssql_select_db("MyDB", $link);
    $SQL = "Select * from table1 select * from table2";
    $rs = mssql_query($SQL, $link);
    do {
        while ($row = mssql_fetch_row($rs)) {
        }
    } while (mssql_next_result($rs));
    mssql_free_result($rs);
    mssql_close ($link);
?>

Anterior | Inicio | Siguiente
mssql_min_message_severity | Subir | mssql_num_fields


mssql_num_fields

(PHP 3, PHP 4 )

mssql_num_fields -- obtiene el número de campos de la consulta

Descripción

int mssql_num_fields ( int result)

mssql_num_fields() devuelve el número de campos de la consulta o result set.

Ver también:
mssql_db_query(),
mssql_query(),
mssql_fetch_field(),
mssql_num_rows().

Anterior | Inicio | Siguiente
mssql_next_result | Subir | mssql_num_rows


mssql_num_rows

(PHP 3, PHP 4 )

mssql_num_rows -- obtiene el número de filas de la consulta

Descripción

int mssql_num_rows ( string result)

mssql_num_rows() devuelve el número de filas de la consulta o result set.

Ver también:
mssql_db_query(),
mssql_query() and,
mssql_fetch_row().

Anterior | Inicio | Siguiente
mssql_num_fields | Subir | mssql_pconnect


mssql_pconnect

(PHP 3, PHP 4 )

mssql_pconnect -- abre una conexión persistenete con MS SQL

Descripción

int mssql_pconnect ( string servername, string username, string password)

Devuelve: Un identificador persistente postivo si no hay error, o FALSE si se produce alguno

mssql_pconnect() funciona de la misma forma que mssql_connect() aunque con dos grandes diferencias.

La primera es que cuando intenta conectar, la función intentará encontrar un enlace (persistente) que ya esté abierto en el mismo ordenador, nombre de usuario y contrase¤a. Si lo encuentra, la funcion devolverá el identificador de esta en vez de abrir una nueva conexión.

Y la segunda, la conexión con el servidor no se cerrará cuando finalice la ejecución del script. En vez de esto, el enlace permanecerá abierto para un uso futuro. (mssql_close() no cerrará enlaces establecidos por mssql_pconnect()).

Por consiguiente, este tipo de enlace es llamado 'persistente'.

Anterior | Inicio | Siguiente
mssql_num_rows | Subir | mssql_query


mssql_query

(PHP 3, PHP 4 )

mssql_query -- envia una consulta MS SQL

Descripción

int mssql_query ( string query, int link_identifier)

Devuelve: Un identificado de resultado valido si no hay error, o FALSE en caso contrario.

mssql_query() envia una petición de consulta a la base de datos activa en el servidor asociada al identificador de enlace especificado. Si el identificador del enlace no es especificado, se asume como abierto el último enlace. Si no hay ningún enlace abierto, la función intenta establecer un enlace como si mssql_connect() hubiera sido llamada, y lo usa.

Ver también:
mssql_db_query(),
mssql_select_db(), and
mssql_connect().

Anterior | Inicio | Siguiente
mssql_pconnect | Subir | mssql_result


mssql_result

(PHP 3, PHP 4 )

mssql_result -- get result data

Descripción

int mssql_result ( int result, int i, mixed field)

Devuelve: El contenido de la celda en la fila y posición del result set especificado.

mssql_result() devuelve el contenido de una celda del result set. El parametro field puede ser la posición del campo, o el nombre del campo o bién nombretabla.nombrecampo. Si el nombre de la columna ha sido renombrado ('select foo as bar from...'), use el alias en vez del nombre de la columna.

Trabajando con result sets de gran tama¤o, debería considerar el uso de una de las funciones que capturan una fila completa (especificadas abajo). Como estas funciones devuelven el contenido de múltiples celdas en una sóla llamada, estas son MUCHO más rápidas que mssql_result(). También, observe que especificar una posición númerica para el argumento field es mucho mas rápido que especificar el nombre de un campo o utilizar la forma nombretabla.nombrecampo como argumento.

Alternativas recomendadas para mayor rendimiento :
mssql_fetch_row(),
mssql_fetch_array(), y
mssql_fetch_object().

Anterior | Inicio | Siguiente
mssql_query | Subir | mssql_rows_affected


mssql_rows_affected

(PHP 4 >= 4.0.4)

mssql_rows_affected -- Returns the number of records affected by the query

Description

int mssql_rows_affected ( resource conn_id)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mssql_result | Subir | mssql_select_db


mssql_select_db

(PHP 3, PHP 4 )

mssql_select_db -- selecciona una base de datos MS SQL

Descripción

int mssql_select_db ( string database_name, int link_identifier)

Devuelve: TRUE si todo va bién, FALSE si se produce un error

mssql_select_db() selecciona como base de datos activa del servidor, la que está asociada al identificador de enlace especificado. Si no se especifica nigún identificador, se asume el último enlace. Si no hay ningún enlace abierto, la función intentará establecer un enlace como si se llamara a la función mssql_connect(), y lo usa.

Cada llamada a mssql_query() será realizada sobre la base de datos activa.

Ver también:
    mssql_connect(),
    mssql_pconnect(), y
    mssql_query()

Anterior | Inicio | Siguiente
mssql_rows_affected | Subir | Ming functions for Flash


Ming functions for Flash

Manual de PHP
Anterior Siguiente

LIX. Ming functions for Flash

Aviso

Esta extensión es EXPERIMENTAL. Esto significa que el comportamiento de esta extensión, los nombre de sus funciones y en definitiva TODO lo documentado sobre esta extensión, puede cambiar en una futura versión de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Introducción

First of all: Ming is not an acronym. Ming is an open-source (LGPL) library which allows you to create SWF ("Flash") format movies. Ming supports almost all of Flash 4's features, including: shapes, gradients, bitmaps (pngs and jpegs), morphs ("shape tweens"), text, buttons, actions, sprites ("movie clips"), streaming mp3, and color transforms --the only thing that's missing is sound events.

Note that all values specifying length, distance, size, etc. are in "twips", twenty units per pixel. That's pretty much arbitrary, though, since the player scales the movie to whatever pixel size is specified in the embed/object tag, or the entire frame if not embedded.

Ming offers a number of advantages over the existing PHP/libswf module. You can use Ming anywhere you can compile the code, whereas libswf is closed-source and only available for a few platforms, Windows not one of them. Ming provides some insulation from the mundane details of the SWF file format, wrapping the movie elements in PHP objects. Also, Ming is still being maintained; if there's a feature that you want to see, just let us know ming@opaque.net.

Ming was added in PHP 4.0.5.

Requerimientos

To use Ming with PHP, you first need to build and install the Ming library. Source code and installation instructions are available at the Ming home page: http://ming.sourceforge.net/ along with examples, a small tutorial, and the latest news.

Download the ming archive. Unpack the archive. Go in the Ming directory. make. make install.

This will build libming.so and install it into /usr/lib/, and copy ming.h into /usr/include/. Edit the PREFIX= line in the Makefile to change the installation directory.

Instalación

Ejemplo 1. built into php (unix)

mkdir <phpdir>/ext/ming
cp php_ext/* <phpdir>/ext/ming
cd <phpdir>
./buildconf
./configure --with-ming <other config options>

Build and install php as usual, restart web server if necessary.

Now either just add extension=php_ming.so to your php.ini file, or put dl('php_ming.so'); at the head of all of your Ming scripts.

Configuración en tiempo de ejecución

Esta extensión no tiene directivas de configuración en php.ini.

Tipos de recursos

Constantes predefinidas

Estas constantes están definidas por esta extensión y estarán disponibles solamente cuando la extensión ha sido o bien compilada dentro de PHP o grabada dinámicamente en tiempo de ejecución.

SWFBUTTON_HIT (integer)

SWFBUTTON_DOWN (integer)

SWFBUTTON_OVER (integer)

SWFBUTTON_UP (integer)

SWFBUTTON_MOUSEUPOUTSIDE (integer)

SWFBUTTON_DRAGOVER (integer)

SWFBUTTON_DRAGOUT (integer)

SWFBUTTON_MOUSEUP (integer)

SWFBUTTON_MOUSEDOWN (integer)

SWFBUTTON_MOUSEOUT (integer)

SWFBUTTON_MOUSEOVER (integer)

SWFFILL_RADIAL_GRADIENT (integer)

SWFFILL_LINEAR_GRADIENT (integer)

SWFFILL_TILED_BITMAP (integer)

SWFFILL_CLIPPED_BITMAP (integer)

SWFTEXTFIELD_HASLENGTH (integer)

SWFTEXTFIELD_NOEDIT (integer)

SWFTEXTFIELD_PASSWORD (integer)

SWFTEXTFIELD_MULTILINE (integer)

SWFTEXTFIELD_WORDWRAP (integer)

SWFTEXTFIELD_DRAWBOX (integer)

SWFTEXTFIELD_NOSELECT (integer)

SWFTEXTFIELD_HTML (integer)

SWFTEXTFIELD_ALIGN_LEFT (integer)

SWFTEXTFIELD_ALIGN_RIGHT (integer)

SWFTEXTFIELD_ALIGN_CENTER (integer)

SWFTEXTFIELD_ALIGN_JUSTIFY (integer)

SWFACTION_ONLOAD (integer)

SWFACTION_ENTERFRAME (integer)

SWFACTION_UNLOAD (integer)

SWFACTION_MOUSEMOVE (integer)

SWFACTION_MOUSEDOWN (integer)

SWFACTION_MOUSEUP (integer)

SWFACTION_KEYDOWN (integer)

SWFACTION_KEYUP (integer)

SWFACTION_DATA (integer)

Clases predefinidas

Estas clases están definidas por esta extensión y estarán disponibles cuando la extensión haya sido compilada dentro de PHP o cargada dinámicamente en tiempo de ejecución

Ming introduces 13 new objects in PHP, all with matching methods and attributes. To use them, you need to know about objects.

swfshape

swffill

swfgradient

swfbitmap

swftext

swftextfield

swffont

swfdisplayitem

swfmovie

swfbutton

swfaction

swfmorph

swfsprite

Tabla de contenidos
ming_setcubicthreshold -- Set cubic threshold (?)
ming_setscale -- Set scale (?)
ming_useswfversion -- Use SWF version (?)
SWFAction -- Creates a new Action.
SWFBitmap->getHeight -- Returns the bitmap's height.
SWFBitmap->getWidth -- Returns the bitmap's width.
SWFBitmap -- Loads Bitmap object
swfbutton_keypress -- Returns the action flag for keyPress(char)
SWFbutton->addAction -- Adds an action
SWFbutton->addShape -- Adds a shape to a button
SWFbutton->setAction -- Sets the action
SWFbutton->setdown -- Alias for addShape(shape, SWFBUTTON_DOWN))
SWFbutton->setHit -- Alias for addShape(shape, SWFBUTTON_HIT)
SWFbutton->setOver -- Alias for addShape(shape, SWFBUTTON_OVER)
SWFbutton->setUp -- Alias for addShape(shape, SWFBUTTON_UP)
SWFbutton -- Creates a new Button.
SWFDisplayItem->addColor -- Adds the given color to this item's color transform.
SWFDisplayItem->move -- Moves object in relative coordinates.
SWFDisplayItem->moveTo -- Moves object in global coordinates.
SWFDisplayItem->multColor -- Multiplies the item's color transform.
SWFDisplayItem->remove -- Removes the object from the movie
SWFDisplayItem->Rotate -- Rotates in relative coordinates.
SWFDisplayItem->rotateTo -- Rotates the object in global coordinates.
SWFDisplayItem->scale -- Scales the object in relative coordinates.
SWFDisplayItem->scaleTo -- Scales the object in global coordinates.
SWFDisplayItem->setDepth -- Sets z-order
SWFDisplayItem->setName -- Sets the object's name
SWFDisplayItem->setRatio -- Sets the object's ratio.
SWFDisplayItem->skewX -- Sets the X-skew.
SWFDisplayItem->skewXTo -- Sets the X-skew.
SWFDisplayItem->skewY -- Sets the Y-skew.
SWFDisplayItem->skewYTo -- Sets the Y-skew.
SWFDisplayItem -- Creates a new displayitem object.
SWFFill->moveTo -- Moves fill origin
SWFFill->rotateTo -- Sets fill's rotation
SWFFill->scaleTo -- Sets fill's scale
SWFFill->skewXTo -- Sets fill x-skew
SWFFill->skewYTo -- Sets fill y-skew
SWFFill -- Loads SWFFill object
swffont->getwidth -- Returns the string's width
SWFFont -- Loads a font definition
SWFGradient->addEntry -- Adds an entry to the gradient list.
SWFGradient -- Creates a gradient object
SWFMorph->getshape1 -- Gets a handle to the starting shape
SWFMorph->getshape2 -- Gets a handle to the ending shape
SWFMorph -- Creates a new SWFMorph object.
SWFMovie->add -- Adds any type of data to a movie.
SWFMovie->nextframe -- Moves to the next frame of the animation.
SWFMovie->output -- Dumps your lovingly prepared movie out.
swfmovie->remove -- Removes the object instance from the display list.
SWFMovie->save -- Saves your movie in a file.
SWFMovie->setbackground -- Sets the background color.
SWFMovie->setdimension -- Sets the movie's width and height.
SWFMovie->setframes -- Sets the total number of frames in the animation.
SWFMovie->setrate -- Sets the animation's frame rate.
SWFMovie->streammp3 -- Streams a MP3 file.
SWFMovie -- Creates a new movie object, representing an SWF version 4 movie.
SWFShape->addFill -- Adds a solid fill to the shape.
SWFShape->drawCurve -- Draws a curve (relative).
SWFShape->drawCurveTo -- Draws a curve.
SWFShape->drawLine -- Draws a line (relative).
SWFShape->drawLineTo -- Draws a line.
SWFShape->movePen -- Moves the shape's pen (relative).
SWFShape->movePenTo -- Moves the shape's pen.
SWFShape->setLeftFill -- Sets left rasterizing color.
SWFShape->setLine -- Sets the shape's line style.
SWFShape->setRightFill -- Sets right rasterizing color.
SWFShape -- Creates a new shape object.
swfsprite->add -- Adds an object to a sprite
SWFSprite->nextframe -- Moves to the next frame of the animation.
SWFSprite->remove -- Removes an object to a sprite
SWFSprite->setframes -- Sets the total number of frames in the animation.
SWFSprite -- Creates a movie clip (a sprite)
SWFText->addString -- Draws a string
SWFText->getWidth -- Computes string's width
SWFText->moveTo -- Moves the pen
SWFText->setColor -- Sets the current font color
SWFText->setFont -- Sets the current font
SWFText->setHeight -- Sets the current font height
SWFText->setSpacing -- Sets the current font spacing
SWFText -- Creates a new SWFText object.
SWFTextField->addstring -- Concatenates the given string to the text field
SWFTextField->align -- Sets the text field alignment
SWFTextField->setbounds -- Sets the text field width and height
SWFTextField->setcolor -- Sets the color of the text field.
SWFTextField->setFont -- Sets the text field font
SWFTextField->setHeight -- Sets the font height of this text field font.
SWFTextField->setindentation -- Sets the indentation of the first line.
SWFTextField->setLeftMargin -- Sets the left margin width of the text field.
SWFTextField->setLineSpacing -- Sets the line spacing of the text field.
SWFTextField->setMargins -- Sets the margins width of the text field.
SWFTextField->setname -- Sets the variable name
SWFTextField->setrightMargin -- Sets the right margin width of the text field.
SWFTextField -- Creates a text field object

Anterior | Inicio | Siguiente
mssql_select_db | Subir | ming_setcubicthreshold


ming_setcubicthreshold

(PHP 4 >= 4.0.5)

ming_setcubicthreshold -- Set cubic threshold (?)

Description

void ming_setcubicthreshold ( int threshold)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
Ming functions for Flash | Subir | ming_setscale


ming_setscale

(PHP 4 >= 4.0.5)

ming_setscale -- Set scale (?)

Description

void ming_setscale ( int scale)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ming_setcubicthreshold | Subir | ming_useswfversion


ming_useswfversion

(PHP 4 >= 4.2.0)

ming_useswfversion -- Use SWF version (?)

Description

void ming_useswfversion ( int version)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ming_setscale | Subir | SWFAction


SWFAction

(PHP 4 >= 4.0.5)

SWFAction -- Creates a new Action.

Description

new swfaction ( string script)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfaction() creates a new Action, and compiles the given script into an SWFAction object.

The script syntax is based on the C language, but with a lot taken out- the SWF bytecode machine is just too simpleminded to do a lot of things we might like. For instance, we can't implement function calls without a tremendous amount of hackery because the jump bytecode has a hardcoded offset value. No pushing your calling address to the stack and returning- every function would have to know exactly where to return to.

So what's left? The compiler recognises the following tokens:

  • break

  • for

  • continue

  • if

  • else

  • do

  • while

There is no typed data; all values in the SWF action machine are stored as strings. The following functions can be used in expressions:

time()

Returns the number of milliseconds (?) elapsed since the movie started.

random(seed)

Returns a pseudo-random number in the range 0-seed.

length(expr)

Returns the length of the given expression.

int(number)

Returns the given number rounded down to the nearest integer.

concat(expr, expr)

Returns the concatenation of the given expressions.

ord(expr)

Returns the ASCII code for the given character

chr(num)

Returns the character for the given ASCII code

substr(string, location, length)

Returns the substring of length length at location location of the given string string.

Additionally, the following commands may be used:

duplicateClip(clip, name, depth)

Duplicate the named movie clip (aka sprite). The new movie clip has name name and is at depth depth.

removeClip(expr)

Removes the named movie clip.

trace(expr)

Write the given expression to the trace log. Doubtful that the browser plugin does anything with this.

startDrag(target, lock, [left, top, right, bottom])

Start dragging the movie clip target. The lock argument indicates whether to lock the mouse (?)- use 0 (FALSE) or 1 (TRUE). Optional parameters define a bounding area for the dragging.

stopDrag()

Stop dragging my heart around. And this movie clip, too.

callFrame(expr)

Call the named frame as a function.

getURL(url, target, [method])

Load the given URL into the named target. The target argument corresponds to HTML document targets (such as "_top" or "_blank"). The optional method argument can be POST or GET if you want to submit variables back to the server.

loadMovie(url, target)

Load the given URL into the named target. The target argument can be a frame name (I think), or one of the magical values "_level0" (replaces current movie) or "_level1" (loads new movie on top of current movie).

nextFrame()

Go to the next frame.

prevFrame()

Go to the last (or, rather, previous) frame.

play()

Start playing the movie.

stop()

Stop playing the movie.

toggleQuality()

Toggle between high and low quality.

stopSounds()

Stop playing all sounds.

gotoFrame(num)

Go to frame number num. Frame numbers start at 0.

gotoFrame(name)

Go to the frame named name. Which does a lot of good, since I haven't added frame labels yet.

setTarget(expr)

Sets the context for action. Or so they say- I really have no idea what this does.

And there's one weird extra thing. The expression frameLoaded(num) can be used in if statements and while loops to check if the given frame number has been loaded yet. Well, it's supposed to, anyway, but I've never tested it and I seriously doubt it actually works. You can just use /:framesLoaded instead.

Movie clips (all together now- aka sprites) have properties. You can read all of them (or can you?), you can set some of them, and here they are:

  • x

  • y

  • xScale

  • yScale

  • currentFrame - (read-only)

  • totalFrames - (read-only)

  • alpha - transparency level

  • visible - 1=on, 0=off (?)

  • width - (read-only)

  • height - (read-only)

  • rotation

  • target - (read-only) (???)

  • framesLoaded - (read-only)

  • name

  • dropTarget - (read-only) (???)

  • url - (read-only) (???)

  • highQuality - 1=high, 0=low (?)

  • focusRect - (???)

  • soundBufTime - (???)

So, setting a sprite's x position is as simple as /box.x = 100;. Why the slash in front of the box, though? That's how flash keeps track of the sprites in the movie, just like a unix filesystem- here it shows that box is at the top level. If the sprite named box had another sprite named biff inside of it, you'd set its x position with /box/biff.x = 100;. At least, I think so; correct me if I'm wrong here.

This simple example will move the red square across the window.

Ejemplo 1. swfaction() example

<?php
  $s = new SWFShape();
  $f = $s->addFill(0xff, 0, 0);
  $s->setRightFill($f);

  $s->movePenTo(-500,-500);
  $s->drawLineTo(500,-500);
  $s->drawLineTo(500,500);
  $s->drawLineTo(-500,500);
  $s->drawLineTo(-500,-500);

  $p = new SWFSprite();
  $i = $p->add($s);
  $i->setDepth(1);
  $p->nextFrame();

  for($n=0; $n<5; ++$n)
  {
    $i->rotate(-15);
    $p->nextFrame();
  }

  $m = new SWFMovie();
  $m->setBackground(0xff, 0xff, 0xff);
  $m->setDimension(6000,4000);

  $i = $m->add($p);
  $i->setDepth(1);
  $i->moveTo(-500,2000);
  $i->setName("box");

  $m->add(new SWFAction("/box.x += 3;"));
  $m->nextFrame();
  $m->add(new SWFAction("gotoFrame(0); play();"));
  $m->nextFrame();

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

This simple example tracks down your mouse on the screen.

Ejemplo 2. swfaction() example

<?php

  $m = new SWFMovie();
  $m->setRate(36.0);
  $m->setDimension(1200, 800);
  $m->setBackground(0, 0, 0);

  /* mouse tracking sprite - empty, but follows mouse so we can
     get its x and y coordinates */

  $i = $m->add(new SWFSprite());
  $i->setName('mouse');

  $m->add(new SWFAction("
    startDrag('/mouse', 1); /* '1' means lock sprite to the mouse */
  "));

  /* might as well turn off antialiasing, since these are just squares. */

  $m->add(new SWFAction("
    this.quality = 0;
  "));

  /* morphing box */
  $r = new SWFMorph();
  $s = $r->getShape1();

  /* Note this is backwards from normal shapes.  No idea why. */
  $s->setLeftFill($s->addFill(0xff, 0xff, 0xff));
  $s->movePenTo(-40, -40);
  $s->drawLine(80, 0);
  $s->drawLine(0, 80);
  $s->drawLine(-80, 0);
  $s->drawLine(0, -80);

  $s = $r->getShape2();

  $s->setLeftFill($s->addFill(0x00, 0x00, 0x00));
  $s->movePenTo(-1, -1);
  $s->drawLine(2, 0);
  $s->drawLine(0, 2);
  $s->drawLine(-2, 0);
  $s->drawLine(0, -2);

  /* sprite container for morphing box -
     this is just a timeline w/ the box morphing */

  $box = new SWFSprite();
  $box->add(new SWFAction("
    stop();
  "));
  $i = $box->add($r);

  for($n=0; $n<=20; ++$n)
  {
    $i->setRatio($n/20);
    $box->nextFrame();
  }

  /* this container sprite allows us to use the same action code many times */

  $cell = new SWFSprite();
  $i = $cell->add($box);
  $i->setName('box');

  $cell->add(new SWFAction("

    setTarget('box');

    /* ...x means the x coordinate of the parent, i.e. (..).x */
    dx = (/mouse.x + random(6)-3 - ...x)/5;
    dy = (/mouse.y + random(6)-3 - ...y)/5;
    gotoFrame(int(dx*dx + dy*dy));

  "));

  $cell->nextFrame();
  $cell->add(new SWFAction("

    gotoFrame(0);
    play();

  "));

  $cell->nextFrame();

  /* finally, add a bunch of the cells to the movie */

  for($x=0; $x<12; ++$x)
  {
    for($y=0; $y<8; ++$y)
    {
      $i = $m->add($cell);
      $i->moveTo(100*$x+50, 100*$y+50);
    }
  }

  $m->nextFrame();

  $m->add(new SWFAction("

    gotoFrame(1);
    play();

  "));

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Same as above, but with nice colored balls...

Ejemplo 3. swfaction() example

<?php

  $m = new SWFMovie();
  $m->setDimension(11000, 8000);
  $m->setBackground(0x00, 0x00, 0x00);

  $m->add(new SWFAction("

this.quality = 0;
/frames.visible = 0;
startDrag('/mouse', 1);

  "));

  // mouse tracking sprite
  $t = new SWFSprite();
  $i = $m->add($t);
  $i->setName('mouse');

  $g = new SWFGradient();
  $g->addEntry(0, 0xff, 0xff, 0xff, 0xff);
  $g->addEntry(0.1, 0xff, 0xff, 0xff, 0xff);
  $g->addEntry(0.5, 0xff, 0xff, 0xff, 0x5f);
  $g->addEntry(1.0, 0xff, 0xff, 0xff, 0);

  // gradient shape thing
  $s = new SWFShape();
  $f = $s->addFill($g, SWFFILL_RADIAL_GRADIENT);
  $f->scaleTo(0.03);
  $s->setRightFill($f);
  $s->movePenTo(-600, -600);
  $s->drawLine(1200, 0);
  $s->drawLine(0, 1200);
  $s->drawLine(-1200, 0);
  $s->drawLine(0, -1200);

  // need to make this a sprite so we can multColor it
  $p = new SWFSprite();
  $p->add($s);
  $p->nextFrame();

  // put the shape in here, each frame a different color
  $q = new SWFSprite();
  $q->add(new SWFAction("gotoFrame(random(7)+1); stop();"));
  $i = $q->add($p);

  $i->multColor(1.0, 1.0, 1.0);
  $q->nextFrame();
  $i->multColor(1.0, 0.5, 0.5);
  $q->nextFrame();
  $i->multColor(1.0, 0.75, 0.5);
  $q->nextFrame();
  $i->multColor(1.0, 1.0, 0.5);
  $q->nextFrame();
  $i->multColor(0.5, 1.0, 0.5);
  $q->nextFrame();
  $i->multColor(0.5, 0.5, 1.0);
  $q->nextFrame();
  $i->multColor(1.0, 0.5, 1.0);
  $q->nextFrame();

  // finally, this one contains the action code
  $p = new SWFSprite();
  $i = $p->add($q);
  $i->setName('frames');
  $p->add(new SWFAction("

dx = (/:mousex-/:lastx)/3 + random(10)-5;
dy = (/:mousey-/:lasty)/3;
x = /:mousex;
y = /:mousey;
alpha = 100;

  "));
  $p->nextFrame();

  $p->add(new SWFAction("

this.x = x;
this.y = y;
this.alpha = alpha;
x += dx;
y += dy;
dy += 3;
alpha -= 8;

  "));
  $p->nextFrame();

  $p->add(new SWFAction("prevFrame(); play();"));
  $p->nextFrame();

  $i = $m->add($p);
  $i->setName('frames');
  $m->nextFrame();

  $m->add(new SWFAction("

lastx = mousex;
lasty = mousey;
mousex = /mouse.x;
mousey = /mouse.y;

++num;

if(num == 11)
  num = 1;

removeClip('char' & num);
duplicateClip(/frames, 'char' & num, num);

  "));

  $m->nextFrame();
  $m->add(new SWFAction("prevFrame(); play();"));

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Anterior | Inicio | Siguiente
ming_useswfversion | Subir | SWFBitmap->getHeight


SWFBitmap->getHeight

(no version information, might be only in CVS)

SWFBitmap->getHeight -- Returns the bitmap's height.

Description

int swfbitmap->getheight ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfbitmap->getheight() returns the bitmap's height in pixels.

See also swfbitmap->getwidth().

Anterior | Inicio | Siguiente
SWFAction | Subir | SWFBitmap->getWidth


SWFBitmap->getWidth

(no version information, might be only in CVS)

SWFBitmap->getWidth -- Returns the bitmap's width.

Description

int swfbitmap->getwidth ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfbitmap->getwidth() returns the bitmap's width in pixels.

See also swfbitmap->getheight().

Anterior | Inicio | Siguiente
SWFBitmap->getHeight | Subir | SWFBitmap


SWFBitmap

(PHP 4 >= 4.0.5)

SWFBitmap -- Loads Bitmap object

Description

new swfbitmap ( string filename [, int alphafilename])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfbitmap() creates a new SWFBitmap object from the Jpeg or DBL file named filename. alphafilename indicates a MSK file to be used as an alpha mask for a Jpeg image.

Nota: We can only deal with baseline (frame 0) jpegs, no baseline optimized or progressive scan jpegs!

SWFBitmap has the following methods : swfbitmap->getwidth() and swfbitmap->getheight().

You can't import png images directly, though- have to use the png2dbl utility to make a dbl ("define bits lossless") file from the png. The reason for this is that I don't want a dependency on the png library in ming- autoconf should solve this, but that's not set up yet.

Ejemplo 1. Import PNG files

<?php
  $s = new SWFShape();
  $f = $s->addFill(new SWFBitmap("png.dbl"));
  $s->setRightFill($f);

  $s->drawLine(32, 0);
  $s->drawLine(0, 32);
  $s->drawLine(-32, 0);
  $s->drawLine(0, -32);

  $m = new SWFMovie();
  $m->setDimension(32, 32);
  $m->add($s);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

And you can put an alpha mask on a jpeg fill.

Ejemplo 2. swfbitmap() example

<?php

  $s = new SWFShape();

  // .msk file generated with "gif2mask" utility
  $f = $s->addFill(new SWFBitmap("alphafill.jpg", "alphafill.msk"));
  $s->setRightFill($f);

  $s->drawLine(640, 0);
  $s->drawLine(0, 480);
  $s->drawLine(-640, 0);
  $s->drawLine(0, -480);

  $c = new SWFShape();
  $c->setRightFill($c->addFill(0x99, 0x99, 0x99));
  $c->drawLine(40, 0);
  $c->drawLine(0, 40);
  $c->drawLine(-40, 0);
  $c->drawLine(0, -40);

  $m = new SWFMovie();
  $m->setDimension(640, 480);
  $m->setBackground(0xcc, 0xcc, 0xcc);

  // draw checkerboard background
  for($y=0; $y<480; $y+=40)
  {
    for($x=0; $x<640; $x+=80)
    {
      $i = $m->add($c);
      $i->moveTo($x, $y);
    }

    $y+=40;

    for($x=40; $x<640; $x+=80)
    {
      $i = $m->add($c);
      $i->moveTo($x, $y);
    }
  }

  $m->add($s);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Anterior | Inicio | Siguiente
SWFBitmap->getWidth | Subir | swfbutton_keypress


swfbutton_keypress

(PHP 4 >= 4.0.5)

swfbutton_keypress -- Returns the action flag for keyPress(char)

Description

int swfbutton_keypress ( string str)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
SWFBitmap | Subir | SWFbutton->addAction


SWFbutton->addAction

(no version information, might be only in CVS)

SWFbutton->addAction -- Adds an action

Description

void swfbutton->addaction ( resource action, int flags)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfbutton->addaction() adds the action action to this button for the given conditions. The following flags are valid: SWFBUTTON_MOUSEOVER, SWFBUTTON_MOUSEOUT, SWFBUTTON_MOUSEUP, SWFBUTTON_MOUSEUPOUTSIDE, SWFBUTTON_MOUSEDOWN, SWFBUTTON_DRAGOUT and SWFBUTTON_DRAGOVER.

See also swfbutton->addshape() and swfaction().

Anterior | Inicio | Siguiente
swfbutton_keypress | Subir | SWFbutton->addShape


SWFbutton->addShape

(no version information, might be only in CVS)

SWFbutton->addShape -- Adds a shape to a button

Description

void swfbutton->addshape ( resource shape, int flags)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfbutton->addshape() adds the shape shape to this button. The following flags' values are valid: SWFBUTTON_UP, SWFBUTTON_OVER, SWFBUTTON_DOWN or SWFBUTTON_HIT. SWFBUTTON_HIT isn't ever displayed, it defines the hit region for the button. That is, everywhere the hit shape would be drawn is considered a "touchable" part of the button.

Anterior | Inicio | Siguiente
SWFbutton->addAction | Subir | SWFbutton->setAction


SWFbutton->setAction

(no version information, might be only in CVS)

SWFbutton->setAction -- Sets the action

Description

void swfbutton->setaction ( resource action)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfbutton->setaction() sets the action to be performed when the button is clicked. Alias for addAction(shape, SWFBUTTON_MOUSEUP). action is a swfaction().

See also swfbutton->addshape() and swfaction().

Anterior | Inicio | Siguiente
SWFbutton->addShape | Subir | SWFbutton->setdown


SWFbutton->setdown

(no version information, might be only in CVS)

SWFbutton->setdown -- Alias for addShape(shape, SWFBUTTON_DOWN))

Description

void swfbutton->setdown ( resource shape)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfbutton->setdown() alias for addShape(shape, SWFBUTTON_DOWN).

See also swfbutton->addshape() and swfaction().

Anterior | Inicio | Siguiente
SWFbutton->setAction | Subir | SWFbutton->setHit


SWFbutton->setHit

(no version information, might be only in CVS)

SWFbutton->setHit -- Alias for addShape(shape, SWFBUTTON_HIT)

Description

void swfbutton->sethit ( resource shape)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfbutton->sethit() alias for addShape(shape, SWFBUTTON_HIT).

See also swfbutton->addshape() and swfaction().

Anterior | Inicio | Siguiente
SWFbutton->setdown | Subir | SWFbutton->setOver


SWFbutton->setOver

(no version information, might be only in CVS)

SWFbutton->setOver -- Alias for addShape(shape, SWFBUTTON_OVER)

Description

void swfbutton->setover ( resource shape)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfbutton->setover() alias for addShape(shape, SWFBUTTON_OVER).

See also swfbutton->addshape() and swfaction().

Anterior | Inicio | Siguiente
SWFbutton->setHit | Subir | SWFbutton->setUp


SWFbutton->setUp

(no version information, might be only in CVS)

SWFbutton->setUp -- Alias for addShape(shape, SWFBUTTON_UP)

Description

void swfbutton->setup ( resource shape)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfbutton->setup() alias for addShape(shape, SWFBUTTON_UP).

See also swfbutton->addshape() and swfaction().

Anterior | Inicio | Siguiente
SWFbutton->setOver | Subir | SWFbutton


SWFbutton

(PHP 4 >= 4.0.5)

SWFbutton -- Creates a new Button.

Description

new swfbutton ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfbutton() creates a new Button. Roll over it, click it, see it call action code. Swank.

SWFButton has the following methods : swfbutton->addshape(),
swfbutton->setup(), swfbutton->setover()
swfbutton->setdown(), swfbutton->sethit()
swfbutton->setaction() and
swfbutton->addaction().

This simple example will show your usual interactions with buttons : rollover, rollon, mouseup, mousedown, noaction.

Ejemplo 1. swfbutton() example

<?php

  $f = new SWFFont("_serif");

  $p = new SWFSprite();

  function label($string)
  {
    global $f;

    $t = new SWFTextField();
    $t->setFont($f);
    $t->addString($string);
    $t->setHeight(200);
    $t->setBounds(3200,200);
    return $t;
  }
  function addLabel($string)
  {
    global $p;

    $i = $p->add(label($string));
    $p->nextFrame();
    $p->remove($i);
  }

  $p->add(new SWFAction("stop();"));
  addLabel("NO ACTION");
  addLabel("SWFBUTTON_MOUSEUP");
  addLabel("SWFBUTTON_MOUSEDOWN");
  addLabel("SWFBUTTON_MOUSEOVER");
  addLabel("SWFBUTTON_MOUSEOUT");
  addLabel("SWFBUTTON_MOUSEUPOUTSIDE");
  addLabel("SWFBUTTON_DRAGOVER");
  addLabel("SWFBUTTON_DRAGOUT");

  function rect($r, $g, $b)
  {
    $s = new SWFShape();
    $s->setRightFill($s->addFill($r, $g, $b));
    $s->drawLine(600,0);
    $s->drawLine(0,600);
    $s->drawLine(-600,0);
    $s->drawLine(0,-600);

    return $s;
  }

  $b = new SWFButton();
  $b->addShape(rect(0xff, 0, 0), SWFBUTTON_UP | SWFBUTTON_HIT);
  $b->addShape(rect(0, 0xff, 0), SWFBUTTON_OVER);
  $b->addShape(rect(0, 0, 0xff), SWFBUTTON_DOWN);

  $b->addAction(new SWFAction("setTarget('/label'); gotoFrame(1);"),
            SWFBUTTON_MOUSEUP);

  $b->addAction(new SWFAction("setTarget('/label'); gotoFrame(2);"),
        SWFBUTTON_MOUSEDOWN);

  $b->addAction(new SWFAction("setTarget('/label'); gotoFrame(3);"),
        SWFBUTTON_MOUSEOVER);

  $b->addAction(new SWFAction("setTarget('/label'); gotoFrame(4);"),
        SWFBUTTON_MOUSEOUT);

  $b->addAction(new SWFAction("setTarget('/label'); gotoFrame(5);"),
        SWFBUTTON_MOUSEUPOUTSIDE);

  $b->addAction(new SWFAction("setTarget('/label'); gotoFrame(6);"),
        SWFBUTTON_DRAGOVER);

  $b->addAction(new SWFAction("setTarget('/label'); gotoFrame(7);"),
        SWFBUTTON_DRAGOUT);

  $m = new SWFMovie();
  $m->setDimension(4000,3000);

  $i = $m->add($p);
  $i->setName("label");
  $i->moveTo(400,1900);

  $i = $m->add($b);
  $i->moveTo(400,900);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

This simple example will enables you to drag draw a big red button on the windows. No drag-and-drop, just moving around.

Ejemplo 2. swfbutton->addaction() example

<?php

  $s = new SWFShape();
  $s->setRightFill($s->addFill(0xff, 0, 0));
  $s->drawLine(1000,0);
  $s->drawLine(0,1000);
  $s->drawLine(-1000,0);
  $s->drawLine(0,-1000);

  $b = new SWFButton();
  $b->addShape($s, SWFBUTTON_HIT | SWFBUTTON_UP | SWFBUTTON_DOWN | SWFBUTTON_OVER);

  $b->addAction(new SWFAction("startDrag('/test', 0);"), // '0' means don't lock to mouse
        SWFBUTTON_MOUSEDOWN);

  $b->addAction(new SWFAction("stopDrag();"),
        SWFBUTTON_MOUSEUP | SWFBUTTON_MOUSEUPOUTSIDE);

  $p = new SWFSprite();
  $p->add($b);
  $p->nextFrame();

  $m = new SWFMovie();
  $i = $m->add($p);
  $i->setName('test');
  $i->moveTo(1000,1000);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Anterior | Inicio | Siguiente
SWFbutton->setUp | Subir | SWFDisplayItem->addColor


SWFDisplayItem->addColor

(no version information, might be only in CVS)

SWFDisplayItem->addColor -- Adds the given color to this item's color transform.

Description

void swfdisplayitem->addcolor ( [int red [, int green [, int blue [, int a]]]])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfdisplayitem->addcolor() adds the color to this item's color transform. The color is given in its RGB form.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

Anterior | Inicio | Siguiente
SWFbutton | Subir | SWFDisplayItem->move


SWFDisplayItem->move

(no version information, might be only in CVS)

SWFDisplayItem->move -- Moves object in relative coordinates.

Description

void swfdisplayitem->move ( int dx, int dy)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfdisplayitem->move() moves the current object by (dx,dy) from its current position.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also swfdisplayitem->moveto().

Anterior | Inicio | Siguiente
SWFDisplayItem->addColor | Subir | SWFDisplayItem->moveTo


SWFDisplayItem->moveTo

(no version information, might be only in CVS)

SWFDisplayItem->moveTo -- Moves object in global coordinates.

Description

void swfdisplayitem->moveto ( int x, int y)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfdisplayitem->moveto() moves the current object to (x,y) in global coordinates.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also swfdisplayitem->move().

Anterior | Inicio | Siguiente
SWFDisplayItem->move | Subir | SWFDisplayItem->multColor


SWFDisplayItem->multColor

(no version information, might be only in CVS)

SWFDisplayItem->multColor -- Multiplies the item's color transform.

Description

void swfdisplayitem->multcolor ( [int red [, int green [, int blue [, int a]]]])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfdisplayitem->multcolor() multiplies the item's color transform by the given values.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

This simple example will modify your picture's atmospher to Halloween (use a landscape or bright picture).

Ejemplo 1. swfdisplayitem->multcolor() example

<?php

  $b = new SWFBitmap("backyard.jpg");
  // note use your own picture :-)
  $s = new SWFShape();
  $s->setRightFill($s->addFill($b));
  $s->drawLine($b->getWidth(), 0);
  $s->drawLine(0, $b->getHeight());
  $s->drawLine(-$b->getWidth(), 0);
  $s->drawLine(0, -$b->getHeight());

  $m = new SWFMovie();
  $m->setDimension($b->getWidth(), $b->getHeight());

  $i = $m->add($s);

  for($n=0; $n<=20; ++$n)
  {
    $i->multColor(1.0-$n/10, 1.0, 1.0);
    $i->addColor(0xff*$n/20, 0, 0);
    $m->nextFrame();
  }

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Anterior | Inicio | Siguiente
SWFDisplayItem->moveTo | Subir | SWFDisplayItem->remove


SWFDisplayItem->remove

(no version information, might be only in CVS)

SWFDisplayItem->remove -- Removes the object from the movie

Description

void swfdisplayitem->remove ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfdisplayitem->remove() removes this object from the movie's display list.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also swfmovie->add().

Anterior | Inicio | Siguiente
SWFDisplayItem->multColor | Subir | SWFDisplayItem->Rotate


SWFDisplayItem->Rotate

(no version information, might be only in CVS)

SWFDisplayItem->Rotate -- Rotates in relative coordinates.

Description

void swfdisplayitem->rotate ( float ddegrees)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfdisplayitem->rotate() rotates the current object by ddegrees degrees from its current rotation.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also swfdisplayitem->rotateto().

Anterior | Inicio | Siguiente
SWFDisplayItem->remove | Subir | SWFDisplayItem->rotateTo


SWFDisplayItem->rotateTo

(no version information, might be only in CVS)

SWFDisplayItem->rotateTo -- Rotates the object in global coordinates.

Description

void swfdisplayitem->rotateto ( float degrees)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfdisplayitem->rotateto() set the current object rotation to degrees degrees in global coordinates.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

This example bring three rotating string from the background to the foreground. Pretty nice.

Ejemplo 1. swfdisplayitem->rotateto() example

<?php
  $thetext =  "ming!";

  $f = new SWFFont("Bauhaus 93.fdb");

  $m = new SWFMovie();
  $m->setRate(24.0);
  $m->setDimension(2400, 1600);
  $m->setBackground(0xff, 0xff, 0xff);

  // functions with huge numbers of arbitrary
  // arguments are always a good idea!  Really!

  function text($r, $g, $b, $a, $rot, $x, $y, $scale, $string)
  {
    global $f, $m;

    $t = new SWFText();
    $t->setFont($f);
    $t->setColor($r, $g, $b, $a);
    $t->setHeight(960);
    $t->moveTo(-($f->getWidth($string))/2, $f->getAscent()/2);
    $t->addString($string);

    // we can add properties just like a normal php var,
    // as long as the names aren't already used.
    // e.g., we can't set $i->scale, because that's a function

    $i = $m->add($t);
    $i->x = $x;
    $i->y = $y;
    $i->rot = $rot;
    $i->s = $scale;
    $i->rotateTo($rot);
    $i->scale($scale, $scale);

    // but the changes are local to the function, so we have to
    // return the changed object.  kinda weird..

    return $i;
 }

  function step($i)
  {
    $oldrot = $i->rot;
    $i->rot = 19*$i->rot/20;
    $i->x = (19*$i->x + 1200)/20;
    $i->y = (19*$i->y + 800)/20;
    $i->s = (19*$i->s + 1.0)/20;

    $i->rotateTo($i->rot);
    $i->scaleTo($i->s, $i->s);
    $i->moveTo($i->x, $i->y);

    return $i;
  }

  // see?  it sure paid off in legibility:

  $i1 = text(0xff, 0x33, 0x33, 0xff, 900, 1200, 800, 0.03, $thetext);
  $i2 = text(0x00, 0x33, 0xff, 0x7f, -560, 1200, 800, 0.04, $thetext);
  $i3 = text(0xff, 0xff, 0xff, 0x9f, 180, 1200, 800, 0.001, $thetext);

  for($i=1; $i<=100; ++$i)
  {
    $i1 = step($i1);
    $i2 = step($i2);
    $i3 = step($i3);

    $m->nextFrame();
  }

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

See also swfdisplayitem->rotate().

Anterior | Inicio | Siguiente
SWFDisplayItem->Rotate | Subir | SWFDisplayItem->scale


SWFDisplayItem->scale

(no version information, might be only in CVS)

SWFDisplayItem->scale -- Scales the object in relative coordinates.

Description

void swfdisplayitem->scale ( int dx, int dy)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfdisplayitem->scale() scales the current object by (dx,dy) from its current size.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also swfdisplayitem->scaleto().

Anterior | Inicio | Siguiente
SWFDisplayItem->rotateTo | Subir | SWFDisplayItem->scaleTo


SWFDisplayItem->scaleTo

(no version information, might be only in CVS)

SWFDisplayItem->scaleTo -- Scales the object in global coordinates.

Description

void swfdisplayitem->scaleto ( int x, int y)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfdisplayitem->scaleto() scales the current object to (x,y) in global coordinates.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also swfdisplayitem->scale().

Anterior | Inicio | Siguiente
SWFDisplayItem->scale | Subir | SWFDisplayItem->setDepth


SWFDisplayItem->setDepth

(no version information, might be only in CVS)

SWFDisplayItem->setDepth -- Sets z-order

Description

void swfdisplayitem->setdepth ( float depth)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfdisplayitem->rotate() sets the object's z-order to depth. Depth defaults to the order in which instances are created (by add'ing a shape/text to a movie)- newer ones are on top of older ones. If two objects are given the same depth, only the later-defined one can be moved.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

Anterior | Inicio | Siguiente
SWFDisplayItem->scaleTo | Subir | SWFDisplayItem->setName


SWFDisplayItem->setName

(no version information, might be only in CVS)

SWFDisplayItem->setName -- Sets the object's name

Description

void swfdisplayitem->setname ( string name)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfdisplayitem->setname() sets the object's name to name, for targetting with action script. Only useful on sprites.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

Anterior | Inicio | Siguiente
SWFDisplayItem->setDepth | Subir | SWFDisplayItem->setRatio


SWFDisplayItem->setRatio

(no version information, might be only in CVS)

SWFDisplayItem->setRatio -- Sets the object's ratio.

Description

void swfdisplayitem->setratio ( float ratio)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfdisplayitem->setratio() sets the object's ratio to ratio. Obviously only useful for morphs.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

This simple example will morph nicely three concentric circles.

Ejemplo 1. swfdisplayitem->setname() example

<?php

  $p = new SWFMorph();

  $g = new SWFGradient();
  $g->addEntry(0.0, 0, 0, 0);
  $g->addEntry(0.16, 0xff, 0xff, 0xff);
  $g->addEntry(0.32, 0, 0, 0);
  $g->addEntry(0.48, 0xff, 0xff, 0xff);
  $g->addEntry(0.64, 0, 0, 0);
  $g->addEntry(0.80, 0xff, 0xff, 0xff);
  $g->addEntry(1.00, 0, 0, 0);

  $s = $p->getShape1();
  $f = $s->addFill($g, SWFFILL_RADIAL_GRADIENT);
  $f->scaleTo(0.05);
  $s->setLeftFill($f);
  $s->movePenTo(-160, -120);
  $s->drawLine(320, 0);
  $s->drawLine(0, 240);
  $s->drawLine(-320, 0);
  $s->drawLine(0, -240);

  $g = new SWFGradient();
  $g->addEntry(0.0, 0, 0, 0);
  $g->addEntry(0.16, 0xff, 0, 0);
  $g->addEntry(0.32, 0, 0, 0);
  $g->addEntry(0.48, 0, 0xff, 0);
  $g->addEntry(0.64, 0, 0, 0);
  $g->addEntry(0.80, 0, 0, 0xff);
  $g->addEntry(1.00, 0, 0, 0);

  $s = $p->getShape2();
  $f = $s->addFill($g, SWFFILL_RADIAL_GRADIENT);
  $f->scaleTo(0.05);
  $f->skewXTo(1.0);
  $s->setLeftFill($f);
  $s->movePenTo(-160, -120);
  $s->drawLine(320, 0);
  $s->drawLine(0, 240);
  $s->drawLine(-320, 0);
  $s->drawLine(0, -240);

  $m = new SWFMovie();
  $m->setDimension(320, 240);
  $i = $m->add($p);
  $i->moveTo(160, 120);

  for($n=0; $n<=1.001; $n+=0.01)
  {
    $i->setRatio($n);
    $m->nextFrame();
  }

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Anterior | Inicio | Siguiente
SWFDisplayItem->setName | Subir | SWFDisplayItem->skewX


SWFDisplayItem->skewX

(no version information, might be only in CVS)

SWFDisplayItem->skewX -- Sets the X-skew.

Description

void swfdisplayitem->skewx ( float ddegrees)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfdisplayitem->skewx() adds ddegrees to current x-skew.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also
swfdisplayitem->skewx(),
swfdisplayitem->skewy() and
swfdisplayitem->skewyto().

Anterior | Inicio | Siguiente
SWFDisplayItem->setRatio | Subir | SWFDisplayItem->skewXTo


SWFDisplayItem->skewXTo

(no version information, might be only in CVS)

SWFDisplayItem->skewXTo -- Sets the X-skew.

Description

void swfdisplayitem->skewxto ( float degrees)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfdisplayitem->skewxto() sets the x-skew to degrees. For degrees is 1.0, it means a 45-degree forward slant. More is more forward, less is more backward.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also
swfdisplayitem->skewx(),
swfdisplayitem->skewy() and
swfdisplayitem->skewyto().

Anterior | Inicio | Siguiente
SWFDisplayItem->skewX | Subir | SWFDisplayItem->skewY


SWFDisplayItem->skewY

(no version information, might be only in CVS)

SWFDisplayItem->skewY -- Sets the Y-skew.

Description

void swfdisplayitem->skewy ( float ddegrees)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfdisplayitem->skewy() adds ddegrees to current y-skew.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also
swfdisplayitem->skewyto(),
swfdisplayitem->skewx() and
swfdisplayitem->skewxto().

Anterior | Inicio | Siguiente
SWFDisplayItem->skewXTo | Subir | SWFDisplayItem->skewYTo


SWFDisplayItem->skewYTo

(no version information, might be only in CVS)

SWFDisplayItem->skewYTo -- Sets the Y-skew.

Description

void swfdisplayitem->skewyto ( float degrees)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfdisplayitem->skewyto() sets the y-skew to degrees. For degrees is 1.0, it means a 45-degree forward slant. More is more upward, less is more downward.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also
swfdisplayitem->skewy(),
swfdisplayitem->skewx() and
swfdisplayitem->skewxto().

Anterior | Inicio | Siguiente
SWFDisplayItem->skewY | Subir | SWFDisplayItem


SWFDisplayItem

(no version information, might be only in CVS)

SWFDisplayItem -- Creates a new displayitem object.

Description

new swfdisplayitem ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfdisplayitem() creates a new swfdisplayitem object.

Here's where all the animation takes place. After you define a shape, a text object, a sprite, or a button, you add it to the movie, then use the returned handle to move, rotate, scale, or skew the thing.

SWFDisplayItem has the following methods : swfdisplayitem->move(),
swfdisplayitem->moveto(), swfdisplayitem->scaleto(),
swfdisplayitem->scale(), swfdisplayitem->rotate(),
swfdisplayitem->rotateto(), swfdisplayitem->skewxto(),
swfdisplayitem->skewx(), swfdisplayitem->skewyto()
swfdisplayitem->skewyto(), swfdisplayitem->setdepth()
swfdisplayitem->remove(), swfdisplayitem->setname()
swfdisplayitem->setratio(), swfdisplayitem->addcolor()
and swfdisplayitem->multcolor().

Anterior | Inicio | Siguiente
SWFDisplayItem->skewYTo | Subir | SWFFill->moveTo


SWFFill->moveTo

(no version information, might be only in CVS)

SWFFill->moveTo -- Moves fill origin

Description

void swffill->moveto ( int x, int y)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swffill->moveto() moves fill's origin to (x,y) in global coordinates.

Anterior | Inicio | Siguiente
SWFDisplayItem | Subir | SWFFill->rotateTo


SWFFill->rotateTo

(no version information, might be only in CVS)

SWFFill->rotateTo -- Sets fill's rotation

Description

void swffill->rotateto ( float degrees)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swffill->rotateto() sets fill's rotation to degrees degrees.

Anterior | Inicio | Siguiente
SWFFill->moveTo | Subir | SWFFill->scaleTo


SWFFill->scaleTo

(no version information, might be only in CVS)

SWFFill->scaleTo -- Sets fill's scale

Description

void swffill->scaleto ( int x, int y)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swffill->scaleto() sets fill's scale to x in the x-direction, y in the y-direction.

Anterior | Inicio | Siguiente
SWFFill->rotateTo | Subir | SWFFill->skewXTo


SWFFill->skewXTo

(no version information, might be only in CVS)

SWFFill->skewXTo -- Sets fill x-skew

Description

void swffill->skewxto ( float x)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swffill->skewxto() sets fill x-skew to x. For x is 1.0, it is a 45-degree forward slant. More is more forward, less is more backward.

Anterior | Inicio | Siguiente
SWFFill->scaleTo | Subir | SWFFill->skewYTo


SWFFill->skewYTo

(no version information, might be only in CVS)

SWFFill->skewYTo -- Sets fill y-skew

Description

void swffill->skewyto ( float y)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swffill->skewyto() sets fill y-skew to y. For y is 1.0, it is a 45-degree upward slant. More is more upward, less is more downward.

Anterior | Inicio | Siguiente
SWFFill->skewXTo | Subir | SWFFill


SWFFill

(PHP 4 >= 4.0.5)

SWFFill -- Loads SWFFill object

Description

new SWFFill ( void )

The swffill() object allows you to transform (scale, skew, rotate) bitmap and gradient fills. swffill() objects are created by the swfshape->addfill() methods.

SWFFill has the following methods : swffill->moveto() and swffill->scaleto(), swffill->rotateto(), swffill->skewxto() and swffill->skewyto().

Anterior | Inicio | Siguiente
SWFFill->skewYTo | Subir | swffont->getwidth


swffont->getwidth

(no version information, might be only in CVS)

swffont->getwidth -- Returns the string's width

Description

int swffont->getwidth ( string string)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swffont->getwidth() returns the string string's width, using font's default scaling. You'll probably want to use the swftext() version of this method which uses the text object's scale.

Anterior | Inicio | Siguiente
SWFFill | Subir | SWFFont


SWFFont

(PHP 4 >= 4.0.5)

SWFFont -- Loads a font definition

Description

new swffont ( string filename)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

If filename is the name of an FDB file (i.e., it ends in ".fdb"), load the font definition found in said file. Otherwise, create a browser-defined font reference.

FDB ("font definition block") is a very simple wrapper for the SWF DefineFont2 block which contains a full description of a font. One may create FDB files from SWT Generator template files with the included makefdb utility- look in the util directory off the main ming distribution directory.

Browser-defined fonts don't contain any information about the font other than its name. It is assumed that the font definition will be provided by the movie player. The fonts _serif, _sans, and _typewriter should always be available. For example:
<?php
$f = newSWFFont("_sans");
?>
will give you the standard sans-serif font, probably the same as what you'd get with <font name="sans-serif"> in HTML.

swffont() returns a reference to the font definition, for use in the swftext->setfont() and the swftextfield->setfont() methods.

SWFFont has the following methods : swffont->getwidth().

Anterior | Inicio | Siguiente
swffont->getwidth | Subir | SWFGradient->addEntry


SWFGradient->addEntry

(no version information, might be only in CVS)

SWFGradient->addEntry -- Adds an entry to the gradient list.

Description

void swfgradient->addentry ( float ratio, int red, int green, int blue [, int a])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfgradient->addentry() adds an entry to the gradient list. ratio is a number between 0 and 1 indicating where in the gradient this color appears. Thou shalt add entries in order of increasing ratio.

red, green, blue is a color (RGB mode). Last parameter a is optional.

Anterior | Inicio | Siguiente
SWFFont | Subir | SWFGradient


SWFGradient

(PHP 4 >= 4.0.5)

SWFGradient -- Creates a gradient object

Description

new swfgradient ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfgradient() creates a new SWFGradient object.

After you've added the entries to your gradient, you can use the gradient in a shape fill with the swfshape->addfill() method.

SWFGradient has the following methods : swfgradient->addentry().

This simple example will draw a big black-to-white gradient as background, and a redish disc in its center.

Ejemplo 1. swfgradient() example

<?php

  $m = new SWFMovie();
  $m->setDimension(320, 240);

  $s = new SWFShape();

  // first gradient- black to white
  $g = new SWFGradient();
  $g->addEntry(0.0, 0, 0, 0);
  $g->addEntry(1.0, 0xff, 0xff, 0xff);

  $f = $s->addFill($g, SWFFILL_LINEAR_GRADIENT);
  $f->scaleTo(0.01);
  $f->moveTo(160, 120);
  $s->setRightFill($f);
  $s->drawLine(320, 0);
  $s->drawLine(0, 240);
  $s->drawLine(-320, 0);
  $s->drawLine(0, -240);

  $m->add($s);

  $s = new SWFShape();

  // second gradient- radial gradient from red to transparent
  $g = new SWFGradient();
  $g->addEntry(0.0, 0xff, 0, 0, 0xff);
  $g->addEntry(1.0, 0xff, 0, 0, 0);

  $f = $s->addFill($g, SWFFILL_RADIAL_GRADIENT);
  $f->scaleTo(0.005);
  $f->moveTo(160, 120);
  $s->setRightFill($f);
  $s->drawLine(320, 0);
  $s->drawLine(0, 240);
  $s->drawLine(-320, 0);
  $s->drawLine(0, -240);

  $m->add($s);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Anterior | Inicio | Siguiente
SWFGradient->addEntry | Subir | SWFMorph->getshape1


SWFMorph->getshape1

(no version information, might be only in CVS)

SWFMorph->getshape1 -- Gets a handle to the starting shape

Description

mixed swfmorph->getshape1 ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfmorph->getshape1() gets a handle to the morph's starting shape. swfmorph->getshape1() returns an swfshape() object.

Anterior | Inicio | Siguiente
SWFGradient | Subir | SWFMorph->getshape2


SWFMorph->getshape2

(no version information, might be only in CVS)

SWFMorph->getshape2 -- Gets a handle to the ending shape

Description

mixed swfmorph->getshape2 ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfmorph->getshape2() gets a handle to the morph's ending shape. swfmorph->getshape2() returns an swfshape() object.

Anterior | Inicio | Siguiente
SWFMorph->getshape1 | Subir | SWFMorph


SWFMorph

(PHP 4 >= 4.0.5)

SWFMorph -- Creates a new SWFMorph object.

Description

new swfmorph ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfmorph() creates a new SWFMorph object.

Also called a "shape tween". This thing lets you make those tacky twisting things that make your computer choke. Oh, joy!

The methods here are sort of weird. It would make more sense to just have newSWFMorph(shape1, shape2);, but as things are now, shape2 needs to know that it's the second part of a morph. (This, because it starts writing its output as soon as it gets drawing commands- if it kept its own description of its shapes and wrote on completion this and some other things would be much easier.)

SWFMorph has the following methods : swfmorph->getshape1() and swfmorph->getshape1().

This simple example will morph a big red square into a smaller blue black-bordered square.

Ejemplo 1. swfmorph() example

<?php
  $p = new SWFMorph();

  $s = $p->getShape1();
  $s->setLine(0,0,0,0);

  /* Note that this is backwards from normal shapes (left instead of right).
     I have no idea why, but this seems to work.. */

  $s->setLeftFill($s->addFill(0xff, 0, 0));
  $s->movePenTo(-1000,-1000);
  $s->drawLine(2000,0);
  $s->drawLine(0,2000);
  $s->drawLine(-2000,0);
  $s->drawLine(0,-2000);

  $s = $p->getShape2();
  $s->setLine(60,0,0,0);
  $s->setLeftFill($s->addFill(0, 0, 0xff));
  $s->movePenTo(0,-1000);
  $s->drawLine(1000,1000);
  $s->drawLine(-1000,1000);
  $s->drawLine(-1000,-1000);
  $s->drawLine(1000,-1000);

  $m = new SWFMovie();
  $m->setDimension(3000,2000);
  $m->setBackground(0xff, 0xff, 0xff);

  $i = $m->add($p);
  $i->moveTo(1500,1000);

  for($r=0.0; $r<=1.0; $r+=0.1)
  {
    $i->setRatio($r);
    $m->nextFrame();
  }

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Anterior | Inicio | Siguiente
SWFMorph->getshape2 | Subir | SWFMovie->add


SWFMovie->add

(no version information, might be only in CVS)

SWFMovie->add -- Adds any type of data to a movie.

Description

void swfmovie->add ( resource instance)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfmovie->add() adds instance to the current movie. instance is any type of data : Shapes, text, fonts, etc. must all be add'ed to the movie to make this work.

For displayable types (shape, text, button, sprite), this returns an swfdisplayitem(), a handle to the object in a display list. Thus, you can add the same shape to a movie multiple times and get separate handles back for each separate instance.

See also all other objects (adding this later), and swfmovie->remove()

See examples in : swfdisplayitem->rotateto() and swfshape->addfill().

Anterior | Inicio | Siguiente
SWFMorph | Subir | SWFMovie->nextframe


SWFMovie->nextframe

(no version information, might be only in CVS)

SWFMovie->nextframe -- Moves to the next frame of the animation.

Description

void swfmovie->nextframe ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfmovie->nextframe() moves to the next frame of the animation.

Anterior | Inicio | Siguiente
SWFMovie->add | Subir | SWFMovie->output


SWFMovie->output

(no version information, might be only in CVS)

SWFMovie->output -- Dumps your lovingly prepared movie out.

Description

void swfmovie->output ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfmovie->output() dumps your lovingly prepared movie out. In PHP, preceding this with the command
<?php
header('Content-type: application/x-shockwave-flash');
?>
convinces the browser to display this as a flash movie.

See also swfmovie->save().

See examples in :
swfmovie->streammp3(),
swfdisplayitem->rotateto(),
swfaction()...
Any example will use this method.

Anterior | Inicio | Siguiente
SWFMovie->nextframe | Subir | swfmovie->remove


swfmovie->remove

(no version information, might be only in CVS)

swfmovie->remove -- Removes the object instance from the display list.

Description

void swfmovie->remove ( resource instance)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfmovie->remove() removes the object instance instance from the display list.

See also swfmovie->add().

Anterior | Inicio | Siguiente
SWFMovie->output | Subir | SWFMovie->save


SWFMovie->save

(no version information, might be only in CVS)

SWFMovie->save -- Saves your movie in a file.

Description

void swfmovie->save ( string filename)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfmovie->save() saves your movie to the file named filename.

See also output().

Anterior | Inicio | Siguiente
swfmovie->remove | Subir | SWFMovie->setbackground


SWFMovie->setbackground

(no version information, might be only in CVS)

SWFMovie->setbackground -- Sets the background color.

Description

void swfmovie->setbackground ( int red, int green, int blue)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfmovie->setbackground() sets the background color. Why is there no rgba version? Think about it. (Actually, that's not such a dumb question after all- you might want to let the html background show through. There's a way to do that, but it only works on IE4. Search the http://www.macromedia.com/ site for details.)

Anterior | Inicio | Siguiente
SWFMovie->save | Subir | SWFMovie->setdimension


SWFMovie->setdimension

(no version information, might be only in CVS)

SWFMovie->setdimension -- Sets the movie's width and height.

Description

void swfmovie->setdimension ( int width, int height)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfmovie->setdimension() sets the movie's width to width and height to height.

Anterior | Inicio | Siguiente
SWFMovie->setbackground | Subir | SWFMovie->setframes


SWFMovie->setframes

(no version information, might be only in CVS)

SWFMovie->setframes -- Sets the total number of frames in the animation.

Description

void swfmovie->setframes ( string numberofframes)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfmovie->setframes() sets the total number of frames in the animation to numberofframes.

Anterior | Inicio | Siguiente
SWFMovie->setdimension | Subir | SWFMovie->setrate


SWFMovie->setrate

(no version information, might be only in CVS)

SWFMovie->setrate -- Sets the animation's frame rate.

Description

void swfmovie->setrate ( int rate)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfmovie->setrate() sets the frame rate to rate, in frame per seconds. Animation will slow down if the player can't render frames fast enough- unless there's a streaming sound, in which case display frames are sacrificed to keep sound from skipping.

Anterior | Inicio | Siguiente
SWFMovie->setframes | Subir | SWFMovie->streammp3


SWFMovie->streammp3

(no version information, might be only in CVS)

SWFMovie->streammp3 -- Streams a MP3 file.

Description

void swfmovie->streammp3 ( string mp3FileName)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfmovie->streammp3() streams the mp3 file mp3FileName. Not very robust in dealing with oddities (can skip over an initial ID3 tag, but that's about it). Like swfshape->addjpegfill(), this isn't a stable function- we'll probably need to make a separate SWFSound object to contain sound types.

Note that the movie isn't smart enough to put enough frames in to contain the entire mp3 stream- you'll have to add (length of song * frames per second) frames to get the entire stream in.

Yes, now you can use ming to put that rock and roll devil worship music into your SWF files. Just don't tell the RIAA.

Ejemplo 1. swfmovie->streammp3() example

<?php
  $m = new SWFMovie();
  $m->setRate(12.0);
  $m->streamMp3("distortobass.mp3");
  // use your own MP3

  // 11.85 seconds at 12.0 fps = 142 frames
  $m->setFrames(142);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Anterior | Inicio | Siguiente
SWFMovie->setrate | Subir | SWFMovie


SWFMovie

(PHP 4 >= 4.0.5)

SWFMovie -- Creates a new movie object, representing an SWF version 4 movie.

Description

new swfmovie ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfmovie() creates a new movie object, representing an SWF version 4 movie.

SWFMovie has the following methods :
swfmovie->output(),swfmovie->save(),
swfmovie->add(), swfmovie->remove(),
swfmovie->nextframe(), swfmovie->setbackground(),
swfmovie->setrate(), swfmovie->setdimension(),
swfmovie->setframes() and swfmovie->streammp3().

See examples in : swfdisplayitem->rotateto(), swfshape->setline(), swfshape->addfill()... Any example will use this object.

Anterior | Inicio | Siguiente
SWFMovie->streammp3 | Subir | SWFShape->addFill


SWFShape->addFill

(no version information, might be only in CVS)

SWFShape->addFill -- Adds a solid fill to the shape.

Description

void swfshape->addfill ( int red, int green, int blue [, int a])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

void swfshape->addfill ( SWFbitmap bitmap [, int flags])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

void swfshape->addfill ( SWFGradient gradient [, int flags])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfshape->addfill() adds a solid fill to the shape's list of fill styles. swfshape->addfill() accepts three different types of arguments.

red, green, blue is a color (RGB mode). Last parameter a is optional.

The bitmap argument is an swfbitmap() object. The flags argument can be one of the following values : SWFFILL_CLIPPED_BITMAP or SWFFILL_TILED_BITMAP. Default is SWFFILL_TILED_BITMAP. I think.

The gradient argument is an swfgradient() object. The flags argument can be one of the following values : SWFFILL_RADIAL_GRADIENT or SWFFILL_LINEAR_GRADIENT. Default is SWFFILL_LINEAR_GRADIENT. I'm sure about this one. Really.

swfshape->addfill() returns an swffill()
object for use with the swfshape->setleftfill()
and swfshape->setrightfill() functions
described below.

See also swfshape->setleftfill() and swfshape->setrightfill().

This simple example will draw a frame on a bitmap. Ah, here's another buglet in the flash player- it doesn't seem to care about the second shape's bitmap's transformation in a morph. According to spec, the bitmap should stretch along with the shape in this example..

Ejemplo 1. swfshape->addfill() example

<?php

  $p = new SWFMorph();

  $b = new SWFBitmap("alphafill.jpg");
  // use your own bitmap
  $width = $b->getWidth();
  $height = $b->getHeight();

  $s = $p->getShape1();
  $f = $s->addFill($b, SWFFILL_TILED_BITMAP);
  $f->moveTo(-$width/2, -$height/4);
  $f->scaleTo(1.0, 0.5);
  $s->setLeftFill($f);
  $s->movePenTo(-$width/2, -$height/4);
  $s->drawLine($width, 0);
  $s->drawLine(0, $height/2);
  $s->drawLine(-$width, 0);
  $s->drawLine(0, -$height/2);

  $s = $p->getShape2();
  $f = $s->addFill($b, SWFFILL_TILED_BITMAP);

  // these two have no effect!
  $f->moveTo(-$width/4, -$height/2);
  $f->scaleTo(0.5, 1.0);

  $s->setLeftFill($f);
  $s->movePenTo(-$width/4, -$height/2);
  $s->drawLine($width/2, 0);
  $s->drawLine(0, $height);
  $s->drawLine(-$width/2, 0);
  $s->drawLine(0, -$height);

  $m = new SWFMovie();
  $m->setDimension($width, $height);
  $i = $m->add($p);
  $i->moveTo($width/2, $height/2);

  for($n=0; $n<1.001; $n+=0.03)
  {
    $i->setRatio($n);
    $m->nextFrame();
  }

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Anterior | Inicio | Siguiente
SWFMovie | Subir | SWFShape->drawCurve


SWFShape->drawCurve

(no version information, might be only in CVS)

SWFShape->drawCurve -- Draws a curve (relative).

Description

void swfshape->drawcurve ( int controldx, int controldy, int anchordx, int anchordy)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfshape->drawcurve() draws a quadratic curve (using the current line style,set by swfshape->setline()) from the current pen position to the relative position (anchorx,anchory) using relative control point (controlx,controly). That is, head towards the control point, then smoothly turn to the anchor point.

See also
swfshape->drawlineto(),
swfshape->drawline(),
swfshape->movepento() and
swfshape->movepen().

Anterior | Inicio | Siguiente
SWFShape->addFill | Subir | SWFShape->drawCurveTo


SWFShape->drawCurveTo

(no version information, might be only in CVS)

SWFShape->drawCurveTo -- Draws a curve.

Description

void swfshape->drawcurveto ( int controlx, int controly, int anchorx, int anchory)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfshape->drawcurveto() draws a quadratic curve (using the current line style, set by swfshape->setline()) from the current pen position to (anchorx,anchory) using (controlx,controly) as a control point. That is, head towards the control point, then smoothly turn to the anchor point.

See also
swfshape->drawlineto(),
swfshape->drawline(),
swfshape->movepento() and
swfshape->movepen().

Anterior | Inicio | Siguiente
SWFShape->drawCurve | Subir | SWFShape->drawLine


SWFShape->drawLine

(no version information, might be only in CVS)

SWFShape->drawLine -- Draws a line (relative).

Description

void swfshape->drawline ( int dx, int dy)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfshape->drawline() draws a line (using the current line style set by swfshape->setline()) from the current pen position to displacement (dx,dy).

See also
swfshape->movepento(),
swfshape->drawcurveto(),
swfshape->movepen() and
swfshape->drawlineto().

Anterior | Inicio | Siguiente
SWFShape->drawCurveTo | Subir | SWFShape->drawLineTo


SWFShape->drawLineTo

(no version information, might be only in CVS)

SWFShape->drawLineTo -- Draws a line.

Description

void swfshape->drawlineto ( int x, int y)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfshape->setrightfill() draws a line (using the current line style, set by swfshape->setline()) from the current pen position to point (x,y) in the shape's coordinate space.

See also
swfshape->movepento(),
swfshape->drawcurveto(),
swfshape->movepen() and
swfshape->drawline().

Anterior | Inicio | Siguiente
SWFShape->drawLine | Subir | SWFShape->movePen


SWFShape->movePen

(no version information, might be only in CVS)

SWFShape->movePen -- Moves the shape's pen (relative).

Description

void swfshape->movepen ( int dx, int dy)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfshape->setrightfill() move the shape's pen from coordinates (current x,current y) to (current x + dx, current y + dy) in the shape's coordinate space.

See also
swfshape->movepento(),
swfshape->drawcurveto(),
swfshape->drawlineto() and
swfshape->drawline().

Anterior | Inicio | Siguiente
SWFShape->drawLineTo | Subir | SWFShape->movePenTo


SWFShape->movePenTo

(no version information, might be only in CVS)

SWFShape->movePenTo -- Moves the shape's pen.

Description

void swfshape->movepento ( int x, int y)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfshape->setrightfill() move the shape's pen to (x,y) in the shape's coordinate space.

See also
swfshape->movepen(),
swfshape->drawcurveto(),
swfshape->drawlineto() and
swfshape->drawline().

Anterior | Inicio | Siguiente
SWFShape->movePen | Subir | SWFShape->setLeftFill


SWFShape->setLeftFill

(no version information, might be only in CVS)

SWFShape->setLeftFill -- Sets left rasterizing color.

Description

void swfshape->setleftfill ( swfgradient fill)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

void swfshape->setleftfill ( int red, int green, int blue [, int a])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

What this nonsense is about is, every edge segment borders at most two fills. When rasterizing the object, it's pretty handy to know what those fills are ahead of time, so the swf format requires these to be specified.

swfshape->setleftfill() sets the fill on the left side of the edge- that is, on the interior if you're defining the outline of the shape in a counter-clockwise fashion. The fill object is an SWFFill object returned from one of the addFill functions above.

This seems to be reversed when you're defining a shape in a morph, though. If your browser crashes, just try setting the fill on the other side.

Shortcut for swfshape->setleftfill($s->addfill($r, $g, $b [, $a]));.

See also swfshape->setrightfill().

Anterior | Inicio | Siguiente
SWFShape->movePenTo | Subir | SWFShape->setLine


SWFShape->setLine

(no version information, might be only in CVS)

SWFShape->setLine -- Sets the shape's line style.

Description

void swfshape->setline ( int width [, int red [, int green [, int blue [, int a]]]])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfshape->setline() sets the shape's line style. width is the line's width. If width is 0, the line's style is removed (then, all other arguments are ignored). If width > 0, then line's color is set to red, green, blue. Last parameter a is optional.

swfshape->setline() accepts 1, 4 or 5 arguments (not 3 or 2).

You must declare all line styles before you use them (see example).

This simple example will draw a big "!#%*@", in funny colors and gracious style.

Ejemplo 1. swfshape->setline() example

<?php
  $s = new SWFShape();
  $f1 = $s->addFill(0xff, 0, 0);
  $f2 = $s->addFill(0xff, 0x7f, 0);
  $f3 = $s->addFill(0xff, 0xff, 0);
  $f4 = $s->addFill(0, 0xff, 0);
  $f5 = $s->addFill(0, 0, 0xff);

  // bug: have to declare all line styles before you use them
  $s->setLine(40, 0x7f, 0, 0);
  $s->setLine(40, 0x7f, 0x3f, 0);
  $s->setLine(40, 0x7f, 0x7f, 0);
  $s->setLine(40, 0, 0x7f, 0);
  $s->setLine(40, 0, 0, 0x7f);

  $f = new SWFFont('Techno.fdb');

  $s->setRightFill($f1);
  $s->setLine(40, 0x7f, 0, 0);
  $s->drawGlyph($f, '!');
  $s->movePen($f->getWidth('!'), 0);

  $s->setRightFill($f2);
  $s->setLine(40, 0x7f, 0x3f, 0);
  $s->drawGlyph($f, '#');
  $s->movePen($f->getWidth('#'), 0);

  $s->setRightFill($f3);
  $s->setLine(40, 0x7f, 0x7f, 0);
  $s->drawGlyph($f, '%');
  $s->movePen($f->getWidth('%'), 0);

  $s->setRightFill($f4);
  $s->setLine(40, 0, 0x7f, 0);
  $s->drawGlyph($f, '*');
  $s->movePen($f->getWidth('*'), 0);

  $s->setRightFill($f5);
  $s->setLine(40, 0, 0, 0x7f);
  $s->drawGlyph($f, '@');

  $m = new SWFMovie();
  $m->setDimension(3000,2000);
  $m->setRate(12.0);
  $i = $m->add($s);
  $i->moveTo(1500-$f->getWidth("!#%*@")/2, 1000+$f->getAscent()/2);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Anterior | Inicio | Siguiente
SWFShape->setLeftFill | Subir | SWFShape->setRightFill


SWFShape->setRightFill

(no version information, might be only in CVS)

SWFShape->setRightFill -- Sets right rasterizing color.

Description

void swfshape->setrightfill ( swfgradient fill)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

void swfshape->setrightfill ( int red, int green, int blue [, int a])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

See also swfshape->setleftfill().

Shortcut for swfshape->setrightfill($s->addfill($r, $g, $b [, $a]));.

Anterior | Inicio | Siguiente
SWFShape->setLine | Subir | SWFShape


SWFShape

(PHP 4 >= 4.0.5)

SWFShape -- Creates a new shape object.

Description

new swfshape ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfshape() creates a new shape object.

SWFShape has the following methods : swfshape->setline(),
swfshape->addfill(), swfshape->setleftfill(),
swfshape->setrightfill(), swfshape->movepento(),
swfshape->movepen(), swfshape->drawlineto(),
swfshape->drawline(), swfshape->drawcurveto()
and swfshape->drawcurve().

This simple example will draw a big red elliptic quadrant.

Ejemplo 1. swfshape() example

<?php
  $s = new SWFShape();
  $s->setLine(40, 0x7f, 0, 0);
  $s->setRightFill($s->addFill(0xff, 0, 0));
  $s->movePenTo(200, 200);
  $s->drawLineTo(6200, 200);
  $s->drawLineTo(6200, 4600);
  $s->drawCurveTo(200, 4600, 200, 200);

  $m = new SWFMovie();
  $m->setDimension(6400, 4800);
  $m->setRate(12.0);
  $m->add($s);
  $m->nextFrame();

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Anterior | Inicio | Siguiente
SWFShape->setRightFill | Subir | swfsprite->add


swfsprite->add

(no version information, might be only in CVS)

swfsprite->add -- Adds an object to a sprite

Description

void swfsprite->add ( resource object)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfsprite->add() adds a swfshape(), a
swfbutton(), a swftext(),
a swfaction() or a swfsprite() object.

For displayable types (swfshape(),
swfbutton(), swftext(),
swfaction() or swfsprite()),
this returns a handle  to the object in a display list.

Anterior | Inicio | Siguiente
SWFShape | Subir | SWFSprite->nextframe


SWFSprite->nextframe

(no version information, might be only in CVS)

SWFSprite->nextframe -- Moves to the next frame of the animation.

Description

void swfsprite->nextframe ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfsprite->setframes() moves to the next frame of the animation.

Anterior | Inicio | Siguiente
swfsprite->add | Subir | SWFSprite->remove


SWFSprite->remove

(no version information, might be only in CVS)

SWFSprite->remove -- Removes an object to a sprite

Description

void swfsprite->remove ( resource object)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfsprite->remove() remove a swfshape(), a
swfbutton(), a swftext(),
a swfaction() or a swfsprite() object
from the sprite.

Anterior | Inicio | Siguiente
SWFSprite->nextframe | Subir | SWFSprite->setframes


SWFSprite->setframes

(no version information, might be only in CVS)

SWFSprite->setframes -- Sets the total number of frames in the animation.

Description

void swfsprite->setframes ( int numberofframes)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfsprite->setframes() sets the total number of frames in the animation to numberofframes.

Anterior | Inicio | Siguiente
SWFSprite->remove | Subir | SWFSprite


SWFSprite

(PHP 4 >= 4.0.5)

SWFSprite -- Creates a movie clip (a sprite)

Description

new swfsprite ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swfsprite() are also known as a "movie clip", this allows one to create objects which are animated in their own timelines. Hence, the sprite has most of the same methods as the movie.

swfsprite() has the following methods :
swfsprite->add(),
swfsprite->remove(), swfsprite->nextframe()
and swfsprite->setframes().

This simple example will spin gracefully a big red square.

Ejemplo 1. swfsprite() example

<?php
  $s = new SWFShape();
  $s->setRightFill($s->addFill(0xff, 0, 0));
  $s->movePenTo(-500,-500);
  $s->drawLineTo(500,-500);
  $s->drawLineTo(500,500);
  $s->drawLineTo(-500,500);
  $s->drawLineTo(-500,-500);

  $p = new SWFSprite();
  $i = $p->add($s);
  $p->nextFrame();
  $i->rotate(15);
  $p->nextFrame();
  $i->rotate(15);
  $p->nextFrame();
  $i->rotate(15);
  $p->nextFrame();
  $i->rotate(15);
  $p->nextFrame();
  $i->rotate(15);
  $p->nextFrame();

  $m = new SWFMovie();
  $i = $m->add($p);
  $i->moveTo(1500,1000);
  $i->setName("blah");

  $m->setBackground(0xff, 0xff, 0xff);
  $m->setDimension(3000,2000);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Anterior | Inicio | Siguiente
SWFSprite->setframes | Subir | SWFText->addString


SWFText->addString

(no version information, might be only in CVS)

SWFText->addString -- Draws a string

Description

void swftext->addstring ( string string)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swftext->addstring() draws the string string at the current pen (cursor) location. Pen is at the baseline of the text; i.e., ascending text is in the -y direction.

Anterior | Inicio | Siguiente
SWFSprite | Subir | SWFText->getWidth


SWFText->getWidth

(no version information, might be only in CVS)

SWFText->getWidth -- Computes string's width

Description

void swftext->getwidth ( string string)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swftext->addstring() returns the rendered width of the string string at the text object's current font, scale, and spacing settings.

Anterior | Inicio | Siguiente
SWFText->addString | Subir | SWFText->moveTo


SWFText->moveTo

(no version information, might be only in CVS)

SWFText->moveTo -- Moves the pen

Description

void swftext->moveto ( int x, int y)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swftext->moveto() moves the pen (or cursor, if that makes more sense) to (x,y) in text object's coordinate space. If either is zero, though, value in that dimension stays the same. Annoying, should be fixed.

Anterior | Inicio | Siguiente
SWFText->getWidth | Subir | SWFText->setColor


SWFText->setColor

(no version information, might be only in CVS)

SWFText->setColor -- Sets the current font color

Description

void swftext->setcolor ( int red, int green, int blue [, int a])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swftext->setspacing() changes the current text color. Default is black. I think. Color is represented using the RGB system.

Anterior | Inicio | Siguiente
SWFText->moveTo | Subir | SWFText->setFont


SWFText->setFont

(no version information, might be only in CVS)

SWFText->setFont -- Sets the current font

Description

void swftext->setfont ( string font)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swftext->setfont() sets the current font to font.

Anterior | Inicio | Siguiente
SWFText->setColor | Subir | SWFText->setHeight


SWFText->setHeight

(no version information, might be only in CVS)

SWFText->setHeight -- Sets the current font height

Description

void swftext->setheight ( int height)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swftext->setheight() sets the current font height to height. Default is 240.

Anterior | Inicio | Siguiente
SWFText->setFont | Subir | SWFText->setSpacing


SWFText->setSpacing

(no version information, might be only in CVS)

SWFText->setSpacing -- Sets the current font spacing

Description

void swftext->setspacing ( float spacing)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swftext->setspacing() sets the current font spacing to spacingspacing. Default is 1.0. 0 is all of the letters written at the same point. This doesn't really work that well because it inflates the advance across the letter, doesn't add the same amount of spacing between the letters. I should try and explain that better, prolly. Or just fix the damn thing to do constant spacing. This was really just a way to figure out how letter advances work, anyway.. So nyah.

Anterior | Inicio | Siguiente
SWFText->setHeight | Subir | SWFText


SWFText

(PHP 4 >= 4.0.5)

SWFText -- Creates a new SWFText object.

Description

new swftext ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swftext() creates a new SWFText object, fresh for manipulating.

SWFText has the following methods : swftext->setfont(),
swftext->setheight(), swftext->setspacing(),
swftext->setcolor(), swftext->moveto(),
swftext->addstring() and swftext->getwidth().

This simple example will draw a big yellow "PHP generates Flash with Ming" text, on white background.

Ejemplo 1. swftext() example

<?php
  $f = new SWFFont("Techno.fdb");
  $t = new SWFText();
  $t->setFont($f);
  $t->moveTo(200, 2400);
  $t->setColor(0xff, 0xff, 0);
  $t->setHeight(1200);
  $t->addString("PHP generates Flash with Ming!!");

  $m = new SWFMovie();
  $m->setDimension(5400, 3600);

  $m->add($t);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Anterior | Inicio | Siguiente
SWFText->setSpacing | Subir | SWFTextField->addstring


SWFTextField->addstring

(no version information, might be only in CVS)

SWFTextField->addstring -- Concatenates the given string to the text field

Description

void swftextfield->addstring ( string string)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swftextfield->setname() concatenates the string string to the text field.

Anterior | Inicio | Siguiente
SWFText | Subir | SWFTextField->align


SWFTextField->align

(no version information, might be only in CVS)

SWFTextField->align -- Sets the text field alignment

Description

void swftextfield->align ( int alignement)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swftextfield->align() sets the text field alignment to alignement. Valid values for alignement are : SWFTEXTFIELD_ALIGN_LEFT, SWFTEXTFIELD_ALIGN_RIGHT, SWFTEXTFIELD_ALIGN_CENTER and SWFTEXTFIELD_ALIGN_JUSTIFY.

Anterior | Inicio | Siguiente
SWFTextField->addstring | Subir | SWFTextField->setbounds


SWFTextField->setbounds

(no version information, might be only in CVS)

SWFTextField->setbounds -- Sets the text field width and height

Description

void swftextfield->setbounds ( int width, int height)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swftextfield->setbounds() sets the text field width to width and height to height. If you don't set the bounds yourself, Ming makes a poor guess at what the bounds are.

Anterior | Inicio | Siguiente
SWFTextField->align | Subir | SWFTextField->setcolor


SWFTextField->setcolor

(no version information, might be only in CVS)

SWFTextField->setcolor -- Sets the color of the text field.

Description

void swftextfield->setcolor ( int red, int green, int blue [, int a])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swftextfield->setcolor() sets the color of the text field. Default is fully opaque black. Color is represented using RGB system.

Anterior | Inicio | Siguiente
SWFTextField->setbounds | Subir | SWFTextField->setFont


SWFTextField->setFont

(no version information, might be only in CVS)

SWFTextField->setFont -- Sets the text field font

Description

void swftextfield->setfont ( string font)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swftextfield->setfont() sets the text field font to the [browser-defined?] font font.

Anterior | Inicio | Siguiente
SWFTextField->setcolor | Subir | SWFTextField->setHeight


SWFTextField->setHeight

(no version information, might be only in CVS)

SWFTextField->setHeight -- Sets the font height of this text field font.

Description

void swftextfield->setheight ( int height)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swftextfield->setheight() sets the font height of this text field font to the given height height. Default is 240.

Anterior | Inicio | Siguiente
SWFTextField->setFont | Subir | SWFTextField->setindentation


SWFTextField->setindentation

(no version information, might be only in CVS)

SWFTextField->setindentation -- Sets the indentation of the first line.

Description

void swftextfield->setindentation ( int width)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swftextfield->setindentation() sets the indentation of the first line in the text field, to width.

Anterior | Inicio | Siguiente
SWFTextField->setHeight | Subir | SWFTextField->setLeftMargin


SWFTextField->setLeftMargin

(no version information, might be only in CVS)

SWFTextField->setLeftMargin -- Sets the left margin width of the text field.

Description

void swftextfield->setleftmargin ( int width)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swftextfield->setleftmargin() sets the left margin width of the text field to width. Default is 0.

Anterior | Inicio | Siguiente
SWFTextField->setindentation | Subir | SWFTextField->setLineSpacing


SWFTextField->setLineSpacing

(no version information, might be only in CVS)

SWFTextField->setLineSpacing -- Sets the line spacing of the text field.

Description

void swftextfield->setlinespacing ( int height)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swftextfield->setlinespacing() sets the line spacing of the text field to the height of height. Default is 40.

Anterior | Inicio | Siguiente
SWFTextField->setLeftMargin | Subir | SWFTextField->setMargins


SWFTextField->setMargins

(no version information, might be only in CVS)

SWFTextField->setMargins -- Sets the margins width of the text field.

Description

void swftextfield->setmargins ( int left, int right)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swftextfield->setmargins() set both margins at once, for the man on the go.

Anterior | Inicio | Siguiente
SWFTextField->setLineSpacing | Subir | SWFTextField->setname


SWFTextField->setname

(no version information, might be only in CVS)

SWFTextField->setname -- Sets the variable name

Description

void swftextfield->setname ( string name)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swftextfield->setname() sets the variable name of this text field to name, for form posting and action scripting purposes.

Anterior | Inicio | Siguiente
SWFTextField->setMargins | Subir | SWFTextField->setrightMargin


SWFTextField->setrightMargin

(no version information, might be only in CVS)

SWFTextField->setrightMargin -- Sets the right margin width of the text field.

Description

void swftextfield->setrightmargin ( int width)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swftextfield->setrightmargin() sets the right margin width of the text field to width. Default is 0.

Anterior | Inicio | Siguiente
SWFTextField->setname | Subir | SWFTextField


SWFTextField

(PHP 4 >= 4.0.5)

SWFTextField -- Creates a text field object

Description

new swftextfield ( [int flags])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

swftextfield() creates a new text field object. Text Fields are less flexible than swftext() objects- they can't be rotated, scaled non-proportionally, or skewed, but they can be used as form entries, and they can use browser-defined fonts.

The optional flags change the text field's behavior. It has the following possibles values :

  • SWFTEXTFIELD_DRAWBOX draws the outline of the textfield

  • SWFTEXTFIELD_HASLENGTH

  • SWFTEXTFIELD_HTML allows text markup using HTML-tags

  • SWFTEXTFIELD_MULTILINE allows multiple lines

  • SWFTEXTFIELD_NOEDIT indicates that the field shouldn't be user-editable

  • SWFTEXTFIELD_NOSELECT makes the field non-selectable

  • SWFTEXTFIELD_PASSWORD obscures the data entry

  • SWFTEXTFIELD_WORDWRAP allows text to wrap

Flags are combined with the bitwise OR operation. For example,
<?php
$t = newSWFTextField(SWFTEXTFIELD_PASSWORD | SWFTEXTFIELD_NOEDIT);
?>
creates a totally useless non-editable password field.

SWFTextField has the following methods : swftextfield->setfont(),
swftextfield->setbounds(), swftextfield->align(),
swftextfield->setheight(), swftextfield->setleftmargin(),
swftextfield->setrightmargin(), swftextfield->setmargins(),
swftextfield->setindentation(), swftextfield->setlinespacing(),
swftextfield->setcolor(), swftextfield->setname() and
swftextfield->addstring().

Anterior | Inicio | Siguiente
SWFTextField->setrightMargin | Subir | Miscelánea de funciones


Miscelánea de funciones

Manual de PHP
Anterior Siguiente

LX. Miscelánea de funciones

Estas funciones están colacadas aquí debido a que no parecen ajustarse a ninguna otra categoría.

Tabla de contenidos
connection_aborted -- Devuelve TRUE si el cliente está desconectado
connection_status -- Devuelve el estado de la conexión en un campo de bits
connection_timeout -- Devuelve TRUE si el script ha alcanzado su time out
constant -- Devuelve el valor de una constante
define -- Define una constante con nombre.
defined -- Comprueba que una constante con nombre dada existe.
die -- Envía a la salida un mensaje y finaliza el script actual
eval -- Evalúa una cadena de carácteres como código PHP
exit -- Finaliza el script actual
get_browser -- Informa sobre lo que es capaz de hacer el navegador (browser) del usuario.
highlight_file -- Resaltado de sintaxis de un archivo
highlight_string -- Resaltado de sintaxis de una cadena
ignore_user_abort -- Establece si la desconexión de un cliente debe suspender la ejecución del script
pack -- empaqueta datos en una cadena binaria
show_source -- Alias de highlight_file()
sleep -- Ejecución retardada
uniqid -- Genera un id único.
unpack -- desempaqueta datos de una cadena binaria
usleep -- Retrasa la ejecución, en microsegundos

Anterior | Inicio | Siguiente
SWFTextField | Subir | connection_aborted


connection_aborted

(PHP 3>= 3.0.7, PHP 4 )

connection_aborted -- Devuelve TRUE si el cliente está desconectado

Descripción

int connection_aborted ( void )

Devuelve TRUE si el cliente está desconectado. Vea la descripción de la Gestión de la Conexión en el capítulo Características para una explicación completa.

Anterior | Inicio | Siguiente
Miscelánea de funciones | Subir | connection_status


connection_status

(PHP 3>= 3.0.7, PHP 4 )

connection_status -- Devuelve el estado de la conexión en un campo de bits

Descripción

int connection_status ( void )

Devuelve el estado de la conexión en un campo de bits. Vea la descripción de la Gestión de la Conexión en el capítulo Características para una explicación completa.

Anterior | Inicio | Siguiente
connection_aborted | Subir | connection_timeout


connection_timeout

(PHP 3>= 3.0.7, PHP 4 <= 4.0.4)

connection_timeout -- Devuelve TRUE si el script ha alcanzado su time out

Descripción

int connection_timeout ( void )

Devuelve TRUE si el script ha alcanzado su time out. Vea la descripción de la Gestión de la Conexión en el capítulo Características para una explicación completa.

Anterior | Inicio | Siguiente
connection_status | Subir | constant


constant

(PHP 4 >= 4.0.4)

constant -- Devuelve el valor de una constante

Descripción

mixed constant ( string nombre)

constant() devolverá el valor de la constante indicada por nombre.

constant() es útil si necesita recuperar el valor de una constante, pero no conoce su nombre. Esto quiere decir, si está almacenada en una variable o es devuelta por una función.

Ejemplo 1. Ejemplo de constant()

<?php

define ("TAMMAX", 100);

echo TAMMAX;
echo constant("TAMMAX"); // igual que la linea anterior

?>

Vea también define(), defined() y la sección sobre Constantes.

Anterior | Inicio | Siguiente
connection_timeout | Subir | define


define

(PHP 3, PHP 4 )

define -- Define una constante con nombre.

Descripción

int define ( string name, mixed value [, int case_insensitive])

Define una constante con nombre, que es similar a una variable, excepto que:

  • Las constantes no tienen un símbolo dólar '$' precediéndolas;

  • Las constantes son accesibles desde cualquier lugar sin tener en cuenta las reglas de ámbito de las variables.

  • Las constantes no pueden ser redefinidas o iniciadas una vez que han sido establecidas, y

  • Las constantes sólo pueden evaluar valores escalares

El nombre de la constante se da en name (nombre); el valor se da en value (valor).

El tercer parámetro opcional case_insensitive también se encuentra disponible. Si se da el valor 1, la constante se definirá no dintinguiendo mayúsculas/minusculas. El comportamiento por defecto es si distinguir; i.e. CONSTANT y Constant representan valores diferentes.

Ejemplo 1. Definición de Constantes

<?php
define("CONSTANT", "Hello world.");
echo CONSTANT; // outputs "Hello world."
?>

define() devuelve TRUE en caso de éxito y FALSE si ocurre un error.

Véase también defined() y la sección Constantes.

Anterior | Inicio | Siguiente
constant | Subir | defined


defined

(PHP 3, PHP 4 )

defined -- Comprueba que una constante con nombre dada existe.

Descripción

int defined ( string name)

Devuelve TRUE si la constante con nombre dada en name (nombre) ha sido definida, FALSE en otro caso.

Véase también define() y la sección Constantes.

Anterior | Inicio | Siguiente
define | Subir | die


die

(no version information, might be only in CVS)

die -- Envía a la salida un mensaje y finaliza el script actual

Descripción

void die ( string message)

Esta construcción del lenguaje envía a la salida un mensaje y finaliza la ejecución del script. No devuelve nada.

Ejemplo 1. Ejemplo die

<?php
$filename = '/path/to/data-file';
$file = fopen($filename, 'r')
  or die "unable to open file ($filename)";
?>

Anterior | Inicio | Siguiente
defined | Subir | eval


eval

(PHP 3, PHP 4 )

eval -- Evalúa una cadena de carácteres como código PHP

Descripción

void eval ( string code_str)

eval() evalúa la cadena de carácteres dada en code_str como código PHP. Entre otras cosas, ésto puede ser útil para almacenar código en un campo de texto de base de datos para una ejecución posterior.

Hay algunos aspectos a tener en cuenta cuando se utiliza eval(). Recuerde que la cadena de carácteres pasada debe ser código PHP válido, incluyendo aspectos como sentencias de terminación con un punto y coma para que el parser no finalice en la línea después de eval(), y secuencias de formato correctas en code_str.

Recuerde también que las variables a las que se les da valor en eval() retendrán estos valores posteriormente en el script principal.

Ejemplo 1. Ejemplo eval() - fusión en un único texo

<?php
$string = 'cup';
$name = 'coffee';
$str = 'This is a $string with my $name in it.<br>';
echo $str;
eval( "\$str = \"$str\";" );
echo $str;
?>

El ejemplo anterior mostrará:
This is a $string with my $name in it.
This is a cup with my coffee in it.

Anterior | Inicio | Siguiente
die | Subir | exit


exit

(PHP 3, PHP 4 )

exit -- Finaliza el script actual

Descripción

void exit ( void )

Esta construcción del lenguaje finaliza la ejecución del script. No devuelve nada.

Anterior | Inicio | Siguiente
eval | Subir | get_browser


get_browser

(PHP 3, PHP 4 )

get_browser -- Informa sobre lo que es capaz de hacer el navegador (browser) del usuario.

Descripción

object get_browser ( [string user_agent])

get_browser() intenta determinar las características del navegador del usuario. Para ello consulta el fichero de información del navegador, browscap.ini. Por defecto, se utiliza el valor de $HTTP_USER_AGENT; sin embargo, puede alterar ésto (i.e., consultando otra información del navegador) pasando el parámetro opcional user_agent a get_browser().

La información se devuelve en un objto, que contendrá varios elementos de datos que representan, por ejemplo, los números de versión (mayor y menor) del navegador y la cadena ID; valores TRUE/false para características como los marcos, JavaScript, y cookies; etc.

browscap.ini contiene información de muchos navegadores, depende de las actualizaciones del usuario para mantener la base de datos actualizada. El formato del fichero es claramente auto-explicativo.

El ejemplo siguiente muestra como se puede listar toda la información disponible recuperada del navegador del usuario.

Ejemplo 1. ejemplo get_browser()

<?php
function list_array( $array ) {
   while ( list( $key, $value ) = each( $array ) ) {
      $str .= "<b>$key:</b> $value<br>\n";
   }
   return $str;
}
echo "$HTTP_USER_AGENT<hr>\n";
$browser = get_browser();
echo list_array( (array) $browser );
?>

La salida del script anterior debería paracerse a ésto:

Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586)<hr>
<b>browser_name_pattern:</b> Mozilla/4\.5.*<br>
<b>parent:</b> Netscape 4.0<br>
<b>platform:</b> Unknown<br>
<b>majorver:</b> 4<br>
<b>minorver:</b> 5<br>
<b>browser:</b> Netscape<br>
<b>version:</b> 4<br>
<b>frames:</b> 1<br>
<b>tables:</b> 1<br>
<b>cookies:</b> 1<br>
<b>backgroundsounds:</b> <br>
<b>vbscript:</b> <br>
<b>javascript:</b> 1<br>
<b>javaapplets:</b> 1<br>
<b>activexcontrols:</b> <br>
<b>beta:</b> <br>
<b>crawler:</b> <br>
<b>authenticodeupdate:</b> <br>
<b>msn:</b> <br>

Para conseguir ésto, su opción de fichero de configuración browscap debe apuntar a la correcta localización del fichero browscap.ini.

Para más información (incluyendo localizaciones desde las que puede obtener un fichero browscap.ini), consulte las FAQ sobre PHP en http://www.php.net/FAQ.html.

Nota: el soporte para browscap fue añadido en la versión 3.0b2 de PHP.

Anterior | Inicio | Siguiente
exit | Subir | highlight_file


highlight_file

(PHP 4 )

highlight_file -- Resaltado de sintaxis de un archivo

Descripción

mixed highlight_file ( string nombre_archivo [, bool devolver])

La función highlight_file() imprime una versión con resaltado de sintaxis del código contenido en nombre_archivo usando los colores definidos en el resaltador de sintaxis incorporado de PHP.

Si el segundo parámetro devolver es definido a TRUE entonces highlight_file() devolverá el código resaltado en lugar de imprimirlo. Si el segundo parámetro no es definido a TRUE entonces highlight_file() devolverá TRUE si tiene éxito, o FALSE en caso de fallo.

Nota: El parámetro devolver apareció en PHP 4.2.0. Antes de esta versión, tenía el comportamiento predeterminado, que es FALSE

Atención

Debe tenerse cuidado cuando se usan las funciones show_source() y highlight_file() para asegurarse de que no se revele inadvertidamente información sensible, tal como contraseñas o cualquier otro tipo de información que pueda crear un riesgo potencial de seguridad.

Nota: A partir de PHP 4.2.1 esta función es influenciada también por safe_mode y open_basedir.

Para crear una URL que pueda resaltar el código de cualquier script que le sea pasado, haremos uso de la directiva "ForceType" en Apache para generar un agradable patrón URL, y usaremos la función highlight_file() para mostrar un listado de código bien presentado.

En su httpd.conf puede agregar lo siguiente:

Ejemplo 1. Creación de una URL para resaltar código fuente

<Location /source>
    ForceType application/x-httpd-php
</Location>

Y luego cree un archivo llamado "source" y colóquelo en su directorio raíz de documentos web.

<html>
<head>
<title>Presentaci&oacute;n de C&oacute;digo Fuente</title>
</head>
<body bgcolor="white">
<?php
    $script = getenv("PATH_TRANSLATED");
    if (!$script) {
        echo "<br /><b>ERROR: Se necesita el Nombre del Script</b><br />";
    } else {
        if (ereg("(\.php|\.inc)$",$script)) {
            echo "<h1>Fuente de: $PATH_INFO</h1>\n<hr />\n";
            highlight_file($script);
        } else {
            echo "<h1>ERROR: Solo se permiten scripts o archivos de " .
                 "inclusion PHP</h1>";
        }
    }
    echo "<hr />Procesado: ". date("Y/M/d H:i:s", time());
?>
</BODY>
</HTML>

Luego puede usar una URL como la siguiente para mostrar una versión en colores de un script ubicado en "/ruta/hacia/script.php" en su sitio web.

http://www.example.com/source/ruta/hacia/script.php

Vea también highlight_string().

Anterior | Inicio | Siguiente
get_browser | Subir | highlight_string


highlight_string

(PHP 4 )

highlight_string -- Resaltado de sintaxis de una cadena

Descripción

mixed highlight_string ( string cadena [, bool devolver])

La función highlight_string() imprime una versión con resaltado de código de cadena usando los colores definidos en el resaltador de código incorporado de PHP.

Si el segundo parámetro devolver es definido a TRUE entonces highlight_string() devolverá el código resaltado como una cadena en lugar de imprimirlo. Si el segundo parámetro no es definido a TRUE entonces highlight_string() devolverá TRUE de tener éxito, o FALSE en caso de fallo.

Nota: El parámetro devolver apareció en PHP 4.2.0. Antes de esta versión, su comportamiento era el predeterminado, el cual es FALSE.

Vea también highlight_file().

Anterior | Inicio | Siguiente
highlight_file | Subir | ignore_user_abort


ignore_user_abort

(PHP 3>= 3.0.7, PHP 4 )

ignore_user_abort -- Establece si la desconexión de un cliente debe suspender la ejecución del script

Descripción

int ignore_user_abort ( [int setting])

Esta función establece si la desconexión de un cliente debe provocar la suspensión del script. Devolverá el valor previo y puede ser llamada sin argumentos para devolver el valor actual y no cambiarlo. Véase la sección sobre la Gestión de la Conexión en el capítulo Características para una descripción completa de la gestión de la conexión en PHP.

Anterior | Inicio | Siguiente
highlight_string | Subir | pack


pack

(PHP 3, PHP 4 )

pack -- empaqueta datos en una cadena binaria

Descripción

string pack ( string format [, mixed args])

Empaqueta los argumentos dados en una cadena binaria siguiendo el formato format. Devuelve la cadena binaria que contiene los datos.

El concepto de esta función fue tomado de Perl y todos los códigos de formateo realizan la misma función. La cadena de formato consiste en códigos de formato seguidos por un argumento opcional de repetición. El argumento de repetición puede ser un valor entero o * para repetir hasta el fin de la entrada de datos. Para a, A, h, H la cuenta de repetición representa cuántos caracteres se toman de un argumento de datos, para @ es la posición absoluta donde poner los datos siguientes, para todo lo demás la cuenta de repetición especifica cuántos argumentos de datos se toman y empaquetan en la cadena binaria resultante. Actualmente están implementados:

  • a cadena rellena de NUL

  • A cadena rellena de ESPACIOS

  • h cadena Hex, primero el medio byte inferior

  • H cadena Hex, primero el medio byte superior

  • c signed (con signo) char

  • C unsigned (sin signo) char

  • s signed short (siempre 16 bits, distribución de bytes de la máquina)

  • S unsigned short (siempre 16 bits, distribución de bytes de la máquina)

  • n unsigned short (siempre 16 bits, distribución de bytes gran endian)

  • v unsigned short (siempre 16 bits, distribución de bytes pequeño endian)

  • i signed integer (distribución de bytes y tamaños dependientes de la máquina)

  • I unsigned integer (distribución de bytes y tamaños dependientes de la máquina)

  • l signed long (siempre 32 bits, distribución de bytes de la máquina)

  • L unsigned long (siempre 32 bits, distribución de bytes de la máquina)

  • N unsigned long (siempre 32 bits, distribución de bytes gran endian)

  • V unsigned long (siempre 32 bits, distribución de bytes pequeño endian)

  • f float (representación y tamaño dependientes de la máquina)

  • d double (representación y tamaño dependientes de la máquina)

  • x byte NUL

  • X Un byte hacia atrás

  • @ relleno con NUL en la posición absoluta

Ejemplo 1. cadena de formato para pack

$binarydata = pack("nvc*", 0x1234, 0x5678, 65, 66);

La cadena binaria resultante tendrá 6 bytes de longitud y contendrá la secuencia de bytes 0x12, 0x34, 0x78, 0x56, 0x41, 0x42.

Adviértase que la distinción entre valores signed (con signo) y unsigned (sin signo) sólo afecta a la función unpack(), ya que la función pack() da el mismo resultado para códigos de formato con signo y sin signo.

Nótese también que internamente PHP almacena valores enteros como valores con signo de un tamaño dependiente de la máquina. Si le da un valor entero sin signo demasiado grande para ser almacenado, será convertido a un double (doble), lo que a menudo produce resultados no deseados.

Anterior | Inicio | Siguiente
ignore_user_abort | Subir | show_source


show_source

show_source -- Alias de highlight_file()

Descripción

Esta función es un alias de highlight_file().

Anterior | Inicio | Siguiente
pack | Subir | sleep


sleep

(PHP 3, PHP 4 )

sleep -- Ejecución retardada

Descripción

void sleep ( int seconds)

La función sleep retarda la ejecución del programa durante el número de seconds (segundos) dado.

Véase también usleep().

Anterior | Inicio | Siguiente
show_source | Subir | uniqid


uniqid

(PHP 3, PHP 4 )

uniqid -- Genera un id único.

Descripción

int uniqid ( string prefix [, boolean lcg])

uniqid() devuelve un identificador único con un prefijo basado en la hora actual en microsegundos. El prefijo puede ser práctico por ejemplo si se generan identificadores simultáneamente en varios host que pueden haber generado el identificador en el mismo microsegundo. prefix (prefijo) puede ser de hasta 114 carácteres de longitud.

Si el parámetro opcional lcg es TRUE, uniqid() añadirá entropía "LCG combinada" al final del valor devuelto, que hará el resultado más único.

Con un prefix (prefijo) vacío, la cadena devuelta tendrá una longitud de 13 carácteres. Si lcg es TRUE, tendrá 23 carácteres.

Nota: El parámetro lcg está disponible sólo en PHP 4 y PHP 3.0.13 y posteriores.

Si necesita un identificador único o testigo, y tiene la intención de hacer público ese testigo al usuario por medio de una red (i.e. cookies de sesión) se recomienda que utilice algo parecido a estas líneas

$token = md5(uniqid("")); // no random portion
$better_token = md5(uniqid(rand())); // better, difficult to guess

Esto creará un identificador de 32 carácteres (un número hexadecimal de 128 bits) que es extremadamente difícil de predecir.

Anterior | Inicio | Siguiente
sleep | Subir | unpack


unpack

(PHP 3, PHP 4 )

unpack -- desempaqueta datos de una cadena binaria

Descripción

array unpack ( string format, string data)

Desempaqueta datos de una cadena binaria en un array, de acuerdo al formato format. Devuelve un array que contiene los elementos de la cadena binaria desempaquetados.

Unpack funciona de manera ligeramente diferente a Perl, ya que los datos desempaquetados se almacenan en un array asociativo. Para conseguir ésto debe nombrar los diferentes códigos de formato y separarlos por una barra inclinada /.

Ejemplo 1. cadena de formato unpack

$array = unpack("c2chars/nint", $binarydata);

El array resultante contendrá las entradas "chars1", "chars2" y "int".

Para una explicación de los códigos de formato véase también: pack()

Advierta que PHP almacena internamente los valores enteros con signo. Si desempaqueta un unsigned long (largo sin signo) demasiado grande y es del mismo tamaño tal como PHP almacena internamente los valores, el resultado será un número negativo a pesar de que se especificara desempaquetamiento sin signo.

Anterior | Inicio | Siguiente
uniqid | Subir | usleep


usleep

(PHP 3, PHP 4 )

usleep -- Retrasa la ejecución, en microsegundos

Descripción

void usleep ( int micro_seconds)

La función usleep retrasa la ejecución del programa durante un número de micro_seconds (microsegundos) dado.

Véase también sleep().

Anterior | Inicio | Siguiente
unpack | Subir | mnoGoSearch Functions


mnoGoSearch Functions

Manual de PHP
Anterior Siguiente

LXI. mnoGoSearch Functions

Introducción

These functions allow you to access the mnoGoSearch (former UdmSearch) free search engine. mnoGoSearch is a full-featured search engine software for intranet and internet servers, distributed under the GNU license. mnoGoSearch has a number of unique features, which makes it appropriate for a wide range of applications from search within your site to a specialized search system such as cooking recipes or newspaper search, FTP archive search, news articles search, etc. It offers full-text indexing and searching for HTML, PDF, and text documents. mnoGoSearch consists of two parts. The first is an indexing mechanism (indexer). The purpose of the indexer is to walk through HTTP, FTP, NEWS servers or local files, recursively grabbing all the documents and storing meta-data about that documents in a SQL database in a smart and effective manner. After every document is referenced by its corresponding URL, meta-data is collected by the indexer for later use in a search process. The search is performed via Web interface. C, CGI, PHP and Perl search front ends are included.

More information about mnoGoSearch can be found at http://www.mnogosearch.ru/.

Nota: Esta extensión no está disponible en plataformas Windows

Requerimientos

Download mnoGosearch from http://www.mnogosearch.ru/ and install it on your system. You need at least version 3.1.10 of mnoGoSearch installed to use these functions.

Instalación

In order to have these functions available, you must compile PHP with mnoGosearch support by using the --with-mnogosearchoption. If you use this option without specifying the path to mnoGosearch, PHP will look for mnoGosearch under /usr/local/mnogosearch path by default. If you installed mnoGosearch at a different location you should specify it: --with-mnogosearch=DIR.

Nota: PHP contains built-in MySQL access library, which can be used to access MySQL. It is known that mnoGoSearch is not compatible with this built-in library and can work only with generic MySQL libraries. Thus, if you use mnoGoSearch with MySQL, during PHP configuration you have to indicate the directory of your MySQL installation, that was used during mnoGoSearch configuration, i.e. for example: --with-mnogosearch --with-mysql=/usr.

Configuración en tiempo de ejecución

Esta extensión no tiene directivas de configuración en php.ini.

Tipos de recursos

Constantes predefinidas

Estas constantes están definidas por esta extensión y estarán disponibles solamente cuando la extensión ha sido o bien compilada dentro de PHP o grabada dinámicamente en tiempo de ejecución.

UDM_FIELD_URLID (integer)

UDM_FIELD_URL (integer)

UDM_FIELD_CONTENT (integer)

UDM_FIELD_TITLE (integer)

UDM_FIELD_KEYWORDS (integer)

UDM_FIELD_DESC (integer)

UDM_FIELD_DESCRIPTION (integer)

UDM_FIELD_TEXT (integer)

UDM_FIELD_SIZE (integer)

UDM_FIELD_RATING (integer)

UDM_FIELD_SCORE (integer)

UDM_FIELD_MODIFIED (integer)

UDM_FIELD_ORDER (integer)

UDM_FIELD_CRC (integer)

UDM_FIELD_CATEGORY (integer)

UDM_FIELD_LANG (integer)

UDM_FIELD_CHARSET (integer)

UDM_PARAM_PAGE_SIZE (integer)

UDM_PARAM_PAGE_NUM (integer)

UDM_PARAM_SEARCH_MODE (integer)

UDM_PARAM_CACHE_MODE (integer)

UDM_PARAM_TRACK_MODE (integer)

UDM_PARAM_PHRASE_MODE (integer)

UDM_PARAM_CHARSET (integer)

UDM_PARAM_LOCAL_CHARSET (integer)

UDM_PARAM_BROWSER_CHARSET (integer)

UDM_PARAM_STOPTABLE (integer)

UDM_PARAM_STOP_TABLE (integer)

UDM_PARAM_STOPFILE (integer)

UDM_PARAM_STOP_FILE (integer)

UDM_PARAM_WEIGHT_FACTOR (integer)

UDM_PARAM_WORD_MATCH (integer)

UDM_PARAM_MAX_WORD_LEN (integer)

UDM_PARAM_MAX_WORDLEN (integer)

UDM_PARAM_MIN_WORD_LEN (integer)

UDM_PARAM_MIN_WORDLEN (integer)

UDM_PARAM_ISPELL_PREFIXES (integer)

UDM_PARAM_ISPELL_PREFIX (integer)

UDM_PARAM_PREFIXES (integer)

UDM_PARAM_PREFIX (integer)

UDM_PARAM_CROSS_WORDS (integer)

UDM_PARAM_CROSSWORDS (integer)

UDM_PARAM_VARDIR (integer)

UDM_PARAM_DATADIR (integer)

UDM_PARAM_HLBEG (integer)

UDM_PARAM_HLEND (integer)

UDM_PARAM_SYNONYM (integer)

UDM_PARAM_SEARCHD (integer)

UDM_PARAM_QSTRING (integer)

UDM_PARAM_REMOTE_ADDR (integer)

UDM_LIMIT_CAT (integer)

UDM_LIMIT_URL (integer)

UDM_LIMIT_TAG (integer)

UDM_LIMIT_LANG (integer)

UDM_LIMIT_DATE (integer)

UDM_PARAM_FOUND (integer)

UDM_PARAM_NUM_ROWS (integer)

UDM_PARAM_WORDINFO (integer)

UDM_PARAM_WORD_INFO (integer)

UDM_PARAM_SEARCHTIME (integer)

UDM_PARAM_SEARCH_TIME (integer)

UDM_PARAM_FIRST_DOC (integer)

UDM_PARAM_LAST_DOC (integer)

UDM_MODE_ALL (integer)

UDM_MODE_ANY (integer)

UDM_MODE_BOOL (integer)

UDM_MODE_PHRASE (integer)

UDM_CACHE_ENABLED (integer)

UDM_CACHE_DISABLED (integer)

UDM_TRACK_ENABLED (integer)

UDM_TRACK_DISABLED (integer)

UDM_PHRASE_ENABLED (integer)

UDM_PHRASE_DISABLED (integer)

UDM_CROSS_WORDS_ENABLED (integer)

UDM_CROSSWORDS_ENABLED (integer)

UDM_CROSS_WORDS_DISABLED (integer)

UDM_CROSSWORDS_DISABLED (integer)

UDM_PREFIXES_ENABLED (integer)

UDM_PREFIX_ENABLED (integer)

UDM_ISPELL_PREFIXES_ENABLED (integer)

UDM_ISPELL_PREFIX_ENABLED (integer)

UDM_PREFIXES_DISABLED (integer)

UDM_PREFIX_DISABLED (integer)

UDM_ISPELL_PREFIXES_DISABLED (integer)

UDM_ISPELL_PREFIX_DISABLED (integer)

UDM_ISPELL_TYPE_AFFIX (integer)

UDM_ISPELL_TYPE_SPELL (integer)

UDM_ISPELL_TYPE_DB (integer)

UDM_ISPELL_TYPE_SERVER (integer)

UDM_MATCH_WORD (integer)

UDM_MATCH_BEGIN (integer)

UDM_MATCH_SUBSTR (integer)

UDM_MATCH_END (integer)

Tabla de contenidos
udm_add_search_limit -- Add various search limits
udm_alloc_agent -- Allocate mnoGoSearch session
udm_api_version -- Get mnoGoSearch API version.
udm_cat_list -- Get all the categories on the same level with the current one.
udm_cat_path -- Get the path to the current category.
udm_check_charset -- Check if the given charset is known to mnogosearch
udm_check_stored -- Check connection to stored
udm_clear_search_limits -- Clear all mnoGoSearch search restrictions
udm_close_stored -- Close connection to stored
udm_crc32 -- Return CRC32 checksum of gived string
udm_errno -- Get mnoGoSearch error number
udm_error -- Get mnoGoSearch error message
udm_find -- Perform search
udm_free_agent -- Free mnoGoSearch session
udm_free_ispell_data -- Free memory allocated for ispell data
udm_free_res -- Free mnoGoSearch result
udm_get_doc_count -- Get total number of documents in database.
udm_get_res_field -- Fetch mnoGoSearch result field
udm_get_res_param -- Get mnoGoSearch result parameters
udm_load_ispell_data -- Load ispell data
udm_open_stored -- Open connection to stored
udm_set_agent_param -- Set mnoGoSearch agent session parameters

Anterior | Inicio | Siguiente
usleep | Subir | udm_add_search_limit


udm_add_search_limit

(PHP 4 >= 4.0.5)

udm_add_search_limit -- Add various search limits

Description

bool udm_add_search_limit ( resource agent, int var, string val)

udm_add_search_limit() adds search restrictions. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

agent - a link to Agent, received after call to udm_alloc_agent().

var - defines parameter, indicating limit.

val - defines the value of the current parameter.

Possible var values:

  • UDM_LIMIT_URL - defines document URL limitations to limit the search through subsection of the database. It supports SQL % and _ LIKE wildcards, where % matches any number of characters, even zero characters, and _ matches exactly one character. E.g. http://www.example.___/catalog may stand for http://www.example.com/catalog and http://www.example.net/catalog.

  • UDM_LIMIT_TAG - defines site TAG limitations. In indexer-conf you can assign specific TAGs to various sites and parts of a site. Tags in mnoGoSearch 3.1.x are lines, that may contain metasymbols % and _. Metasymbols allow searching among groups of tags. E.g. there are links with tags ABCD and ABCE, and search restriction is by ABC_ - the search will be made among both of the tags.

  • UDM_LIMIT_LANG - defines document language limitations.

  • UDM_LIMIT_CAT - defines document category limitations. Categories are similar to tag feature, but nested. So you can have one category inside another and so on. You have to use two characters for each level. Use a hex number going from 0-F or a 36 base number going from 0-Z. Therefore a top-level category like 'Auto' would be 01. If it has a subcategory like 'Ford', then it would be 01 (the parent category) and then 'Ford' which we will give 01. Put those together and you get 0101. If 'Auto' had another subcategory named 'VW', then it's id would be 01 because it belongs to the 'Ford' category and then 02 because it's the next category. So it's id would be 0102. If VW had a sub category called 'Engine' then it's id would start at 01 again and it would get the 'VW' id 02 and 'Auto' id of 01, making it 010201. If you want to search for sites under that category then you pass it cat=010201 in the url.

  • UDM_LIMIT_DATE - defines limitation by date the document was modified.

    Format of parameter value: a string with first character < or >, then with no space - date in unixtime format, for example:

    Udm_Add_Search_Limit($udm,UDM_LIMIT_DATE,"<908012006");

    If > character is used, then the search will be restricted to those documents having a modification date greater than entered, if <, then smaller.

Anterior | Inicio | Siguiente
mnoGoSearch Functions | Subir | udm_alloc_agent


udm_alloc_agent

(PHP 4 >= 4.0.5)

udm_alloc_agent -- Allocate mnoGoSearch session

Description

resource udm_alloc_agent ( string dbaddr [, string dbmode])

Returns a mnogosearch agent identifier on success, FALSE on failure. This function creates a session with database parameters.

dbaddr - URL-style database description, with options (type, host, database name, port, user and password) to connect to SQL database. Do not matter for built-in text files support. Format for dbaddr: DBType:[//[DBUser[:DBPass]@]DBHost[:DBPort]]/DBName/. Currently supported DBType values are: mysql, pgsql, msql, solid, mssql, oracle, and ibase. Actually, it does not matter for native libraries support, but ODBC users should specify one of the supported values. If your database type is not supported, you may use unknown instead.

dbmode - You may select the SQL database mode of words storage. Possible values of dbmode are: single, multi, crc, or crc-multi. When single is specified, all words are stored in the same table. If multi is selected, words will be located in different tables depending of their lengths. "multi" mode is usually faster, but requires more tables in the database. If "crc" mode is selected, mnoGoSearch will store 32 bit integer word IDs calculated by CRC32 algorythm instead of words. This mode requires less disk space and it is faster comparing with "single" and "multi" modes. crc-multi uses the same storage structure with the "crc" mode, but also stores words in different tables depending on words lengths like in "multi" mode.

Nota: dbaddr and dbmode must match those used during indexing.

Nota: In fact this function does not open a connection to the database and thus does not check the entered login and password. Establishing a connection to the database and login/password verification is done by udm_find().

Anterior | Inicio | Siguiente
udm_add_search_limit | Subir | udm_api_version


udm_api_version

(PHP 4 >= 4.0.5)

udm_api_version -- Get mnoGoSearch API version.

Description

int udm_api_version ( void )

udm_api_version() returns the mnoGoSearch API version number. E.g. if mnoGoSearch 3.1.10 API is used, this function will return 30110.

This function allows the user to identify which API functions are available, e.g. udm_get_doc_count() function is only available in mnoGoSearch 3.1.11 or later.

Ejemplo 1. udm_api_version() example

<?php
if (udm_api_version() >= 30111) {
    print  "Total number of urls in database: ".udm_get_doc_count($udm)."<br \>\n";
}
?>

Anterior | Inicio | Siguiente
udm_alloc_agent | Subir | udm_cat_list


udm_cat_list

(PHP 4 >= 4.0.6)

udm_cat_list -- Get all the categories on the same level with the current one.

Description

array udm_cat_list ( resource agent, string category)

Returns an array listing all categories of the same level as the current category in the categories tree. agent is the agent identifier returned by a previous call to >udm_alloc_agent().

The function can be useful for developing categories tree browser.

The returnded array consists of pairs. Elements with even index numbers contain the category paths, odd elements contain the corresponding category names.

$array[0] will contain '020300'
  $array[1] will contain 'Audi'
  $array[2] will contain '020301'
  $array[3] will contain 'BMW'
  $array[4] will contain '020302'
  $array[5] will contain 'Opel'
  ...
 etc.

Following is an example of displaying links of the current level in format:
Audi
  BMW
  Opel
  ...

Ejemplo 1. udm_cat_list()example

<?php
 $cat_list_arr = udm_cat_list($udm_agent,$cat);
 $cat_list = '';
 for ($i=0; $i<count($cat_list_arr); $i+=2) {
    $path = $cat_list_arr[$i];
    $name = $cat_list_arr[$i+1];
    $cat_list .= "<a href=\"$_SERVER[PHP_SELF]?cat=$path\">$name</a><br>";
 }
?>

See also udm_cat_path().

Anterior | Inicio | Siguiente
udm_api_version | Subir | udm_cat_path


udm_cat_path

(PHP 4 >= 4.0.6)

udm_cat_path -- Get the path to the current category.

Description

array udm_cat_path ( resource agent, string category)

Returns an array describing the path in the categories tree from the tree root to the current one, specified by category. agent is the agent identifier returned by a previous call to >udm_alloc_agent().

The returned array consists of pairs. Elements with even index numbers contain the category paths, odd elements contain the corresponding category names.

For example, the call $array=udm_cat_path($agent, '02031D'); may return the following array:
$array[0] will contain ''
 $array[1] will contain 'Root'
 $array[2] will contain '02'
 $array[3] will contain 'Sport'
 $array[4] will contain '0203'
 $array[5] will contain 'Auto'
 $array[4] will contain '02031D'
 $array[5] will contain 'Ferrari'

Ejemplo 1. Specifying path to the current category in the following format: '> Root > Sport > Auto > Ferrari'

<?php
  $cat_path_arr = udm_cat_path($udm_agent,$cat);
  $cat_path = '';
  for ($i=0; $i<count($cat_path_arr); $i+=2) {
    $path = $cat_path_arr[$i];
    $name = $cat_path_arr[$i+1];
    $cat_path .= " > <a href=\"$_SERVER[PHP_SELF]?cat=$path\">$name</a> ";
  }
?>

See also udm_cat_list().

Anterior | Inicio | Siguiente
udm_cat_list | Subir | udm_check_charset


udm_check_charset

(PHP 4 >= 4.2.0)

udm_check_charset -- Check if the given charset is known to mnogosearch

Description

bool udm_check_charset ( resource agent, string charset)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
udm_cat_path | Subir | udm_check_stored


udm_check_stored

(PHP 4 >= 4.2.0)

udm_check_stored -- Check connection to stored

Description

int udm_check_stored ( resource agent, int link, string doc_id)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
udm_check_charset | Subir | udm_clear_search_limits


udm_clear_search_limits

(PHP 4 >= 4.0.5)

udm_clear_search_limits -- Clear all mnoGoSearch search restrictions

Description

bool udm_clear_search_limits ( resource agent)

udm_clear_search_limits() resets defined search limitations and returns TRUE.

See also udm_add_search_limit().

Anterior | Inicio | Siguiente
udm_check_stored | Subir | udm_close_stored


udm_close_stored

(PHP 4 >= 4.2.0)

udm_close_stored -- Close connection to stored

Description

int udm_close_stored ( resource agent, int link)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
udm_clear_search_limits | Subir | udm_crc32


udm_crc32

(PHP 4 >= 4.2.0)

udm_crc32 -- Return CRC32 checksum of gived string

Description

int udm_crc32 ( resource agent, string str)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
udm_close_stored | Subir | udm_errno


udm_errno

(PHP 4 >= 4.0.5)

udm_errno -- Get mnoGoSearch error number

Description

int udm_errno ( resource agent)

udm_errno() returns mnoGoSearch error number, zero if no error.

agent - link to agent identifier, received after call to udm_alloc_agent().

Receiving numeric agent error code.

Anterior | Inicio | Siguiente
udm_crc32 | Subir | udm_error


udm_error

(PHP 4 >= 4.0.5)

udm_error -- Get mnoGoSearch error message

Description

string udm_error ( resource agent)

udm_error() returns mnoGoSearch error message, empty string if no error.

agent - link to agent identifier, received after call to udm_alloc_agent().

Receiving agent error message.

Anterior | Inicio | Siguiente
udm_errno | Subir | udm_find


udm_find

(PHP 4 >= 4.0.5)

udm_find -- Perform search

Description

resource udm_find ( resource agent, string query)

Returns a result link identifier on success, or FALSE on failure.

The search itself. The first argument - session, the next one - query itself. To find something just type words you want to find and press SUBMIT button. For example, "mysql odbc". You should not use quotes " in query, they are written here only to divide a query from other text. mnoGoSearch will find all documents that contain word "mysql" and/or word "odbc". Best documents having bigger weights will be displayed first. If you use search mode ALL, search will return documents that contain both (or more) words you entered. In case you use mode ANY, the search will return list of documents that contain any of the words you entered. If you want more advanced results you may use query language. You should select "bool" match mode in the search from.

mnoGoSearch understands the following boolean operators:

& - logical AND. For example, "mysql & odbc". mnoGoSearch will find any URLs that contain both "mysql" and "odbc".

| - logical OR. For example "mysql|odbc". mnoGoSearch will find any URLs, that contain word "mysql" or word "odbc".

~ - logical NOT. For example "mysql & ~odbc". mnoGoSearch will find URLs that contain word "mysql" and do not contain word "odbc" at the same time. Note that ~ just excludes given word from results. Query "~odbc" will find nothing!

() - group command to compose more complex queries. For example "(mysql | msql) & ~postgres". Query language is simple and powerful at the same time. Just consider query as usual boolean expression.

Anterior | Inicio | Siguiente
udm_error | Subir | udm_free_agent


udm_free_agent

(PHP 4 >= 4.0.5)

udm_free_agent -- Free mnoGoSearch session

Description

int udm_free_agent ( resource agent)

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

agent - link to agent identifier, received ` after call to udm_alloc_agent().

Freeing up memory allocated for agent session.

Anterior | Inicio | Siguiente
udm_find | Subir | udm_free_ispell_data


udm_free_ispell_data

(PHP 4 >= 4.0.5)

udm_free_ispell_data -- Free memory allocated for ispell data

Description

bool udm_free_ispell_data ( int agent)

udm_free_ispell_data() always returns TRUE.

agent - agent link identifier, received after call to udm_alloc_agent().

Nota: This function is supported beginning from version 3.1.12 of mnoGoSearch and it does not do anything in previous versions.

Anterior | Inicio | Siguiente
udm_free_agent | Subir | udm_free_res


udm_free_res

(PHP 4 >= 4.0.5)

udm_free_res -- Free mnoGoSearch result

Description

bool udm_free_res ( resource res)

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

res - a link to result identifier, received after call to udm_find().

Freeing up memory allocated for results.

Anterior | Inicio | Siguiente
udm_free_ispell_data | Subir | udm_get_doc_count


udm_get_doc_count

(PHP 4 >= 4.0.5)

udm_get_doc_count -- Get total number of documents in database.

Description

int udm_get_doc_count ( resource agent)

udm_get_doc_count() returns the number of documents in the database.

agent - link to agent identifier, received after call to udm_alloc_agent().

Nota: This function is supported only in mnoGoSearch 3.1.11 or later.

Anterior | Inicio | Siguiente
udm_free_res | Subir | udm_get_res_field


udm_get_res_field

(PHP 4 >= 4.0.5)

udm_get_res_field -- Fetch mnoGoSearch result field

Description

string udm_get_res_field ( resource res, int row, int field)

udm_get_res_field() returns result field value on success, FALSE on error.

res - a link to result identifier, received after call to udm_find().

row - the number of the link on the current page. May have values from 0 to UDM_PARAM_NUM_ROWS-1.

field - field identifier, may have the following values:

  • UDM_FIELD_URL - document URL field

  • UDM_FIELD_CONTENT - document Content-type field (for example, text/html).

  • UDM_FIELD_CATEGORY - document category field. Use udm_cat_path() to get full path to current category from the categories tree root. (This parameter is available only in PHP 4.0.6 or later).

  • UDM_FIELD_TITLE - document title field.

  • UDM_FIELD_KEYWORDS - document keywords field (from META KEYWORDS tag).

  • UDM_FIELD_DESC - document description field (from META DESCRIPTION tag).

  • UDM_FIELD_TEXT - document body text (the first couple of lines to give an idea of what the document is about).

  • UDM_FIELD_SIZE - document size.

  • UDM_FIELD_URLID - unique URL ID of the link.

  • UDM_FIELD_RATING - page rating (as calculated by mnoGoSearch).

  • UDM_FIELD_MODIFIED - last-modified field in unixtime format.

  • UDM_FIELD_ORDER - the number of the current document in set of found documents.

  • UDM_FIELD_CRC - document CRC.

Anterior | Inicio | Siguiente
udm_get_doc_count | Subir | udm_get_res_param


udm_get_res_param

(PHP 4 >= 4.0.5)

udm_get_res_param -- Get mnoGoSearch result parameters

Description

string udm_get_res_param ( resource res, int param)

udm_get_res_param() returns result parameter value on success, FALSE on error.

res - a link to result identifier, received after call to udm_find().

param - parameter identifier, may have the following values:

  • UDM_PARAM_NUM_ROWS - number of received found links on the current page. It is equal to UDM_PARAM_PAGE_SIZE for all search pages, on the last page - the rest of links.

  • UDM_PARAM_FOUND - total number of results matching the query.

  • UDM_PARAM_WORDINFO - information on the words found. E.g. search for "a good book" will return "a: stopword, good:5637, book: 120"

  • UDM_PARAM_SEARCHTIME - search time in seconds.

  • UDM_PARAM_FIRST_DOC - the number of the first document displayed on current page.

  • UDM_PARAM_LAST_DOC - the number of the last document displayed on current page.

Anterior | Inicio | Siguiente
udm_get_res_field | Subir | udm_load_ispell_data


udm_load_ispell_data

(PHP 4 >= 4.0.5)

udm_load_ispell_data -- Load ispell data

Description

bool udm_load_ispell_data ( resource agent, int var, string val1, string val2, int flag)

udm_load_ispell_data() loads ispell data. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

agent - agent link identifier, received after call to udm_alloc_agent().

var - parameter, indicating the source for ispell data. May have the following values:

After using this function to free memory allocated for ispell data, please use udm_free_ispell_data(), even if you use UDM_ISPELL_TYPE_SERVER mode.

The fastest mode is UDM_ISPELL_TYPE_SERVER. UDM_ISPELL_TYPE_TEXT is slower and UDM_ISPELL_TYPE_DB is the slowest. The above pattern is TRUE for mnoGoSearch 3.1.10 - 3.1.11. It is planned to speed up DB mode in future versions and it is going to be faster than TEXT mode.

  • UDM_ISPELL_TYPE_DB - indicates that ispell data should be loaded from SQL. In this case, parameters val1 and val2 are ignored and should be left blank. flag should be equal to 1.

    Nota: flag indicates that after loading ispell data from defined source it should be sorted (it is necessary for correct functioning of ispell). In case of loading ispell data from files there may be several calls to udm_load_ispell_data(), and there is no sense to sort data after every call, but only after the last one. Since in db mode all the data is loaded by one call, this parameter should have the value 1. In this mode in case of error, e.g. if ispell tables are absent, the function will return FALSE and code and error message will be accessible through udm_error() and udm_errno().

    Ejemplo 1. udm_load_ispell_data()example

    <?php
if (! udm_load_ispell_data($udm,UDM_ISPELL_TYPE_DB,'','',1)) {
  printf("Error #%d: '%s'\n", udm_errno($udm), udm_error($udm));
  exit;
}
?>

  • UDM_ISPELL_TYPE_AFFIX - indicates that ispell data should be loaded from file and initiates loading affixes file. In this case val1 defines double letter language code for which affixes are loaded, and val2 - file path. Please note, that if a relative path entered, the module looks for the file not in UDM_CONF_DIR, but in relation to current path, i.e. to the path where the script is executed. In case of error in this mode, e.g. if file is absent, the function will return FALSE, and an error message will be displayed. Error message text cannot be accessed through udm_error() and udm_errno(), since those functions can only return messages associated with SQL. Please, see flag parameter description in UDM_ISPELL_TYPE_DB.

    Ejemplo 2. udm_load_ispell_data() example

    <?php
if ((! udm_load_ispell_data($udm,UDM_ISPELL_TYPE_AFFIX,'en','/opt/ispell/en.aff',0)) ||
    (! udm_load_ispell_data($udm,UDM_ISPELL_TYPE_AFFIX,'ru','/opt/ispell/ru.aff',0)) ||
    (! udm_load_ispell_data($udm,UDM_ISPELL_TYPE_SPELL,'en','/opt/ispell/en.dict',0)) ||
    (! udm_load_ispell_data($udm,UDM_ISPELL_TYPE_SPELL,'ru','/opt/ispell/ru.dict',1))) {
    exit;
}
?>

    Nota: flag is equal to 1 only in the last call.

  • UDM_ISPELL_TYPE_SPELL - indicates that ispell data should be loaded from file and initiates loading of ispell dictionary file. In this case val1 defines double letter language code for which affixes are loaded, and val2 - file path. Please note, that if a relative path entered, the module looks for the file not in UDM_CONF_DIR, but in relation to current path, i.e. to the path where the script is executed. In case of error in this mode, e.g. if file is absent, the function will return FALSE, and an error message will be displayed. Error message text cannot be accessed through udm_error() and udm_errno(), since those functions can only return messages associated with SQL. Please, see flag parameter description in UDM_ISPELL_TYPE_DB.

    <?php
     if ((! Udm_Load_Ispell_Data($udm,UDM_ISPELL_TYPE_AFFIX,'en','/opt/ispell/en.aff',0)) ||
        (! Udm_Load_Ispell_Data($udm,UDM_ISPELL_TYPE_AFFIX,'ru','/opt/ispell/ru.aff',0)) ||
        (! Udm_Load_Ispell_Data($udm,UDM_ISPELL_TYPE_SPELL,'en','/opt/ispell/en.dict',0)) ||
        (! Udm_Load_Ispell_Data($udm,UDM_ISPELL_TYPE_SPELL,'ru','/opt/ispell/ru.dict',1))) {
      exit;
      }
?>

    Nota: flag is equal to 1 only in the last call.

  • UDM_ISPELL_TYPE_SERVER - enables spell server support. val1 parameter indicates address of the host running spell server. val2 ` is not used yet, but in future releases it is going to indicate number of port used by spell server. flag parameter in this case is not needed since ispell data is stored on spellserver already sorted.

    Spelld server reads spell-data from a separate configuration file (/usr/local/mnogosearch/etc/spelld.conf by default), sorts it and stores in memory. With clients server communicates in two ways: to indexer all the data is transferred (so that indexer starts faster), from search.cgi server receives word to normalize and then passes over to client (search.cgi) list of normalized word forms. This allows fastest, compared to db and text modes processing of search queries (by omitting loading and sorting all the spell data).

    udm_load_ispell_data() function in UDM_ISPELL_TYPE_SERVER mode does not actually load ispell data, but only defines server address. In fact, server is automatically used by udm_find() function when performing search. In case of errors, e.g. if spellserver is not running or invalid host indicated, there are no messages returned and ispell conversion does not work.

    Nota: This function is available in mnoGoSearch 3.1.12 or later.

    Example:

    <?php
if (!udm_load_ispell_data($udm,UDM_ISPELL_TYPE_SERVER,'','',1)) {
    printf("Error loading ispell data from server<br>\n");
    exit;
}
?>

Anterior | Inicio | Siguiente
udm_get_res_param | Subir | udm_open_stored


udm_open_stored

(PHP 4 >= 4.2.0)

udm_open_stored -- Open connection to stored

Description

int udm_open_stored ( resource agent, string storedaddr)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
udm_load_ispell_data | Subir | udm_set_agent_param


udm_set_agent_param

(PHP 4 >= 4.0.5)

udm_set_agent_param -- Set mnoGoSearch agent session parameters

Description

bool udm_set_agent_param ( resource agent, int var, string val)

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo. Defines mnoGoSearch session parameters.

The following parameters and their values are available:

  • UDM_PARAM_PAGE_NUM - used to choose search results page number (results are returned by pages beginning from 0, with UDM_PARAM_PAGE_SIZE results per page).

  • UDM_PARAM_PAGE_SIZE - number of search results displayed on one page.

  • UDM_PARAM_SEARCH_MODE - search mode. The following values available: UDM_MODE_ALL - search for all words; UDM_MODE_ANY - search for any word; UDM_MODE_PHRASE - phrase search; UDM_MODE_BOOL - boolean search. See udm_find() for details on boolean search.

  • UDM_PARAM_CACHE_MODE - turns on or off search result cache mode. When enabled, the search engine will store search results to disk. In case a similar search is performed later, the engine will take results from the cache for faster performance. Available values: UDM_CACHE_ENABLED, UDM_CACHE_DISABLED.

  • UDM_PARAM_TRACK_MODE - turns on or off trackquery mode. Since version 3.1.2 mnoGoSearch has a query tracking support. Note that tracking is implemented in SQL version only and not available in built-in database. To use tracking, you have to create tables for tracking support. For MySQL, use create/mysql/track.txt. When doing a search, front-end uses those tables to store query words, a number of found documents and current UNIX timestamp in seconds. Available values: UDM_TRACK_ENABLED, UDM_TRACK_DISABLED.

  • UDM_PARAM_PHRASE_MODE - defines whether index database using phrases ("phrase" parameter in indexer.conf). Possible values: UDM_PHRASE_ENABLED and UDM_PHRASE_DISABLED. Please note, that if phrase search is enabled (UDM_PHRASE_ENABLED), it is still possible to do search in any mode (ANY, ALL, BOOL or PHRASE). In 3.1.10 version of mnoGoSearch phrase search is supported only in sql and built-in database modes, while beginning with 3.1.11 phrases are supported in cachemode as well.

    Examples of phrase search:

    "Arizona desert" - This query returns all indexed documents that contain "Arizona desert" as a phrase. Notice that you need to put double quotes around the phrase

  • UDM_PARAM_CHARSET - defines local charset. Available values: set of charsets supported by mnoGoSearch, e.g. koi8-r, cp1251, ...

  • UDM_PARAM_STOPFILE - Defines name and path to stopwords file. (There is a small difference with mnoGoSearch - while in mnoGoSearch if relative path or no path entered, it looks for this file in relation to UDM_CONF_DIR, the module looks for the file in relation to current path, i.e. to the path where the php script is executed.)

  • UDM_PARAM_STOPTABLE - Load stop words from the given SQL table. You may use several StopwordTable commands. This command has no effect when compiled without SQL database support.

  • UDM_PARAM_WEIGHT_FACTOR - represents weight factors for specific document parts. Currently body, title, keywords, description, url are supported. To activate this feature please use degrees of 2 in *Weight commands of the indexer.conf. Let's imagine that we have these weights:

    URLWeight 1
    BodyWeight 2
    TitleWeight 4
    KeywordWeight 8
    DescWeight 16

    As far as indexer uses bit OR operation for word weights when some word presents several time in the same document, it is possible at search time to detect word appearance in different document parts. Word which appears only in the body will have 00000010 argegate weight (in binary notation). Word used in all document parts will have 00011111 aggregate weight.

    This parameter's value is a string of hex digits ABCDE. Each digit is a factor for corresponding bit in word weight. For the given above weights configuration:

    E is a factor for weight 1 (URL Weight bit)
    D is a factor for weight 2 (BodyWeight bit)
    C is a factor for weight 4 (TitleWeight bit)
    B is a factor for weight 8 (KeywordWeight bit)
    A is a factor for weight 16 (DescWeight bit)

    Examples:

    UDM_PARAM_WEIGHT_FACTOR=00001 will search through URLs only.

    UDM_PARAM_WEIGHT_FACTOR=00100 will search through Titles only.

    UDM_PARAM_WEIGHT_FACTOR=11100 will search through Title,Keywords,Description but not through URL and Body.

    UDM_PARAM_WEIGHT_FACTOR=F9421 will search through:

    Description with factor 15 (F hex)
    Keywords with factor 9
    Title with factor 4
    Body with factor 2
    URL with factor 1

    If UDM_PARAM_WEIGHT_FACTOR variable is ommited, original weight value is taken to sort results. For a given above weight configuration it means that document description has a most big weight 16.

  • UDM_PARAM_WORD_MATCH - word match. You may use this parameter to choose word match type. This feature works only in "single" and "multi" modes using SQL based and built-in database. It does not work in cachemode and other modes since they use word CRC and do not support substring search. Available values:

    UDM_MATCH_BEGIN - word beginning match;

    UDM_MATCH_END - word ending match;

    UDM_MATCH_WORD - whole word match;

    UDM_MATCH_SUBSTR - word substring match.

  • UDM_PARAM_MIN_WORD_LEN - defines minimal word length. Any word shorter this limit is considered to be a stopword. Please note that this parameter value is inclusive, i.e. if UDM_PARAM_MIN_WORD_LEN=3, a word 3 characters long will not be considered a stopword, while a word 2 characters long will be. Default value is 1.

  • UDM_PARAM_ISPELL_PREFIXES - Possible values: UDM_PREFIXES_ENABLED and UDM_PREFIXES_DISABLED, that respectively enable or disable using prefixes. E.g. if a word "tested" is in search query, also words like "test", "testing", etc. Only suffixes are supported by default. Prefixes usually change word meanings, for example if somebody is searching for the word "tested" one hardly wants "untested" to be found. Prefixes support may also be found useful for site's spelling checking purposes. In order to enable ispell, you have to load ispell data with udm_load_ispell_data().

  • UDM_PARAM_CROSS_WORDS - enables or disables crosswords support. Possible values: UDM_CROSS_WORDS_ENABLED and UDM_CROSS_WORDS_DISABLED.

    The corsswords feature allows to assign words between <a href="xxx"> and </a> also to a document this link leads to. It works in SQL database mode and is not supported in built-in database and Cachemode.

    Nota: Crosswords are supported only in mnoGoSearch 3.1.11 or later.

  • UDM_PARAM_VARDIR - specifies a custom path to directory where indexer stores data when using built-in database and in cache mode. By default /var directory of mnoGoSearch installation is used. Can have only string values. The parameter is available in PHP 4.1.0 or later.

Anterior | Inicio | Siguiente
udm_open_stored | Subir | funciones mSQL


funciones mSQL

Manual de PHP
Anterior Siguiente

LXII. funciones mSQL

Tabla de contenidos
msql_affected_rows -- devuelve el número de filas involucradas
msql_close -- cierra una conexión mSQL
msql_connect -- abre una conexión mSQL
msql_create_db -- crea una base de datos mSQL
msql_createdb -- crea una base de datos mSQL
msql_data_seek -- desplaza el puntero interno de fila
msql_dbname -- obtiene el nombre de la base de datos mSQL actual
msql_drop_db -- elimina (suprime) una base de datos mSQL
msql_dropdb -- elimina (suprime) una base de datos mSQL
msql_error -- devuelve el mensaje de error de la última llamada msql
msql_fetch_array -- recupera una fila como un array
msql_fetch_field -- obtiene información de campo
msql_fetch_object -- recupera una fila como un objeto
msql_fetch_row -- obtiene una fila como un array enumerado
msql_field_seek -- establece el desplazamiento del campo
msql_fieldflags -- obtiene los flags del campo
msql_fieldlen -- obtiene la longitud del campo
msql_fieldname -- obtiene el nombre del campo
msql_fieldtable -- obtiene el nombre de la tabla de un campo
msql_fieldtype -- obtiene el tipo del campo
msql_free_result -- libera la memoria del resultado
msql_freeresult -- libera la memoria del resultado
msql_list_dbs -- lista las bases de datos mSQL en el servidor
msql_list_fields -- lista los campos del resultado
msql_list_tables -- lista las tablas de una base de datos mSQL
msql_listdbs -- lista las bases de datos mSQL en el servidor
msql_listfields -- lista los campos del resultado
msql_listtables -- lista las tablas de una base de datos mSQL
msql_num_fields -- obtiene el número de campos de un resultado
msql_num_rows -- obtiene el número de filas de un resultado
msql_numfields -- obtiene el número de campos de un resultado
msql_numrows -- obtiene el número de filas en el resultado
msql_pconnect -- abre una conexión mSQL persistente
msql_query -- envía una consulta mSQL
msql_regcase -- construye una expresión regular para una búsqueda que no distinga mayúsculas/minúsculas
msql_result -- obtiene datos resultado
msql_select_db -- selecciona una base de datos mSQL
msql_selectdb -- selecciona una base de datos mSQL
msql_tablename -- obtiene el nombre de la tabla de un campo
msql -- ejecuta una consulta mSQL

Anterior | Inicio | Siguiente
udm_set_agent_param | Subir | msql_affected_rows


msql_affected_rows

(PHP 3>= 3.0.6, PHP 4 )

msql_affected_rows -- devuelve el número de filas involucradas

Descripción

int msql_affected_rows ( int query_identifier)

Devuelve el número de filas involucradas ("tocadas") por una consulta específica (i.e. el número de filas devueltas por una SELECT, el número de filas modificadas por una actualización (update), o el número de filas suprimidas por una eliminación (delete)).

Véase también: msql_query()

Anterior | Inicio | Siguiente
funciones mSQL | Subir | msql_close


msql_close

(PHP 3, PHP 4 )

msql_close -- cierra una conexión mSQL

Descripción

int msql_close ( int link_identifier)

Devuelve TRUE si tiene éxito, FALSE en caso de error.

msql_close() cierra la conexión con una base de datos mSQL que está asociada con el identificador de conexión (link identifier) especificado. Si no se especifica el identificador de conexión, se asume la última conexión abierta.

Advierta que ésto no es necesario habitualmente, las conexiones abiertas no-persistentes son cerradas automáticamente a la conclusión de la ejecución del script.

msql_close() no cerrará las conexiones permanentes creadas por msql_pconnect().

Véase también: msql_connect() y msql_pconnect().

Anterior | Inicio | Siguiente
msql_affected_rows | Subir | msql_connect


msql_connect

(PHP 3, PHP 4 )

msql_connect -- abre una conexión mSQL

Descripción

int msql_connect ( string hostname)

Devuelve un identificador de conexión mSQL positivo si tiene éxito, o FALSE en caso de error.

msql_connect() establece una conexión con un servidor mSQL. El argumento hostname es opcional, y en caso de que falte, se asume localhost.

En caso de que se haga una segunda llamada a msql_connect() con los mismos argumentos, no se establece una nueva conexión, en lugar de eso, se devuelve el identificador de conexión ya abierto.

La conexión con el servidor se cerrará tan pronto como la ejecución del script finalice, a menos que sea cerrada antes explícitamente por una llamada a msql_close().

Véase también: msql_pconnect(), msql_close().

Anterior | Inicio | Siguiente
msql_close | Subir | msql_create_db


msql_create_db

(PHP 3, PHP 4 )

msql_create_db -- crea una base de datos mSQL

Descripción

int msql_create_db ( string database name [, int link_identifier])

msql_create_db() intenta crear una base de datos nueva en el servidor asociado con el identificador de conexión (link identifier) especificado.

Véase también: msql_drop_db().

Anterior | Inicio | Siguiente
msql_connect | Subir | msql_createdb


msql_createdb

(PHP 3, PHP 4 )

msql_createdb -- crea una base de datos mSQL

Descripción

int msql_createdb ( string database name [, int link_identifier])

Idéntica a msql_create_db().

Anterior | Inicio | Siguiente
msql_create_db | Subir | msql_data_seek


msql_data_seek

(PHP 3, PHP 4 )

msql_data_seek -- desplaza el puntero interno de fila

Descripción

int msql_data_seek ( int query_identifier, int row_number)

Devuelve TRUE si tiene éxito, FALSE en caso de fallo.

msql_data_seek() desplaza el puntero interno de fila del resultado mSQL asociado con el identificador de consulta (query identifier) especificado para que apunte al número de fila (row number) proporcionado. La llamada posterior a msql_fetch_row() devolverá esa fila.

Véase también: msql_fetch_row().

Anterior | Inicio | Siguiente
msql_createdb | Subir | msql_dbname


msql_dbname

(PHP 3, PHP 4 )

msql_dbname -- obtiene el nombre de la base de datos mSQL actual

Descripción

string msql_dbname ( int query_identifier, int i)

msql_dbname() devuelve el nombre de base de datos almacenado en la posición i del puntero devuelto desde la función msql_listdbs(). La función msql_numrows() puede utilizarse para determinar cuantos nombres de base de datos hay disponibles.

Anterior | Inicio | Siguiente
msql_data_seek | Subir | msql_drop_db


msql_drop_db

(PHP 3, PHP 4 )

msql_drop_db -- elimina (suprime) una base de datos mSQL

Descripción

int msql_drop_db ( string database_name, int link_identifier)

Devuelve TRUE si tiene éxito, FALSE en caso de fallo.

msql_drop_db() intenta eliminar (suprimir) una base de datos completa del servidor asociado con el identificador de conexión (link identifier) especificado.

Véase también: msql_create_db().

Anterior | Inicio | Siguiente
msql_dbname | Subir | msql_dropdb


msql_dropdb

msql_dropdb -- elimina (suprime) una base de datos mSQL

Descripción

Véase msql_drop_db().

Anterior | Inicio | Siguiente
msql_drop_db | Subir | msql_error


msql_error

(PHP 3, PHP 4 )

msql_error -- devuelve el mensaje de error de la última llamada msql

Descripción

string msql_error ( )

Los errores que devuelve el servidor de base de datos mSQL no dan mucha información sobre el problema. Por este motivo, utilice estas funciones para recuperar la cadena de carácteres del error.

Anterior | Inicio | Siguiente
msql_dropdb | Subir | msql_fetch_array


msql_fetch_array

(PHP 3, PHP 4 )

msql_fetch_array -- recupera una fila como un array

Descripción

int msql_fetch_array ( int query_identifier [, int result_type])

Devuelve un array que se corresponde con la fila recuperada, o FALSE si no hay más filas.

msql_fetch_array() es una versión ampliada de msql_fetch_row(). Además de almacenar los datos en los índices numéricos del array resultado, también almacena los datos en índices asociativos, utilizando los nombres de los campos como claves.

El segundo argumento opcional result_type en msql_fetch_array() es una constante y puede tomar los valores siguientes: MSQL_ASSOC, MSQL_NUM, y MYSQL_BOTH.

Sea precavido si está recuperando resultados de una consulta que puede devolver un registro que contiene un único campo que tiene un valor de 0 (o una cadena de carácteres vacía, o NULL).

Un aspecto importante a tener en cuenta es que el uso de msql_fetch_array() NO es significativamente más lento que el uso de msql_fetch_row(), mientras que proporciona un valor añadido significativo.

Para detalles adicionales, véase también msql_fetch_row()

Anterior | Inicio | Siguiente
msql_error | Subir | msql_fetch_field


msql_fetch_field

(PHP 3, PHP 4 )

msql_fetch_field -- obtiene información de campo

Descripción

object msql_fetch_field ( int query_identifier, int field_offset)

Devuelve un objeto que contiene la información del campo

msql_fetch_field() puede utilizarse para obtener información sobre campos del resultado de una consulta. Si no se especifica el desplazamiento del campo, se recupera el campo siguiente que no haya sido aún recuperado por msql_fetch_field().

Las propiedades del objeto son:

  • name - nombre de la columna

  • table - nombre de la tabla a la que pertenece la columna

  • not_null - 1 si la columna no puede ser nula

  • primary_key - 1 si la columna es una clave primaria

  • unique - 1 si la columna es una clave única

  • type - tipo de la columna

Véase también msql_field_seek().

Anterior | Inicio | Siguiente
msql_fetch_array | Subir | msql_fetch_object


msql_fetch_object

(PHP 3, PHP 4 )

msql_fetch_object -- recupera una fila como un objeto

Descripción

int msql_fetch_object ( int query_identifier [, int result_type])

Devuelve un objeto con las propiedades que corresponden a la fila recuperada, o FALSE si no hay más filas.

msql_fetch_object() es similar a msql_fetch_array(), con una diferencia - se devuelve un objeto en vez de un array. Indirectamente esto significa que sólo tiene acceso a los datos por los nombres de los campos, y no por sus desplazamientos (los números son nombres de propiedad no válidos).

El segundo parámetro opcional result_type en msql_fetch_array() es una constante y puede tomar los valores siguientes: MSQL_ASSOC, MSQL_NUM, y MSQL_BOTH.

Resumiendo, la función es indéntica a msql_fetch_array(), y casi tan rápida como msql_fetch_row() (la diferencia es insignificante).

Véase también: msql_fetch_array() y msql_fetch_row().

Anterior | Inicio | Siguiente
msql_fetch_field | Subir | msql_fetch_row


msql_fetch_row

(PHP 3, PHP 4 )

msql_fetch_row -- obtiene una fila como un array enumerado

Descripción

array msql_fetch_row ( int query_identifier)

Devuelve un array que se corresponde con la fila recuperada, o FALSE si no hay más filas.

msql_fetch_row() recupera una fila de datos del resultado asociado con el identificador de consulta (query identifier) especificado. La fila se devuelve en un array. Cada columna devuelta se almacena en un desplazamiento del array, comenzando en el desplazamiento 0.

Una llamada posterior a msql_fetch_row() devería devolver la fila siguiente del conjunto resultado, o FALSE si no hay más filas.

Véase también:
    msql_fetch_array(),
    msql_fetch_object(),
    msql_data_seek(), y
    msql_result().

Anterior | Inicio | Siguiente
msql_fetch_object | Subir | msql_field_seek


msql_field_seek

(PHP 3, PHP 4 )

msql_field_seek -- establece el desplazamiento del campo

Descripción

int msql_field_seek ( int query_identifier, int field_offset)

Se posiciona en el desplazamiento de campo (field offset) especificado. Si la siguiente llamada a msql_fetch_field() no incluye un desplazamiento de campo, este campo será el que se devuelva.

Véase también: msql_fetch_field().

Anterior | Inicio | Siguiente
msql_fetch_row | Subir | msql_fieldflags


msql_fieldflags

(PHP 3, PHP 4 )

msql_fieldflags -- obtiene los flags del campo

Descripción

string msql_fieldflags ( int query_identifier, int i)

msql_fieldflags() obtiene los flags del campo (field) especificado. Actualmente pueden ser, "not NULL", "primary key", una combinación de ambos, o "" (cadena vacía).

Anterior | Inicio | Siguiente
msql_field_seek | Subir | msql_fieldlen


msql_fieldlen

(PHP 3, PHP 4 )

msql_fieldlen -- obtiene la longitud del campo

Descripción

int msql_fieldlen ( int query_identifier, int i)

msql_fieldlen() devuelve la longitud del campo especificado.

Anterior | Inicio | Siguiente
msql_fieldflags | Subir | msql_fieldname


msql_fieldname

(PHP 3, PHP 4 )

msql_fieldname -- obtiene el nombre del campo

Descripción

string msql_fieldname ( int query_identifier, int field)

msql_fieldname() devuelve el nombre del campo especificado. query_identifier es el identificador de consulta, y field es el índice del campo. msql_fieldname($result, 2); devolverá el nombre del segundo campo del resultado asociado con el identificador result.

Anterior | Inicio | Siguiente
msql_fieldlen | Subir | msql_fieldtable


msql_fieldtable

(PHP 3, PHP 4 )

msql_fieldtable -- obtiene el nombre de la tabla de un campo

Descripción

int msql_fieldtable ( int query_identifier, int field)

Devuelve el nombre de la tabla desde la que se ha recuperado el campo (field)

Anterior | Inicio | Siguiente
msql_fieldname | Subir | msql_fieldtype


msql_fieldtype

(PHP 3, PHP 4 )

msql_fieldtype -- obtiene el tipo del campo

Descripción

string msql_fieldtype ( int query_identifier, int i)

msql_fieldtype() es similar a la función msql_fieldname(). Los argumentos son idénticos, pero se devuelve el tipo del campo. Este será "int", "char" o "real".

Anterior | Inicio | Siguiente
msql_fieldtable | Subir | msql_free_result


msql_free_result

(PHP 3, PHP 4 )

msql_free_result -- libera la memoria del resultado

Descripción

int msql_free_result ( int query_identifier)

msql_free_result() libera la memoria asociada con query_identifier. Cuando PHP completa una petición, esta memoria es liberada automáticamente, por este motivo solo es necesario llamar a esta función cuando se desea estar seguro de que no se utiliza demasiada memoria mientras se está ejecutando el script.

Anterior | Inicio | Siguiente
msql_fieldtype | Subir | msql_freeresult


msql_freeresult

msql_freeresult -- libera la memoria del resultado

Descripción

Véase msql_free_result()

Anterior | Inicio | Siguiente
msql_free_result | Subir | msql_list_dbs


msql_list_dbs

(PHP 3, PHP 4 )

msql_list_dbs -- lista las bases de datos mSQL en el servidor

Descripción

int msql_list_dbs ( void )

msql_list_dbs() devolverá un puntero al resultado que contiene las bases de datos disponibles desde el daemon msql en uso. Utilice la función msql_dbname() para recorrer este puntero.

Anterior | Inicio | Siguiente
msql_freeresult | Subir | msql_list_fields


msql_list_fields

(PHP 3, PHP 4 )

msql_list_fields -- lista los campos del resultado

Descripción

int msql_list_fields ( string database, string tablename)

msql_list_fields() recupera información sobre el nombre de tabla (tablename) dado. Los argumentos son el nombre de la base de datos (database name) y el nombre de la tabla (table name). Se devuelve un puntero al resultado que puede utilizarse con msql_fieldflags(), msql_fieldlen(), msql_fieldname(), y msql_fieldtype(). Un indetificador de consulta (query identifier) es un entero positivo. La función devuelve -1 si ocurre un error. En $phperrmsg se almacena una cadena de carácteres describiendo el error, y a menos que la función sea llamada como @msql_list_fields() esta cadena de error puede ser impresa.

Véase también msql_error().

Anterior | Inicio | Siguiente
msql_list_dbs | Subir | msql_list_tables


msql_list_tables

(PHP 3, PHP 4 )

msql_list_tables -- lista las tablas de una base de datos mSQL

Descripción

int msql_list_tables ( string database)

msql_list_tables() toma un nombre de base de datos y devuelve un puntero similar al de la función msql() La función msql_tablename() debería utilizarse para obtener los nombres reales de las tablas del puntero devuelto.

Anterior | Inicio | Siguiente
msql_list_fields | Subir | msql_listdbs


msql_listdbs

msql_listdbs -- lista las bases de datos mSQL en el servidor

Descripción

Véase msql_list_dbs().

Anterior | Inicio | Siguiente
msql_list_tables | Subir | msql_listfields


msql_listfields

msql_listfields -- lista los campos del resultado

Descripción

Véase msql_list_fields().

Anterior | Inicio | Siguiente
msql_listdbs | Subir | msql_listtables


msql_listtables

msql_listtables -- lista las tablas de una base de datos mSQL

Descripción

Véase msql_list_tables().

Anterior | Inicio | Siguiente
msql_listfields | Subir | msql_num_fields


msql_num_fields

(PHP 3, PHP 4 )

msql_num_fields -- obtiene el número de campos de un resultado

Descripción

int msql_num_fields ( int query_identifier)

msql_num_fields() devuelve el número de campos de un conjunto resultado.

Véase también:
msql(),
msql_query(),
msql_fetch_field(), y
msql_num_rows().

Anterior | Inicio | Siguiente
msql_listtables | Subir | msql_num_rows


msql_num_rows

(PHP 3, PHP 4 )

msql_num_rows -- obtiene el número de filas de un resultado

Descripción

int msql_num_rows ( int query_identifier)

msql_num_rows() devuelve el número de filas de un conjunto resultado.

Véase también:
msql(),
msql_query(), y
msql_fetch_row().

Anterior | Inicio | Siguiente
msql_num_fields | Subir | msql_numfields


msql_numfields

(PHP 3, PHP 4 )

msql_numfields -- obtiene el número de campos de un resultado

Descripción

int msql_numfields ( int query_identifier)

Idéntica a msql_num_fields().

Anterior | Inicio | Siguiente
msql_num_rows | Subir | msql_numrows


msql_numrows

(PHP 3, PHP 4 )

msql_numrows -- obtiene el número de filas en el resultado

Descripción

int msql_numrows ( void )

Idéntica a msql_num_rows().

Anterior | Inicio | Siguiente
msql_numfields | Subir | msql_pconnect


msql_pconnect

(PHP 3, PHP 4 )

msql_pconnect -- abre una conexión mSQL persistente

Descripción

int msql_pconnect ( string hostname)

En caso de éxito devuelve un identificador de conexión mSQL persistente positivo, o FALSE en caso de error.

msql_pconnect() se comporta de forma similar a msql_connect() con dos diferencias importantes.

Primero, cuando se conecta, la función debe intentar primero localizar una conexión (persistente) que ya esté abierta en el mismo host. Si se encuentra uno, se devuelve un identificador para el mismo en vez de abrir una conexión nueva.

Segundo, la conexión con el servidor SQL no se cerrará cuando la ejecución del script finalice. Al contrario, la conexión permanecerá abierta para un uso futuro (msql_close() no cerrará las conexiones abiertas por msql_pconnect()).

Este tipo de conexiones son por ello denominadas 'persistentes'.

Anterior | Inicio | Siguiente
msql_numrows | Subir | msql_query


msql_query

(PHP 3, PHP 4 )

msql_query -- envía una consulta mSQL

Descripción

int msql_query ( string query, int link_identifier)

msql_query() envía una consulta a la base de datos activa actual en el servidor que está asociada con el identificador de conexión (link identifier) especificado. Si no se especifica el identificador de conexión, se asume la última conexión abierta. Si no hay ninguna conexión abierta, la función intenta establecer una conexión como si se hubiera llamado a msql_connect(), y la utiliza.

En caso de éxito devuelve un identificador de consulta mSQL positivo, o FALSE en caso de error.

Véase también:
msql(),
msql_select_db(), y
msql_connect().

Anterior | Inicio | Siguiente
msql_pconnect | Subir | msql_regcase


msql_regcase

msql_regcase -- construye una expresión regular para una búsqueda que no distinga mayúsculas/minúsculas

Descripción

Véase sql_regcase().

Anterior | Inicio | Siguiente
msql_query | Subir | msql_result


msql_result

(PHP 3, PHP 4 )

msql_result -- obtiene datos resultado

Descripción

int msql_result ( int query_identifier, int i, mixed field)

Devuelve el contenido de la celda en la fila y desplazamiento del conjunto resultado mSQL especificado.

msql_result() devuelve el contenido de una celda de un conjunto resultado mSQL. El argumento campo (field) puede ser el desplazamiento del campo, el nombre del campo, o el nombre de la tabla punto nombre del campo (nombretabla.nombrecampo). Si el nombre de la columna tiene un alias ('select foo as bar from...'), utilice el alias en vez del nombre de la columna.

Cuando se trabaja con conjuntos de resultados grandes, debería considerar el uso de las funciones que recuperen filas completas (especificadas más abajo). Como estas funciones recuperan el contenido de varias celdas en una única llamada de función, son MUCHO más rápidas que msql_result(). Advierta también que especificar un desplazamiento numérico para el argumento campo (field) es mucho más rápido que especificar un argumento nombrecampo o nombretabla.nombrecampo.

Alternativas de alto-rendimiento recomendadas:
msql_fetch_row(),
msql_fetch_array(), y
msql_fetch_object().

Anterior | Inicio | Siguiente
msql_regcase | Subir | msql_select_db


msql_select_db

(PHP 3, PHP 4 )

msql_select_db -- selecciona una base de datos mSQL

Descripción

int msql_select_db ( string database_name, int link_identifier)

Devuelve TRUE si tiene éxito, FALSE en caso contrario.

msql_select_db() establece la base de datos activa actual en el servidor que está asociada con el identificador de conexión (link identifier) suministrado. Si no se especifica el identificador de conexión, se asumne la última conexión abierta. Si no hay ninguna conexión abierta la función intentará establecer una conexión como si se hubiera llamado a sql_connect(), y la utiliza.

Cada llamada posterior a msql_query() se hará en la base de datos activa.

Véase también:
msql_connect(),
msql_pconnect(), y
msql_query().

Anterior | Inicio | Siguiente
msql_result | Subir | msql_selectdb


msql_selectdb

msql_selectdb -- selecciona una base de datos mSQL

Descripción

Véase msql_select_db().

Anterior | Inicio | Siguiente
msql_select_db | Subir | msql_tablename


msql_tablename

(PHP 3, PHP 4 )

msql_tablename -- obtiene el nombre de la tabla de un campo

Descripción

string msql_tablename ( int query_identifier, int field)

msql_tablename() toma un puntero resultado devuelto por la función msql_list_tables() como un índice entero y devuelve el nombre de una tabla. La función msql_numrows() puede utilizarse para determinar el número de tablas del puntero resultado.

Ejemplo 1. msql_tablename() example

<?php
msql_connect ("localhost");
$result = msql_list_tables("wisconsin");
$i = 0;
while ($i < msql_numrows($result)) {
    $tb_names[$i] = msql_tablename($result, $i);
    echo $tb_names[$i] . "<BR>";
    $i++;
}
?>

Anterior | Inicio | Siguiente
msql_selectdb | Subir | msql


msql

(PHP 3, PHP 4 )

msql -- ejecuta una consulta mSQL

Descripción

int msql ( string database, string query, int link_identifier)

Devuelve un identificador de consulta mSQL positivo en el resultado de la consulta, o FALSE en caso de error.

msql() selecciona una base de datos y ejecuta una consulta en ella. Si no se especifica el identificador de conexión (link identifier), la función intentará encontrar una conexión abierta en el servidor mSQL y en el caso de que no se encontrase intentará crear uno como si se llamase a msql_connect() sin parámetros (véase msql_connect()).

Anterior | Inicio | Siguiente
msql_tablename | Subir | Funciones MySQL


Funciones MySQL

Manual de PHP
Anterior Siguiente

LXIII. Funciones MySQL

Estas funciones le permiten acceder a servidores de bases de datos MySQL.

Puede encontrar más información sobre MySQL en http://www.mysql.com/.

Tabla de contenidos
mysql_affected_rows -- Devuelve el número de filas afectadas de la última operación MySQL
mysql_change_user -- Cambia el usuario conectado en la conexión activa
mysql_client_encoding -- Devuelve el nombre del juego de caracteres
mysql_close -- cierra el enlace con MySQL
mysql_connect -- Abre una conexión a un servidor MySQL
mysql_create_db -- Crea una base MySQL
mysql_data_seek -- Mueve el puntero interno
mysql_db_name -- Obtener datos de resultado
mysql_db_query -- Envia una sentencia MySQL al servidor
mysql_drop_db -- Borra una base de datos MySQL
mysql_errno -- Deuelve el número del mensaje de error de la última operación MySQL
mysql_error -- Devuelve el texto del mensaje de error de la última operación MySQL
mysql_escape_string -- Escapa una cadena para su uso en mysql_query.
mysql_fetch_array -- Extrae la fila de resultado como una matriz asociativa
mysql_fetch_assoc -- Recupera una fila de resultado como una matriz asociativa
mysql_fetch_field -- Extrae la información de una columna y la devuelve como un objeto.
mysql_fetch_lengths -- Devuelve la longitud de cada salida en un resultado
mysql_fetch_object -- Extrae una fila de resultado como un objeto
mysql_fetch_row -- Devuelve una fila de resultado como matriz
mysql_field_flags -- Devuelve los flags asociados con el campo especificado en un resultado
mysql_field_len -- Devuelve la longitud del campo especificado
mysql_field_name -- Devuelve el nombre del campo especificado en un resultado
mysql_field_seek -- Asigna el puntero del resultado al offset del campo especificado
mysql_field_table -- Devuelve el nombre de la tabla donde esta el campo especificado
mysql_field_type -- Devuelve el tipo del campo especificado en un resultado
mysql_free_result -- Libera la memoria del resultado
mysql_get_client_info -- Obtener información del cliente MySQL
mysql_get_host_info -- Obtener información de la máquina anfitriona MySQL
mysql_get_proto_info -- Obtener información del protocolo MySQL
mysql_get_server_info -- Obtener información del servidor MySQL
mysql_info -- Obtiene información sobre la consulta más reciente
mysql_insert_id -- Devuelve el identificador generado en la última llamada a INSERT
mysql_list_dbs -- Lista las bases de datos disponibles en el servidor MySQL
mysql_list_fields -- Lista los campos del resultado de MySQL
mysql_list_processes -- Lista los procesos MySQL
mysql_list_tables -- Lista las tablas en una base de datos MySQL
mysql_num_fields -- devuelve el numero de campos de un resultado
mysql_num_rows -- Devuelve el numero de filas de un resultado
mysql_pconnect -- Abre una conexión persistente al servidor MySQL
mysql_ping -- Efectuar un chequeo de respuesta (ping) sobre una conexión de servidor o reconectarse si no hay conexión
mysql_query -- Envia una sentencia SQL a MySQL
mysql_real_escape_string -- Escapa caracteres especiales de una cadena para su uso en una sentencia SQL, tomando en cuanto el juego de caracteres actual de la conexión.
mysql_result -- Devuelve datos de un resultado
mysql_select_db -- Selecciona un base de datos MySQL
mysql_stat -- Obtener el status actual del sistema
mysql_tablename -- Devuelve el nombre de la tabla de un campo
mysql_thread_id -- Devuelve el ID del hilo actual
mysql_unbuffered_query -- Envía una consulta SQL a MySQL, sin recuperar ni colocar en búfer las filas de resultado

Anterior | Inicio | Siguiente
msql | Subir | mysql_affected_rows


mysql_affected_rows

(PHP 3, PHP 4 )

mysql_affected_rows -- Devuelve el número de filas afectadas de la última operación MySQL

Descripción

int mysql_affected_rows ( [int identificador_de_enlace])

mysql_affected_rows() devuelve el número de filas afectadas en la ultima sentencia INSERT, UPDATE o DELETE sobre el servidor asociado con el identificador de enlace especificado. Si el identificador de enlace no ha sido especificado, se asume por defecto el último enlace.

Si la última sentencia fue un DELETE sin clausula WHERE, todos los registros han sido borrados de la tabla pero esta función devolvera cero.

Este comando no es efectivo para las sentencias SELECT, sino sólo para las sentencias que modifican registros. Para conseguir el número de lineas devueltos por un SELECT, usar mysql_num_rows().

Anterior | Inicio | Siguiente
Funciones MySQL | Subir | mysql_change_user


mysql_change_user

(PHP 3>= 3.0.13)

mysql_change_user -- Cambia el usuario conectado en la conexión activa

Descripción

int mysql_change_user ( string usuario, string password [, string base_de_datos [, int identificador_de_enlace]])

mysql_change_user() cambia el usuario conectado en la actual conexión activa, o si se especifica, en la conexión determinada por el identificador de enlace. Si se especifica la base de datos, esta será la base por defecto después del cambio de usuario. Si la nueva combinación de usuario/ password no esta autorizada, el usuario actualmente conectado permanece activo.

Nota: Esta función fue introducida en PHP 3.0.13 y requiere MySQL 3.23.3 o superior.

Anterior | Inicio | Siguiente
mysql_affected_rows | Subir | mysql_client_encoding


mysql_client_encoding

(PHP 4 >= 4.3.0)

mysql_client_encoding -- Devuelve el nombre del juego de caracteres

Descripción

string mysql_client_encoding ( [resource id_enlace])

mysql_client_encoding() devuelve el nombre del juego de caracteres predeterminado para la conexión actual.

Ejemplo 1. Ejemplo de mysql_client_encoding()

<?php
$enlace = mysql_connect('localhost', 'mysql_user', 'mysql_password');

$juego_cars = mysql_client_encoding($enlace);
printf ("el juego de caracteres actual es %s\n", $juego_cars);
?>

El ejemplo anterior produciría la suguiente salida:

el juego de caracteres actual es latin1

Vea también mysql_real_escape_string()

Anterior | Inicio | Siguiente
mysql_change_user | Subir | mysql_close


mysql_close

(PHP 3, PHP 4 )

mysql_close -- cierra el enlace con MySQL

Descripción

int mysql_close ( [int identificador_de_enlace])

Devuelve: verdadero si exito, falso si error.

mysql_close() cierra el enlace con la base MySQL que esta asociada con el identificador de enlace especificado. Si no se especifica el identificador de enlace, se asume por defecto el último enlace.

Nota: Normalmente no es necesario ya que la aperturas no-persistentes son cerradas automaticamente al final de la ejecución del script.

mysql_close() no cerrará los enlaces persistentes generados con mysql_pconnect().

Ejemplo 1. Ejemplo de MySQL close

<?php
    $link = mysql_connect ("kraemer", "marliesle", "secret") {
        or die ("Could not connect");
    }
    print ("Connected successfully");
    mysql_close ($link);
?>

Ver también: mysql_connect(), y mysql_pconnect().

Anterior | Inicio | Siguiente
mysql_client_encoding | Subir | mysql_connect


mysql_connect

(PHP 3, PHP 4 )

mysql_connect -- Abre una conexión a un servidor MySQL

Descripción

int mysql_connect ( [string server [, string usuario [, string password]]])

Devuelve: Un identificador de enlace positivo si tiene exito, o falso si error.

mysql_connect()establece una conexión a un servidor MySQL. Todos los argumentos son opcionales, y si no hay , se asumen los valores por defecto ('localhost', usuario propietario del proceso del servidor, password vacia).

El hostname puede incluir tambien un número de puerto . ej. "hostname:puerto" o un camino al socket ej. ":/camino/al/socket" para localhost.

Nota: Soporte para ":puerto" fue añadido en PHP 3.0B4.

Soporte para ":/camino/al/socket" fue añadido en PHP 3.0.10.

En el caso de que se haga una llamada a mysql_connect() con los mismos argumentos, no se establecerá un nuevo enlace, sino que se devolverá el enlace ya abierto.

El enlace al servidor sera cerrado tan pronto como la ejecución del script finalice, a menos que se cierre antes explicitamente llamando a mysql_close().

Ejemplo 1. Ejemplo de MySQL connect

<?php
    $link = mysql_connect ("kraemer", "marliesle", "secret") {
        or die ("Could not connect");
    }
    print ("Connected successfully");
    mysql_close ($link);
?>

Ver también : mysql_pconnect(), y mysql_close().

Anterior | Inicio | Siguiente
mysql_close | Subir | mysql_create_db


mysql_create_db

(PHP 3, PHP 4 )

mysql_create_db -- Crea una base MySQL

Descripción

int mysql_create_db ( string base_de_datos [, int identificador_de_enlace])

mysql_create_db() intenta crear una base nueva en el servidor asociado al identificador de enlace.

Ejemplo 1. Ejemplo de MySQL create

<?php
    $link = mysql_pconnect ("kron", "jutta", "geheim") {
        or die ("Could not connect");
    }
    if (mysql_create_db ("my_db")) {
        print ("Database created successfully\n");
    } else {
        printf ("Error creating database: %s\n", mysql_error ());
    }
?>

Por razones de compatibilidad puede usarse mysql_createdb() igualmente.

Ver también: mysql_drop_db().

Anterior | Inicio | Siguiente
mysql_connect | Subir | mysql_data_seek


mysql_data_seek

(PHP 3, PHP 4 )

mysql_data_seek -- Mueve el puntero interno

Descripción

int mysql_data_seek ( int id_resultado, int numero_de_fila)

Devuelve: verdadero si exito, falso si error.

mysql_data_seek() mueve el puntero de fila interno a la fila especificada para el identificador de resultado. La próxima llamada a mysql_fetch_row() devolverá esa fila.

numero_de_fila empieza en 0.

Ejemplo 1. Ejemplo de MySQL data seek

<?php
    $link = mysql_pconnect ("kron", "jutta", "geheim") {
        or die ("Could not connect");
    }

    mysql_select_db ("samp_db") {
        or die ("Could not select database");
    }

    $query = "SELECT last_name, first_name FROM friends";
    $result = mysql_query ($query) {
        or die ("Query failed");
    }

    # fetch rows in reverse order

    for ($i = mysql_num_rows ($result) - 1; $i >=0; $i--) {
        if (!mysql_data_seek ($result, $i)) {
            printf ("Cannot seek to row %d\n", $i);
            continue;
        }

        if(!($row = mysql_fetch_object ($result)))
            continue;

        printf ("%s %s<BR>\n", $row->last_name, $row->first_name);
    }

    mysql_free_result ($result);
?>

Anterior | Inicio | Siguiente
mysql_create_db | Subir | mysql_db_name


mysql_db_name

(PHP 3>= 3.0.6, PHP 4 )

mysql_db_name -- Obtener datos de resultado

Descripción

string mysql_db_name ( resource resultado, int fila [, mixed campo])

mysql_db_name() toma como primer argumento un apuntador al resultado de una llamada a mysql_list_dbs(). El parámetro fila es un índice dentro del conjunto de resultados.

Si ocurre algún error, se devuelve FALSE. Use mysql_errno() y mysql_error() para determinar la naturaleza del error.

Ejemplo 1. Ejemplo de mysql_db_name()

<?php
    error_reporting(E_ALL);

    mysql_connect('dbhost', 'username', 'password');
    $lista_db = mysql_list_dbs();

    $i = 0;
    $cnt = mysql_num_rows($lista_db);
    while ($i < $cnt) {
        echo mysql_db_name($lista_db, $i) . "\n";
        $i++;
    }
?>

Para efectos de compatibilidad con versiones anteriores, mysql_dbname() también puede ser usada. Sin embargo, esta función se ha hecho obsoleta.

Anterior | Inicio | Siguiente
mysql_data_seek | Subir | mysql_db_query


mysql_db_query

(PHP 3, PHP 4 )

mysql_db_query -- Envia una sentencia MySQL al servidor

Descripción

int mysql_db_query ( string base_de_datos, string sentencia [, int identificador_de_enlace])

Devuelve: Un identificador de resultado positivo o falso si error.

mysql_db_query() selecciona una base y ejecuta una sentencia en ella. Si el identificador de enlace no ha sido especificado, la función intenta encontrar un enlace abierto al servidor MySQL y si no lo encuentra, intetará crear uno como si fuera llamado mysql_connect() sin argumentos

Ver tambiénmysql_connect().

Por razones de compatibilidad puede usarse mysql() igualmente.

Anterior | Inicio | Siguiente
mysql_db_name | Subir | mysql_drop_db


mysql_drop_db

(PHP 3, PHP 4 )

mysql_drop_db -- Borra una base de datos MySQL

Descripción

int mysql_drop_db ( string base_de_datos [, int identificador_de_enlace])

Devuelve: verdadero si éxito, falso si error.

mysql_drop_db() intenta suprimir una base de datos completa del servidor asociado al identificador de enlace.

Ver también: mysql_create_db(). Por razones de compatibilidad puede usarse mysql_dropdb() igualmente.

Anterior | Inicio | Siguiente
mysql_db_query | Subir | mysql_errno


mysql_errno

(PHP 3, PHP 4 )

mysql_errno -- Deuelve el número del mensaje de error de la última operación MySQL

Descripción

int mysql_errno ( [int identificador_de_enlace])

Los errores devueltos por mySQL no indican los warnings. Usar estas funciones para encontrar el número de error.

<?php
mysql_connect("marliesle");
echo mysql_errno().": ".mysql_error()."<BR>";
mysql_select_db("nonexistentdb");
echo mysql_errno().": ".mysql_error()."<BR>";
$conn = mysql_query("SELECT * FROM nonexistenttable");
echo mysql_errno().": ".mysql_error()."<BR>";
?>

Ver también: mysql_error()

Anterior | Inicio | Siguiente
mysql_drop_db | Subir | mysql_error


mysql_error

(PHP 3, PHP 4 )

mysql_error -- Devuelve el texto del mensaje de error de la última operación MySQL

Descripción

string mysql_error ( [int identificador_de_enlace])

Los errores devueltos por mySQL no indican los warnings. Usar estas funciones para encontrar el número de error.

<?php
mysql_connect("marliesle");
echo mysql_errno().": ".mysql_error()."<BR>";
mysql_select_db("nonexistentdb");
echo mysql_errno().": ".mysql_error()."<BR>";
$conn = mysql_query("SELECT * FROM nonexistenttable");
echo mysql_errno().": ".mysql_error()."<BR>";
?>

Ver también: mysql_errno()

Anterior | Inicio | Siguiente
mysql_errno | Subir | mysql_escape_string


mysql_escape_string

(PHP 4 >= 4.0.3)

mysql_escape_string -- Escapa una cadena para su uso en mysql_query.

Descripción

string mysql_escape_string ( string cadena_no_escapada)

Esta función escapa la cadena_no_escapada, de modo que sea seguro usarla en un llamado a mysql_query().

Nota: mysql_escape_string() no escapa % ni _.

Esta función es idéntica a mysql_real_escape_string() con la excepción de que mysql_real_escape_string() recibe un gestor de conexión y escapa la cadena de acuerdo al juego de caracteres actual. mysql_escape_string() no recibe un argumento de conexión, y no hace caso al valor actual del juego de caracteres.

Ejemplo 1. Ejemplo de mysql_escape_string()

<?php
    $item = "Zak's Laptop";
    $item_escapado = mysql_escape_string($item);
    printf ("La cadena escapada: %s\n", $item_escapado);
?>

El anterior ejemplo produciría la siguiente salida:

La cadena escapada: Zak\'s Laptop

Vea también mysql_real_escape_string(), addslashes() y la directiva magic_quotes_gpc.

Anterior | Inicio | Siguiente
mysql_error | Subir | mysql_fetch_array


mysql_fetch_array

(PHP 3, PHP 4 )

mysql_fetch_array -- Extrae la fila de resultado como una matriz asociativa

Descripción

array mysql_fetch_array ( int id_resultado [, int tipo_de_resultado])

Devuelve una matriz que corresponde a la sentencia extraida, o falso si no quedan más filas.

mysql_fetch_array() es una versión extendida de mysql_fetch_row(). Además de guardar los datos en el indice numerico de la matriz, guarda también los datos en los indices asociativos, usando el nombre de campo como clave.

Si dos o más columnas del resultado tienen el mismo nombre de campo, la última columna toma la prioridad. Para acceder a la(s) otra(s) columna(s) con el mismo nombre, se debe escificar el indice numerico o definir un alias para la columna.

select t1.f1 as foo t2.f1 as bar from t1, t2

La función mysql_fetch_array() no es significativemente mas lenta que mysql_fetch_row(), sin embargo tiene un valor añadido importante.

El segundo argumento opcional tipo_de_resultado en mysql_fetch_array() es una constante y puede tomar los valores siguientes: MYSQL_ASSOC, MYSQL_NUM, y MYSQL_BOTH. (Esta funcionalidad fue añadida en PHP 3.0.7)

Para más detalles, ver también mysql_fetch_row().

Ejemplo 1. mysql fetch array

<?php
mysql_connect($host,$user,$password);
$result = mysql_db_query("database","select * from table");
while($row = mysql_fetch_array($result)) {
    echo $row["user_id"];
    echo $row["fullname"];
}
mysql_free_result($result);
?>

Anterior | Inicio | Siguiente
mysql_escape_string | Subir | mysql_fetch_assoc


mysql_fetch_assoc

(PHP 4 >= 4.0.3)

mysql_fetch_assoc -- Recupera una fila de resultado como una matriz asociativa

Descripción

array mysql_fetch_assoc ( resource resultado)

Devuelve una matriz asociativa que corresponde a la fila recuperada, o FALSE si no hay más filas.

mysql_fetch_assoc() es equivalente a llamar mysql_fetch_array() con MYSQL_ASSOC como segundo parámetro opcional. Únicamente devuelve una matriz asociativa. Esta es la forma en que originalmente trabajaba mysql_fetch_array(). Si necesita índices numéricos así como asociativos, utilice mysql_fetch_array().

Si dos o más columnas del resultado tienen los mismos nombres de campo, la última columna tomará precedencia. Para acceder a otras columnas con el mismo nombre, tendrá que acceder al resultado con índices numéricos mediante el uso de mysql_fetch_row() o agregar sobrenombres. Vea el ejemplo en la descripción de mysql_fetch_array() respecto a los sobrenombres.

Algo importante a notar es que el uso de mysql_fetch_assoc() no es significativamente más lento que el uso de mysql_fetch_row(), al mismo tiempo que provee un valor agregado considerable.

Nota: Los nombres de campos retornados por esta función diferencian entre mayusculas y minusculas.

Ejemplo 1. Un ejemplo extendido de mysql_fetch_assoc()

<?php

    $conexion = mysql_connect("localhost", "mysql_user", "mysql_password");

    if (!$conexion) {
        echo "No pudo conectarse a la BD: " . mysql_error();
        exit;
    }

    if (!mysql_select_db("nombre_de_la_bd")) {
        echo "No ha sido posible seleccionar la BD: " . mysql_error();
        exit;
    }

    $sql = "SELECT id as id_usuario, nombre_completo, status_usuario
            FROM   alguna_tabla
            WHERE  status_usuario = 1";

    $resultado = mysql_query($sql);

    if (!$resultado) {
        echo "No pudo ejecutarse satisfactoriamente la consulta ($sql) " .
             "en la DB: " . mysql_error();
        exit;
    }

    if (mysql_num_rows($resultado) == 0) {
        echo "No se han encontrado filas, nada a imprimir, asi que voy " .
             "a detenerme.";
        exit;
    }

    // Mientras exista una fila de datos, colocar esa fila en $fila
    // como una matriz asociativa
    // Nota: Si solo espera una fila, no hay necesidad de usar un ciclo
    // Nota: Si coloca extract($fila); dentro del siguiente ciclo,
    // estara creando $id_usuario, $nombre_completo, y $status_usuario

    while ($fila = mysql_fetch_assoc($resultado)) {
        echo $fila["id_usuario"];
        echo $fila["nombre_completo"];
        echo $fila["status_usuario"];
    }

    mysql_free_result($resultado);

?>

Vea también
mysql_fetch_row(),
mysql_fetch_array(),
mysql_query() y
mysql_error().

Anterior | Inicio | Siguiente
mysql_fetch_array | Subir | mysql_fetch_field


mysql_fetch_field

(PHP 3, PHP 4 )

mysql_fetch_field -- Extrae la información de una columna y la devuelve como un objeto.

Descripción

object mysql_fetch_field ( int id_resultado [, int salto])

Devuelve un objeto que contiene la información del campo.

Puede usarse mysql_fetch_field() para obtener información sobre campos en un resultado. Si no se especifica el salto, se extrae el siguiente campo que todavia no ha sido extraido. con mysql_fetch_field().

Las propiedades del objeto son:

  • name - nombre de la columna

  • table - name de la tabla a la que pertenece la columna

  • max_length - longitud máxima de la columna

  • not_null - 1 si la columna no puede contener un valor nulo

  • primary_key - 1 si la columna es clave primaria

  • unique_key - 1 si la columna es clave unica

  • multiple_key - 1 si la columna es clave no unica

  • numeric - 1 si la columna es numerica

  • blob - 1 si la columna es un BLOB

  • type - el tipo de la columna

  • unsigned - 1 si la columna es unsigned

  • zerofill - 1 si la columna es zero-filled

Ver también mysql_field_seek()

Anterior | Inicio | Siguiente
mysql_fetch_assoc | Subir | mysql_fetch_lengths


mysql_fetch_lengths

(PHP 3, PHP 4 )

mysql_fetch_lengths -- Devuelve la longitud de cada salida en un resultado

Descripción

array mysql_fetch_lengths ( int id_resultado)

Devuelve: Una matriz que contiene las longitudes de cada campo de la última fila extraida por mysql_fetch_row(), o falso si error.

mysql_fetch_lengths() almacena las longitudes de cada columna en la última fila devuelta por mysql_fetch_row(), mysql_fetch_array(), y mysql_fetch_object() en una matriz, empezando por 0.

Ver también: mysql_fetch_row().

Anterior | Inicio | Siguiente
mysql_fetch_field | Subir | mysql_fetch_object


mysql_fetch_object

(PHP 3, PHP 4 )

mysql_fetch_object -- Extrae una fila de resultado como un objeto

Descripción

object mysql_fetch_object ( int id_resultado [, int tipo_de_resultado])

Devuelve un objeto con las propiedades aur corresponden a la última fila extraida, o falso si no quedan más filas.

mysql_fetch_object() es similar a mysql_fetch_array(), con la diferencia que un objeto es devuelto en lugar de una matriz. Indirectamente, quiere decir que solo se puede aceder a los datos por el nombre del campo, y no por su posición.

El argumento opcional tipo_de_resultado es una constante y puede tomar los valores siguientes: MYSQL_ASSOC, MYSQL_NUM, y MYSQL_BOTH.

La función es identica a mysql_fetch_array(), y casi tan rápida como mysql_fetch_row() (la diferencia es insignificante).

Ejemplo 1. mysql fetch object

<?php
mysql_connect($host,$user,$password);
$result = mysql_db_query("database","select * from table");
while($row = mysql_fetch_object($result)) {
    echo $row->user_id;
    echo $row->fullname;
}
mysql_free_result($result);
?>

Ver también: mysql_fetch_array() y mysql_fetch_row().

Anterior | Inicio | Siguiente
mysql_fetch_lengths | Subir | mysql_fetch_row


mysql_fetch_row

(PHP 3, PHP 4 )

mysql_fetch_row -- Devuelve una fila de resultado como matriz

Descripción

array mysql_fetch_row ( int id_resultado)

Devuelve: Una matriz que corresponde a la fila selecionada, o falso si no quedan más lineas.

mysql_fetch_row() seleciona una fila de datos del resultado asociado al identificador de resultado especificado. La fila es devuelta como una matriz. Cada columna del resultdo es guardada en un offset de la matriz, empezando por el offset 0.

La llamada a mysql_fetch_row() debería devolver la próxima fila del resultado, o falso si no quedan más filas.

Ver también: mysql_fetch_array(),
mysql_fetch_object(),
mysql_data_seek(),
mysql_fetch_lengths(), and
mysql_result().

Anterior | Inicio | Siguiente
mysql_fetch_object | Subir | mysql_field_flags


mysql_field_flags

(PHP 3, PHP 4 )

mysql_field_flags -- Devuelve los flags asociados con el campo especificado en un resultado

Descripción

string mysql_field_flags ( int id_resultado, int offset_del_campo)

mysql_field_flags() devuelve los flags del campo especificado. Cada flag es devuelto como una palabra y estan separados un unico espacio, se puede dividir el resultado devuelto utilizando explode().

Los siguientes flags pueden ser devueltos si tu versión de MySQL los soporta: "not_null", "primary_key", "unique_key", "multiple_key", "blob", "unsigned", "zerofill", "binary", "enum", "auto_increment", "timestamp".

Por razones de compatibilidad puede usarse tambien mysql_fieldflags().

Anterior | Inicio | Siguiente
mysql_fetch_row | Subir | mysql_field_len


mysql_field_len

(PHP 3, PHP 4 )

mysql_field_len -- Devuelve la longitud del campo especificado

Descripción

int mysql_field_len ( int id_resultado, int offset_del_campo)

mysql_field_len() devuelve la longitud del campo especificado. Por razones de compatibilidad puede usarse tambien mysql_fieldlen().

Anterior | Inicio | Siguiente
mysql_field_flags | Subir | mysql_field_name


mysql_field_name

(PHP 3, PHP 4 )

mysql_field_name -- Devuelve el nombre del campo especificado en un resultado

Descripción

string mysql_field_name ( int id_resultado, int indice_del_campo)

mysql_field_name() devuelve el nombre del campo especificado. Los argumentos de la función son el identificador de resultado y el indice del campo. Por ejemplo: mysql_field_name($result,2);

Devolverá el nombre del segundo campo asociado al identificador de resultado.

Por razones de compatibilidad puede usarse tambien mysql_fieldname().

Anterior | Inicio | Siguiente
mysql_field_len | Subir | mysql_field_seek


mysql_field_seek

(PHP 3, PHP 4 )

mysql_field_seek -- Asigna el puntero del resultado al offset del campo especificado

Descripción

int mysql_field_seek ( int id_resultado, int offset_del_campo)

Busca el offset del campo especificado. Si la próxima llamada a mysql_fetch_field() no incluye un offset de campo, se devolverá ese campo.

Ver también: mysql_fetch_field().

Anterior | Inicio | Siguiente
mysql_field_name | Subir | mysql_field_table


mysql_field_table

(PHP 3, PHP 4 )

mysql_field_table -- Devuelve el nombre de la tabla donde esta el campo especificado

Descripción

string mysql_field_table ( int id_resultado, int offset_del_campo)

Devuelve el nombre de la tabla del campo. Por razones de compatibilidad puede usarse tambien mysql_fieldtable().

Anterior | Inicio | Siguiente
mysql_field_seek | Subir | mysql_field_type


mysql_field_type

(PHP 3, PHP 4 )

mysql_field_type -- Devuelve el tipo del campo especificado en un resultado

Descripción

string mysql_field_type ( int id_resultado, int offset_del_campo)

mysql_field_type() es similar a la función mysql_field_name(). Los argumentos son identicos, pero se devuelve el tipo de campo. El tipo sera "int", "real", "string", "blob", o otros detallados en la documentación de MySQL.

Ejemplo 1. mysql field types

<?php
mysql_connect("localhost:3306");
mysql_select_db("wisconsin");
$result = mysql_query("SELECT * FROM onek");
$fields = mysql_num_fields($result);
$rows   = mysql_num_rows($result);
$i = 0;
$table = mysql_field_table($result, $i);
echo "Your '".$table."' table has ".$fields." fields and ".$rows." records <BR>";
echo "The table has the following fields <BR>";
while ($i < $fields) {
    $type  = mysql_field_type  ($result, $i);
    $name  = mysql_field_name  ($result, $i);
    $len   = mysql_field_len   ($result, $i);
    $flags = mysql_field_flags ($result, $i);
    echo $type." ".$name." ".$len." ".$flags."<BR>";
    $i++;
}
mysql_close();
?>

Por razones de compatibilidad puede usarse tambien mysql_fieldtype().

Anterior | Inicio | Siguiente
mysql_field_table | Subir | mysql_free_result


mysql_free_result

(PHP 3, PHP 4 )

mysql_free_result -- Libera la memoria del resultado

Descripción

int mysql_free_result ( int id_resultado)

mysql_free_result() solo necesita ser llamada si te preocupa usar demasiado memoria durante la ejecución de tu script. Toda la memoria del resultado especificado en el parametro del identificador de resultado sera automaticamente liberada.

Por razones de compatibilidad puede usarse tambien mysql_freeresult().

Anterior | Inicio | Siguiente
mysql_field_type | Subir | mysql_get_client_info


mysql_get_client_info

(PHP 4 >= 4.0.5)

mysql_get_client_info -- Obtener información del cliente MySQL

Descripción

string mysql_get_client_info ( void )

mysql_get_client_info() devuelve una cadena que representa la versión de la librería cliente.

Ejemplo 1. Ejemplo de mysql_get_client_info()

<?php
    printf ("Informaci&oacute;n del cliente MySQL: %s\n", mysql_get_client_info());
?>

El anterior ejemplo produciría la siguiente salida:

Informaci&oacute;n del cliente MySQL: 3.23.39

Vea también
mysql_get_host_info(),
mysql_get_proto_info() y
mysql_get_server_info().

Anterior | Inicio | Siguiente
mysql_free_result | Subir | mysql_get_host_info


mysql_get_host_info

(PHP 4 >= 4.0.5)

mysql_get_host_info -- Obtener información de la máquina anfitriona MySQL

Descripción

string mysql_get_host_info ( [resource id_enlace])

mysql_get_host_info() devuelve una cadena que describe el tipo de conexión en uso con id_enlace, incluyendo el nombre del equipo servidor anfitrión. Si se omite id_enlace, se usará la última conexión abierta.

Ejemplo 1. Ejemplo de mysql_get_host_info()

<?php
    mysql_connect("localhost", "mysql_user", "mysql_password") or
        die("No pudo conectarse: " . mysql_error());
    printf ("Informaci&oacute;n del equipo anfitri&oacute;n MySQL: %s\n", mysql_get_host_info());
?>

El ejemplo anterior produciría la siguiente salida:

Informaci&oacute;n del equipo anfitri&oacute;n MySQL: Localhost via UNIX socket

Vea también
mysql_get_client_info(),
mysql_get_proto_info() y
mysql_get_server_info().

Anterior | Inicio | Siguiente
mysql_get_client_info | Subir | mysql_get_proto_info


mysql_get_proto_info

(PHP 4 >= 4.0.5)

mysql_get_proto_info -- Obtener información del protocolo MySQL

Descripción

int mysql_get_proto_info ( [resource id_enlace])

mysql_get_proto_info() devuelve la versión del protocolo usada por la conexión id_enlace. Si se omite id_enlace, se usará la última conexión abierta.

Ejemplo 1. Ejemplo de mysql_get_proto_info()

<?php
    mysql_connect("localhost", "mysql_user", "mysql_password") or
        die("No pudo conectarse: " . mysql_error());
    printf ("Versi&oacute;n del protocolo MySQL: %s\n", mysql_get_proto_info());
?>

El ejemplo anterior produciría la siguiente salida:

Versi&oacute;n del protocolo MySQL: 10

Vea también
mysql_get_client_info(),
mysql_get_host_info() y
mysql_get_server_info().

Anterior | Inicio | Siguiente
mysql_get_host_info | Subir | mysql_get_server_info


mysql_get_server_info

(PHP 4 >= 4.0.5)

mysql_get_server_info -- Obtener información del servidor MySQL

Descripción

string mysql_get_server_info ( [resource id_enlace])

mysql_get_server_info() devuelve la versión del servidor usado en la conexión id_enlace. Si se omite id_enlace, será usada la última conexión abierta.

Ejemplo 1. Ejemplo de mysql_get_server_info()

<?php
    mysql_connect("localhost", "mysql_user", "mysql_password") or
        die("No pudo conectarse: " . mysql_error());
    printf ("Versi&oacute;n del servidor MySQL: %s\n", mysql_get_server_info());
?>

El anterior ejemplo produciría la siguiente salida:

Versi&oacute;n del servidor MySQL: 4.0.1-alpha

Vea también
mysql_get_client_info(),
mysql_get_host_info() y
mysql_get_proto_info().

Anterior | Inicio | Siguiente
mysql_get_proto_info | Subir | mysql_info


mysql_info

(PHP 4 >= 4.3.0)

mysql_info -- Obtiene información sobre la consulta más reciente

Descripción

string mysql_info ( [resource id_enlace])

mysql_info() devuelve información detallada sobre la última consulta realizada usando el id_enlace dado. Si no se indica un id_enlace, se asumirá el último enlace abierto.

mysql_info() devuelve una cadena para todas las sentencias listadas a continuación. En cualquier otro caso, devuelve FALSE. El formato de la cadena depende en la sentencia dada.

Ejemplo 1. Sentencias MySQL relevantes

INSERT INTO ... SELECT ...
String format: Records: 23 Duplicates: 0 Warnings: 0
INSERT INTO ... VALUES (...),(...),(...)...
String format: Records: 37 Duplicates: 0 Warnings: 0
LOAD DATA INFILE ...
String format: Records: 42 Deleted: 0 Skipped: 0 Warnings: 0
ALTER TABLE
String format: Records: 60 Duplicates: 0 Warnings: 0
UPDATE
String format: Rows matched: 65 Changed: 65 Warnings: 0
Los números presentados son sólo de caracter ilustrativo; sus valores corresponderán a la consulta usada.

Nota: mysql_info() devuelve un valor diferente a FALSE para la sentencia INSERT ... VALUES sólo si se indican múltiples listas de valores en la sentencia.

Vea también mysql_affected_rows().

Anterior | Inicio | Siguiente
mysql_get_server_info | Subir | mysql_insert_id


mysql_insert_id

(PHP 3, PHP 4 )

mysql_insert_id -- Devuelve el identificador generado en la última llamada a INSERT

Descripción

int mysql_insert_id ( [int identificador_de_enlace])

mysql_insert_id() devuelve el identificador generado para un campo de tipo AUTO_INCREMENTED. Se devolvera el identificador genrado por el último INSERT para el identificador_de_enlace. Si no se especifica el identificador_de_enlace, se asume por defecto el último enlace abierto.

Anterior | Inicio | Siguiente
mysql_info | Subir | mysql_list_dbs


mysql_list_dbs

(PHP 3, PHP 4 )

mysql_list_dbs -- Lista las bases de datos disponibles en el servidor MySQL

Descripción

int mysql_list_dbs ( [int identificador_de_enlace])

mysql_list_dbs() devuelve un puntero de resultado que contiene las bases disponibles en el actual demonio mysql. Utiliza la función mysql_tablename() para explotar el puntero de resultado.

Por razones de compatibilidad puede usarse tambien mysql_listdbs().

Anterior | Inicio | Siguiente
mysql_insert_id | Subir | mysql_list_fields


mysql_list_fields

(PHP 3, PHP 4 )

mysql_list_fields -- Lista los campos del resultado de MySQL

Descripción

int mysql_list_fields ( string base_de_datos, string tabla [, int identificador_de_enlace])

mysql_list_fields() lista información
sobre la tabla. Los argumentos son la base de datos y el nombre de
la tabla. Se devuelve un puntero que puede ser usado por las
funciónes mysql_field_flags(),
mysql_field_len(),
mysql_field_name(), y
mysql_field_type().

Un identificador de resultado es un entero positivo. La función devuelve -1 si se produce un error. Una cadena de caracteres describiendo el error sera introducida en $phperrmsg, y a menos que la función sea llamada como @mysql() el literal del error tambien sera impreso.

Por razones de compatibilidad puede usarse tambien mysql_listfields().

Anterior | Inicio | Siguiente
mysql_list_dbs | Subir | mysql_list_processes


mysql_list_processes

(PHP 4 >= 4.3.0)

mysql_list_processes -- Lista los procesos MySQL

Descripción

resource mysql_list_processes ( [resource id_enlace])

mysql_list_processes() devuelve un apuntador a un resultado que describe los hilos actuales del servidor.

Ejemplo 1. Ejemplo de mysql_list_processes()

<?php
$enlace = mysql_connect('localhost', 'mysql_user', 'mysql_password');

$resultado = mysql_list_processes($enlace);

while ($fila = mysql_fetch_assoc($resultado)){
    printf("%s %s %s %s %s\n", $fila["Id"], $fila["Host"], $fila["db"],
       $fila["Command"], $fila["Time"]);
}
mysql_free_result ($resultado);
?>

El ejemplo anterior produciría la siguiente salida:

1 localhost test Processlist 0
4 localhost mysql sleep 5

Vea también mysql_thread_id().

Anterior | Inicio | Siguiente
mysql_list_fields | Subir | mysql_list_tables


mysql_list_tables

(PHP 3, PHP 4 )

mysql_list_tables -- Lista las tablas en una base de datos MySQL

Descripción

int mysql_list_tables ( string base_de_datos [, int identificador_de_enlace])

mysql_list_tables() toma el nombre de la base y devuelve un puntero de resultado como la función mysql_db_query(). La función mysql_tablename() debe ser usada para extraer los nombres de las tablas del puntero.

Por razones de compatibilidad puede usarse tambien mysql_listtables(). can also be used.

Anterior | Inicio | Siguiente
mysql_list_processes | Subir | mysql_num_fields


mysql_num_fields

(PHP 3, PHP 4 )

mysql_num_fields -- devuelve el numero de campos de un resultado

Descripción

int mysql_num_fields ( int id_resultado)

mysql_num_fields() devuelve el numero de campos de un identificador de resultado.

Ver también:
mysql_db_query(),
mysql_query(),
mysql_fetch_field(),
mysql_num_rows().

Por razones de compatibilidad puede usarse tambien mysql_numfields().

Anterior | Inicio | Siguiente
mysql_list_tables | Subir | mysql_num_rows


mysql_num_rows

(PHP 3, PHP 4 )

mysql_num_rows -- Devuelve el numero de filas de un resultado

Descripción

int mysql_num_rows ( int id_resultado)

mysql_num_rows() Devuelve el numero de filas de un identificador de resultado.

Ver también:
mysql_db_query(),
mysql_query() and,
mysql_fetch_row().

Por razones de compatibilidad puede usarse tambien mysql_numrows().

Anterior | Inicio | Siguiente
mysql_num_fields | Subir | mysql_pconnect


mysql_pconnect

(PHP 3, PHP 4 )

mysql_pconnect -- Abre una conexión persistente al servidor MySQL

Descripción

int mysql_pconnect ( [string server [, string usuario [, string password]]])

Devuelve: un identificador de enlace persistente, o falso si se produce un error.

mysql_pconnect() establece una conexión a un servidor MySQL. Todos los argumentos son opcionales, y si no existen, se asumen los valores por defecto ('localhost', nombre del usuario propietario del proceso, password vacia).

El hostname puede incluir un numero de puerto. ej. "hostname:port" o un camino al socket ej. ":/camino/al/socket" para el puerto para el host local.

Nota: Soporte para ":puerto" fue añadido en 3.0B4.

Soporte para ":/camino/al/socket" fue añadido en 3.0.10.

mysql_pconnect() actua como mysql_connect() con dos diferencias fundamentales.

Primero, durante la conexión, la función intenta primero encontrar un enlace persistente abierto con el mismo host, usuario y password. Si lo encuentra, devuelve el identificador de enlace en lugar de abrir otra conexión.

Segundo, la conexión no sera cerrado cuando acabe la ejecución del script. El enlace permanecera abierta para ser usado en el futuro (mysql_close() will not cierra el enlace establecido con mysql_pconnect()).

Este tipo de enlaces son llamados 'persistentes'.

Anterior | Inicio | Siguiente
mysql_num_rows | Subir | mysql_ping


mysql_ping

(PHP 4 >= 4.3.0)

mysql_ping -- Efectuar un chequeo de respuesta (ping) sobre una conexión de servidor o reconectarse si no hay conexión

Descripción

bool mysql_ping ( [resource id_enlace])

mysql_ping() chequea si está activa o no la conexión con el servidor. Si ésta se ha caído, una reconexión automática es intentada. Esta función puede ser usada por scripts que permanecen pasivos durante largos espacios de tiempo, para chequear si el servidor ha cerrado la conexión, y reconectarse de ser necesario. mysql_ping() devuelve TRUE si la conexión con el servidor está funcionando, o FALSE de lo contrario.

Vea también mysql_thread_id() y mysql_list_processes().

Anterior | Inicio | Siguiente
mysql_pconnect | Subir | mysql_query


mysql_query

(PHP 3, PHP 4 )

mysql_query -- Envia una sentencia SQL a MySQL

Descripción

int mysql_query ( string sentencia [, int identificador_de_enlace])

mysql_query() envia una sentencia a la base activa en el servidor asociado al identificador de enlace. Si no es especificado un identificador_de_enlace, se asumira el ultilmo enlace abierto. Si no hay ningun enlace abierto, la función intenta estalecer un enlace como si se llamara función mysql_connect() sin argumentos, y lo utiliza.

La sentencia no puede terminar por punto y coma.

mysql_query() devuelve TRUE (no-cero) o FALSE para indicar si la sentencia se ha ejecutado correctamente o no. Un valor TRUE significa que la sentencia era correcta y pudo ser ejecutada en el servidor. No indica nada sobre el numero de fila devueltas. Es perfectamente posible que la sentencia se ejecute correctamente pero que no devuelve ninguna fila.

La siguiente sentencia es invalida sintacticamente, asi que mysql_query() falla y devuelve FALSE:

Ejemplo 1. mysql_query()

<?php
$result = mysql_query ("SELECT * WHERE 1=1")
    or die ("Invalid query");
?>

La siguiente sentencia es invalida semanticamente si my_col no es una columna de la tabla my_tbl, asi que mysql_query() falla y devuelve FALSE:

Ejemplo 2. mysql_query()

<?php
$result = mysql_query ("SELECT my_col FROM my_tbl")
    or die ("Invalid query");
?>

mysql_query() fallara tambien y devolvera FALSE si no se tiene el permiso de acceso a la tabla especificada en la sentencia.

Asumiendo la sentencia tenga exito, se puede llamar a mysql_affected_rows() para saber cuantas filas fueron afectadas (para DELETE, INSERT, REPLACE, o UPDATE ) Para las sentencias SELECT, mysql_query() devuelve un nuevo identificador de resultado que se puede pasar a mysql_result(). Cuando se acabe de utilizar el resultado, se pueden liberar los recursos asociados utilizando mysql_free_result().

Ver también: mysql_affected_rows(),
mysql_db_query(),
mysql_free_result(),
mysql_result(),
mysql_select_db(), and
mysql_connect().

Anterior | Inicio | Siguiente
mysql_ping | Subir | mysql_real_escape_string


mysql_real_escape_string

(PHP 4 >= 4.3.0)

mysql_real_escape_string -- Escapa caracteres especiales de una cadena para su uso en una sentencia SQL, tomando en cuanto el juego de caracteres actual de la conexión.

Descripción

string mysql_real_escape_string ( string cadena_no_escapada [, resource id_enlace])

Esta función escapará todos los caracteres especiales en la cadena_no_escapada, tomando en cuenta el juego de caracteres actual de la conexión, de tal modo que sea seguro usarla con mysql_query().

Nota: mysql_real_escape_string() no escapa % ni _.

Ejemplo 1. Ejemplo de mysql_real_escape_string()

<?php
$item = "Zak's and Derick's Laptop";
$item_escapado = mysql_real_escape_string($item);
printf ("Cadena escapada: %s\n", $item_escapado);
?>

El ejemplo anterior produciría la siguiente salida:

Cadena escapada: Zak\'s and Derick\'s Laptop

Vea también mysql_escape_string() y mysql_character_set_name().

Anterior | Inicio | Siguiente
mysql_query | Subir | mysql_result


mysql_result

(PHP 3, PHP 4 )

mysql_result -- Devuelve datos de un resultado

Descripción

int mysql_result ( int id_resultado, int numero_de_fila [, mixed campo])

mysql_result() devuelve el contenido de una celda de un resultado MySQL. El campo argumento puede ser el nombre del campo o el offset o tabla.nombre_del_campo. Si el nombre de la columna tiene un alias ('select foo as bar from...'), utilice el alias en lugar del nombre de la columna.

Cuando se trabaja un un gran resultado, debe considerarse la utilizacion de una funcion que devuelva una fila entera ya que estas funciones son MUCHO mas rapidas que mysql_result(). Tambien, especificando un offset numerico en lugar del nombre del campo, la ejecucion sera mas rapida.

Las llamadas a mysql_result() no deben mezclarse con llamadas a las otras sentencias que trabajan con un identificador de resultado.

Alternativas recomendadas:
mysql_fetch_row(),
mysql_fetch_array(), y
mysql_fetch_object().

Anterior | Inicio | Siguiente
mysql_real_escape_string | Subir | mysql_select_db


mysql_select_db

(PHP 3, PHP 4 )

mysql_select_db -- Selecciona un base de datos MySQL

Descripción

int mysql_select_db ( string base_de_datos [, int identificador_de_enlace])

Devuelve : TRUE si exito, FALSE si error.

mysql_select_db() establece la base activa que estara asociada con el identificador de enlace especificado. Si no se especifica un identificador de enlace, se asume el ultimo enlace abierto. Si no hay ningun enlace abierto, la función intentara establecer un enlace como si se llamara a mysql_connect().

Toda llamada posterior a mysql_query() utilizara la base activada.

Ver también:
    mysql_connect(),
    mysql_pconnect(), and
    mysql_query().

Por razones de compatibilidad puede usarse tambien mysql_selectdb().

Anterior | Inicio | Siguiente
mysql_result | Subir | mysql_stat


mysql_stat

(PHP 4 >= 4.3.0)

mysql_stat -- Obtener el status actual del sistema

Descripción

string mysql_stat ( [resource id_enlace])

mysql_stat() devuelve el status actual del servidor.

Nota: Por el momento, mysql_stat() devuelve únicamente el status de uptime, hilos, consultas, tablas abiertas, tablas de vaciado y consultas por segundo. Para una lista completa de variables de status, usted tendrá que usar el comando SQL 'SHOW STATUS'.

Ejemplo 1. Ejemplo de mysql_stat()

<?php
$enlace = mysql_connect('localhost', "mysql_user", "mysql_password");
$status = explode('  ', mysql_stat($enlace));
print_r($status);
?>

El anterior ejemplo produciría la siguiente salida:

Array
(
    [0] => Uptime: 5380
    [1] => Threads: 2
    [2] => Questions: 1321299
    [3] => Slow queries: 0
    [4] => Opens: 26
    [5] => Flush tables: 1
    [6] => Open tables: 17
    [7] => Queries per second avg: 245.595
)

Anterior | Inicio | Siguiente
mysql_select_db | Subir | mysql_tablename


mysql_tablename

(PHP 3, PHP 4 )

mysql_tablename -- Devuelve el nombre de la tabla de un campo

Descripción

string mysql_tablename ( int id_resultado, int i)

mysql_tablename() toma un puntero de resultado devuelto por mysql_list_tables() asi como un indice (integer) y devuelve el nomnre de una tabla. Se puede usar la función mysql_num_rows() para determinar el nombre de tablas en el puntero de resultado.

Ejemplo 1. mysql_tablename() Example

<?php
mysql_connect ("localhost:3306");
$result = mysql_list_tables ("wisconsin");
$i = 0;
while ($i < mysql_num_rows ($result)) {
    $tb_names[$i] = mysql_tablename ($result, $i);
    echo $tb_names[$i] . "<BR>";
    $i++;
}
?>

Anterior | Inicio | Siguiente
mysql_stat | Subir | mysql_thread_id


mysql_thread_id

(PHP 4 >= 4.3.0)

mysql_thread_id -- Devuelve el ID del hilo actual

Descripción

int mysql_thread_id ( [resource id_enlace])

mysql_thread_id() devuelve el ID del hilo actual. Si la conexión se ha perdido y se reconecta mediante mysql_ping(), el ID del hilo cambiará. Esto quiere decir que usted no debería obtener el ID del hilo actual y almacenarlo para después. Es mejor obtenerlo cuando lo necesita.

Ejemplo 1. Ejemplo de mysql_thread_id()

<?php
$enlace = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$id_hilo = mysql_thread_id($enlace);
if ($id_hilo){
    printf ("El ID del hilo actual es %d\n", $id_hilo);
}
?>

El anterior ejemplo produciría la siguiente salida:

El ID del hilo actual es 73

Vea también mysql_ping() y mysql_list_processes().

Anterior | Inicio | Siguiente
mysql_tablename | Subir | mysql_unbuffered_query


mysql_unbuffered_query

(PHP 4 >= 4.0.6)

mysql_unbuffered_query -- Envía una consulta SQL a MySQL, sin recuperar ni colocar en búfer las filas de resultado

Descripción

resource mysql_unbuffered_query ( string consulta [, resource id_enlace])

mysql_unbuffered_query() envía la consulta SQL a MySQL, sin recuperar ni colocar en búfer las filas de resultado automáticamente, como mysql_query() lo hace. Por una parte, esto ahorra una considerable cantidad de memoria con las consultas SQL que producen conjuntos grandes de resultados. Por otra parte, usted puede empezar a trabajar con el conjunto de resultado inmediatamente después de que la primera fila ha sido recuperada: no necesita esperar hasta que la consulta SQL completa haya sido ejecutada. Cuando se usan múltiples conexiones con la BD, necesita indicar el parámetro opcional id_enlace.

Nota: Los beneficios de mysql_unbuffered_query() vienen por un precio: No puede usar mysql_num_rows() ni mysql_data_seek() en un conjunto de resultados devuelto por mysql_unbuffered_query(). También tendrá que recuperar todas las filas de resultado de una consulta SQL sin búfer, antes de poder enviar una nueva consulta SQL a MySQL.

Vea también mysql_query().

Anterior | Inicio | Siguiente
mysql_thread_id | Subir | Improved MySQL Extension


Improved MySQL Extension

Manual de PHP
Anterior Siguiente

LXIV. Improved MySQL Extension

Introducción

The mysqli extension allows you to access the functionality provided by MySQL 4.1 and above. More information about the MySQL Database server can be found at http://www.mysql.com/

Documentation for MySQL can be found at http://www.mysql.com/documentation/.

Aviso

Esta extensión es EXPERIMENTAL. Esto significa que el comportamiento de esta extensión, los nombre de sus funciones y en definitiva TODO lo documentado sobre esta extensión, puede cambiar en una futura versión de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Requerimientos

In order to have these functions available, you must compile PHP with support for the mysqli extension.

Nota: The mysqli extension is designed to work with the version 4.1 or above of MySQL. For previous versions, please see the MySQL extension documentation.

Instalación

To install the mysqli extension for PHP, use the --with-mysqli=mysql_config_path configuration option where mysql_config_path represents the location of the mysql_config program that comes with MySQL versions greater than 4.1. Also, disable the standard MySQL extension (which is enabled by default) by also using the --without-mysql configuration option. If you would like to install the standard mysql extension along with the mysqli extension, the bundled libmysql library that comes with PHP cannot be used. Instead, use the client libraries installed by MySQL with versions below 4.1. This will force PHP to use the client libraries installed by MySQL thus avoiding any conflicts.

Configuración en tiempo de ejecución

El comportamiento de estas funciones está afectado por los valores definidos en php.ini.

Tabla 1. MySQLi Configuration Options

Name | Default | Changeable
mysqli.max_links | "-1" | PHP_INI_SYSTEM
mysqli.default_port | NULL | PHP_INI_ALL
mysqli.default_socket | NULL | PHP_INI_ALL
mysqli.default_host | NULL | PHP_INI_ALL
mysqli.default_user | NULL | PHP_INI_ALL
mysqli.default_pw | NULL | PHP_INI_ALL

For further details and definitions of the above PHP_INI_* constants, see the chapter on configuration changes.

A continuación se presenta una corta explicación de las directivas de configuración

mysqli.max_links integer

The maximum number of MySQL connections per process, including persistent connections.

mysqli.default_port string

The default TCP port number to use when connecting to the database server if no other port is specified. If no default is specified, the port will be obtained from the MYSQL_TCP_PORT environment variable, the mysql-tcp entry in /etc/services or the compile-time MYSQL_PORT constant, in that order. Win32 will only use the MYSQL_PORT constant.

mysqli.default_socket string

The default socket name to use when connecting to a local database server if no other socket name is specified.

mysqli.default_host string

The default server host to use when connecting to the database server if no other host is specified. Doesn't apply in safe mode.

mysqli.default_user string

The default user name to use when connecting to the database server if no other name is specified. Doesn't apply in safe mode.

mysqli.default_password string

The default password to use when connecting to the database server if no other password is specified. Doesn't apply in safe mode.

Tipos de recursos

mysqli_link

Represents a connection between PHP and a MySQL database.

mysqli_stmt

Represents a prepared statement.

mysqli_result

Represents the result set obtained from a query against the database.

Constantes predefinidas

Tabla 2. MySQLi Constants

Name | Description
MYSQLI_READ_DEFAULT_GROUP (integer) |
MYSQLI_READ_DEFAULT_FILE (integer) |
MYSQLI_OPT_CONNECT_TIMEOUT (integer) |
MYSQLI_OPT_LOCAL_INFILE (integer) |
MYSQLI_INIT_COMMAND (integer) |
MYSQLI_CLIENT_SSL (integer) |
MYSQLI_CLIENT_COMPRESS (integer) |
MYSQLI_CLIENT_INTERACTIVE (integer) |
MYSQLI_CLIENT_IGNORE_SPACE (integer) |
MYSQLI_CLIENT_NO_SCHEMA (integer) |
MYSQLI_CLIENT_MULTI_QUERIES (integer) |
MYSQLI_STORE_RESULT (integer) |
MYSQLI_USE_RESULT (integer) |
MYSQLI_ASSOC (integer) |
MYSQLI_NUM (integer) |
MYSQLI_BOTH (integer) |
MYSQLI_NOT_NULL_FLAG (integer) |
MYSQLI_PRI_KEY_FLAG (integer) |
MYSQLI_UNIQUE_KEY_FLAG (integer) |
MYSQLI_MULTIPLE_KEY_FLAG (integer) |
MYSQLI_BLOB_FLAG (integer) |
MYSQLI_UNSIGNED_FLAG (integer) |
MYSQLI_ZEROFILL_FLAG (integer) |
MYSQLI_AUTO_INCREMENT_FLAG (integer) |
MYSQLI_TIMESTAMP_FLAG (integer) |
MYSQLI_SET_FLAG (integer) |
MYSQLI_NUM_FLAG (integer) |
MYSQLI_PART_KEY_FLAG (integer) |
MYSQLI_GROUP_FLAG (integer) |
MYSQLI_TYPE_DECIMAL (integer) |
MYSQLI_TYPE_TINY (integer) |
MYSQLI_TYPE_SHORT (integer) |
MYSQLI_TYPE_LONG (integer) |
MYSQLI_TYPE_FLOAD (integer) |
MYSQLI_TYPE_DOUBLE (integer) |
MYSQLI_TYPE_NULL (integer) |
MYSQLI_TYPE_TIMESTAMP (integer) |
MYSQLI_TYPE_LONGLONG (integer) |
MYSQLI_TYPE_INT24 (integer) |
MYSQLI_TYPE_DATE (integer) |
MYSQLI_TYPE_TIME (integer) |
MYSQLI_TYPE_DATETIME (integer) |
MYSQLI_TYPE_YEAR (integer) |
MYSQLI_TYPE_NEWDATE (integer) |
MYSQLI_TYPE_ENUM (integer) |
MYSQLI_TYPE_SET (integer) |
MYSQLI_TYPE_TINY_BLOB (integer) |
MYSQLI_TYPE_MEDIUM_BLOB (integer) |
MYSQLI_TYPE_LONG_BLOB (integer) |
MYSQLI_TYPE_BLOB (integer) |
MYSQLI_TYPE_VAR_STRING (integer) |
MYSQLI_TYPE_STRING (integer) |
MYSQLI_TYPE_CHAR (integer) |
MYSQLI_TYPE_INTERVAL (integer) |
MYSQLI_TYPE_GEOMETRY (integer) |
MYSQLI_BIND_STRING (integer) |
MYSQLI_BIND_INT (integer) |
MYSQLI_BIND_DOUBLE (integer) |
MYSQLI_BIND_SEND_DATA (integer) |
MYSQLI_RPL_MASTER (integer) |
MYSQLI_RPL_SLAVE (integer) |
MYSQLI_RPL_ADMIN (integer) |
MYSQLI_NEED_DATA (integer) |
MYSQLI_NO_DATA (integer) |
MYSQLI_PR_REPORT_STDERR (integer) |
MYSQLI_PR_REPORT_PORT (integer) |
MYSQLI_PR_REPORT_FILE (integer) |
Tabla de contenidos
mysqli_affected_rows -- Gets the number of affected rows in a previous MySQL operation
mysqli_autocommit -- Turns on or off auto-commiting database modifications
mysqli_bind_param -- Binds variables to a prepared statement as parameters
mysqli_bind_result -- Binds variables to a prepared statement for result storage
mysqli_change_user -- Changes the user of the specified database connection
mysqli_character_set_name -- Returns the default character set for the database connection
mysqli_close -- Closes a previously opened database connection
mysqli_commit -- Commits the current transaction
mysqli_connect -- Open a new connection to the MySQL server
mysqli_data_seek -- Adjusts the result pointer to an arbitary row in the result
mysqli_debug -- Performs debugging operations
mysqli_disable_reads_from_master --
mysqli_disable_rpl_parse --
mysqli_dump_debug_info -- Dump debugging information into the log
mysqli_enable_reads_from_master --
mysqli_enable_rpl_parse --
mysqli_errno -- Returns the error code for the most recent function call
mysqli_error -- Returns a string description of the last error
mysqli_execute -- Executes a prepared Query
mysqli_fetch_array -- Fetch a result row as an associative, a numeric array, or both.
mysqli_fetch_assoc -- Fetch a result row as an associative array
mysqli_fetch_field_direct -- Fetch meta-data for a single field
mysqli_fetch_field -- Returns the next field in the result set
mysqli_fetch_fields -- Returns an array of objects representing the fields in a result set
mysqli_fetch_lengths -- Returns the lengths of the columns of the current row in the result set
mysqli_fetch_object -- Returns the current row of a result set as an object
mysqli_fetch_row -- Get a result row as an enumerated array
mysqli_fetch -- Fetch results from a prepared statement into the bound variables
mysqli_field_count -- Returns the number of columns for the most recent query
mysqli_field_seek -- Set result pointer to a specified field offset
mysqli_field_tell -- Get current field offset of a result pointer
mysqli_free_result -- Frees the memory associated with a result
mysqli_get_client_info -- Returns the MySQL client version as a string
mysqli_get_host_info -- Returns a string representing the type of connection used
mysqli_get_proto_info -- Returns the version of the MySQL protocol used
mysqli_get_server_info -- Returns the version of the MySQL server
mysqli_get_server_version -- Returns the version of the MySQL server as an integer
mysqli_info -- Retrieves information about the most recently executed query
mysqli_init -- Initializes MySQLi and returns a resource for use with mysqli_real_connect
mysqli_insert_id -- Returns the auto generated id used in the last query
mysqli_kill -- Asks the server to kill a MySQL thread
mysqli_master_query -- Enforce execution of a query on the master in a master/slave setup
mysqli_num_fields -- Get the number of fields in a result
mysqli_num_rows -- Gets the number of rows in a result
mysqli_options -- set options
mysqli_param_count -- Returns the number of parameter for the given statement
mysqli_ping -- Ping a server connection, or reconnect if there is no connection
mysqli_prepare_result --
mysqli_prepare -- Prepare a SQL statement for execution
mysqli_profiler --
mysqli_query -- Performs a query on the database
mysqli_read_query_result --
mysqli_real_connect -- Opens a connection to a mysql server
mysqli_real_escape_string -- Escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection
mysqli_real_query -- Execute an SQL query
mysqli_reload --
mysqli_rollback --
mysqli_rpl_parse_enabled --
mysqli_rpl_probe --
mysqli_rpl_query_type --
mysqli_select_db -- Selects the default database for database queries
mysqli_send_long_data --
mysqli_send_query --
mysqli_slave_query -- Enforces execution of a query on a slave in a master/slave setup
mysqli_ssl_set --
mysqli_stat -- Gets the current system status
mysqli_stmt_affected_rows --
mysqli_stmt_close -- close statement
mysqli_stmt_errno --
mysqli_stmt_error --
mysqli_stmt_store_result --
mysqli_store_result -- Transfers a result set from the last query
mysqli_thread_id -- Returns the thread ID for the current connection
mysqli_thread_safe -- Returns whether thread safety is given or not
mysqli_use_result -- Initiate a result set retrieval
mysqli_warning_count -- Returns the number of warnings from the last query for the given link

Anterior | Inicio | Siguiente
mysql_unbuffered_query | Subir | mysqli_affected_rows


mysqli_affected_rows

(PHP 5 CVS only)

mysqli_affected_rows -- Gets the number of affected rows in a previous MySQL operation

Description

mixed mysqli_affected_rows ( object link)

mysqli_affected_rows() returns the number of rows affected by the last INSERT, UPDATE, or DELETE query associated with the provided link parameter. If the last query was invalid, this function will return -1.

Nota: When deleting the entire contents of a table (i.e. 'DELETE FROM foo'), this function will not return the number of rows that were actually deleted.

The mysqli_affected_rows() function only works with queries which modify a table. In order to return the number of rows from a SELECT query, use the mysqli_num_rows() function instead.

Ejemplo 1. Delete-Query

Procedural style:

<?php
    /* connect to database */
    $link = mysqli_connect("localhost", "mysql_user", "mysql_password", "mydb") or
        die("Could not connect: " . mysqli_connect_error());

    /* this should return the correct numbers of deleted records */
    mysqli_query($link, "DELETE FROM mytable WHERE id < 10");
    printf ("Records deleted: %2d\n", mysqli_affected_rows($link));

    /* without a where clause in a delete statement, it should return 0 */
    mysqli_query($link, "DELETE FROM mytable");
    printf ("Records deleted: %2d\n", mysqli_affected_rows($link));

    /* close connection */
    mysqli_close($link);
?>

Object oriented style:

<?php
    /* connect to database */
    $mysql = mysqli_connect("localhost", "mysql_user", "mysql_password", "mydb") or
        die("Could not connect: " . mysqli_connect_error());

    /* this should return the correct numbers of deleted records */
    $mysql->query("DELETE FROM mytable WHERE id < 10");
    printf ("Records deleted: %2d\n", $mysql->affected_rows());

    /* without a where clause in a delete statement, it should return 0 */
    $mysql->query("DELETE FROM mytable");
    printf ("Records deleted: %2d\n", $mysql->affected_rows());

    /* close connection */
    $mysql->close();
?>

The above examples would produce the following output:
Records deleted: 10
Records deleted:  0

Ejemplo 2. Update-Query

Procedural style:

<?php
    /* connect to database */
    $link = mysqli_connect("localhost", "mysql_user", "mysql_password", "mydb") or
        die("Could not connect: " . mysqli_connect_error());

    /* Update records */
    mysqli_query($link, "UPDATE mytable SET used=1 WHERE id < 10");
    printf ("Updated records: %d\n", mysqli_affected_rows($link));

    /* close connection */
    mysqli_close($link);
?>

Object oriented style:

<?php
    /* connect to database */
    $mysql = mysqli_connect("localhost", "mysql_user", "mysql_password", "mydb") or
        die("Could not connect: " . mysqli_connect_error());

    /* Update records */
    $mysql->query("UPDATE mytable SET used=1 WHERE id < 10");
    printf ("Updated records: %d\n", $mysql->affected_rows($link));

    /* close connection */
    $mysql->close($link);
?>

The above examples would produce the following output:
Updated Records: 10

See also: mysqli_num_rows(), mysqli_info().

Anterior | Inicio | Siguiente
Improved MySQL Extension | Subir | mysqli_autocommit


mysqli_autocommit

(PHP 5 CVS only)

mysqli_autocommit -- Turns on or off auto-commiting database modifications

Description

bool mysqli_autocommit ( object link, bool mode)

mysqli_autocommit() is used to turn on or off auto-commit mode on queries for the database connection represented by the link resource.

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Nota: mysqli_autocommit() doesn't work with non transactional table types (like MyISAM or ISAM).

To determine the current state of autocommit use the SQL command 'SELECT @@autocommit'.

Ejemplo 1. Using the mysqli_autocommit function

Procedural style:

<?php

    /* Open a connection */
    $link = mysqli_connect("localhost", "user", "pass", "mydb");

    /* Turn on autocommit */
    mysqli_autocommit($link, true);

    /* determine current autocommit status */
    if ($result = mysqli_query($link, "SELECT @@autocommit")) {
        $row = mysqli_fetch_row($result);
        mysqli_free_result($result);
        printf ("Autocommit is %d\n", $row[0]);
    }

    /* close connection */
    mysqli_close($link);
?>

Object oriented style:

<?php

    /* Open a connection */
    $mysql = mysqli_connect("localhost", "user", "pass", "mydb");

    /* Turn on autocommit */
    $mysql->autocommit(true);

    /* determine current autocommit status */
    if ($result = $mysql->query($link, "SELECT @@autocommit")) {
        $row = $result->fetch_row($result);
        printf ("Autocommit is %d\n", $row[0]);
        $result->free();
    }

    /* close connection */
    $mysql->close();
?>

The above examples would produce the following output:
Autocommit is 1

See also mysqli_commit(), mysqli_rollback().

Anterior | Inicio | Siguiente
mysqli_affected_rows | Subir | mysqli_bind_param


mysqli_bind_param

(PHP 5 CVS only)

mysqli_bind_param -- Binds variables to a prepared statement as parameters

Description

bool mysqli_bind_param ( object stmt, array types, mixed var1 [, mixed var2, ...])

mysql_bind_param() is used to bind variables for the parameter markers in the SQL statement that was passed to mysql_prepare(). The array types specifies the types for the diffrent bind variables. Valid array values are MYSQLI_BIND_INT, MYSQLI_BIND_DOUBLE, MYSQLI_BIND_STRING and MYSQLI_SEND_DATA.

Nota: If data size of a variable exceeds max. allowed package size (max_allowed_package), you have to specify MYSQLI_SEND_DATA and use mysqli_send_long_data() to send the data in packages.

The number of variables and array values must match the number of parameters in the statement.

Ejemplo 1. Prepared statements

Procedural style:

<?php
    /* connect to database */
    $link = mysqli_connect("localhost", "mysql_user", "mysql_password", "mydb") or
        die("Could not connect: " . mysqli_connect_error());

    /* create mytable */
    mysqli_query($link, "CREATE TABLE mytable (a int, b int, c varchar(30))");

    /* prepare statement and bind variables for insert statements */
    $stmt = mysqli_prepare($link, "INSERT INTO mytable VALUES (?, ?, ?)");
    mysqli_bind_param($stmt, array(MYSQLI_BIND_INT, MYSQLI_BIND_INT,
                      MYSQLI_BIND_STRING), $a, $b, $c);

    $a = 1;
    $b = 2;
    $c = "I prefer OpenSource software";

    /* execute prepared statement */
    mysqli_execute($stmt);

    /* close statement and connection */
    mysqli_close_stmt(stmt);
    mysqli_close(link);

?>

Object oriented style:

<?php
    /* connect to database */
    $mysql = mysqli_connect("localhost", "mysql_user", "mysql_password", "mydb") or
        die("Could not connect: " . mysqli_connect_error());

    /* create mytable */
    $mysql->query("CREATE TABLE mytable (a int, b int, c varchar(30))");

    /* prepare statement and bind parameters */
    $stmt = $mysql->prepare("INSERT INTO mytable VALUES (?, ?, ?)");
    $stmt->bind_param(array(MYSQLI_BIND_INT, MYSQLI_BIND_INT,
                      MYSQLI_BIND_STRING), $a, $b, $c);

    $a = 1;
    $b = 2;
    $c = "I prefer opensource software";

    /* execute prepared statement */
    $stmt->execute();

    /* close statement and connection */
    $stmt->close();
    $mysql->close();
?>

See also: mysqli_bind_result(),
mysqli_execute(),
mysqli_fetch()

mysqli_prepare()
mysqli_send_long_data()

Anterior | Inicio | Siguiente
mysqli_autocommit | Subir | mysqli_bind_result


mysqli_bind_result

(PHP 5 CVS only)

mysqli_bind_result -- Binds variables to a prepared statement for result storage

Description

bool mysqli_bind_result ( resource stmt, mixed var, int len)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mysqli_bind_param | Subir | mysqli_change_user


mysqli_change_user

(PHP 5 CVS only)

mysqli_change_user -- Changes the user of the specified database connection

Description

bool mysqli_change_user ( resource link, string user, string password, string database)

mysqli_change_user() is used to change the user of the specified database connection as given by the link parameter and to set the current database to that specified by the database parameter.

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

If desired, the NULL value may be passed in place of the database parameter resulting in only changing the user and not selecting a database. To select a database in this case use the mysqli_select_db() function.

In order to successfully change users a valid username and password parameters must be provided and that user must have sufficient permissions to access the desired database. If for any reason authorization fails, the current user authentication will remain.

Nota: Using this command will always cause the current database connection to behave as if was a completely new database connection, regardless of if the operation was completed successfully. This reset includes performing a rollback on any active transactions, closing all temporary tables, and unlocking all locked tables.

Ejemplo 1. Using the mysqli_change_user function

<?php

    /* Open a connection as foo@localhost and select foo_db */
    $link = mysqli_connect("localhost", "foo", "pass");
    mysqli_select_db("foo_db");

    /* Change user to bar@localhost and default database to bar_db */
    mysqli_change_user($link, "bar", "otherpass", "bar_db");

?>

Anterior | Inicio | Siguiente
mysqli_bind_result | Subir | mysqli_character_set_name


mysqli_character_set_name

(PHP 5 CVS only)

mysqli_character_set_name -- Returns the default character set for the database connection

Description

string mysqli_character_set_name ( resource link)

Returns the current character set for the database connection specified by the link parameter.

Ejemplo 1. Using the mysqli_character_set_name function

<?php

    /* Open a connection */
    $link = mysqli_connect("localhost", "username", "password");

    /* Print current character set */
    $charset = mysqli_character_set_name($link);
    printf ("Current character set is %s\n",$charset);

?>

See also mysqli_real_escape_string().

Anterior | Inicio | Siguiente
mysqli_change_user | Subir | mysqli_close


mysqli_close

(PHP 5 CVS only)

mysqli_close -- Closes a previously opened database connection

Description

bool mysqli_close ( resource link)

The mysqli_close() function closes a previously opened database connection specified by the link parameter.

See also mysqli_connect() and mysqli_real_connect().

Anterior | Inicio | Siguiente
mysqli_character_set_name | Subir | mysqli_commit


mysqli_commit

(PHP 5 CVS only)

mysqli_commit -- Commits the current transaction

Description

bool mysqli_commit ( resource link)

Commits the current transaction for the database specified by the link parameter.

See also mysqli_autocommit(), mysqli_rollback().

Anterior | Inicio | Siguiente
mysqli_close | Subir | mysqli_connect


mysqli_connect

(PHP 5 CVS only)

mysqli_connect -- Open a new connection to the MySQL server

Description

resource mysqli_connect ( [string hostname [, string username [, string passwd [, string dbname [, int port [, string socket]]]]]])

The mysqli_connect() function attempts to open a connection to the MySQL Server running on host which can be either a hostname or an IP address. Passing the NULL value or the string "localhost" to this parameter, the local host is assumed. When possible, pipes will be used instead of the TCP/IP protocol. If successful, the mysqli_connect() will return a resource representing the connection to the database, or FALSE on failure.

The username and password parameters specify the username and password under which to connect to the MySQL server. If the password is not provided (the NULL value is passed), the MySQL server will attempt to authenticate the user against those user records which have no password only. This allows one username to be used with different permissions (depending on if a password as provided or not).

The dbname parameter if provided will specify the default database to be used when performing queries.

The port and socket parameters are used in conjunction with the hostname parameter to further control how to connect to the database server. The port parameter specifies the port number to attempt to connect to the MySQL server on, while the socket parameter specifies the socket or named pipe that should be used.

Nota: Specifying the socket parameter will not explicitly determine the type of connection to be used when connecting to the MySQL server. How the connection is made to the MySQL database is determined by the host parameter.

Ejemplo 1. Using the mysqli_connect function

<?php

/* Open a connection as foo@localhost and make bar the default database */
$link = mysqli_connect("localhost", "foo", "password", "bar");

?>

See also mysqli_close() and mysqli_real_connect().

Anterior | Inicio | Siguiente
mysqli_commit | Subir | mysqli_data_seek


mysqli_data_seek

(PHP 5 CVS only)

mysqli_data_seek -- Adjusts the result pointer to an arbitary row in the result

Description

void mysqli_data_seek ( resource result, int offset)

The mysqli_data_seek() function seeks to an arbitrary result pointer specified by the offset in the result set represented by result. The offset parameter must be between zero and the total number of rows minus one (0..mysqli_num_rows() - 1).

Nota: This function can only be used with results attained from the use of the mysqli_store_result() function.

Ejemplo 1. Using the mysqli_data_seek function

<?php

    /* Open a connection */
    $link = mysqli_connect("localhost", "username", "password");
    mysqli_select_db("mydb");

    /* Get some rows and store them */
    $query = "SELECT DINSTINCT name FROM employee ORDER BY name";
    $result = mysqli_query($query) or die(mysqli_error());

    $rows = mysqli_store_result($result);

    $total = mysqli_num_fields($rows);

    if ($total > 0) { // there is at least one row
        /* Get the last employee */
        mysqli_data_seek($rows, mysqli_num_rows($result) -1);
        $employee = mysqli_fetch_row($rows);
        printf ("Employee name : %s\n", $employee[0]);
    }

    mysqli_free_result($rows);

?>

See also
mysqli_store_result(),
mysqli_fetch_row() and
mysqli_num_rows().

Anterior | Inicio | Siguiente
mysqli_connect | Subir | mysqli_debug


mysqli_debug

(PHP 5 CVS only)

mysqli_debug -- Performs debugging operations

Description

void mysqli_debug ( string debug)

The mysqli_debug() function is used to perform debugging operations using the Fred Fish debugging library. The debug parameter is a string representing the debugging operation to perform.

Ejemplo 1. Generating a Trace File

<?php

    /* Create a trace file in '/tmp/client.trace' on the local (client) machine: */
    mysqli_debug("d:t:0,/tmp/client.trace");

?>

Anterior | Inicio | Siguiente
mysqli_data_seek | Subir | mysqli_disable_reads_from_master


mysqli_disable_reads_from_master

(PHP 5 CVS only)

mysqli_disable_reads_from_master --

Description

void mysqli_disable_reads_from_master ( resource link)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mysqli_debug | Subir | mysqli_disable_rpl_parse


mysqli_disable_rpl_parse

(PHP 5 CVS only)

mysqli_disable_rpl_parse --

Description

void mysqli_disable_rpl_parse ( resource link)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mysqli_disable_reads_from_master | Subir | mysqli_dump_debug_info


mysqli_dump_debug_info

(PHP 5 CVS only)

mysqli_dump_debug_info -- Dump debugging information into the log

Description

bool mysqli_dump_debug_info ( resource link)

This function is designed to be executed by an user with the SUPER privlege and is used to dump debugging information into the log for the MySQL Server relating to the connection specified by the link parameter.

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Anterior | Inicio | Siguiente
mysqli_disable_rpl_parse | Subir | mysqli_enable_reads_from_master


mysqli_enable_reads_from_master

(PHP 5 CVS only)

mysqli_enable_reads_from_master --

Description

void mysqli_enable_reads_from_master ( resource link)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mysqli_dump_debug_info | Subir | mysqli_enable_rpl_parse


mysqli_enable_rpl_parse

(PHP 5 CVS only)

mysqli_enable_rpl_parse --

Description

void mysqli_enable_rpl_parse ( resource link)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mysqli_enable_reads_from_master | Subir | mysqli_errno


mysqli_errno

(PHP 5 CVS only)

mysqli_errno -- Returns the error code for the most recent function call

Description

int mysqli_errno ( resource link)

The mysqli_errno() function will return the last error code for the most recent MySQLi function call that can succeed or fail with respect to the database link defined by the link parameter. If no errors have occured, this function will return zero.

Nota: A complete list of the error codes and their meanings can be found in the constants section of the MySQLi documentation

See also mysqli_error().

Anterior | Inicio | Siguiente
mysqli_enable_rpl_parse | Subir | mysqli_error


mysqli_error

(PHP 5 CVS only)

mysqli_error -- Returns a string description of the last error

Description

string mysqli_error ( resource link)

The mysqli_error() function is identical to the corresponding mysqli_errno() function in every way, except instead of returning an integer error code the mysqli_error() function will return a string representation of the last error to occur for the database connection represented by the link parameter. If no error has occured, this function will return an empty string.

Ejemplo 1. Using the mysqli_error function

<?php

    /* Fail to open a connection */
    $host = "no_such_host";
    $link = mysqli_connect($host, "username", "password") or
            die("Couldn't connect : " . mysqli_error());

?>

See also mysqli_errno().

Anterior | Inicio | Siguiente
mysqli_errno | Subir | mysqli_execute


mysqli_execute

(PHP 5 CVS only)

mysqli_execute -- Executes a prepared Query

Description

int mysqli_execute ( resource stmt)

The mysqli_execute() function executes a query that has been previously prepared using the mysqli_prepare() function represented by the stmt resource. When executed any parameter markers which exist will automatically be replaced with the appropiate data.

If the statement is UPDATE, DELETE, or INSERT, the total number of affected rows can be determined by using the mysqli_stmt_affected_rows() function. Likewise, if the query yields a result set the mysqli_fetch() function is used.

Nota: When using mysqli_execute(), the mysqli_fetch() function must be used to fetch the data prior to preforming any additional queries.

Ejemplo 1. Using the mysqli_execute function

<?php

    /* Open a connection */
    $link = mysqli_connect("localhost", "user", "pass");
    mysqli_select_db("mydb");

    /* Turn on autocommit */
    mysqli_autocommit($link, true);

    /* Prepare an insert statement */
    $query = "INSERT INTO mytable VALUES(?, ?)";
    $stmt = mysqli_prepare($link, $query);

    $value_one = "hello";
    $value_two = "world";

    mysqli_bind_param($link, $value_one, $value_two);

    /* Execute the statement */
    mysqli_execute($stmt);

    /* Return the affected rows for the statement */
    $affected_rows = mysqli_stmt_affected_rows($stmt);

    /* Close the statement */

    mysqli_stmt_close($stmt);

    echo "The total affected rows was $affected_rows";

?>

See also mysqli_prepare() and mysqli_bind_param().

Anterior | Inicio | Siguiente
mysqli_error | Subir | mysqli_fetch_array


mysqli_fetch_array

(PHP 5 CVS only)

mysqli_fetch_array -- Fetch a result row as an associative, a numeric array, or both.

Description

array mysqli_fetch_array ( resource result [, int resulttype])

Returns an array that corresponds to the fetched row or FALSE if there are no more rows for the database connection represented by the link parameter.

mysqli_fetch_array() is an extended version of the mysqli_fetch_row() function. In addition to storing the data in the numeric indices of the result array, the mysqli_fetch_array() function can also store the data in associative indices, using the field names of the result set as keys.

Nota: Los nombres de campos retornados por esta función diferencian entre mayusculas y minusculas.

If two or more columns of the result have the same field names, the last column will take precedence and overwrite the earlier data. In order to access multiple columns with the same name, the numerically indexed version of the row must be used.

The optional second argument result_type is a constant indicating what type of array should be produced from the current row data. The possible values for this parameter are the constants MYSQLI_ASSOC, MYSQLI_NUM, or MYSQLI_BOTH. By default the mysqli_fetch_array() function will assume MYSQLI_BOTH for this parameter.

By using the MYSQLI_ASSOC constant this function will behave identically to the mysqli_fetch_assoc(), while MYSQLI_NUM will behave identically to the mysqli_fetch_row() function. The final option MYSQLI_BOTH will create a single array with the attributes of both.

Ejemplo 1. mysqli_fetch_array with MYSQLI_NUM

<?php
    mysqli_connect("localhost", "mysql_user", "mysql_password") or
        die("Could not connect: " . mysqli_error());
    mysqli_select_db("mydb");

    $result = mysqli_query("SELECT id, name FROM mytable");

    while ($row = mysqli_fetch_array($result, MYSQLI_NUM)) {
        printf ("ID: %s  Name: %s", $row[0], $row[1]);
    }

    mysqli_free_result($result);
?>

Ejemplo 2. mysqli_fetch_array with MYSQLI_ASSOC

<?php
    mysqli_connect("localhost", "mysql_user", "mysql_password") or
        die("Could not connect: " . mysqli_error());
    mysqli_select_db("mydb");

    $result = mysqli_query("SELECT id, name FROM mytable");

    while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
        printf ("ID: %s  Name: %s", $row["id"], $row["name"]);
    }

    mysqli_free_result($result);
?>

Ejemplo 3. mysqli_fetch_array with MYSQLI_BOTH

<?php
    mysqli_connect("localhost", "mysql_user", "mysql_password") or
        die("Could not connect: " . mysqli_error());
    mysqli_select_db("mydb");

    $result = mysqli_query("SELECT id, name FROM mytable");

    while ($row = mysqli_fetch_array($result, MYSQLI_BOTH)) {
        printf ("ID: %s  Name: %s", $row[0], $row["name"]);
    }

    mysqli_free_result($result);
?>

See also mysqli_fetch_assoc(),
mysqli_fetch_row() and
mysqli_fetch_object().

Anterior | Inicio | Siguiente
mysqli_execute | Subir | mysqli_fetch_assoc


mysqli_fetch_assoc

(PHP 5 CVS only)

mysqli_fetch_assoc -- Fetch a result row as an associative array

Description

array mysqli_fetch_assoc ( resource result)

Returns an associative array that corresponds to the fetched row or FALSE if there are no more rows.

The mysqli_fetch_assoc() function is used to return an associative array representing the next row in the result set for the result represented by the result parameter, where each key in the array represents the name of one of the result set's columns.

If two or more columns in the result set have the same column name, the associative array returned by the mysqli_fetch_assoc() function will contain the value of the last column of that name. If you must work with result sets with this properity, the mysqli_fetch_row() should be used which returns an numerically-indexed array instead.

Nota: Los nombres de campos retornados por esta función diferencian entre mayusculas y minusculas.

Ejemplo 1. An expanded mysqli_fetch_assoc() example

<?php

    $conn = mysqli_connect("localhost", "mysql_user", "mysql_password");

    if (!$conn) {
        echo "Unable to connect to DB: " . mysqli_error();
        exit;
    }

    if (!mysqli_select_db("mydbname")) {
        echo "Unable to select mydbname: " . mysqli_error();
        exit;
    }

    $sql = "SELECT id as userid, fullname, userstatus
            FROM   sometable
            WHERE  userstatus = 1";

    $result = mysqli_query($sql);

    if (!$result) {
        echo "Could not successfully run query ($sql) from DB: " . mysqli_error();
        exit;
    }

    if (mysqli_num_rows($result) == 0) {
        echo "No rows found, nothing to print so am exiting";
        exit;
    }

    // While a row of data exists, put that row in $row as an associative array
    // Note: If you're expecting just one row, no need to use a loop
    // Note: If you put extract($row); inside the following loop, you'll
    //       then create $userid, $fullname, and $userstatus
    while ($row = mysqli_fetch_assoc($result)) {
        echo $row["userid"];
        echo $row["fullname"];
        echo $row["userstatus"];
    }

    mysqli_free_result($result);

?>

See also mysqli_fetch_array(),
mysqli_fetch_row() and
mysqli_fetch_object().

Anterior | Inicio | Siguiente
mysqli_fetch_array | Subir | mysqli_fetch_field_direct


mysqli_fetch_field_direct

(PHP 5 CVS only)

mysqli_fetch_field_direct -- Fetch meta-data for a single field

Description

int mysqli_fetch_field_direct ( resource result, int offset)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mysqli_fetch_assoc | Subir | mysqli_fetch_field


mysqli_fetch_field

(PHP 5 CVS only)

mysqli_fetch_field -- Returns the next field in the result set

Description

object mysqli_fetch_field ( resource result)

The mysqli_fetch_field() function is used to return the attributes of the next column in the result set represented by the result parameter as an object. When executed this function will return an object containing the attributes of the current column or FALSE if there are no more columns in the result set.

Tabla 1. Object attributes

Attribute | Description
name | The name of the column
orgname | ?
table | The name of the table this field belongs to (if not calculated)
orgtable | ?
def | The default value for this field, represented as a string
max_length | The maximum width of the field for the result set.
flags | An integer representing the bit-flags for the field.
type | The data type used for this field
decimals | The number of decimals used (for integer fields)

Anterior | Inicio | Siguiente
mysqli_fetch_field_direct | Subir | mysqli_fetch_fields


mysqli_fetch_fields

(PHP 5 CVS only)

mysqli_fetch_fields -- Returns an array of objects representing the fields in a result set

Description

array mysqli_fetch_fields ( resource result)

This function serves an identical purpose to the mysqli_fetch_field() function with the single difference that, instead of returning one object at a time for each field, the columns are returned as an array of objects. For a description of the attributes of each object and their meaning, see the mysqli_fetch_field() function.

Anterior | Inicio | Siguiente
mysqli_fetch_field | Subir | mysqli_fetch_lengths


mysqli_fetch_lengths

(PHP 5 CVS only)

mysqli_fetch_lengths -- Returns the lengths of the columns of the current row in the result set

Description

array mysqli_fetch_lengths ( resource result)

The mysqli_fetch_lengths() function returns an array containing the lengths of every column of the current row within the result set represented by the result parameter. If successful, a numerically indexed array representing the lengths of each column is returned or FALSE on failure.

Anterior | Inicio | Siguiente
mysqli_fetch_fields | Subir | mysqli_fetch_object


mysqli_fetch_object

(PHP 5 CVS only)

mysqli_fetch_object -- Returns the current row of a result set as an object

Description

object mysqli_fetch_object ( resource result)

The mysqli_fetch_object() will return the current row result set as an object where the attributes of the object represent the names of the fields found within the result set. If no more rows exist in the current result set, FALSE is returned.

Nota: Los nombres de campos retornados por esta función diferencian entre mayusculas y minusculas.

See also mysqli_fetch_array(),
mysqli_fetch_assoc() and
mysqli_fetch_row().

Anterior | Inicio | Siguiente
mysqli_fetch_lengths | Subir | mysqli_fetch_row


mysqli_fetch_row

(PHP 5 CVS only)

mysqli_fetch_row -- Get a result row as an enumerated array

Description

array mysqli_fetch_row ( resource result)

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

mysqli_fetch_row() fetches one row of data from the result set represented by result and returns it as an enumerated array, where each column is stored in an array offset starting from 0 (zero). Each subsequent call to the mysqli_fetch_row() function will return the next row within the result set, or FALSE if there are no more rows.

See also mysqli_fetch_array(),
mysqli_fetch_assoc() and
mysqli_fetch_object().

Anterior | Inicio | Siguiente
mysqli_fetch_object | Subir | mysqli_fetch


mysqli_fetch

(PHP 5 CVS only)

mysqli_fetch -- Fetch results from a prepared statement into the bound variables

Description

int mysqli_fetch ( resource stmt)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mysqli_fetch_row | Subir | mysqli_field_count


mysqli_field_count

(PHP 5 CVS only)

mysqli_field_count -- Returns the number of columns for the most recent query

Description

int mysqli_field_count ( resource link)

Returns the number of columns for the most recent query on the connection represented by the link parameter. This function can be useful when using the mysqli_store_result() function to determine if the query should have produced a non-empty result set or not without knowing the nature of the query.

Anterior | Inicio | Siguiente
mysqli_fetch | Subir | mysqli_field_seek


mysqli_field_seek

(PHP 5 CVS only)

mysqli_field_seek -- Set result pointer to a specified field offset

Description

int mysqli_field_seek ( resource link, int fieldnr)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mysqli_field_count | Subir | mysqli_field_tell


mysqli_field_tell

(PHP 5 CVS only)

mysqli_field_tell -- Get current field offset of a result pointer

Description

int mysqli_field_tell ( resource result)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mysqli_field_seek | Subir | mysqli_free_result


mysqli_free_result

(PHP 5 CVS only)

mysqli_free_result -- Frees the memory associated with a result

Description

int mysqli_free_result ( resource result)

The mysqli_free_result() function frees the memory associated with the result represented by the result parameter.

Anterior | Inicio | Siguiente
mysqli_field_tell | Subir | mysqli_get_client_info


mysqli_get_client_info

(PHP 5 CVS only)

mysqli_get_client_info -- Returns the MySQL client version as a string

Description

string mysqli_get_client_info ( void )

The mysqli_get_client_info() function is used to return a string representing the client version being used in the MySQLi extension.

Anterior | Inicio | Siguiente
mysqli_free_result | Subir | mysqli_get_host_info


mysqli_get_host_info

(PHP 5 CVS only)

mysqli_get_host_info -- Returns a string representing the type of connection used

Description

string mysqli_get_host_info ( resource link)

The mysqli_get_host_info() function returns a string describing the connection represented by the link parameter is using (including the server host name).

Anterior | Inicio | Siguiente
mysqli_get_client_info | Subir | mysqli_get_proto_info


mysqli_get_proto_info

(PHP 5 CVS only)

mysqli_get_proto_info -- Returns the version of the MySQL protocol used

Description

int mysqli_get_proto_info ( resource link)

Returns an integer representing the MySQL protocol version used by the connection represented by the link parameter.

Anterior | Inicio | Siguiente
mysqli_get_host_info | Subir | mysqli_get_server_info


mysqli_get_server_info

(PHP 5 CVS only)

mysqli_get_server_info -- Returns the version of the MySQL server

Description

string mysqli_get_server_info ( resource link)

Returns a string representing the version of the MySQL server that the MySQLi extension is connected to (represented by the link parameter).

Anterior | Inicio | Siguiente
mysqli_get_proto_info | Subir | mysqli_get_server_version


mysqli_get_server_version

(PHP 5 CVS only)

mysqli_get_server_version -- Returns the version of the MySQL server as an integer

Description

int mysqli_get_server_version ( resource link)

The mysqli_get_server_version() function returns the version of the server connected to (represented by the link parameter) as an integer. The form of this version number is main_version * 10000 + minor_version * 100 + sub_version (i.e. version 4.1.0 is 40100).

Anterior | Inicio | Siguiente
mysqli_get_server_info | Subir | mysqli_info


mysqli_info

(PHP 5 CVS only)

mysqli_info -- Retrieves information about the most recently executed query

Description

string mysqli_info ( resource link)

The mysqli_info() function returns a string providing information about the last query executed. The nature of this string is provided below:

Tabla 1. Possible mysqli_info return values

Query type | Example result string
INSERT INTO...SELECT... | Records: 100 Duplicates: 0 Warnings: 0
INSERT INTO...VALUES (...),(...),(...) | Records: 3 Duplicates: 0 Warnings: 0
LOAD DATA INFILE ... | Records: 1 Deleted: 0 Skipped: 0 Warnings: 0
ALTER TABLE ... | Records: 3 Duplicates: 0 Warnings: 0
UPDATE ... | Rows matched: 40 Changed: 40 Warnings: 0

Nota: Queries which do not fall into one of the above formats are not supported. In these situations, mysqli_info() will return FALSE

Anterior | Inicio | Siguiente
mysqli_get_server_version | Subir | mysqli_init


mysqli_init

(PHP 5 CVS only)

mysqli_init -- Initializes MySQLi and returns a resource for use with mysqli_real_connect

Description

resource mysqli_init ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mysqli_info | Subir | mysqli_insert_id


mysqli_insert_id

(PHP 5 CVS only)

mysqli_insert_id -- Returns the auto generated id used in the last query

Description

mixed mysqli_insert_id ( resource link)

The mysqli_insert_id() function returns the ID generated by a query on a table with a column having the AUTO_INCREMENT attribute. If the last query wasn't an INSERT or UPDATE statement or if the modified table does not have a column with the AUTO_INCREMENT attribute, this function will return zero.

Nota: Performing an INSERT or UPDATE statement using the LAST_INSERT_ID() function will also modify the value returned by the mysqli_insert_id() function.

Anterior | Inicio | Siguiente
mysqli_init | Subir | mysqli_kill


mysqli_kill

(PHP 5 CVS only)

mysqli_kill -- Asks the server to kill a MySQL thread

Description

bool mysqli_kill ( resource link, int processid)

This function is used to ask the server to kill a MySQL thread specified by the processid parameter. This value must be retrieved by calling the mysqli_thread_id() function.

Anterior | Inicio | Siguiente
mysqli_insert_id | Subir | mysqli_master_query


mysqli_master_query

(PHP 5 CVS only)

mysqli_master_query -- Enforce execution of a query on the master in a master/slave setup

Description

bool mysqli_master_query ( resource link, string query)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mysqli_kill | Subir | mysqli_num_fields


mysqli_num_fields

(PHP 5 CVS only)

mysqli_num_fields -- Get the number of fields in a result

Description

int mysqli_num_fields ( resource result)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mysqli_master_query | Subir | mysqli_num_rows


mysqli_num_rows

(PHP 5 CVS only)

mysqli_num_rows -- Gets the number of rows in a result

Description

int mysqli_num_rows ( resource result)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mysqli_num_fields | Subir | mysqli_options


mysqli_options

(PHP 5 CVS only)

mysqli_options -- set options

Description

bool mysqli_options ( resource link, int flags, mixed values)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mysqli_num_rows | Subir | mysqli_param_count


mysqli_param_count

(PHP 5 CVS only)

mysqli_param_count -- Returns the number of parameter for the given statement

Description

int mysqli_param_count ( resource stmt)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mysqli_options | Subir | mysqli_ping


mysqli_ping

(PHP 5 CVS only)

mysqli_ping -- Ping a server connection, or reconnect if there is no connection

Description

int mysqli_ping ( resource link)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mysqli_param_count | Subir | mysqli_prepare_result


mysqli_prepare_result

(PHP 5 CVS only)

mysqli_prepare_result --

Description

resource mysqli_prepare_result ( resource stmt)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mysqli_ping | Subir | mysqli_prepare


mysqli_prepare

(PHP 5 CVS only)

mysqli_prepare -- Prepare a SQL statement for execution

Description

resource mysqli_prepare ( resource link, string query)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mysqli_prepare_result | Subir | mysqli_profiler


mysqli_profiler

(PHP 5 CVS only)

mysqli_profiler --

Description

bool mysqli_profiler ( int flags, string info, int port)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mysqli_prepare | Subir | mysqli_query


mysqli_query

(PHP 5 CVS only)

mysqli_query -- Performs a query on the database

Description

resource mysqli_query ( resource link, string query [, int resultmode])

The mysqli_query() function is used to simplify the act of performing a query against the database represented by the link parameter. Functionally, using this function is identical to calling mysqli_real_query() followed either by mysqli_use_result() or mysqli_store_result() where query is the query string itself and resultmode is either the constant MYSQLI_USE_RESULT or MYSQLI_STORE_RESULT depending on the desired behavior. By default, if the resultmode is not provided MYSQLI_STORE_RESULT is used.

Anterior | Inicio | Siguiente
mysqli_profiler | Subir | mysqli_read_query_result


mysqli_read_query_result

(PHP 5 CVS only)

mysqli_read_query_result --

Description

bool mysqli_read_query_result ( resource link)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mysqli_query | Subir | mysqli_real_connect


mysqli_real_connect

(PHP 5 CVS only)

mysqli_real_connect -- Opens a connection to a mysql server

Description

bool mysqli_real_connect ( resource link [, string hostname [, string username [, string passwd [, string dbname [, int port [, string socket]]]]]])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

See also mysqli_connect() and mysqli_close().

Anterior | Inicio | Siguiente
mysqli_read_query_result | Subir | mysqli_real_escape_string


mysqli_real_escape_string

(PHP 5 CVS only)

mysqli_real_escape_string -- Escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection

Description

string mysqli_real_escape_string ( resource link, string escapestr)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

See also mysqli_character_set_name().

Anterior | Inicio | Siguiente
mysqli_real_connect | Subir | mysqli_real_query


mysqli_real_query

(PHP 5 CVS only)

mysqli_real_query -- Execute an SQL query

Description

bool mysqli_real_query ( resource link, string query)

The mysqli_real_query() function is used to execute only a query against the database represented by the link whose result can then be retrieved or stored using the mysqli_store_result() or mysqli_use_result() functions.

Nota: In order to determine if a given query should return a result set or not, see mysqli_field_count().

Anterior | Inicio | Siguiente
mysqli_real_escape_string | Subir | mysqli_reload


mysqli_reload

(PHP 5 CVS only)

mysqli_reload --

Description

bool mysqli_reload ( resource link)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mysqli_real_query | Subir | mysqli_rollback


mysqli_rollback

(PHP 5 CVS only)

mysqli_rollback --

Description

bool mysqli_rollback ( resource link)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mysqli_reload | Subir | mysqli_rpl_parse_enabled


mysqli_rpl_parse_enabled

(PHP 5 CVS only)

mysqli_rpl_parse_enabled --

Description

int mysqli_rpl_parse_enabled ( resource link)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mysqli_rollback | Subir | mysqli_rpl_probe


mysqli_rpl_probe

(PHP 5 CVS only)

mysqli_rpl_probe --

Description

bool mysqli_rpl_probe ( resource link)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mysqli_rpl_parse_enabled | Subir | mysqli_rpl_query_type


mysqli_rpl_query_type

(PHP 5 CVS only)

mysqli_rpl_query_type --

Description

int mysqli_rpl_query_type ( string query)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mysqli_rpl_probe | Subir | mysqli_select_db


mysqli_select_db

(PHP 5 CVS only)

mysqli_select_db -- Selects the default database for database queries

Description

bool mysqli_select_db ( resource link, string dbname)

The mysqli_select_db() function selects the default database (specified by the dbname parameter) to be used when performing queries against the database connection represented by the link parameter.

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Anterior | Inicio | Siguiente
mysqli_rpl_query_type | Subir | mysqli_send_long_data


mysqli_send_long_data

(PHP 5 CVS only)

mysqli_send_long_data --

Description

bool mysqli_send_long_data ( resource stmt, int param_nr, string data)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mysqli_select_db | Subir | mysqli_send_query


mysqli_send_query

(PHP 5 CVS only)

mysqli_send_query --

Description

bool mysqli_send_query ( resource link, string query)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mysqli_send_long_data | Subir | mysqli_slave_query


mysqli_slave_query

(PHP 5 CVS only)

mysqli_slave_query -- Enforces execution of a query on a slave in a master/slave setup

Description

bool mysqli_slave_query ( resource link, string query)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mysqli_send_query | Subir | mysqli_ssl_set


mysqli_ssl_set

(PHP 5 CVS only)

mysqli_ssl_set --

Description

string mysqli_ssl_set ( resource link [, string key [, string cert [, string ca [, string capath [, string cipher]]]]])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mysqli_slave_query | Subir | mysqli_stat


mysqli_stat

(PHP 5 CVS only)

mysqli_stat -- Gets the current system status

Description

string mysqli_stat ( resource link)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mysqli_ssl_set | Subir | mysqli_stmt_affected_rows


mysqli_stmt_affected_rows

(PHP 5 CVS only)

mysqli_stmt_affected_rows --

Description

mixed mysqli_stmt_affected_rows ( object stmt)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mysqli_stat | Subir | mysqli_stmt_close


mysqli_stmt_close

(PHP 5 CVS only)

mysqli_stmt_close -- close statement

Description

bool mysqli_stmt_close ( resource stmt)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mysqli_stmt_affected_rows | Subir | mysqli_stmt_errno


mysqli_stmt_errno

(PHP 5 CVS only)

mysqli_stmt_errno --

Description

int mysqli_stmt_errno ( resource stmt)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mysqli_stmt_close | Subir | mysqli_stmt_error


mysqli_stmt_error

(PHP 5 CVS only)

mysqli_stmt_error --

Description

string mysqli_stmt_error ( resource stmt)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mysqli_stmt_errno | Subir | mysqli_stmt_store_result


mysqli_stmt_store_result

(PHP 5 CVS only)

mysqli_stmt_store_result --

Description

resource mysqli_stmt_store_result ( resource stmt)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mysqli_stmt_error | Subir | mysqli_store_result


mysqli_store_result

(PHP 5 CVS only)

mysqli_store_result -- Transfers a result set from the last query

Description

resource mysqli_store_result ( resource link)

Transfers the result set from the last query on the database connection represented by the link parameter to be used with the mysqli_data_seek() function.

Nota: Although it is always good practice to free the memory used by the result of a query using the mysqli_free_result() function, when transfering large result sets using the mysqli_store_result() this becomes particularly important.

Anterior | Inicio | Siguiente
mysqli_stmt_store_result | Subir | mysqli_thread_id


mysqli_thread_id

(PHP 5 CVS only)

mysqli_thread_id -- Returns the thread ID for the current connection

Description

int mysqli_thread_id ( resource link)

The mysqli_thread_id() function returns the thread ID for the current connection which can then be killed using the mysqli_kill() function.

Nota: The thread ID is assigned on a connection-by-connection basis. Hence, if the connection is broken and then re-established a new thread ID will be assigned.

Anterior | Inicio | Siguiente
mysqli_store_result | Subir | mysqli_thread_safe


mysqli_thread_safe

(PHP 5 CVS only)

mysqli_thread_safe -- Returns whether thread safety is given or not

Description

bool mysqli_thread_safe ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
mysqli_thread_id | Subir | mysqli_use_result


mysqli_use_result

(PHP 5 CVS only)

mysqli_use_result -- Initiate a result set retrieval

Description

resource mysqli_use_result ( resource link)

mysqli_use_result() is used to initiate the retrieval of a result set from the last query executed using the mysqli_real_query() function on the database connection specified by the link parameter. Either this or the mysqli_store_result() function must be called before the results of a query can be retrieved, and one or the other must be called to prevent the next query on that database connection from failing.

Nota: The mysqli_use_result() function does not transfer the entire result set from the database and hence cannot be used functions such as mysqli_data_seek() to move to a particular row within the set. To use this functionality, the result set must be stored using mysqli_store_result()

See also mysqli_real_query() and mysqli_store_result().

Anterior | Inicio | Siguiente
mysqli_thread_safe | Subir | mysqli_warning_count


mysqli_warning_count

(PHP 5 CVS only)

mysqli_warning_count -- Returns the number of warnings from the last query for the given link

Description

resource mysqli_warning_count ( resource link)

mysqli_warning_count() returns the number of warnings from the last query in the connection represented by the link parameter.

Anterior | Inicio | Siguiente
mysqli_use_result | Subir | Mohawk Software session handler functions


Mohawk Software session handler functions

Manual de PHP
Anterior Siguiente

LXV. Mohawk Software session handler functions

Introducción

msession is an interface to a high speed session daemon which can run either locally or remotely. It is designed to provide consistent session management for a PHP web farm. More Information about msession and the session server software itself can be found at http://devel.mohawksoft.com/msession.html.

Nota: Esta extensión no está disponible en plataformas Windows

Requerimientos

Instalación

To enable Msession support configure PHP --with-msession[=DIR], where DIR is the Msession install directory.

Configuración en tiempo de ejecución

Tipos de recursos

Constantes predefinidas

Tabla de contenidos
msession_connect -- Connect to msession server
msession_count -- Get session count
msession_create -- Create a session
msession_destroy -- Destroy a session
msession_disconnect -- Close connection to msession server
msession_find -- Find value
msession_get_array -- Get array of ... ?
msession_get -- Get value from session
msession_getdata -- Get data ... ?
msession_inc -- Increment value in session
msession_list -- List ... ?
msession_listvar -- List sessions with variable
msession_lock -- Lock a session
msession_plugin -- Call an escape function within the msession personality plugin
msession_randstr -- Get random string
msession_set_array -- Set array of ...
msession_set -- Set value in session
msession_setdata -- Set data ... ?
msession_timeout -- Set/get session timeout
msession_uniq -- Get uniq id
msession_unlock -- Unlock a session

Anterior | Inicio | Siguiente
mysqli_warning_count | Subir | msession_connect


msession_connect

(PHP 4 >= 4.2.0)

msession_connect -- Connect to msession server

Description

bool msession_connect ( string host, string port)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
Mohawk Software session handler functions | Subir | msession_count


msession_count

(PHP 4 >= 4.2.0)

msession_count -- Get session count

Description

int msession_count ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
msession_connect | Subir | msession_create


msession_create

(PHP 4 >= 4.2.0)

msession_create -- Create a session

Description

bool msession_create ( string session)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
msession_count | Subir | msession_destroy


msession_destroy

(PHP 4 >= 4.2.0)

msession_destroy -- Destroy a session

Description

bool msession_destroy ( string name)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
msession_create | Subir | msession_disconnect


msession_disconnect

(PHP 4 >= 4.2.0)

msession_disconnect -- Close connection to msession server

Description

void msession_disconnect ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
msession_destroy | Subir | msession_find


msession_find

(PHP 4 >= 4.2.0)

msession_find -- Find value

Description

array msession_find ( string name, string value)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
msession_disconnect | Subir | msession_get_array


msession_get_array

(PHP 4 >= 4.2.0)

msession_get_array -- Get array of ... ?

Description

array msession_get_array ( string session)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
msession_find | Subir | msession_get


msession_get

(PHP 4 >= 4.2.0)

msession_get -- Get value from session

Description

string msession_get ( string session, string name, string value)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
msession_get_array | Subir | msession_getdata


msession_getdata

(no version information, might be only in CVS)

msession_getdata -- Get data ... ?

Description

string msession_getdata ( string session)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
msession_get | Subir | msession_inc


msession_inc

(PHP 4 >= 4.2.0)

msession_inc -- Increment value in session

Description

string msession_inc ( string session, string name)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
msession_getdata | Subir | msession_list


msession_list

(PHP 4 >= 4.2.0)

msession_list -- List ... ?

Description

array msession_list ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
msession_inc | Subir | msession_listvar


msession_listvar

(PHP 4 >= 4.2.0)

msession_listvar -- List sessions with variable

Description

array msession_listvar ( string name)

Returns an associative array of value/session for all sessions with a variable named name.

Used for searching sessions with common attributes.

Anterior | Inicio | Siguiente
msession_list | Subir | msession_lock


msession_lock

(PHP 4 >= 4.2.0)

msession_lock -- Lock a session

Description

int msession_lock ( string name)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
msession_listvar | Subir | msession_plugin


msession_plugin

(PHP 4 >= 4.2.0)

msession_plugin -- Call an escape function within the msession personality plugin

Description

string msession_plugin ( string session, string val [, string param])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
msession_lock | Subir | msession_randstr


msession_randstr

(PHP 4 >= 4.2.0)

msession_randstr -- Get random string

Description

string msession_randstr ( int param)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
msession_plugin | Subir | msession_set_array


msession_set_array

(PHP 4 >= 4.2.0)

msession_set_array -- Set array of ...

Description

bool msession_set_array ( string session, array tuples)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
msession_randstr | Subir | msession_set


msession_set

(PHP 4 >= 4.2.0)

msession_set -- Set value in session

Description

bool msession_set ( string session, string name, string value)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
msession_set_array | Subir | msession_setdata


msession_setdata

(no version information, might be only in CVS)

msession_setdata -- Set data ... ?

Description

bool msession_setdata ( string session, string value)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
msession_set | Subir | msession_timeout


msession_timeout

(PHP 4 >= 4.2.0)

msession_timeout -- Set/get session timeout

Description

int msession_timeout ( string session [, int param])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
msession_setdata | Subir | msession_uniq


msession_uniq

(PHP 4 >= 4.2.0)

msession_uniq -- Get uniq id

Description

string msession_uniq ( int param)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
msession_timeout | Subir | msession_unlock


msession_unlock

(PHP 4 >= 4.2.0)

msession_unlock -- Unlock a session

Description

int msession_unlock ( string session, int key)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
msession_uniq | Subir | muscat functions


muscat functions

Manual de PHP
Anterior Siguiente

LXVI. muscat functions

Introducción

Aviso

Esta extensión es EXPERIMENTAL. Esto significa que el comportamiento de esta extensión, los nombre de sus funciones y en definitiva TODO lo documentado sobre esta extensión, puede cambiar en una futura versión de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Instalación

These functions are only available if PHP was configured with --with-muscat[=DIR].

Tabla de contenidos
muscat_close -- Shuts down the muscat session and releases any memory back to PHP.
muscat_get -- Gets a line back from the core muscat API.
muscat_give -- Sends string to the core muscat API
muscat_setup_net -- Creates a new muscat session and returns the handle.
muscat_setup -- Creates a new muscat session and returns the handle.

Anterior | Inicio | Siguiente
msession_unlock | Subir | muscat_close


muscat_close

(4.0.5 - 4.2.3 only)

muscat_close -- Shuts down the muscat session and releases any memory back to PHP.

Description

int muscat_close ( resource muscat_handle)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

[Not back to the system, note!]

Anterior | Inicio | Siguiente
muscat functions | Subir | muscat_get


muscat_get

(4.0.5 - 4.2.3 only)

muscat_get -- Gets a line back from the core muscat API.

Description

string muscat_get ( resource muscat_handle)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Returns a literal FALSE when there is no more to get (as opposed to ""). Use === FALSE or !== FALSE to check for this.

Anterior | Inicio | Siguiente
muscat_close | Subir | muscat_give


muscat_give

(4.0.5 - 4.2.3 only)

muscat_give -- Sends string to the core muscat API

Description

int muscat_give ( resource muscat_handle, string string)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
muscat_get | Subir | muscat_setup_net


muscat_setup_net

(4.0.5 - 4.2.3 only)

muscat_setup_net -- Creates a new muscat session and returns the handle.

Description

resource muscat_setup_net ( string muscat_host, int port)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

muscat_host is the hostname to connect to port is the port number to connect to - actually takes exactly the same args as fsockopen

Anterior | Inicio | Siguiente
muscat_give | Subir | muscat_setup


muscat_setup

(4.0.5 - 4.2.3 only)

muscat_setup -- Creates a new muscat session and returns the handle.

Description

resource muscat_setup ( int size [, string muscat_dir])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Size is the ammount of memory in bytes to allocate for muscat muscat_dir is the muscat installation dir e.g. "/usr/local/empower", it defaults to the compile time muscat directory

Anterior | Inicio | Siguiente
muscat_setup_net | Subir | Funciones de Red


Funciones de Red

Manual de PHP
Anterior Siguiente

LXVII. Funciones de Red

Tabla de contenidos
checkdnsrr -- Comprueba registros DNS correspondientes a nombres de máquinas en Internet o direcciones IP.
closelog -- cierra la conexión con el logger del sistema
debugger_off -- deshabilita el depurador interno de PHP
debugger_on -- habilita el depurador interno de PHP
define_syslog_variables -- Inicializa todas las constantes relacionadas con syslog
dns_check_record -- Sinónimo para checkdnsrr()
dns_get_mx -- Sinónimo para getmxrr()
dns_get_record -- Recuperar Registros de Recursos DNS asociados con un nombre de servidor huésped
fsockopen -- Abre una conexión de dominio Internet o Unix via sockets.
gethostbyaddr -- Obtiene el nombre de una máquina en Internet mediante su dirección IP.
gethostbyname -- Obtiene la dirección IP correspondiente al nombre de una máquina conectada a Internet.
gethostbynamel -- Obtiene una lista de direcciones IP correspondientea a los nombres de máquinas conectadas a Internet.
getmxrr -- Obtiene registros MX correspondientes a una máquina conectada a Internet.
getprotobyname -- Obtiene el n£mero asociado al nombre del protocolo
getprotobynumber -- obtiene el nombre asociado al n£mero de protocolo
getservbyname -- obtiene el n£mero del puerto asociado al servicio Internet especificado
getservbyport -- obtiene el servicio Internet que correspondiente al puerto del protocolo especificado
ip2long -- Convierte una cadena que contiene una dirección con puntos del Protocolo de Internet (IPv4) en una dirección apropiada.
long2ip -- Convierte una dirección de red Internet (IPv4) a una cadena en formato estándar de Internet con puntos
openlog -- abre una conexión con el logger del sistema
pfsockopen -- Abre conexiones persistentes de dominio Internet o Unix.
socket_get_status -- Alias de stream_get_meta_data().
socket_set_blocking -- Alias de stream_set_blocking()
socket_set_timeout -- Alias de stream_set_timeout()
syslog -- genera un mensaje de sistema

Anterior | Inicio | Siguiente
muscat_setup | Subir | checkdnsrr


checkdnsrr

(PHP 3, PHP 4 )

checkdnsrr -- Comprueba registros DNS correspondientes a nombres de máquinas en Internet o direcciones IP.

Descripción

int checkdnsrr ( string host [, string type])

Busca en DNS entradas del tipo type correspondientes a host. Devuelve verdadero si encuentra algún registro; devuelve falso si no encuentra ninguno o sucedió algún error.

type puede ser: A, MX, NS, SOA, PTR, CNAME, o ANY. Por defecto es MX.

host puede ser o la dirección IP de la forma xxxx.xxxx.xxxx.xxxx o el nombre de la máquina.

Ver también
getmxrr(),
gethostbyaddr(),
gethostbyname(),
gethostbynamel(), y
 named(8) en las páginas del manual.

Anterior | Inicio | Siguiente
Funciones de Red | Subir | closelog


closelog

(PHP 3, PHP 4 )

closelog -- cierra la conexión con el logger del sistema

Descripción

int closelog ( void )

closelog() cierra el descriptor que se está usando para escribir en el logger del sistema. El uso de closelog() es opcional.

Anterior | Inicio | Siguiente
checkdnsrr | Subir | debugger_off


debugger_off

(PHP 3)

debugger_off -- deshabilita el depurador interno de PHP

Descripción

int debugger_off ( void )

Deshabilita el depurador interno de PHP. El depurador está aún en desarrollo.

Anterior | Inicio | Siguiente
closelog | Subir | debugger_on


debugger_on

(PHP 3)

debugger_on -- habilita el depurador interno de PHP

Descripción

int debugger_on ( string address)

Habilita el depurador interno de PHP, conectándolo a address. El depurador esta aún en desarrollo.

Anterior | Inicio | Siguiente
debugger_off | Subir | define_syslog_variables


define_syslog_variables

(PHP 3, PHP 4 )

define_syslog_variables -- Inicializa todas las constantes relacionadas con syslog

Descripción

void define_syslog_variables ( void )

Inicializa todas las constantes usadas en las funciones syslog.

Vea también openlog(),
syslog() y
closelog().

Anterior | Inicio | Siguiente
debugger_on | Subir | dns_check_record


dns_check_record

(PHP 5 CVS only)

dns_check_record -- Sinónimo para checkdnsrr()

Descripción

int dns_check_record ( string host [, string tipo])

Chequea los registros DNS correspondientes a un nombre de servidor huésped de Internet o dirección IP dada.

Anterior | Inicio | Siguiente
define_syslog_variables | Subir | dns_get_mx


dns_get_mx

(PHP 5 CVS only)

dns_get_mx -- Sinónimo para getmxrr()

Descripción

int dns_get_mx ( string nombre_host, array hosts_mx [, array &peso])

Obtener registros MX correspondientes a un nombre de servidor huésped de Internet dado.

Anterior | Inicio | Siguiente
dns_check_record | Subir | dns_get_record


dns_get_record

(PHP 5 CVS only)

dns_get_record -- Recuperar Registros de Recursos DNS asociados con un nombre de servidor huésped

Descripción

array dns_get_record ( string nombre_host [, int tipo [, array &authns, array &addtl]])

Nota: Esta función no está implementada en plataformas Windows. Pruebe con la clase PEAR Net_DNS.

Esta función devuelve una matriz de matrices asociativas. Cada matriz asociativa contiene por lo menos las siguientes claves:

Tabla 1. Atributos DNS básicos

Atributo | Significado
host | El registro en el espacio de nombres DNS al que hacen referencia el resto de datos asociados.
class | dns_get_record() devuelve únicamente registros de clase Internet y como tal, éste parámetro siempre devolverá IN.
type | Cadena que contiene el tipo de registro. Otros atributos adicionales serán contenidos también en la matriz resultante dependiendo del valor de type. Vea la tabla más adelante.
ttl | Valor Time To Live restante para este registro. Este no será igual al ttl original del registro, sino que será igual al ttl original menos cualquiera que haya sido la longitud de tiempo transcurrido desde que el servidor de nombres oficial fuera consultado.

nombre_host debe ser un nombre de servidor huésped DNS válido, como "www.example.com". Pueden generarse consultas revertidas usando la notación in-addr.arpa, pero gethostbyaddr() es más apropiada para la mayoría de consultas revertidas.

Por defecto, dns_get_record() buscará por cualquier registro de recurso asociado con nombre_host. Para limitar la consulta, especifique el parámetro opcional tipo. tipo puede ser cualquiera de los siguientes: DNS_A, DNS_CNAME, DNS_HINFO, DNS_MX, DNS_NS, DNS_PTR, DNS_SOA, DNS_TXT, DNS_AAAA, DNS_SRV, DNS_NAPTR, DNS_ALL o DNS_ANY. El valor predeterminado es DNS_ANY.

Nota: Debido a excentricidades en el rendimiento de libresolv entre plataformas, DNS_ANY no siempre devolverá todos los registros, la alternativa más lenta DNS_ALL recolectará todos los registros de forma más confiable.

Los opcionales tercer y cuarto argumento de esta función, authns y addtl son pasados por referencia y, si son usados, serán llenados con Registros de Recurso para los Servidores de Nombres Oficiales, y cualquier Registro Adicional respectivamente. Vea el ejemplo más adelante.

Tabla 2. Otras claves en las matrices asociativas, dependientes de 'type'

Tipo | Columnas Extra
A | ip: Una dirección IPv4 en notación decimal con puntos.
MX | pri: Prioridad del gestor de correo. Números bás bajos indican mayor prioridad. target: FQDN del gestor de correo. Vea también dns_get_mx().
CNAME | target: FQDN de la ubicación en el espacio de nombres DNS de la cual es alias el registro.
NS | target: FQDN del servidor de nombres que es la autoridad para este nombre de host.
PTR | target: Ubicación dentro del espacio de nombres DNS a la que apunta este registro.
TXT | txt: Cadena de datos arbitraria asociada con este registro.
HINFO | cpu: Número IANA que indica el CPU de la máquina referenciada por este registro. os: Número IANA que indica el Sistema Operativo en la máquina referenciada por este registro. Vea los Nombres de Sistemas Operativos de IANA para consultar el significado de estos valores.
SOA | mname: FQDN de la máquina desde donde se originaron los registros de recurso. rname: Dirección de correo electrónico del contacto administrativo para este dominio. serial: # serial de esta revisión del dominio solicitado. refresh: Intervalo de actualización (segundos) que deben usar los servidores de nombre secundarios cuando actualicen las copias remotas de este dominio. retry: Periodo de tiempo (segundos) para esperar después de una actualización fallida antes de hacer un segundo intento. expire: Periodo máximo de tiempo (segundos) que un servidor DNS secundario debe conservar copias remotas de los datos de zona sin una actualización exitosa antes de descartarlos. minimum-ttl: Periodo mínimo de tiempo (segundos) en el que un cliente puede continuar usando una resolución DNS antes de que deba solicitar una nueva resolución del servidor. Puede ser sobrescrito por registros de recurso individuales.
AAAA | ipv6: Dirección IPv6
SRV | pri: (Prioridad) las prioridades más bajas deben ser usadas primero. weight: Rangos para pesar cuál de los destinos comunmente con prioridades debe ser elegido al azar. target y port: nombre de servidor huésped y puerto en dondo puede encontrarse el servicio solicitado. Para más información, vea: RFC 2782
NAPTR | order y pref: Equivalente a pri y weight descritos anteriormente. flags, services, regex, y replacement: Parámetros, como se definen por RFC 2915.

Nota: Debido a estándares DNS, las direcciones de correo electrónico son dadas en formato usuario.host (por ejemplo: hostmaster.example.com en lugar de hostmaster@example.com), asegúrese de chequear este valor y modificarlo si es necesario antes de usarlo con funciones como mail().

Ejemplo 1. Uso de dns_get_record()

<?php
$resultado = dns_get_record("php.net");
print_r($resultado);
?>

/*
Produce una salida similar a la siguiente:
------------------------------------------

Array
(
    [0] => Array
        (
            [host] => php.net
            [type] => MX
            [pri] => 5
            [target] => pair2.php.net
            [class] => IN
            [ttl] => 6765
        )

    [1] => Array
        (
            [host] => php.net
            [type] => A
            [ip] => 64.246.30.37
            [class] => IN
            [ttl] => 8125
        )

)
*/

Ya que es muy común desear la dirección IP de un servidor de correo una vez el registro MX ha sido resuelto, dns_get_record() también devuelve una matriz en addtl la cual contiene registros asociados. authns es devuelto también, conteniendo una lista de servidores de nombre oficiales.

Ejemplo 2. Uso de dns_get_record() y DNS_ANY

<?php

/* Solicitar "cualquier" registro para php.net, y crear las matrices
   $authns y $addtl conteniendo una lista de servidores de nombre y
   cualquier registro adicional que vaya con ellos */

$resultado = dns_get_record("php.net",DNS_ANY,$authns,$addtl);
print "Resultado = ";
print_r($resultado);
print "Auth NS = ";
print_r($authns);
print "Adicional = ";
print_r($addtl);
?>

/*
Produce una salida similar a la siguiente:
------------------------------------------

Resultado = Array
(
    [0] => Array
        (
            [host] => php.net
            [type] => MX
            [pri] => 5
            [target] => pair2.php.net
            [class] => IN
            [ttl] => 6765
        )

    [1] => Array
        (
            [host] => php.net
            [type] => A
            [ip] => 64.246.30.37
            [class] => IN
            [ttl] => 8125
        )

)
Auth NS = Array
(
    [0] => Array
        (
            [host] => php.net
            [type] => NS
            [target] => remote1.easydns.com
            [class] => IN
            [ttl] => 10722
        )

    [1] => Array
        (
            [host] => php.net
            [type] => NS
            [target] => remote2.easydns.com
            [class] => IN
            [ttl] => 10722
        )

    [2] => Array
        (
            [host] => php.net
            [type] => NS
            [target] => ns1.easydns.com
            [class] => IN
            [ttl] => 10722
        )

    [3] => Array
        (
            [host] => php.net
            [type] => NS
            [target] => ns2.easydns.com
            [class] => IN
            [ttl] => 10722
        )

)
Adicional = Array
(
    [0] => Array
        (
            [host] => pair2.php.net
            [type] => A
            [ip] => 216.92.131.5
            [class] => IN
            [ttl] => 6766
        )

    [1] => Array
        (
            [host] => remote1.easydns.com
            [type] => A
            [ip] => 64.39.29.212
            [class] => IN
            [ttl] => 100384
        )

    [2] => Array
        (
            [host] => remote2.easydns.com
            [type] => A
            [ip] => 212.100.224.80
            [class] => IN
            [ttl] => 81241
        )

    [3] => Array
        (
            [host] => ns1.easydns.com
            [type] => A
            [ip] => 216.220.40.243
            [class] => IN
            [ttl] => 81241
        )

    [4] => Array
        (
            [host] => ns2.easydns.com
            [type] => A
            [ip] => 216.220.40.244
            [class] => IN
            [ttl] => 81241
        )

)
*/

Vea también dns_get_mx(), y dns_check_record()

Anterior | Inicio | Siguiente
dns_get_mx | Subir | fsockopen


fsockopen

(PHP 3, PHP 4 )

fsockopen -- Abre una conexión de dominio Internet o Unix via sockets.

Descripción

int fsockopen ( string hostname, int port [, int errno [, string errstr [, double timeout]]])

Inicia una conexión de dominio Internet (AF_INET) o Unix (AF_UNIX). Para el domino Internet, abrirá una conexión TCP hacia el ordenador hostname en el puerto port. Para el dominio Unix, hostname se usará como ruta al socket, port debe ser 0 para este caso. El parámetro opcional timeout se puede usar para especificar un timeout en segundos para establecer la conexión.

fsockopen() devuelve un puntero a fichero, el cual
se puede usar junto con las otras funciones de ficheros (como
fgets(), fgetss(),
fputs(), fclose(),
feof()).

Si la llamada falla, esta devolverá falso y si los parámetros opcionales errno y errstr están presentes, indicarán el error del sistema que ocurrió en la llamada connect(). Si errno es 0 y la función devolviá falso, nos indica que el error ocurrió antes de la llamada connect(). Esto es debido principalmente a problemas inicializando el socket. Observe que los argumentos errno y errstr deben ser pasados por referencia.

Dependiendo del entorno, el dominio Unix o el parámetro opcional, timeout puede no estar disponible.

Por defecto, el socket será abierto en modo de bloqueo. Puede cambiarlo a modo de no bloqueo usando set_socket_blocking().

Ejemplo 1. ejemplo con fsockopen

$fp = fsockopen("www.php.net", 80, $errno, $errstr, 30);
if(!$fp) {
    echo "$errstr ($errno)<br>\n";
} else {
    fputs($fp,"GET / HTTP/1.0\n\n");
    while(!feof($fp)) {
        echo fgets($fp,128);
    }
    fclose($fp);
}
Ver también: pfsockopen()

Anterior | Inicio | Siguiente
dns_get_record | Subir | gethostbyaddr


gethostbyaddr

(PHP 3, PHP 4 )

gethostbyaddr -- Obtiene el nombre de una máquina en Internet mediante su dirección IP.

Descripción

string gethostbyaddr ( string ip_address)

Devuelve el nombre del ordenador conectado a Internet espeficado por el parámetro ip_address. Si ocurre un error, devuelve ip_address.

Ver también gethostbyname().

Anterior | Inicio | Siguiente
fsockopen | Subir | gethostbyname


gethostbyname

(PHP 3, PHP 4 )

gethostbyname -- Obtiene la dirección IP correspondiente al nombre de una máquina conectada a Internet.

Descripción

string gethostbyname ( string hostname)

Devuelve la dirección IP de una máquina conectada a Internet especificada por hostname.

Ver también gethostbyaddr().

Anterior | Inicio | Siguiente
gethostbyaddr | Subir | gethostbynamel


gethostbynamel

(PHP 3, PHP 4 )

gethostbynamel -- Obtiene una lista de direcciones IP correspondientea a los nombres de máquinas conectadas a Internet.

Descripción

array gethostbynamel ( string hostname)

Devuleve una lista de direcciones IP pertenecientes a ordenadores especificados por hostname.

Ver también
gethostbyname(),
gethostbyaddr(),
checkdnsrr(),
getmxrr(), y
named(8) en las páginas del manual.

Anterior | Inicio | Siguiente
gethostbyname | Subir | getmxrr


getmxrr

(PHP 3, PHP 4 )

getmxrr -- Obtiene registros MX correspondientes a una máquina conectada a Internet.

Descripción

int getmxrr ( string hostname, array mxhosts [, array weight])

Busca DNS de registros MX correspondientes a hostname. Devuelve verdadero si encuentra alg£n registro; devuelve falso si no encuentra ninguno o se produce un error.

La lista de registros MX encontrados se colocan en el array mxhosts. Si se proporciona el array weight, se rellenará con la información obtenida.

Ver también
checkdnsrr(),
gethostbyname(),
gethostbynamel(),
gethostbyaddr(), y
 named(8) de las páginas del manual.

Anterior | Inicio | Siguiente
gethostbynamel | Subir | getprotobyname


getprotobyname

(PHP 4 )

getprotobyname -- Obtiene el n£mero asociado al nombre del protocolo

Descripción

int getprotobyname ( string name)

getprotobyname() devuelve el n£mero asociado al nombre del protocolo name del fichero /etc/protocols. Ver también getprotobynumber().

Anterior | Inicio | Siguiente
getmxrr | Subir | getprotobynumber


getprotobynumber

(PHP 4 )

getprotobynumber -- obtiene el nombre asociado al n£mero de protocolo

Descripción

string getprotobynumber ( int number)

getprotobynumber() devuelve el nombre del protocolo asociado al number del protocolo en el fichero /etc/protocols. Ver también getprotobyname().

Anterior | Inicio | Siguiente
getprotobyname | Subir | getservbyname


getservbyname

(PHP 4 )

getservbyname -- obtiene el n£mero del puerto asociado al servicio Internet especificado

Descripción

int getservbyname ( string service, string protocol)

getservbyname() devuelve el puerto que corresponde al service especificado por el protocol en /etc/services. protocol puede ser tcp o udp. Ver también getservbyport().

Anterior | Inicio | Siguiente
getprotobynumber | Subir | getservbyport


getservbyport

(PHP 4 )

getservbyport -- obtiene el servicio Internet que correspondiente al puerto del protocolo especificado

Descripción

string getservbyport ( int port, string protocol)

getservbyport() delvuelve el servicio Internet asociado al port para el protocol especificado en /etc/services. protocol puede ser tcp o udp. Ver también getservbyname().

Anterior | Inicio | Siguiente
getservbyname | Subir | ip2long


ip2long

(PHP 4 )

ip2long -- Convierte una cadena que contiene una dirección con puntos del Protocolo de Internet (IPv4) en una dirección apropiada.

Descripción

int ip2long ( string direccion_ip)

La función ip2long() genera una dirección de red Internet IPv4 desde su representación en formato estándar de Internet (cadena con puntos). Si direccion_ip es inválida, entonces se devuelve -1. Note que -1 no evalúa a FALSE en PHP.

Ejemplo 1. Ejemplo de ip2long()

<?php
$ip = gethostbyname("www.example.com");
$salida = "Las siguientes URLs son equivalentes:<br>\n";
$salida .= "http://www.example.com/, http://".$ip."/, y http://".sprintf("%u",ip2long($ip))."/<br>\n";
echo $salida;
?>

Nota: Ya que el tipo entero de PHP tiene signo, y muchas direcciones IP resultarán en enteros negativos, necesita usar el especificador de formato "%u" de sprintf() o printf() para obtener la representación de cadena de la dirección IP sin signo.

Este segundo ejemplo muestra cómo imprimir una dirección convertida con la función printf():

Ejemplo 2. Desplegar una dirección IP

<?php
$ip   = gethostbyname("www.example.com");
$long = ip2long($ip);

if ($long === -1) {
    print "IP inv&aacute;lida, por favor intente de nuevo";
} else {
    print $ip   . "\n";           // 192.0.34.166
    print $long . "\n";           // -1073732954
    printf("%u\n", ip2long($ip)); // 3221234342
}
?>

Nota: ip2long() devolverá -1 para la ip 255.255.255.255

Vea también long2ip() y sprintf().

Anterior | Inicio | Siguiente
getservbyport | Subir | long2ip


long2ip

(PHP 4 )

long2ip -- Convierte una dirección de red Internet (IPv4) a una cadena en formato estándar de Internet con puntos

Descripción

string long2ip ( int direccion_apropiada)

La función long2ip() genera una dirección de Internet en formato con puntos (esto quiere decir: aaa.bbb.ccc.ddd) a partir de su representación apropiada de dirección.

Vea también: ip2long()

Anterior | Inicio | Siguiente
ip2long | Subir | openlog


openlog

(PHP 3, PHP 4 )

openlog -- abre una conexión con el logger del sistema

Descripción

int openlog ( string ident, int option, int facility)

openlog() abre una conexión con el logger del sistema. La cadena ident se a¤ade a cada mensaje. Los valores de option y facility se exponen en la siguiente sección. El uso de openlog() is opcional; Esta será llamada automaticamente por syslog() si fuera necesario, en este caso ident valdrá por defecto FALSE. Ver también syslog() y closelog().

Anterior | Inicio | Siguiente
long2ip | Subir | pfsockopen


pfsockopen

(PHP 3>= 3.0.7, PHP 4 )

pfsockopen -- Abre conexiones persistentes de dominio Internet o Unix.

Descripción

int pfsockopen ( string hostname, int port [, int errno [, string errstr [, int timeout]]])

Esta función se comporta exactamente como fsockopen() con la diferencia que la conexion no se cierra después de que termine el script. Esta es la versión persistente de fsockopen().

Anterior | Inicio | Siguiente
openlog | Subir | socket_get_status


socket_get_status

socket_get_status -- Alias de stream_get_meta_data().

Descripción

Esta función es un alias de stream_get_meta_data().

Anterior | Inicio | Siguiente
pfsockopen | Subir | socket_set_blocking


socket_set_blocking

socket_set_blocking -- Alias de stream_set_blocking()

Descripción

Esta función es un alias de stream_set_blocking().

Anterior | Inicio | Siguiente
socket_get_status | Subir | socket_set_timeout


socket_set_timeout

socket_set_timeout -- Alias de stream_set_timeout()

Descripción

socket_set_timeout() es un alias de stream_set_timeout().

Anterior | Inicio | Siguiente
socket_set_blocking | Subir | syslog


syslog

(PHP 3, PHP 4 )

syslog -- genera un mensaje de sistema

Descripción

int syslog ( int priority, string message)

syslog() genera un mensaje que será distribuido por el logger del sistema. priority es una combinación de la facility y el level, los valores se indicarán en la sección siguiente. El argumento restante es el mensaje a enviar, excepto que los dos caracteres %m sean reemplazados por la cadena de error (strerror) correspondiente al valor actual de errno.

Más información acerca de syslog se puede encontrar en las páginas del manual en equipos Unix.

En Windows NT, el servicio syslog es emulado usando el Log de Eventos.

Anterior | Inicio | Siguiente
socket_set_timeout | Subir | Ncurses terminal screen control functions


Ncurses terminal screen control functions

Manual de PHP
Anterior Siguiente

LXVIII. Ncurses terminal screen control functions

Introducción

ncurses (new curses) is a free software emulation of curses in System V Rel 4.0 (and above). It uses terminfo format, supports pads, colors, multiple highlights, form characters and function key mapping. Because of the interactive nature of this library, it will be of little use for writing Web applications, but may be useful when writing scripts meant using PHP from the command line.

Aviso

Esta extensión es EXPERIMENTAL. Esto significa que el comportamiento de esta extensión, los nombre de sus funciones y en definitiva TODO lo documentado sobre esta extensión, puede cambiar en una futura versión de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Ncurses is available for the following platforms:

  • AIX

  • BeOS

  • Cygwin

  • Digital Unix (aka OSF1)

  • FreeBSD

  • GNU/Linux

  • HPUX

  • IRIX

  • OS/2

  • SCO OpenServer

  • Solaris

  • SunOS

Requerimientos

You need the ncurses libraries and headerfiles. Download the latest version from the ftp://ftp.gnu.org/pub/gnu/ncurses/ or from an other GNU-Mirror.

Instalación

To get these functions to work, you have to compile the CGI or CLI version of PHP with --with-ncurses[=DIR].

Configuración en tiempo de ejecución

El comportamiento de estas funciones está afectado por los valores definidos en php.ini.

Tabla 1. Ncurses configuration options

Name | Default | Changeable
ncurses.value | "42" | PHP_INI_ALL
ncurses.string | "foobar" | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Tipos de recursos

Esta extensión no tiene ningún tipo de recurso definido.

Constantes predefinidas

Estas constantes están definidas por esta extensión y estarán disponibles solamente cuando la extensión ha sido o bien compilada dentro de PHP o grabada dinámicamente en tiempo de ejecución.

Error codes

On error ncurses functions return NCURSES_ERR.

Colors

Tabla 2. ncurses color constants

constant | meaning
NCURSES_COLOR_BLACK | no color (black)
NCURSES_COLOR_WHITE | white
NCURSES_COLOR_RED | red - supported when terminal is in color mode
NCURSES_COLOR_GREEN | green - supported when terminal is in color mod
NCURSES_COLOR_YELLOW | yellow - supported when terminal is in color mod
NCURSES_COLOR_BLUE | blue - supported when terminal is in color mod
NCURSES_COLOR_CYAN | cyan - supported when terminal is in color mod
NCURSES_COLOR_MAGENTA | magenta - supported when terminal is in color mod

Keys

Tabla 3. ncurses key constants

constant | meaning
NCURSES_KEY_F0 - NCURSES_KEY_F64 | function keys F1 - F64
NCURSES_KEY_DOWN | down arrow
NCURSES_KEY_UP | up arrow
NCURSES_KEY_LEFT | left arrow
NCURSES_KEY_RIGHT | right arrow
NCURSES_KEY_HOME | home key (upward+left arrow)
NCURSES_KEY_BACKSPACE | backspace
NCURSES_KEY_DL | delete line
NCURSES_KEY_IL | insert line
NCURSES_KEY_DC | delete character
NCURSES_KEY_IC | insert char or enter insert mode
NCURSES_KEY_EIC | exit insert char mode
NCURSES_KEY_CLEAR | clear screen
NCURSES_KEY_EOS | clear to end of screen
NCURSES_KEY_EOL | clear to end of line
NCURSES_KEY_SF | scroll one line forward
NCURSES_KEY_SR | scroll one line backward
NCURSES_KEY_NPAGE | next page
NCURSES_KEY_PPAGE | previous page
NCURSES_KEY_STAB | set tab
NCURSES_KEY_CTAB | clear tab
NCURSES_KEY_CATAB | clear all tabs
NCURSES_KEY_SRESET | soft (partial) reset
NCURSES_KEY_RESET | reset or hard reset
NCURSES_KEY_PRINT | print
NCURSES_KEY_LL | lower left
NCURSES_KEY_A1 | upper left of keypad
NCURSES_KEY_A3 | upper right of keypad
NCURSES_KEY_B2 | center of keypad
NCURSES_KEY_C1 | lower left of keypad
NCURSES_KEY_C3 | lower right of keypad
NCURSES_KEY_BTAB | back tab
NCURSES_KEY_BEG | beginning
NCURSES_KEY_CANCEL | cancel
NCURSES_KEY_CLOSE | close
NCURSES_KEY_COMMAND | cmd (command)
NCURSES_KEY_COPY | copy
NCURSES_KEY_CREATE | create
NCURSES_KEY_END | end
NCURSES_KEY_EXIT | exit
NCURSES_KEY_FIND | find
NCURSES_KEY_HELP | help
NCURSES_KEY_MARK | mark
NCURSES_KEY_MESSAGE | message
NCURSES_KEY_MOVE | move
NCURSES_KEY_NEXT | next
NCURSES_KEY_OPEN | open
NCURSES_KEY_OPTIONS | options
NCURSES_KEY_PREVIOUS | previous
NCURSES_KEY_REDO | redo
NCURSES_KEY_REFERENCE | ref (reference)
NCURSES_KEY_REFRESH | refresh
NCURSES_KEY_REPLACE | replace
NCURSES_KEY_RESTART | restart
NCURSES_KEY_RESUME | resume
NCURSES_KEY_SAVE | save
NCURSES_KEY_SBEG | shiftet beg (beginning)
NCURSES_KEY_SCANCEL | shifted cancel
NCURSES_KEY_SCOMMAND | shifted command
NCURSES_KEY_SCOPY | shifted copy
NCURSES_KEY_SCREATE | shifted create
NCURSES_KEY_SDC | shifted delete char
NCURSES_KEY_SDL | shifted delete line
NCURSES_KEY_SELECT | select
NCURSES_KEY_SEND | shifted end
NCURSES_KEY_SEOL | shifted end of line
NCURSES_KEY_SEXIT | shifted exit
NCURSES_KEY_SFIND | shifted find
NCURSES_KEY_SHELP | shifted help
NCURSES_KEY_SHOME | shifted home
NCURSES_KEY_SIC | shifted input
NCURSES_KEY_SLEFT | shifted left arrow
NCURSES_KEY_SMESSAGE | shifted message
NCURSES_KEY_SMOVE | shifted move
NCURSES_KEY_SNEXT | shifted next
NCURSES_KEY_SOPTIONS | shifted options
NCURSES_KEY_SPREVIOUS | shifted previous
NCURSES_KEY_SPRINT | shifted print
NCURSES_KEY_SREDO | shifted redo
NCURSES_KEY_SREPLACE | shifted replace
NCURSES_KEY_SRIGHT | shifted right arrow
NCURSES_KEY_SRSUME | shifted resume
NCURSES_KEY_SSAVE | shifted save
NCURSES_KEY_SSUSPEND | shifted suspend
NCURSES_KEY_UNDO | undo
NCURSES_KEY_MOUSE | mouse event has occured
NCURSES_KEY_MAX | maximum key value

Mouse

Tabla 4. mouse constants

Constant | meaning
NCURSES_BUTTON1_RELEASED - NCURSES_BUTTON4_RELEASED | button (1-4) released
NCURSES_BUTTON1_PRESSED - NCURSES_BUTTON4_PRESSED | button (1-4) pressed
NCURSES_BUTTON1_CLICKED - NCURSES_BUTTON4_CLICKED | button (1-4) clicked
NCURSES_BUTTON1_DOUBLE_CLICKED - NCURSES_BUTTON4_DOUBLE_CLICKED | button (1-4) double clicked
NCURSES_BUTTON1_TRIPLE_CLICKED - NCURSES_BUTTON4_TRIPLE_CLICKED | button (1-4) triple clicked
NCURSES_BUTTON_CTRL | ctrl pressed during click
NCURSES_BUTTON_SHIFT | shift pressed during click
NCURSES_BUTTON_ALT | alt pressed during click
NCURSES_ALL_MOUSE_EVENTS | report all mouse events
NCURSES_REPORT_MOUSE_POSITION | report mouse position
Tabla de contenidos
ncurses_addch -- Add character at current position and advance cursor
ncurses_addchnstr -- Add attributed string with specified length at current position
ncurses_addchstr -- Add attributed string at current position
ncurses_addnstr -- Add string with specified length at current position
ncurses_addstr -- Output text at current position
ncurses_assume_default_colors -- Define default colors for color 0
ncurses_attroff -- Turn off the given attributes
ncurses_attron -- Turn on the given attributes
ncurses_attrset -- Set given attributes
ncurses_baudrate -- Returns baudrate of terminal
ncurses_beep -- Let the terminal beep
ncurses_bkgd -- Set background property for terminal screen
ncurses_bkgdset -- Control screen background
ncurses_border -- Draw a border around the screen using attributed characters
ncurses_bottom_panel -- Moves a visible panel to the bottom of the stack
ncurses_can_change_color -- Check if we can change terminals colors
ncurses_cbreak -- Switch of input buffering
ncurses_clear -- Clear screen
ncurses_clrtobot -- Clear screen from current position to bottom
ncurses_clrtoeol -- Clear screen from current position to end of line
ncurses_color_content -- Gets the RGB value for color
ncurses_color_set -- Set fore- and background color
ncurses_curs_set -- Set cursor state
ncurses_def_prog_mode -- Saves terminals (program) mode
ncurses_def_shell_mode -- Saves terminals (shell) mode
ncurses_define_key -- Define a keycode
ncurses_del_panel -- Remove panel from the stack and delete it (but not the associated window)
ncurses_delay_output -- Delay output on terminal using padding characters
ncurses_delch -- Delete character at current position, move rest of line left
ncurses_deleteln -- Delete line at current position, move rest of screen up
ncurses_delwin -- Delete a ncurses window
ncurses_doupdate -- Write all prepared refreshes to terminal
ncurses_echo -- Activate keyboard input echo
ncurses_echochar -- Single character output including refresh
ncurses_end -- Stop using ncurses, clean up the screen
ncurses_erase -- Erase terminal screen
ncurses_erasechar -- Returns current erase character
ncurses_filter --
ncurses_flash -- Flash terminal screen (visual bell)
ncurses_flushinp -- Flush keyboard input buffer
ncurses_getch -- Read a character from keyboard
ncurses_getmaxyx -- Returns the size of a window
ncurses_getmouse -- Reads mouse event
ncurses_getyx -- Returns the current cursor position for a window
ncurses_halfdelay -- Put terminal into halfdelay mode
ncurses_has_colors -- Check if terminal has colors
ncurses_has_ic -- Check for insert- and delete-capabilities
ncurses_has_il -- Check for line insert- and delete-capabilities
ncurses_has_key -- Check for presence of a function key on terminal keyboard
ncurses_hide_panel -- Remove panel from the stack, making it invisible
ncurses_hline -- Draw a horizontal line at current position using an attributed character and max. n characters long
ncurses_inch -- Get character and attribute at current position
ncurses_init_color -- Set new RGB value for color
ncurses_init_pair -- Allocate a color pair
ncurses_init -- Initialize ncurses
ncurses_insch -- Insert character moving rest of line including character at current position
ncurses_insdelln -- Insert lines before current line scrolling down (negative numbers delete and scroll up)
ncurses_insertln -- Insert a line, move rest of screen down
ncurses_insstr -- Insert string at current position, moving rest of line right
ncurses_instr -- Reads string from terminal screen
ncurses_isendwin -- Ncurses is in endwin mode, normal screen output may be performed
ncurses_keyok -- Enable or disable a keycode
ncurses_keypad -- Turns keypad on or off
ncurses_killchar -- Returns current line kill character
ncurses_longname -- Returns terminals description
ncurses_meta -- Enables/Disable 8-bit meta key information
ncurses_mouse_trafo -- Transforms coordinates
ncurses_mouseinterval -- Set timeout for mouse button clicks
ncurses_mousemask -- Sets mouse options
ncurses_move_panel -- Moves a panel so that it's upper-left corner is at [startx, starty]
ncurses_move -- Move output position
ncurses_mvaddch -- Move current position and add character
ncurses_mvaddchnstr -- Move position and add attrributed string with specified length
ncurses_mvaddchstr -- Move position and add attributed string
ncurses_mvaddnstr -- Move position and add string with specified length
ncurses_mvaddstr -- Move position and add string
ncurses_mvcur -- Move cursor immediately
ncurses_mvdelch -- Move position and delete character, shift rest of line left
ncurses_mvgetch -- Move position and get character at new position
ncurses_mvhline -- Set new position and draw a horizontal line using an attributed character and max. n characters long
ncurses_mvinch -- Move position and get attributed character at new position
ncurses_mvvline -- Set new position and draw a vertical line using an attributed character and max. n characters long
ncurses_mvwaddstr -- Add string at new position in window
ncurses_napms -- Sleep
ncurses_new_panel -- Create a new panel and associate it with window
ncurses_newpad -- Creates a new pad (window)
ncurses_newwin -- Create a new window
ncurses_nl -- Translate newline and carriage return / line feed
ncurses_nocbreak -- Switch terminal to cooked mode
ncurses_noecho -- Switch off keyboard input echo
ncurses_nonl -- Do not translate newline and carriage return / line feed
ncurses_noqiflush -- Do not flush on signal characters
ncurses_noraw -- Switch terminal out of raw mode
ncurses_pair_content -- Gets the RGB value for color
ncurses_panel_above -- Returns the panel above panel. If panel is null, returns the bottom panel in the stack
ncurses_panel_below -- Returns the panel below panel. If panel is null, returns the top panel in the stack
ncurses_panel_window -- Returns the window associated with panel
ncurses_pnoutrefresh -- Copys a region from a pad into the virtual screen
ncurses_prefresh -- Copys a region from a pad into the virtual screen
ncurses_putp --
ncurses_qiflush -- Flush on signal characters
ncurses_raw -- Switch terminal into raw mode
ncurses_refresh -- Refresh screen
ncurses_replace_panel -- Replaces the window associated with panel
ncurses_reset_prog_mode -- Resets the prog mode saved by def_prog_mode
ncurses_reset_shell_mode -- Resets the shell mode saved by def_shell_mode
ncurses_resetty -- Restores saved terminal state
ncurses_savetty -- Saves terminal state
ncurses_scr_dump -- Dump screen content to file
ncurses_scr_init -- Initialize screen from file dump
ncurses_scr_restore -- Restore screen from file dump
ncurses_scr_set -- Inherit screen from file dump
ncurses_scrl -- Scroll window content up or down without changing current position
ncurses_show_panel -- Places an invisible panel on top of the stack, making it visible
ncurses_slk_attr -- Returns current soft label key attribute
ncurses_slk_attroff --
ncurses_slk_attron --
ncurses_slk_attrset --
ncurses_slk_clear -- Clears soft labels from screen
ncurses_slk_color -- Sets color for soft label keys
ncurses_slk_init -- Initializes soft label key functions
ncurses_slk_noutrefresh -- Copies soft label keys to virtual screen
ncurses_slk_refresh -- Copies soft label keys to screen
ncurses_slk_restore -- Restores soft label keys
ncurses_slk_set -- Sets function key labels
ncurses_slk_touch -- Fources output when ncurses_slk_noutrefresh is performed
ncurses_standend -- Stop using 'standout' attribute
ncurses_standout -- Start using 'standout' attribute
ncurses_start_color -- Start using colors
ncurses_termattrs -- Returns a logical OR of all attribute flags supported by terminal
ncurses_termname -- Returns terminals (short)-name
ncurses_timeout -- Set timeout for special key sequences
ncurses_top_panel -- Moves a visible panel to the top of the stack
ncurses_typeahead -- Specify different filedescriptor for typeahead checking
ncurses_ungetch -- Put a character back into the input stream
ncurses_ungetmouse -- Pushes mouse event to queue
ncurses_update_panels -- Refreshes the virtual screen to reflect the relations between panels in the stack.
ncurses_use_default_colors -- Assign terminal default colors to color id -1
ncurses_use_env -- Control use of environment information about terminal size
ncurses_use_extended_names -- Control use of extended names in terminfo descriptions
ncurses_vidattr --
ncurses_vline -- Draw a vertical line at current position using an attributed character and max. n characters long
ncurses_waddch -- Adds character at current position in a window and advance cursor
ncurses_waddstr -- Outputs text at current postion in window
ncurses_wattroff -- Turns off attributes for a window
ncurses_wattron -- Turns on attributes for a window
ncurses_wattrset -- Set the attributes for a window
ncurses_wborder -- Draws a border around the window using attributed characters
ncurses_wclear -- Clears window
ncurses_wcolor_set -- Sets windows color pairings
ncurses_werase -- Erase window contents
ncurses_wgetch -- Reads a character from keyboard (window)
ncurses_whline -- Draws a horizontal line in a window at current position using an attributed character and max. n characters long
ncurses_wmouse_trafo -- Transforms window/stdscr coordinates
ncurses_wmove -- Moves windows output position
ncurses_wnoutrefresh -- Copies window to virtual screen
ncurses_wrefresh -- Refresh window on terminal screen
ncurses_wstandend -- End standout mode for a window
ncurses_wstandout -- Enter standout mode for a window
ncurses_wvline -- Draws a vertical line in a window at current position using an attributed character and max. n characters long

Anterior | Inicio | Siguiente
syslog | Subir | ncurses_addch


ncurses_addch

(PHP 4 >= 4.1.0)

ncurses_addch -- Add character at current position and advance cursor

Description

int ncurses_addch ( int ch)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
Ncurses terminal screen control functions | Subir | ncurses_addchnstr


ncurses_addchnstr

(PHP 4 >= 4.2.0)

ncurses_addchnstr -- Add attributed string with specified length at current position

Description

int ncurses_addchnstr ( string s, int n)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_addch | Subir | ncurses_addchstr


ncurses_addchstr

(PHP 4 >= 4.2.0)

ncurses_addchstr -- Add attributed string at current position

Description

int ncurses_addchstr ( string s)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_addchnstr | Subir | ncurses_addnstr


ncurses_addnstr

(PHP 4 >= 4.2.0)

ncurses_addnstr -- Add string with specified length at current position

Description

int ncurses_addnstr ( string s, int n)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_addchstr | Subir | ncurses_addstr


ncurses_addstr

(PHP 4 >= 4.2.0)

ncurses_addstr -- Output text at current position

Description

int ncurses_addstr ( string text)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_addnstr | Subir | ncurses_assume_default_colors


ncurses_assume_default_colors

(PHP 4 >= 4.2.0)

ncurses_assume_default_colors -- Define default colors for color 0

Description

int ncurses_assume_default_colors ( int fg, int bg)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_addstr | Subir | ncurses_attroff


ncurses_attroff

(PHP 4 >= 4.1.0)

ncurses_attroff -- Turn off the given attributes

Description

int ncurses_attroff ( int attributes)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_assume_default_colors | Subir | ncurses_attron


ncurses_attron

(PHP 4 >= 4.1.0)

ncurses_attron -- Turn on the given attributes

Description

int ncurses_attron ( int attributes)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_attroff | Subir | ncurses_attrset


ncurses_attrset

(PHP 4 >= 4.1.0)

ncurses_attrset -- Set given attributes

Description

int ncurses_attrset ( int attributes)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_attron | Subir | ncurses_baudrate


ncurses_baudrate

(PHP 4 >= 4.1.0)

ncurses_baudrate -- Returns baudrate of terminal

Description

int ncurses_baudrate ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_attrset | Subir | ncurses_beep


ncurses_beep

(PHP 4 >= 4.1.0)

ncurses_beep -- Let the terminal beep

Description

int ncurses_beep ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

ncurses_beep() sends an audlible alert (bell) and if its not possible flashes the screen. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

See also ncurses_flash()

Anterior | Inicio | Siguiente
ncurses_baudrate | Subir | ncurses_bkgd


ncurses_bkgd

(PHP 4 >= 4.1.0)

ncurses_bkgd -- Set background property for terminal screen

Description

int ncurses_bkgd ( int attrchar)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_beep | Subir | ncurses_bkgdset


ncurses_bkgdset

(PHP 4 >= 4.1.0)

ncurses_bkgdset -- Control screen background

Description

void ncurses_bkgdset ( int attrchar)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_bkgd | Subir | ncurses_border


ncurses_border

(PHP 4 >= 4.2.0)

ncurses_border -- Draw a border around the screen using attributed characters

Description

int ncurses_border ( int left, int right, int top, int bottom, int tl_corner, int tr_corner, int bl_corner, int br_corner)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_bkgdset | Subir | ncurses_bottom_panel


ncurses_bottom_panel

(PHP 4 >= 4.3.0)

ncurses_bottom_panel -- Moves a visible panel to the bottom of the stack

Description

int ncurses_bottom_panel ( resource panel)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_border | Subir | ncurses_can_change_color


ncurses_can_change_color

(PHP 4 >= 4.1.0)

ncurses_can_change_color -- Check if we can change terminals colors

Description

bool ncurses_can_change_color ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

The function ncurses_can_change_color() returns TRUE or FALSE, depending on whether the terminal has color capabilities and whether the programmer can change the colors.

Anterior | Inicio | Siguiente
ncurses_bottom_panel | Subir | ncurses_cbreak


ncurses_cbreak

(PHP 4 >= 4.1.0)

ncurses_cbreak -- Switch of input buffering

Description

bool ncurses_cbreak ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

ncurses_cbreak() disables line buffering and character processing (interrupt and flow control characters are unaffected), making characters typed by the user immediately available to the program.

ncurses_cbreak() returns TRUE or NCURSES_ERR if any error occured.

See also: ncurses_nocbreak()

Anterior | Inicio | Siguiente
ncurses_can_change_color | Subir | ncurses_clear


ncurses_clear

(PHP 4 >= 4.1.0)

ncurses_clear -- Clear screen

Description

bool ncurses_clear ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

ncurses_clear() clears the screen completely without setting blanks. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Note: ncurses_clear() clears the screen without setting blanks, which have the current background rendition. To clear screen with blanks, use ncurses_erase().

See also ncurses_erase().

Anterior | Inicio | Siguiente
ncurses_cbreak | Subir | ncurses_clrtobot


ncurses_clrtobot

(PHP 4 >= 4.1.0)

ncurses_clrtobot -- Clear screen from current position to bottom

Description

bool ncurses_clrtobot ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

ncurses_clrtobot() erases all lines from cursor to end of screen and creates blanks. Blanks created by ncurses_clrtobot() have the current background rendition. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

See also ncurses_clear(), and ncurses_clrtoeol()

Anterior | Inicio | Siguiente
ncurses_clear | Subir | ncurses_clrtoeol


ncurses_clrtoeol

(PHP 4 >= 4.1.0)

ncurses_clrtoeol -- Clear screen from current position to end of line

Description

bool ncurses_clrtoeol ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

ncurses_clrtoeol() erases the current line from cursor position to the end. Blanks created by ncurses_clrtoeol() have the current background rendition. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

See also ncurses_clear(), and ncurses_clrtobot()

Anterior | Inicio | Siguiente
ncurses_clrtobot | Subir | ncurses_color_content


ncurses_color_content

(PHP 4 >= 4.3.0)

ncurses_color_content -- Gets the RGB value for color

Description

int ncurses_color_content ( int color, int &r, int &g, int &b)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_clrtoeol | Subir | ncurses_color_set


ncurses_color_set

(PHP 4 >= 4.1.0)

ncurses_color_set -- Set fore- and background color

Description

int ncurses_color_set ( int pair)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_color_content | Subir | ncurses_curs_set


ncurses_curs_set

(PHP 4 >= 4.1.0)

ncurses_curs_set -- Set cursor state

Description

int ncurses_curs_set ( int visibility)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_color_set | Subir | ncurses_def_prog_mode


ncurses_def_prog_mode

(PHP 4 >= 4.1.0)

ncurses_def_prog_mode -- Saves terminals (program) mode

Description

bool ncurses_def_prog_mode ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

ncurses_def_prog_mode() saves the current terminal modes for program (in curses) for use by ncurses_reset_prog_mode(). Returns FALSE on success, otherwise TRUE.

See also: ncurses_reset_prog_mode()

Anterior | Inicio | Siguiente
ncurses_curs_set | Subir | ncurses_def_shell_mode


ncurses_def_shell_mode

(PHP 4 >= 4.1.0)

ncurses_def_shell_mode -- Saves terminals (shell) mode

Description

bool ncurses_def_shell_mode ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

ncurses_def_shell_mode() saves the current terminal modes for shell (not in curses) for use by ncurses_reset_shell_mode(). Returns FALSE on success, otherwise TRUE.

See also: ncurses_reset_shell_mode()

Anterior | Inicio | Siguiente
ncurses_def_prog_mode | Subir | ncurses_define_key


ncurses_define_key

(PHP 4 >= 4.2.0)

ncurses_define_key -- Define a keycode

Description

int ncurses_define_key ( string definition, int keycode)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_def_shell_mode | Subir | ncurses_del_panel


ncurses_del_panel

(PHP 4 >= 4.3.0)

ncurses_del_panel -- Remove panel from the stack and delete it (but not the associated window)

Description

int ncurses_del_panel ( resource panel)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_define_key | Subir | ncurses_delay_output


ncurses_delay_output

(PHP 4 >= 4.1.0)

ncurses_delay_output -- Delay output on terminal using padding characters

Description

int ncurses_delay_output ( int milliseconds)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_del_panel | Subir | ncurses_delch


ncurses_delch

(PHP 4 >= 4.1.0)

ncurses_delch -- Delete character at current position, move rest of line left

Description

bool ncurses_delch ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

ncurses_delch() deletes the character under the cursor. All characters to the right of the cursor on the same line are moved to the left one position and the last character on the line is filled with a blank. The cursor position does not change. Returns FALSE on success, otherwise TRUE.

See also: ncurses_deleteln()

Anterior | Inicio | Siguiente
ncurses_delay_output | Subir | ncurses_deleteln


ncurses_deleteln

(PHP 4 >= 4.1.0)

ncurses_deleteln -- Delete line at current position, move rest of screen up

Description

bool ncurses_deleteln ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

ncurses_deleteln() deletes the current line under cursorposition. All lines below the current line are moved up one line. The bottom line of window is cleared. Cursor position does not change. Returns FALSE on success, otherwise TRUE.

See also: ncurses_delch()

Anterior | Inicio | Siguiente
ncurses_delch | Subir | ncurses_delwin


ncurses_delwin

(PHP 4 >= 4.1.0)

ncurses_delwin -- Delete a ncurses window

Description

int ncurses_delwin ( resource window)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_deleteln | Subir | ncurses_doupdate


ncurses_doupdate

(PHP 4 >= 4.1.0)

ncurses_doupdate -- Write all prepared refreshes to terminal

Description

bool ncurses_doupdate ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

ncurses_doupdate()() compares the virtual screen to the physical screen and updates the physical screen. This way is more effective than using multiple refresh calls. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Anterior | Inicio | Siguiente
ncurses_delwin | Subir | ncurses_echo


ncurses_echo

(PHP 4 >= 4.1.0)

ncurses_echo -- Activate keyboard input echo

Description

bool ncurses_echo ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

ncurses_echo() enables echo mode. All characters typed by user are echoed by ncurses_getch(). Returns FALSE on success, TRUE if any error occured.

To disable echo mode use ncurses_noecho().

Anterior | Inicio | Siguiente
ncurses_doupdate | Subir | ncurses_echochar


ncurses_echochar

(PHP 4 >= 4.1.0)

ncurses_echochar -- Single character output including refresh

Description

int ncurses_echochar ( int character)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_echo | Subir | ncurses_end


ncurses_end

(PHP 4 >= 4.1.0)

ncurses_end -- Stop using ncurses, clean up the screen

Description

int ncurses_end ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_echochar | Subir | ncurses_erase


ncurses_erase

(PHP 4 >= 4.1.0)

ncurses_erase -- Erase terminal screen

Description

bool ncurses_erase ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

ncurses_erase() fills the terminal screen with blanks. Created blanks have the current background rendition, set by ncurses_bkgd(). Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

See also ncurses_bkgd(), and ncurses_clear()

Anterior | Inicio | Siguiente
ncurses_end | Subir | ncurses_erasechar


ncurses_erasechar

(PHP 4 >= 4.1.0)

ncurses_erasechar -- Returns current erase character

Description

string ncurses_erasechar ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

ncurses_erasechar() returns the current erase char character.

See also: ncurses_killchar()

Anterior | Inicio | Siguiente
ncurses_erase | Subir | ncurses_filter


ncurses_filter

(PHP 4 >= 4.1.0)

ncurses_filter --

Description

int ncurses_filter ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_erasechar | Subir | ncurses_flash


ncurses_flash

(PHP 4 >= 4.1.0)

ncurses_flash -- Flash terminal screen (visual bell)

Description

bool ncurses_flash ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

ncurses_flash() flashes the screen, and if its not possible, sends an audible alert (bell). Returns FALSE on success, otherwise TRUE.

See also: ncurses_beep()

Anterior | Inicio | Siguiente
ncurses_filter | Subir | ncurses_flushinp


ncurses_flushinp

(PHP 4 >= 4.1.0)

ncurses_flushinp -- Flush keyboard input buffer

Description

bool ncurses_flushinp ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

The ncurses_flushinp() throws away any typeahead that has been typed and has not yet been read by your program. Returns FALSE on success, otherwise TRUE.

Anterior | Inicio | Siguiente
ncurses_flash | Subir | ncurses_getch


ncurses_getch

(PHP 4 >= 4.1.0)

ncurses_getch -- Read a character from keyboard

Description

int ncurses_getch ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_flushinp | Subir | ncurses_getmaxyx


ncurses_getmaxyx

(PHP 4 >= 4.3.0)

ncurses_getmaxyx -- Returns the size of a window

Description

void ncurses_getmaxyx ( resource window, int &y, int &x)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_getch | Subir | ncurses_getmouse


ncurses_getmouse

(PHP 4 >= 4.2.0)

ncurses_getmouse -- Reads mouse event

Description

bool ncurses_getmouse ( array mevent)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

ncurses_getmouse() reads mouse event out of queue. Function ncurses_getmouse() will return ;FALSE if a mouse event is actually visible in the given window, otherwise it will return TRUE. Event options will be delivered in parameter mevent, which has to be an array, passed by reference (see example below). On success an associative array with following keys will be delivered:

  • "id" : Id to distinguish multiple devices

  • "x" : screen relative x-position in character cells

  • "y" : screen relative y-position in character cells

  • "z" : currently not supported

  • "mmask" : Mouse action

Ejemplo 1. ncurses_getmouse() example

<?php
switch (ncurses_getch()){
  case NCURSES_KEY_MOUSE:
    if (!ncurses_getmouse(&$mevent)){
      if ($mevent["mmask"] & NCURSES_MOUSE_BUTTON1_PRESSED){
        $mouse_x = $mevent["x"]; // Save mouse position
        $mouse_y = $mevent["y"];
      }
    }
  break;

  default:
    /* .... */
}
?>

See also ncurses_ungetmouse()

Anterior | Inicio | Siguiente
ncurses_getmaxyx | Subir | ncurses_getyx


ncurses_getyx

(PHP 4 >= 4.3.0)

ncurses_getyx -- Returns the current cursor position for a window

Description

void ncurses_getyx ( resource window, int &y, int &x)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_getmouse | Subir | ncurses_halfdelay


ncurses_halfdelay

(PHP 4 >= 4.1.0)

ncurses_halfdelay -- Put terminal into halfdelay mode

Description

int ncurses_halfdelay ( int tenth)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_getyx | Subir | ncurses_has_colors


ncurses_has_colors

(PHP 4 >= 4.1.0)

ncurses_has_colors -- Check if terminal has colors

Description

bool ncurses_has_colors ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

ncurses_has_colors() returns TRUE or FALSE depending on whether the terminal has color capacitites.

See also: ncurses_can_change_color()

Anterior | Inicio | Siguiente
ncurses_halfdelay | Subir | ncurses_has_ic


ncurses_has_ic

(PHP 4 >= 4.1.0)

ncurses_has_ic -- Check for insert- and delete-capabilities

Description

bool ncurses_has_ic ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

ncurses_has_ic() checks terminals insert- and delete capabilitites. It returns TRUE when terminal has insert/delete-capabilities, otherwise FALSE.

See also: ncurses_has_il()

Anterior | Inicio | Siguiente
ncurses_has_colors | Subir | ncurses_has_il


ncurses_has_il

(PHP 4 >= 4.1.0)

ncurses_has_il -- Check for line insert- and delete-capabilities

Description

bool ncurses_has_il ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

ncurses_has_il() checks terminals insert- and delete-line-capabilities. It returns TRUE when terminal has insert/delete-line capabilities, otherwise FALSE

See also: ncurses_has_ic()

Anterior | Inicio | Siguiente
ncurses_has_ic | Subir | ncurses_has_key


ncurses_has_key

(PHP 4 >= 4.1.0)

ncurses_has_key -- Check for presence of a function key on terminal keyboard

Description

int ncurses_has_key ( int keycode)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_has_il | Subir | ncurses_hide_panel


ncurses_hide_panel

(PHP 4 >= 4.3.0)

ncurses_hide_panel -- Remove panel from the stack, making it invisible

Description

int ncurses_hide_panel ( resource panel)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_has_key | Subir | ncurses_hline


ncurses_hline

(PHP 4 >= 4.2.0)

ncurses_hline -- Draw a horizontal line at current position using an attributed character and max. n characters long

Description

int ncurses_hline ( int charattr, int n)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_hide_panel | Subir | ncurses_inch


ncurses_inch

(PHP 4 >= 4.1.0)

ncurses_inch -- Get character and attribute at current position

Description

string ncurses_inch ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

ncurses_inch() returns the character from the current position.

Anterior | Inicio | Siguiente
ncurses_hline | Subir | ncurses_init_color


ncurses_init_color

(PHP 4 >= 4.2.0)

ncurses_init_color -- Set new RGB value for color

Description

int ncurses_init_color ( int color, int r, int g, int b)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_inch | Subir | ncurses_init_pair


ncurses_init_pair

(PHP 4 >= 4.1.0)

ncurses_init_pair -- Allocate a color pair

Description

int ncurses_init_pair ( int pair, int fg, int bg)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_init_color | Subir | ncurses_init


ncurses_init

(PHP 4 >= 4.1.0)

ncurses_init -- Initialize ncurses

Description

int ncurses_init ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_init_pair | Subir | ncurses_insch


ncurses_insch

(PHP 4 >= 4.1.0)

ncurses_insch -- Insert character moving rest of line including character at current position

Description

int ncurses_insch ( int character)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_init | Subir | ncurses_insdelln


ncurses_insdelln

(PHP 4 >= 4.1.0)

ncurses_insdelln -- Insert lines before current line scrolling down (negative numbers delete and scroll up)

Description

int ncurses_insdelln ( int count)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_insch | Subir | ncurses_insertln


ncurses_insertln

(PHP 4 >= 4.1.0)

ncurses_insertln -- Insert a line, move rest of screen down

Description

bool ncurses_insertln ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

ncurses_insertln() inserts a new line above the current line. The bottom line will be lost.

Anterior | Inicio | Siguiente
ncurses_insdelln | Subir | ncurses_insstr


ncurses_insstr

(PHP 4 >= 4.2.0)

ncurses_insstr -- Insert string at current position, moving rest of line right

Description

int ncurses_insstr ( string text)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_insertln | Subir | ncurses_instr


ncurses_instr

(PHP 4 >= 4.2.0)

ncurses_instr -- Reads string from terminal screen

Description

int ncurses_instr ( string buffer)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

ncurses_instr() returns the number of characters read from the current character position until end of line. buffer contains the characters. Atrributes are stripped from the characters.

Anterior | Inicio | Siguiente
ncurses_insstr | Subir | ncurses_isendwin


ncurses_isendwin

(PHP 4 >= 4.1.0)

ncurses_isendwin -- Ncurses is in endwin mode, normal screen output may be performed

Description

bool ncurses_isendwin ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

ncurses_isendwin() returns TRUE, if
ncurses_endwin() has been called without any
subsequent calls to ncurses_wrefresh(),
otherwise FALSE.

See also ncurses_endwin() and ncurses_wrefresh().

Anterior | Inicio | Siguiente
ncurses_instr | Subir | ncurses_keyok


ncurses_keyok

(PHP 4 >= 4.2.0)

ncurses_keyok -- Enable or disable a keycode

Description

int ncurses_keyok ( int keycode, bool enable)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_isendwin | Subir | ncurses_keypad


ncurses_keypad

(PHP 4 >= 4.2.0)

ncurses_keypad -- Turns keypad on or off

Description

int ncurses_keypad ( resource window, bool bf)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_keyok | Subir | ncurses_killchar


ncurses_killchar

(PHP 4 >= 4.1.0)

ncurses_killchar -- Returns current line kill character

Description

bool ncurses_killchar ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

ncurses_killchar() returns the current line kill character.

See also: ncurses_erasechar()

Anterior | Inicio | Siguiente
ncurses_keypad | Subir | ncurses_longname


ncurses_longname

(PHP 4 >= 4.2.0)

ncurses_longname -- Returns terminals description

Description

string ncurses_longname ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

ncurses_longname() returns a verbose description of the terminal. The descritpion is truncated to 128 characters. On Error ncurses_longname() returns NULL.

See also: ncurses_termname()

Anterior | Inicio | Siguiente
ncurses_killchar | Subir | ncurses_meta


ncurses_meta

(PHP 4 >= 4.3.0)

ncurses_meta -- Enables/Disable 8-bit meta key information

Description

long ncurses_meta ( resource window, bool 8bit)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_longname | Subir | ncurses_mouse_trafo


ncurses_mouse_trafo

(PHP 4 >= 4.2.0)

ncurses_mouse_trafo -- Transforms coordinates

Description

bool ncurses_mouse_trafo ( int &y, int &x, bool toscreen)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_meta | Subir | ncurses_mouseinterval


ncurses_mouseinterval

(PHP 4 >= 4.1.0)

ncurses_mouseinterval -- Set timeout for mouse button clicks

Description

int ncurses_mouseinterval ( int milliseconds)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_mouse_trafo | Subir | ncurses_mousemask


ncurses_mousemask

(PHP 4 >= 4.2.0)

ncurses_mousemask -- Sets mouse options

Description

int ncurses_mousemask ( int newmask, int oldmask)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Function ncurses_mousemask() will set mouse events to be reported. By default no mouse events will be reported. The function ncurses_mousemask() will return a mask to indicated which of the in parameter newmask specified mouse events can be reported. On complete failure, it returns 0. In parameter oldmask, which is passed by reference ncurses_mousemask() returns the previous value of mouse event mask. Mouse events are represented bei NCURSES_KEY_MOUSE in the ncurses_wgetch() input stream. To read the event data and pop the event of of queue, call ncurses_getmouse().

As a side effect, setting a zero mousemask in newmask turns off the mouse pointer. Setting a non zero value turns mouse pointer on.

mouse mask options can be set with the following predefined constants:

  • NCURSES_BUTTON1_PRESSED

  • NCURSES_BUTTON1_RELEASED

  • NCURSES_BUTTON1_CLICKED

  • NCURSES_BUTTON1_DOUBLE_CLICKED

  • NCURSES_BUTTON1_TRIPLE_CLICKED

  • NCURSES_BUTTON2_PRESSED

  • NCURSES_BUTTON2_RELEASED

  • NCURSES_BUTTON2_CLICKED

  • NCURSES_BUTTON2_DOUBLE_CLICKED

  • NCURSES_BUTTON2_TRIPLE_CLICKED

  • NCURSES_BUTTON3_PRESSED

  • NCURSES_BUTTON3_RELEASED

  • NCURSES_BUTTON3_CLICKED

  • NCURSES_BUTTON3_DOUBLE_CLICKED

  • NCURSES_BUTTON3_TRIPLE_CLICKED

  • NCURSES_BUTTON4_PRESSED

  • NCURSES_BUTTON4_RELEASED

  • NCURSES_BUTTON4_CLICKED

  • NCURSES_BUTTON4_DOUBLE_CLICKED

  • NCURSES_BUTTON4_TRIPLE_CLICKED

  • NCURSES_BUTTON_SHIFT>

  • NCURSES_BUTTON_CTRL

  • NCURSES_BUTTON_ALT

  • NCURSES_ALL_MOUSE_EVENTS

  • NCURSES_REPORT_MOUSE_POSITION

Ejemplo 1. ncurses_mousemask() example

<?php
$newmask = NCURSES_BUTTON1_CLICKED + NCURSES_BUTTON1_RELEASED;
$mask = ncurses_mousemask($newmask, &$oldmask);
if ($mask & $newmask){
  printf ("All specified mouse options will be supported\n");
}
?>

See also ncurses_getmouse(),
ncurses_ungetmouse() and
ncurese_getch().

Anterior | Inicio | Siguiente
ncurses_mouseinterval | Subir | ncurses_move_panel


ncurses_move_panel

(PHP 4 >= 4.3.0)

ncurses_move_panel -- Moves a panel so that it's upper-left corner is at [startx, starty]

Description

int ncurses_move_panel ( resource panel, int startx, int starty)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_mousemask | Subir | ncurses_move


ncurses_move

(PHP 4 >= 4.1.0)

ncurses_move -- Move output position

Description

int ncurses_move ( int y, int x)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_move_panel | Subir | ncurses_mvaddch


ncurses_mvaddch

(PHP 4 >= 4.2.0)

ncurses_mvaddch -- Move current position and add character

Description

int ncurses_mvaddch ( int y, int x, int c)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_move | Subir | ncurses_mvaddchnstr


ncurses_mvaddchnstr

(PHP 4 >= 4.2.0)

ncurses_mvaddchnstr -- Move position and add attrributed string with specified length

Description

int ncurses_mvaddchnstr ( int y, int x, string s, int n)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_mvaddch | Subir | ncurses_mvaddchstr


ncurses_mvaddchstr

(PHP 4 >= 4.2.0)

ncurses_mvaddchstr -- Move position and add attributed string

Description

int ncurses_mvaddchstr ( int y, int x, string s)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_mvaddchnstr | Subir | ncurses_mvaddnstr


ncurses_mvaddnstr

(PHP 4 >= 4.2.0)

ncurses_mvaddnstr -- Move position and add string with specified length

Description

int ncurses_mvaddnstr ( int y, int x, string s, int n)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_mvaddchstr | Subir | ncurses_mvaddstr


ncurses_mvaddstr

(PHP 4 >= 4.2.0)

ncurses_mvaddstr -- Move position and add string

Description

int ncurses_mvaddstr ( int y, int x, string s)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_mvaddnstr | Subir | ncurses_mvcur


ncurses_mvcur

(PHP 4 >= 4.2.0)

ncurses_mvcur -- Move cursor immediately

Description

int ncurses_mvcur ( int old_y, int old_x, int new_y, int new_x)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_mvaddstr | Subir | ncurses_mvdelch


ncurses_mvdelch

(PHP 4 >= 4.2.0)

ncurses_mvdelch -- Move position and delete character, shift rest of line left

Description

int ncurses_mvdelch ( int y, int x)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_mvcur | Subir | ncurses_mvgetch


ncurses_mvgetch

(PHP 4 >= 4.2.0)

ncurses_mvgetch -- Move position and get character at new position

Description

int ncurses_mvgetch ( int y, int x)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_mvdelch | Subir | ncurses_mvhline


ncurses_mvhline

(PHP 4 >= 4.2.0)

ncurses_mvhline -- Set new position and draw a horizontal line using an attributed character and max. n characters long

Description

int ncurses_mvhline ( int y, int x, int attrchar, int n)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_mvgetch | Subir | ncurses_mvinch


ncurses_mvinch

(PHP 4 >= 4.2.0)

ncurses_mvinch -- Move position and get attributed character at new position

Description

int ncurses_mvinch ( int y, int x)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_mvhline | Subir | ncurses_mvvline


ncurses_mvvline

(no version information, might be only in CVS)

ncurses_mvvline -- Set new position and draw a vertical line using an attributed character and max. n characters long

Description

int ncurses_mvvline ( int y, int x, int attrchar, int n)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_mvinch | Subir | ncurses_mvwaddstr


ncurses_mvwaddstr

(PHP 4 >= 4.2.0)

ncurses_mvwaddstr -- Add string at new position in window

Description

int ncurses_mvwaddstr ( resource window, int y, int x, string text)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_mvvline | Subir | ncurses_napms


ncurses_napms

(PHP 4 >= 4.1.0)

ncurses_napms -- Sleep

Description

int ncurses_napms ( int milliseconds)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_mvwaddstr | Subir | ncurses_new_panel


ncurses_new_panel

(PHP 4 >= 4.3.0)

ncurses_new_panel -- Create a new panel and associate it with window

Description

resource ncurses_new_panel ( resource window)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_napms | Subir | ncurses_newpad


ncurses_newpad

(PHP 4 >= 4.3.0)

ncurses_newpad -- Creates a new pad (window)

Description

resource ncurses_newpad ( int rows, int cols)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_new_panel | Subir | ncurses_newwin


ncurses_newwin

(PHP 4 >= 4.1.0)

ncurses_newwin -- Create a new window

Description

int ncurses_newwin ( int rows, int cols, int y, int x)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_newpad | Subir | ncurses_nl


ncurses_nl

(PHP 4 >= 4.1.0)

ncurses_nl -- Translate newline and carriage return / line feed

Description

bool ncurses_nl ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_newwin | Subir | ncurses_nocbreak


ncurses_nocbreak

(PHP 4 >= 4.1.0)

ncurses_nocbreak -- Switch terminal to cooked mode

Description

bool ncurses_nocbreak ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

ncurses_nocbreak() routine returns terminal to normal (cooked) mode. Initially the terminal may or may not in cbreak mode as the mode is inherited. Therefore a program should call ncurses_cbreak() and ncurses_nocbreak() explicitly. Returns TRUE if any error occured, otherwise FALSE.

See also: ncurses_cbreak()

Anterior | Inicio | Siguiente
ncurses_nl | Subir | ncurses_noecho


ncurses_noecho

(PHP 4 >= 4.1.0)

ncurses_noecho -- Switch off keyboard input echo

Description

bool ncurses_noecho ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

ncurses_noecho() prevents echoing of user typed characters. Returns TRUE if any error occured, otherwise FALSE.

See also: ncurses_echo(), ncurses_getch()

Anterior | Inicio | Siguiente
ncurses_nocbreak | Subir | ncurses_nonl


ncurses_nonl

(PHP 4 >= 4.1.0)

ncurses_nonl -- Do not translate newline and carriage return / line feed

Description

bool ncurses_nonl ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_noecho | Subir | ncurses_noqiflush


ncurses_noqiflush

(PHP 4 >= 4.1.0)

ncurses_noqiflush -- Do not flush on signal characters

Description

int ncurses_noqiflush ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_nonl | Subir | ncurses_noraw


ncurses_noraw

(PHP 4 >= 4.1.0)

ncurses_noraw -- Switch terminal out of raw mode

Description

bool ncurses_noraw ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

ncurses_noraw() switches the terminal out of raw mode. Raw mode is similar to cbreak mode, in that characters typed are immediately passed through to the user program. The differences that are that in raw mode, the interrupt, quit, suspend and flow control characters are all passed through uninterpreted, instead of generating a signal. Returns TRUE if any error occured, otherwise FALSE.

See also: ncurses_raw(),
ncurses_cbreak(),
ncurses_nocbreak()

Anterior | Inicio | Siguiente
ncurses_noqiflush | Subir | ncurses_pair_content


ncurses_pair_content

(PHP 4 >= 4.3.0)

ncurses_pair_content -- Gets the RGB value for color

Description

int ncurses_pair_content ( int pair, int &f, int &b)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_noraw | Subir | ncurses_panel_above


ncurses_panel_above

(PHP 4 >= 4.3.0)

ncurses_panel_above -- Returns the panel above panel. If panel is null, returns the bottom panel in the stack

Description

int ncurses_panel_above ( resource panel)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_pair_content | Subir | ncurses_panel_below


ncurses_panel_below

(PHP 4 >= 4.3.0)

ncurses_panel_below -- Returns the panel below panel. If panel is null, returns the top panel in the stack

Description

int ncurses_panel_below ( resource panel)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_panel_above | Subir | ncurses_panel_window


ncurses_panel_window

(PHP 4 >= 4.3.0)

ncurses_panel_window -- Returns the window associated with panel

Description

int ncurses_panel_window ( resource panel)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_panel_below | Subir | ncurses_pnoutrefresh


ncurses_pnoutrefresh

(PHP 4 >= 4.3.0)

ncurses_pnoutrefresh -- Copys a region from a pad into the virtual screen

Description

int ncurses_pnoutrefresh ( resource pad, int pminrow, int pmincol, int sminrow, int smincol, int smaxrow, int smaxcol)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_panel_window | Subir | ncurses_prefresh


ncurses_prefresh

(PHP 4 >= 4.3.0)

ncurses_prefresh -- Copys a region from a pad into the virtual screen

Description

int ncurses_prefresh ( resource pad, int pminrow, int pmincol, int sminrow, int smincol, int smaxrow, int smaxcol)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_pnoutrefresh | Subir | ncurses_putp


ncurses_putp

(PHP 4 >= 4.2.0)

ncurses_putp --

Description

int ncurses_putp ( string text)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_prefresh | Subir | ncurses_qiflush


ncurses_qiflush

(PHP 4 >= 4.1.0)

ncurses_qiflush -- Flush on signal characters

Description

int ncurses_qiflush ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_putp | Subir | ncurses_raw


ncurses_raw

(PHP 4 >= 4.1.0)

ncurses_raw -- Switch terminal into raw mode

Description

bool ncurses_raw ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

ncurses_raw() places the terminal in raw mode. Raw mode is similar to cbreak mode, in that characters typed are immediately passed through to the user program. The differences that are that in raw mode, the interrupt, quit, suspend and flow control characters are all passed through uninterpreted, instead of generating a signal. Returns TRUE if any error occured, otherwise FALSE.

See also: ncurses_noraw(),
ncurses_cbreak(),
ncurses_nocbreak()

Anterior | Inicio | Siguiente
ncurses_qiflush | Subir | ncurses_refresh


ncurses_refresh

(PHP 4 >= 4.1.0)

ncurses_refresh -- Refresh screen

Description

int ncurses_refresh ( int ch)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_raw | Subir | ncurses_replace_panel


ncurses_replace_panel

(PHP 4 >= 4.3.0)

ncurses_replace_panel -- Replaces the window associated with panel

Description

int ncurses_replace_panel ( resource panel, resource window)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_refresh | Subir | ncurses_reset_prog_mode


ncurses_reset_prog_mode

(PHP 4 >= 4.3.0)

ncurses_reset_prog_mode -- Resets the prog mode saved by def_prog_mode

Description

int ncurses_reset_prog_mode ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_replace_panel | Subir | ncurses_reset_shell_mode


ncurses_reset_shell_mode

(PHP 4 >= 4.3.0)

ncurses_reset_shell_mode -- Resets the shell mode saved by def_shell_mode

Description

int ncurses_reset_shell_mode ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_reset_prog_mode | Subir | ncurses_resetty


ncurses_resetty

(PHP 4 >= 4.1.0)

ncurses_resetty -- Restores saved terminal state

Description

bool ncurses_resetty ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Function ncurses_resetty() restores the terminal state, which was previously saved by calling ncurses_savetty(). This function always returns FALSE.

See also: ncurses_savetty()

Anterior | Inicio | Siguiente
ncurses_reset_shell_mode | Subir | ncurses_savetty


ncurses_savetty

(PHP 4 >= 4.1.0)

ncurses_savetty -- Saves terminal state

Description

bool ncurses_savetty ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Function ncurses_savetty() saves the current terminal state. The saved terminal state can be restored with function ncurses_resetty(). ncurses_savetty() always returns FALSE.

See also: ncurses_resetty()

Anterior | Inicio | Siguiente
ncurses_resetty | Subir | ncurses_scr_dump


ncurses_scr_dump

(PHP 4 >= 4.2.0)

ncurses_scr_dump -- Dump screen content to file

Description

int ncurses_scr_dump ( string filename)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_savetty | Subir | ncurses_scr_init


ncurses_scr_init

(PHP 4 >= 4.2.0)

ncurses_scr_init -- Initialize screen from file dump

Description

int ncurses_scr_init ( string filename)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_scr_dump | Subir | ncurses_scr_restore


ncurses_scr_restore

(PHP 4 >= 4.2.0)

ncurses_scr_restore -- Restore screen from file dump

Description

int ncurses_scr_restore ( string filename)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_scr_init | Subir | ncurses_scr_set


ncurses_scr_set

(PHP 4 >= 4.2.0)

ncurses_scr_set -- Inherit screen from file dump

Description

int ncurses_scr_set ( string filename)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_scr_restore | Subir | ncurses_scrl


ncurses_scrl

(PHP 4 >= 4.1.0)

ncurses_scrl -- Scroll window content up or down without changing current position

Description

int ncurses_scrl ( int count)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_scr_set | Subir | ncurses_show_panel


ncurses_show_panel

(PHP 4 >= 4.3.0)

ncurses_show_panel -- Places an invisible panel on top of the stack, making it visible

Description

int ncurses_show_panel ( resource panel)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_scrl | Subir | ncurses_slk_attr


ncurses_slk_attr

(PHP 4 >= 4.1.0)

ncurses_slk_attr -- Returns current soft label key attribute

Description

bool ncurses_slk_attr ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

ncurses_slk_attr() returns the current soft label key attribute. On error returns TRUE, otherwise FALSE.

Anterior | Inicio | Siguiente
ncurses_show_panel | Subir | ncurses_slk_attroff


ncurses_slk_attroff

(PHP 4 >= 4.1.0)

ncurses_slk_attroff --

Description

int ncurses_slk_attroff ( int intarg)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_slk_attr | Subir | ncurses_slk_attron


ncurses_slk_attron

(PHP 4 >= 4.1.0)

ncurses_slk_attron --

Description

int ncurses_slk_attron ( int intarg)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_slk_attroff | Subir | ncurses_slk_attrset


ncurses_slk_attrset

(PHP 4 >= 4.1.0)

ncurses_slk_attrset --

Description

int ncurses_slk_attrset ( int intarg)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_slk_attron | Subir | ncurses_slk_clear


ncurses_slk_clear

(PHP 4 >= 4.1.0)

ncurses_slk_clear -- Clears soft labels from screen

Description

bool ncurses_slk_clear ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

The function ncurses_slk_clear() clears soft label keys from screen. Returns TRUE on error, otherwise FALSE.

Anterior | Inicio | Siguiente
ncurses_slk_attrset | Subir | ncurses_slk_color


ncurses_slk_color

(PHP 4 >= 4.1.0)

ncurses_slk_color -- Sets color for soft label keys

Description

int ncurses_slk_color ( int intarg)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_slk_clear | Subir | ncurses_slk_init


ncurses_slk_init

(PHP 4 >= 4.1.0)

ncurses_slk_init -- Initializes soft label key functions

Description

bool ncurses_slk_init ( int format)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Function ncurses_slk_init() must be called before ncurses_initscr() or ncurses_newterm() is called. If ncurses_initscr() eventually uses a line from stdscr to emulate the soft labels, then format determines how the labels are arranged of the screen. Setting format to 0 indicates a 3-2-3 arrangement of the labels, 1 indicates a 4-4 arrangement and 2 indicates the PC like 4-4-4 mode, but in addition an index line will be created.

Anterior | Inicio | Siguiente
ncurses_slk_color | Subir | ncurses_slk_noutrefresh


ncurses_slk_noutrefresh

(PHP 4 >= 4.1.0)

ncurses_slk_noutrefresh -- Copies soft label keys to virtual screen

Description

bool ncurses_slk_noutrefresh ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_slk_init | Subir | ncurses_slk_refresh


ncurses_slk_refresh

(PHP 4 >= 4.1.0)

ncurses_slk_refresh -- Copies soft label keys to screen

Description

bool ncurses_slk_refresh ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

ncurses_slk_refresh() copies soft label keys from virtual screen to physical screen. Returns TRUE on error, otherwise FALSE.

Anterior | Inicio | Siguiente
ncurses_slk_noutrefresh | Subir | ncurses_slk_restore


ncurses_slk_restore

(PHP 4 >= 4.1.0)

ncurses_slk_restore -- Restores soft label keys

Description

bool ncurses_slk_restore ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

The function ncurses_slk_restore() restores the soft label keys after ncurses_slk_clear() has been performed.

Anterior | Inicio | Siguiente
ncurses_slk_refresh | Subir | ncurses_slk_set


ncurses_slk_set

(PHP 4 >= 4.2.0)

ncurses_slk_set -- Sets function key labels

Description

bool ncurses_slk_set ( int labelnr, string label, int format)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_slk_restore | Subir | ncurses_slk_touch


ncurses_slk_touch

(PHP 4 >= 4.1.0)

ncurses_slk_touch -- Fources output when ncurses_slk_noutrefresh is performed

Description

bool ncurses_slk_touch ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

The ncurses_slk_touch() function forces all the soft labels to be output the next time a ncurses_slk_noutrefresh() is performed.

Anterior | Inicio | Siguiente
ncurses_slk_set | Subir | ncurses_standend


ncurses_standend

(PHP 4 >= 4.1.0)

ncurses_standend -- Stop using 'standout' attribute

Description

int ncurses_standend ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_slk_touch | Subir | ncurses_standout


ncurses_standout

(PHP 4 >= 4.1.0)

ncurses_standout -- Start using 'standout' attribute

Description

int ncurses_standout ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_standend | Subir | ncurses_start_color


ncurses_start_color

(PHP 4 >= 4.1.0)

ncurses_start_color -- Start using colors

Description

int ncurses_start_color ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_standout | Subir | ncurses_termattrs


ncurses_termattrs

(PHP 4 >= 4.1.0)

ncurses_termattrs -- Returns a logical OR of all attribute flags supported by terminal

Description

bool ncurses_termattrs ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_start_color | Subir | ncurses_termname


ncurses_termname

(PHP 4 >= 4.2.0)

ncurses_termname -- Returns terminals (short)-name

Description

string ncurses_termname ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

ncurses_termname() returns terminals shortname. The shortname is truncated to 14 characters. On error ncurses_termname() returns NULL.

See also: ncurses_longname()

Anterior | Inicio | Siguiente
ncurses_termattrs | Subir | ncurses_timeout


ncurses_timeout

(PHP 4 >= 4.1.0)

ncurses_timeout -- Set timeout for special key sequences

Description

void ncurses_timeout ( int millisec)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_termname | Subir | ncurses_top_panel


ncurses_top_panel

(PHP 4 >= 4.3.0)

ncurses_top_panel -- Moves a visible panel to the top of the stack

Description

int ncurses_top_panel ( resource panel)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_timeout | Subir | ncurses_typeahead


ncurses_typeahead

(PHP 4 >= 4.1.0)

ncurses_typeahead -- Specify different filedescriptor for typeahead checking

Description

int ncurses_typeahead ( int fd)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_top_panel | Subir | ncurses_ungetch


ncurses_ungetch

(PHP 4 >= 4.1.0)

ncurses_ungetch -- Put a character back into the input stream

Description

int ncurses_ungetch ( int keycode)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_typeahead | Subir | ncurses_ungetmouse


ncurses_ungetmouse

(PHP 4 >= 4.2.0)

ncurses_ungetmouse -- Pushes mouse event to queue

Description

bool ncurses_ungetmouse ( array mevent)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

ncurses_getmouse() pushes a KEY_MOUSE event onto the unput queue and associates with this event the given state sata and screen-relative character cell coordinates, specified in mevent. Event options will be specified in associative array mevent:

  • "id" : Id to distinguish multiple devices

  • "x" : screen relative x-position in character cells

  • "y" : screen relative y-position in character cells

  • "z" : currently not supported

  • "mmask" : Mouse action

ncurses_ungetmouse() returns FALSE on success, otherwise TRUE.

See also: ncurses_getmouse()

Anterior | Inicio | Siguiente
ncurses_ungetch | Subir | ncurses_update_panels


ncurses_update_panels

(PHP 4 >= 4.3.0)

ncurses_update_panels -- Refreshes the virtual screen to reflect the relations between panels in the stack.

Description

void ncurses_update_panels ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_ungetmouse | Subir | ncurses_use_default_colors


ncurses_use_default_colors

(PHP 4 >= 4.1.0)

ncurses_use_default_colors -- Assign terminal default colors to color id -1

Description

bool ncurses_use_default_colors ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_update_panels | Subir | ncurses_use_env


ncurses_use_env

(PHP 4 >= 4.1.0)

ncurses_use_env -- Control use of environment information about terminal size

Description

void ncurses_use_env ( bool flag)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_use_default_colors | Subir | ncurses_use_extended_names


ncurses_use_extended_names

(PHP 4 >= 4.1.0)

ncurses_use_extended_names -- Control use of extended names in terminfo descriptions

Description

int ncurses_use_extended_names ( bool flag)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_use_env | Subir | ncurses_vidattr


ncurses_vidattr

(PHP 4 >= 4.1.0)

ncurses_vidattr --

Description

int ncurses_vidattr ( int intarg)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_use_extended_names | Subir | ncurses_vline


ncurses_vline

(PHP 4 >= 4.2.0)

ncurses_vline -- Draw a vertical line at current position using an attributed character and max. n characters long

Description

int ncurses_vline ( int charattr, int n)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_vidattr | Subir | ncurses_waddch


ncurses_waddch

(PHP 4 >= 4.3.0)

ncurses_waddch -- Adds character at current position in a window and advance cursor

Description

int ncurses_waddch ( resource window, int ch)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_vline | Subir | ncurses_waddstr


ncurses_waddstr

(PHP 4 >= 4.2.0)

ncurses_waddstr -- Outputs text at current postion in window

Description

int ncurses_waddstr ( resource window, string str [, int n])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_waddch | Subir | ncurses_wattroff


ncurses_wattroff

(PHP 4 >= 4.3.0)

ncurses_wattroff -- Turns off attributes for a window

Description

int ncurses_wattroff ( resource window, int attrs)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_waddstr | Subir | ncurses_wattron


ncurses_wattron

(PHP 4 >= 4.3.0)

ncurses_wattron -- Turns on attributes for a window

Description

int ncurses_wattron ( resource window, int attrs)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_wattroff | Subir | ncurses_wattrset


ncurses_wattrset

(PHP 4 >= 4.3.0)

ncurses_wattrset -- Set the attributes for a window

Description

int ncurses_wattrset ( resource window, int attrs)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_wattron | Subir | ncurses_wborder


ncurses_wborder

(PHP 4 >= 4.3.0)

ncurses_wborder -- Draws a border around the window using attributed characters

Description

int ncurses_wborder ( resource window, int left, int right, int top, int bottom, int tl_corner, int tr_corner, int bl_corner, int br_corner)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_wattrset | Subir | ncurses_wclear


ncurses_wclear

(PHP 4 >= 4.2.0)

ncurses_wclear -- Clears window

Description

int ncurses_wclear ( resource window)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_wborder | Subir | ncurses_wcolor_set


ncurses_wcolor_set

(PHP 4 >= 4.2.0)

ncurses_wcolor_set -- Sets windows color pairings

Description

int ncurses_wcolor_set ( resource window, int color_pair)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_wclear | Subir | ncurses_werase


ncurses_werase

(PHP 4 >= 4.3.0)

ncurses_werase -- Erase window contents

Description

long ncurses_werase ( resource window)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_wcolor_set | Subir | ncurses_wgetch


ncurses_wgetch

(PHP 4 >= 4.2.0)

ncurses_wgetch -- Reads a character from keyboard (window)

Description

int ncurses_wgetch ( resource window)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_werase | Subir | ncurses_whline


ncurses_whline

(PHP 4 >= 4.3.0)

ncurses_whline -- Draws a horizontal line in a window at current position using an attributed character and max. n characters long

Description

int ncurses_whline ( resource window, int charattr, int n)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_wgetch | Subir | ncurses_wmouse_trafo


ncurses_wmouse_trafo

(PHP 4 >= 4.2.0)

ncurses_wmouse_trafo -- Transforms window/stdscr coordinates

Description

bool ncurses_wmouse_trafo ( resource window, int &y, int &x, bool toscreen)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_whline | Subir | ncurses_wmove


ncurses_wmove

(PHP 4 >= 4.2.0)

ncurses_wmove -- Moves windows output position

Description

int ncurses_wmove ( resource window, int y, int x)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_wmouse_trafo | Subir | ncurses_wnoutrefresh


ncurses_wnoutrefresh

(PHP 4 >= 4.2.0)

ncurses_wnoutrefresh -- Copies window to virtual screen

Description

int ncurses_wnoutrefresh ( resource window)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_wmove | Subir | ncurses_wrefresh


ncurses_wrefresh

(PHP 4 >= 4.2.0)

ncurses_wrefresh -- Refresh window on terminal screen

Description

int ncurses_wrefresh ( resource window)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_wnoutrefresh | Subir | ncurses_wstandend


ncurses_wstandend

(PHP 4 >= 4.3.0)

ncurses_wstandend -- End standout mode for a window

Description

int ncurses_wstandend ( resource window)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_wrefresh | Subir | ncurses_wstandout


ncurses_wstandout

(PHP 4 >= 4.3.0)

ncurses_wstandout -- Enter standout mode for a window

Description

int ncurses_wstandout ( resource window)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_wstandend | Subir | ncurses_wvline


ncurses_wvline

(PHP 4 >= 4.3.0)

ncurses_wvline -- Draws a vertical line in a window at current position using an attributed character and max. n characters long

Description

int ncurses_wvline ( resource window, int charattr, int n)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ncurses_wstandout | Subir | Lotus Notes functions


Lotus Notes functions

Manual de PHP
Anterior Siguiente

LXIX. Lotus Notes functions

Introducción

Aviso

Esta extensión es EXPERIMENTAL. Esto significa que el comportamiento de esta extensión, los nombre de sus funciones y en definitiva TODO lo documentado sobre esta extensión, puede cambiar en una futura versión de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Tabla de contenidos
notes_body -- Open the message msg_number in the specified mailbox on the specified server (leave serv
notes_copy_db -- Create a note using form form_name
notes_create_db -- Create a Lotus Notes database
notes_create_note -- Create a note using form form_name
notes_drop_db -- Drop a Lotus Notes database
notes_find_note -- Returns a note id found in database_name. Specify the name of the note. Leaving type bla
notes_header_info -- Open the message msg_number in the specified mailbox on the specified server (leave serv
notes_list_msgs -- Returns the notes from a selected database_name
notes_mark_read -- Mark a note_id as read for the User user_name
notes_mark_unread -- Mark a note_id as unread for the User user_name
notes_nav_create -- Create a navigator name, in database_name
notes_search -- Find notes that match keywords in database_name
notes_unread -- Returns the unread note id's for the current User user_name
notes_version -- Get the version Lotus Notes

Anterior | Inicio | Siguiente
ncurses_wvline | Subir | notes_body


notes_body

(PHP 4 >= 4.0.5)

notes_body -- Open the message msg_number in the specified mailbox on the specified server (leave serv

Description

array notes_body ( string server, string mailbox, int msg_number)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
Lotus Notes functions | Subir | notes_copy_db


notes_copy_db

(PHP 4 >= 4.0.5)

notes_copy_db -- Create a note using form form_name

Description

string notes_copy_db ( string from_database_name, string to_database_name)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
notes_body | Subir | notes_create_db


notes_create_db

(PHP 4 >= 4.0.5)

notes_create_db -- Create a Lotus Notes database

Description

bool notes_create_db ( string database_name)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
notes_copy_db | Subir | notes_create_note


notes_create_note

(PHP 4 >= 4.0.5)

notes_create_note -- Create a note using form form_name

Description

string notes_create_note ( string database_name, string form_name)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
notes_create_db | Subir | notes_drop_db


notes_drop_db

(PHP 4 >= 4.0.5)

notes_drop_db -- Drop a Lotus Notes database

Description

bool notes_drop_db ( string database_name)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
notes_create_note | Subir | notes_find_note


notes_find_note

(PHP 4 >= 4.0.5)

notes_find_note -- Returns a note id found in database_name. Specify the name of the note. Leaving type bla

Description

bool notes_find_note ( string database_name, string name [, string type])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
notes_drop_db | Subir | notes_header_info


notes_header_info

(PHP 4 >= 4.0.5)

notes_header_info -- Open the message msg_number in the specified mailbox on the specified server (leave serv

Description

object notes_header_info ( string server, string mailbox, int msg_number)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
notes_find_note | Subir | notes_list_msgs


notes_list_msgs

(PHP 4 >= 4.0.5)

notes_list_msgs -- Returns the notes from a selected database_name

Description

bool notes_list_msgs ( string db)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
notes_header_info | Subir | notes_mark_read


notes_mark_read

(PHP 4 >= 4.0.5)

notes_mark_read -- Mark a note_id as read for the User user_name

Description

string notes_mark_read ( string database_name, string user_name, string note_id)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
notes_list_msgs | Subir | notes_mark_unread


notes_mark_unread

(PHP 4 >= 4.0.5)

notes_mark_unread -- Mark a note_id as unread for the User user_name

Description

string notes_mark_unread ( string database_name, string user_name, string note_id)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
notes_mark_read | Subir | notes_nav_create


notes_nav_create

(PHP 4 >= 4.0.5)

notes_nav_create -- Create a navigator name, in database_name

Description

bool notes_nav_create ( string database_name, string name)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
notes_mark_unread | Subir | notes_search


notes_search

(PHP 4 >= 4.0.5)

notes_search -- Find notes that match keywords in database_name

Description

string notes_search ( string database_name, string keywords)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
notes_nav_create | Subir | notes_unread


notes_unread

(PHP 4 >= 4.0.5)

notes_unread -- Returns the unread note id's for the current User user_name

Description

string notes_unread ( string database_name, string user_name)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
notes_search | Subir | notes_version


notes_version

(PHP 4 >= 4.0.5)

notes_version -- Get the version Lotus Notes

Description

string notes_version ( string database_name)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
notes_unread | Subir | NSAPI-specific Functions


NSAPI-specific Functions

Manual de PHP
Anterior Siguiente

LXX. NSAPI-specific Functions

Introducción

These functions are only available when running PHP as a NSAPI module in Netscape/iPlanet/SunONE webservers.

Instalación

For PHP installation on Netscape/iPlanet/SunONE webservers see the NSAPI section in the installation chapter.

Configuración en tiempo de ejecución

The behaviour of the NSAPI PHP module is affected by settings in php.ini. Configuration settings from php.ini may be overridden by additional parameters to the php4_execute call in obj.conf

Tabla 1. NSAPI configuration options

Name | Default | Changeable | Function
nsapi.read_timeout | 60 | PHP_INI_ALL | sets the time in seconds the plugin is waiting for POST data from the client

Tipos de recursos

Esta extensión no tiene ningún tipo de recurso definido.

Constantes predefinidas

Esta extensión no tiene ninguna constante definida.

Ver también

NSAPI implements a subset of the functions from the Apache module for maximum compatibility.

Tabla 2. Apache functions implemented by NSAPI

Apache function (only as alias) | NSAPI function | Description
apache_request_headers() | nsapi_request_headers() | Fetch all HTTP request headers
apache_response_headers() | nsapi_response_headers() | Fetch all HTTP response headers
getallheaders() | nsapi_request_headers() | Fetch all HTTP request headers
virtual() | nsapi_virtual() | Make NSAPI sub-request

Tabla de contenidos
nsapi_request_headers -- Fetch all HTTP request headers
nsapi_response_headers -- Fetch all HTTP response headers
nsapi_virtual -- Perform an NSAPI sub-request

Anterior | Inicio | Siguiente
notes_version | Subir | nsapi_request_headers


nsapi_request_headers

(no version information, might be only in CVS)

nsapi_request_headers -- Fetch all HTTP request headers

Description

array nsapi_request_headers ( void )

nsapi_request_headers() returns an associative array of all the HTTP headers in the current request. This is only supported when PHP runs as a NSAPI module.

Ejemplo 1. nsapi_request_headers() example

<?php
$headers = nsapi_request_headers();

foreach ($headers as $header => $value) {
    echo "$header: $value <br />\n";
}
?>

Nota: Prior to PHP 4.3.3, getallheaders() was only available for the Apache servers. After PHP 4.3.3, getallheaders() is an alias for nsapi_request_headers() if you use the NSAPI module.

Nota: You can also get at the value of the common CGI variables by reading them from the $_SERVER superglobal, which works whether or not you are using PHP as a NSAPI module.

Anterior | Inicio | Siguiente
NSAPI-specific Functions | Subir | nsapi_response_headers


nsapi_response_headers

(no version information, might be only in CVS)

nsapi_response_headers -- Fetch all HTTP response headers

Description

array nsapi_response_headers ( void )

Returns an array of all NSAPI response headers. This functionality is only available in PHP version 4.3.3 and greater.

See also nsapi_request_headers() and headers_sent().

Anterior | Inicio | Siguiente
nsapi_request_headers | Subir | nsapi_virtual


nsapi_virtual

(no version information, might be only in CVS)

nsapi_virtual -- Perform an NSAPI sub-request

Description

int nsapi_virtual ( string uri)

nsapi_virtual() is an NSAPI-specific function which is equivalent to <!--#include virtual...--> in SSI (.shtml files). It does an NSAPI sub-request. It is useful for including CGI scripts or .shtml files, or anything else that you'd parse through webserver.

To run the sub-request, all buffers are terminated and flushed to the browser, pending headers are sent too.

You cannot make recursive requests with this function to other PHP scripts. If you want to include PHP scripts, use include() or require().

Nota: This function depends on a undocumented feature of the Netscape/iPlanet/SunONE webservers. Use phpinfo() to determine if it is available. In the unix environment it should always work, in windows it depends on the name of a ns-httpdXX.dll file. Read the note about subrequests in the install section if you experience this problem.

Anterior | Inicio | Siguiente
nsapi_response_headers | Subir | ODBC functions


ODBC functions

Manual de PHP
Anterior Siguiente

LXXI. ODBC functions

Tabla de contenidos
odbc_autocommit -- Interruptor de comportamiento de auto-entrega
odbc_binmode -- Manejo de campos de datos binarios
odbc_close_all -- Cierra todas las conexiones ODBC
odbc_close -- Cierra una conexion ODBC
odbc_columnprivileges -- Returns a result identifier that can be used to fetch a list of columns and associated privileges
odbc_columns -- Lists the column names in specified tables. Returns a result identifier containing the information.
odbc_commit -- Entrega una transaccion ODBC
odbc_connect -- Conecta a una fuente de datos
odbc_cursor -- Toma un nombre de cursor
odbc_data_source -- Returns information about a current connection
odbc_do -- sinonimo de odbc_exec()
odbc_error -- Get the last error code
odbc_errormsg -- Get the last error message
odbc_exec -- Prepara o ejecuta una declaracion SQL
odbc_execute -- ejecuta una declaracion preparada
odbc_fetch_array -- Fetch a result row as an associative array
odbc_fetch_into -- Busca un registro de resutados dentro de un vector
odbc_fetch_object -- Fetch a result row as an object
odbc_fetch_row -- Busca un registro
odbc_field_len -- Da la longitud de un campo
odbc_field_name -- Devuelve el nombre de campo
odbc_field_num -- Devuelve el numero de campo
odbc_field_precision -- Synonym for odbc_field_len()
odbc_field_scale -- Get the scale of a field
odbc_field_type -- Tipo de datos de un campo
odbc_foreignkeys -- Returns a list of foreign keys in the specified table or a list of foreign keys in other tables that refer to the primary key in the specified table
odbc_free_result -- recursos libres asociados con un resultado
odbc_gettypeinfo -- Returns a result identifier containing information about data types supported by the data source.
odbc_longreadlen -- manejo de LONGITUD de columnas
odbc_next_result -- Checks if multiple results are available
odbc_num_fields -- numero de campos de un resultado
odbc_num_rows -- Numero de campos en un resultado
odbc_pconnect -- Abre una conexion permanente de base de datos
odbc_prepare -- Prepara una declaracion para su ejecucion
odbc_primarykeys -- Returns a result identifier that can be used to fetch the column names that comprise the primary key for a table
odbc_procedurecolumns -- Retrieve information about parameters to procedures
odbc_procedures -- Get the list of procedures stored in a specific data source. Returns a result identifier containing the information.
odbc_result_all -- Print result as HTML table
odbc_result -- coge informacion de un campo
odbc_rollback -- Volver a pasar una transacion
odbc_setoption -- Ajusta la configuracion de ODBC. Devuelve FALSE en caso de error, en otro caso TRUE.
odbc_specialcolumns -- Returns either the optimal set of columns that uniquely identifies a row in the table or columns that are automatically updated when any value in the row is updated by a transaction
odbc_statistics -- Retrieve statistics about a table
odbc_tableprivileges -- Lists tables and the privileges associated with each table
odbc_tables -- Get the list of table names stored in a specific data source. Returns a result identifier containing the information.

Anterior | Inicio | Siguiente
nsapi_virtual | Subir | odbc_autocommit


odbc_autocommit

(PHP 3>= 3.0.6, PHP 4 )

odbc_autocommit -- Interruptor de comportamiento de auto-entrega

Descripcion

int odbc_autocommit ( int connection_id [, int OnOff])

Sin el parametro OnOff, esta funcion devuelve el estado de auto-entrega para connection_id. Devuelve TRUE si auto-entrega esta habilitado, y FALSE si no lo esta o ha ocurrido un error.

Si OnOff es TRUE, auto-entrega esta activado, si es FALSE auto-entrega esta desactivado. Devuelve TRUE cuando se cumple, FALSE cuando falla.

Por defecto, auto-entrega es para una conexion. Desabilitar auto-entrega es como comenzar una transaccion.

Ver tambien odbc_commit() y odbc_rollback().

Anterior | Inicio | Siguiente
ODBC functions | Subir | odbc_binmode


odbc_binmode

(PHP 3>= 3.0.6, PHP 4 )

odbc_binmode -- Manejo de campos de datos binarios

Descripcion

int odbc_binmode ( int result_id, int mode)

(Elementos afectados ODBC SQL: BINARY, VARBINARY, LONGVARBINARY)

  • ODBC_BINMODE_PASSTHRU: Paso a traves de datos binarios

  • ODBC_BINMODE_RETURN: Devuelve como es

  • ODBC_BINMODE_CONVERT: Devuelve convertido en caracter

Cuando los datos binarios en SQL son convertidos a datos caracter en C, cada byte (8 bits) de datos fuente es representada como dos caracteres en ASCII. Esos caracteres son la representacion en ASCII de los numeros en su forma Hexadecimal. Por ejemplo, un 00000001 binario es convertido a "01" y un 11111111 binario es convertido a "FF".

Tabla 1. Manejo de LONGVARBINARY

modo binario | longreadlen | resultado
ODBC_BINMODE_PASSTHRU | 0 | passthru
ODBC_BINMODE_RETURN | 0 | passthru
ODBC_BINMODE_CONVERT | 0 | passthru
ODBC_BINMODE_PASSTHRU | 0 | passthru
ODBC_BINMODE_PASSTHRU | >0 | passthru
ODBC_BINMODE_RETURN | >0 | Devuleve como es
ODBC_BINMODE_CONVERT | >0 | Devuelve como caracter

Si usamos odbc_fetch_into(), passthru significara que una cadena vacia es devuelta por esas campos.

Si result_id es 0, las definiciones se aplican por defecto para nuevos resultados.

Nota: Por defecto, longreadlen es 4096 y el modo binario por defecto es ODBC_BINMODE_RETURN. El manejo de campos binarias largas tambien esta afectado por odbc_longreadlen()

Anterior | Inicio | Siguiente
odbc_autocommit | Subir | odbc_close_all


odbc_close_all

(PHP 3>= 3.0.6, PHP 4 )

odbc_close_all -- Cierra todas las conexiones ODBC

Descripcion

void odbc_close_all ( void )

odbc_close_all() cerrara todas las conexiones a servidor(es) de bases de datos.

Nota: Esta funcion fallara si hay transacciones abiertas sobre esta conexion. La conexion quedara abierta en ese caso.

Anterior | Inicio | Siguiente
odbc_binmode | Subir | odbc_close


odbc_close

(PHP 3>= 3.0.6, PHP 4 )

odbc_close -- Cierra una conexion ODBC

Descripcion

void odbc_close ( int connection_id)

odbc_close() cerrara la conexion al servidor de bases datos asociado con el identificador de conexion dado.

Nota: Esta funcion fallara si hay transacciones abiertas sobre esta conexion. La conexion quedara abierta en ese caso.

Anterior | Inicio | Siguiente
odbc_close_all | Subir | odbc_columnprivileges


odbc_columnprivileges

(PHP 4 )

odbc_columnprivileges -- Returns a result identifier that can be used to fetch a list of columns and associated privileges

Description

int odbc_columnprivileges ( resource connection_id [, string qualifier [, string owner [, string table_name [, string column_name]]]])

Lists columns and associated privileges for the given table. Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • TABLE_QUALIFIER

  • TABLE_OWNER

  • TABLE_NAME

  • GRANTOR

  • GRANTEE

  • PRIVILEGE

  • IS_GRANTABLE

The result set is ordered by TABLE_QUALIFIER, TABLE_OWNER and TABLE_NAME.

The column_name argument accepts search patterns ('%' to match zero or more characters and '_' to match a single character).

Anterior | Inicio | Siguiente
odbc_close | Subir | odbc_columns


odbc_columns

(PHP 4 )

odbc_columns -- Lists the column names in specified tables. Returns a result identifier containing the information.

Description

resource odbc_columns ( resource connection_id [, string qualifier [, string schema [, string table_name [, string column_name]]]])

Lists all columns in the requested range. Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • TABLE_QUALIFIER

  • TABLE_SCHEM

  • TABLE_NAME

  • COLUMN_NAME

  • DATA_TYPE

  • TYPE_NAME

  • PRECISION

  • LENGTH

  • SCALE

  • RADIX

  • NULLABLE

  • REMARKS

The result set is ordered by TABLE_QUALIFIER, TABLE_SCHEM and TABLE_NAME.

The schema, table_name and column_name arguments accept search patterns ('%' to match zero or more characters and '_' to match a single character).

See also odbc_columnprivileges() to retrieve associated privileges.

Anterior | Inicio | Siguiente
odbc_columnprivileges | Subir | odbc_commit


odbc_commit

(PHP 3>= 3.0.6, PHP 4 )

odbc_commit -- Entrega una transaccion ODBC

Descripcion

int odbc_commit ( int connection_id)

Devuelve: TRUE si la operacion se realiza con exito, FALSE si falla. Todas las transacciones pendientes sobre connection_id son entregadas.

Anterior | Inicio | Siguiente
odbc_columns | Subir | odbc_connect


odbc_connect

(PHP 3>= 3.0.6, PHP 4 )

odbc_connect -- Conecta a una fuente de datos

Descripcion

int odbc_connect ( string dsn, string user, string password [, int cursor_type])

Devuelve una conexion ODBC id, o 0 (FALSE) cuando ocurre un error.

La conexion id devuelta por estas funciones es necesaria para otras funciones ODBC. Se pueden tener multiples conexiones abiertas a la vez. El opcional cuarto parametro asigna el tipo de cursor que va a ser usado para esta conexion. Este parametro normalmente no es necesario, pero puede ser util para trabajar sobre problemas con algunos drivers ODBC.

Con algunos drivers ODBC, si ejecutamos un procedimiento complejo, este puede fallar con un error similar a: "Cannot open a cursor on a stored procedure that has anything other than a single select statement in it". Usando SQL_CUR_USE_ODBC se puede evitar ese error. Algunos drivers tampoco soportan el parametro row_number en odbc_fetch_row(). SQL_CUR_USE_ODBC tambien podria ayudar en ese caso.

Las siguientes constantes son definidas por tipos de cursor:

  • SQL_CUR_USE_IF_NEEDED

  • SQL_CUR_USE_ODBC

  • SQL_CUR_USE_DRIVER

  • SQL_CUR_DEFAULT

Para conexiones persistentes ver odbc_pconnect().

Anterior | Inicio | Siguiente
odbc_commit | Subir | odbc_cursor


odbc_cursor

(PHP 3>= 3.0.6, PHP 4 )

odbc_cursor -- Toma un nombre de cursor

Descripcion

string odbc_cursor ( int result_id)

odbc_cursor devolvera un nombre de cursor para el result_id dado.

Anterior | Inicio | Siguiente
odbc_connect | Subir | odbc_data_source


odbc_data_source

(PHP 4 >= 4.3.0)

odbc_data_source -- Returns information about a current connection

Description

resource odbc_data_source ( resource connection_id, constant fetch_type)

Returns FALSE on error, and an array upon success.

This function will return information about the active connection following the information from within the DSN. The connection_id is required to be a valid ODBC connection. The fetch_type can be one of two constant types: SQL_FETCH_FIRST, SQL_FETCH_NEXT. Use SQL_FETCH_FIRST the first time this function is called, thereafter use the SQL_FETCH_NEXT.

Anterior | Inicio | Siguiente
odbc_cursor | Subir | odbc_do


odbc_do

(PHP 3>= 3.0.6, PHP 4 )

odbc_do -- sinonimo de odbc_exec()

Descripcion

string odbc_do ( int conn_id, string query)

odbc_do ejecutara una consulta (query) sobre la conexion dada

Anterior | Inicio | Siguiente
odbc_data_source | Subir | odbc_error


odbc_error

(PHP 4 >= 4.0.5)

odbc_error -- Get the last error code

Description

string odbc_error ( [resource connection_id])

Returns a six-digit ODBC state, or an empty string if there has been no errors. If connection_id is specified, the last state of that connection is returned, else the last state of any connection is returned.

See also: odbc_errormsg() and odbc_exec().

Anterior | Inicio | Siguiente
odbc_do | Subir | odbc_errormsg


odbc_errormsg

(PHP 4 >= 4.0.5)

odbc_errormsg -- Get the last error message

Description

string odbc_errormsg ( [resource connection_id])

Returns a string containing the last ODBC error message, or an empty string if there has been no errors. If connection_id is specified, the last state of that connection is returned, else the last state of any connection is returned.

See also: odbc_error() and odbc_exec().

Anterior | Inicio | Siguiente
odbc_error | Subir | odbc_exec


odbc_exec

(PHP 3>= 3.0.6, PHP 4 )

odbc_exec -- Prepara o ejecuta una declaracion SQL

Descripcion

int odbc_exec ( int connection_id, string query_string)

Devuelve FALSE en caso de error. Devuelve un indetificador ODBC si el comando SQL fue ejecutado satisfactoriamente.

odbc_exec() enviara una declaracion SQL al servidor de bases de datos specificado por connection_id. Este parametro debe ser un indetificador valido devuelto por odbc_connect() o odbc_pconnect().

Ver tambien: odbc_prepare() y odbc_execute() para ejecucion multiple de declaraciones SQL.

Anterior | Inicio | Siguiente
odbc_errormsg | Subir | odbc_execute


odbc_execute

(PHP 3>= 3.0.6, PHP 4 )

odbc_execute -- ejecuta una declaracion preparada

Descripcion

int odbc_execute ( int result_id [, array parameters_array])

Ejecuta uan declaracion preparada con odbc_prepare(). Devuelve TRUE cuando la ejecucion es satisfactoria, FALSE en otro caso. Introducir el vector arameters_array solo es necesario si realmente tenemos parametros en la declaracion.

Anterior | Inicio | Siguiente
odbc_exec | Subir | odbc_fetch_array


odbc_fetch_array

(PHP 4 >= 4.0.2)

odbc_fetch_array -- Fetch a result row as an associative array

Description

array odbc_fetch_array ( resource result [, int rownumber])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
odbc_execute | Subir | odbc_fetch_into


odbc_fetch_into

(PHP 3>= 3.0.6, PHP 4 )

odbc_fetch_into -- Busca un registro de resutados dentro de un vector

Descripcion

int odbc_fetch_into ( int result_id [, int rownumber, array result_array])

Devuelve el numero de campos en el resultado; FALSE on error. result_array debe ser pasado por referencia, pero puede ser de cualquier tipo, desde este sera convertido a tipo vector. El vector contendra el valor de campo inicial empezando en indice de vector 0.

Anterior | Inicio | Siguiente
odbc_fetch_array | Subir | odbc_fetch_object


odbc_fetch_object

(PHP 4 >= 4.0.2)

odbc_fetch_object -- Fetch a result row as an object

Description

object odbc_fetch_object ( resource result [, int rownumber])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
odbc_fetch_into | Subir | odbc_fetch_row


odbc_fetch_row

(PHP 3>= 3.0.6, PHP 4 )

odbc_fetch_row -- Busca un registro

Descripcion

int odbc_fetch_row ( int result_id [, int row_number])

Si odbc_fetch_row() fue succesful (there was a row), TRUE is returned. If there are no more rows, FALSE is returned.

odbc_fetch_row() busca un registro de datos
que fue devuelta por odbc_do() /
odbc_exec().  Despues de que
odbc_fetch_row() sea llamado, se puede acceder a los campos
de este registro con odbc_result().

Si no se especifica row_number, odbc_fetch_row() intentara buscar el siguiente registro en los resultados. Lamar a odbc_fetch_row() con o sin row_number puede ser mezclado.

Para pasar a traves del resultado mas de una vez, se puede llamar a odbc_fetch_row() con row_number 1, y despues continuar haciendo odbc_fetch_row() sin row_number para revisar el resultado. Si un driver no admitiese busquedas de registros por numero, el parametro row_number seria ignorado.

Anterior | Inicio | Siguiente
odbc_fetch_object | Subir | odbc_field_len


odbc_field_len

(PHP 3>= 3.0.6, PHP 4 )

odbc_field_len -- Da la longitud de un campo

Descripcion

int odbc_field_len ( int result_id, int field_number)

odbc_field_len() devolvera la longitud de un campo referenciado por numero en un identificador ODBC La numeracion de campos comienza en 1.

Anterior | Inicio | Siguiente
odbc_fetch_row | Subir | odbc_field_name


odbc_field_name

(PHP 3>= 3.0.6, PHP 4 )

odbc_field_name -- Devuelve el nombre de campo

Descripcion

string odbc_fieldname ( int result_id, int field_number)

odbc_field_name() devolvera el nombre del campo almacenado en el numero de campo elegido dentro del identificador ODBC. La numeracion de campos comienza en 1. En caso de error devolveria FALSE.

Anterior | Inicio | Siguiente
odbc_field_len | Subir | odbc_field_num


odbc_field_num

(PHP 3>= 3.0.6, PHP 4 )

odbc_field_num -- Devuelve el numero de campo

Descripcion

int odbc_field_num ( int result_id, string field_name)

odbc_field_num() devolvera el numero de campo que corresponda con el campo llamado en el identificador ODBC. La numeracion de campos comienza en 1. En caso de error devolveria FALSE.

Anterior | Inicio | Siguiente
odbc_field_name | Subir | odbc_field_precision


odbc_field_precision

(PHP 4 )

odbc_field_precision -- Synonym for odbc_field_len()

Description

string odbc_field_precision ( resource result_id, int field_number)

odbc_field_precision() will return the precision of the field referenced by number in the given ODBC result identifier.

See also: odbc_field_scale() to get the scale of a floating point number.

Anterior | Inicio | Siguiente
odbc_field_num | Subir | odbc_field_scale


odbc_field_scale

(PHP 4 )

odbc_field_scale -- Get the scale of a field

Description

string odbc_field_scale ( resource result_id, int field_number)

odbc_field_precision() will return the scale of the field referenced by number in the given ODBC result identifier.

Anterior | Inicio | Siguiente
odbc_field_precision | Subir | odbc_field_type


odbc_field_type

(PHP 3>= 3.0.6, PHP 4 )

odbc_field_type -- Tipo de datos de un campo

Descripcion

string odbc_field_type ( int result_id, int field_number)

odbc_field_type() Devolvera el tipo SQL de un campo referenciado por numero en el identificador ODBC. identifier. La numeracion de campos comienza en 1.

Anterior | Inicio | Siguiente
odbc_field_scale | Subir | odbc_foreignkeys


odbc_foreignkeys

(PHP 4 )

odbc_foreignkeys -- Returns a list of foreign keys in the specified table or a list of foreign keys in other tables that refer to the primary key in the specified table

Description

resource odbc_foreignkeys ( resource connection_id, string pk_qualifier, string pk_owner, string pk_table, string fk_qualifier, string fk_owner, string fk_table)

odbc_foreignkeys() retrieves information about foreign keys. Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • PKTABLE_QUALIFIER

  • PKTABLE_OWNER

  • PKTABLE_NAME

  • PKCOLUMN_NAME

  • FKTABLE_QUALIFIER

  • FKTABLE_OWNER

  • FKTABLE_NAME

  • FKCOLUMN_NAME

  • KEY_SEQ

  • UPDATE_RULE

  • DELETE_RULE

  • FK_NAME

  • PK_NAME

If pk_table contains a table name, odbc_foreignkeys() returns a result set containing the primary key of the specified table and all of the foreign keys that refer to it.

If fk_table contains a table name, odbc_foreignkeys() returns a result set containing all of the foreign keys in the specified table and the primary keys (in other tables) to which they refer.

If both pk_table and fk_table contain table names, odbc_foreignkeys() returns the foreign keys in the table specified in fk_table that refer to the primary key of the table specified in pk_table. This should be one key at most.

Anterior | Inicio | Siguiente
odbc_field_type | Subir | odbc_free_result


odbc_free_result

(PHP 3>= 3.0.6, PHP 4 )

odbc_free_result -- recursos libres asociados con un resultado

Descripcion

int odbc_free_result ( int result_id)

Always returns TRUE.

odbc_free_result() solo necesita ser llamado en caso de preocupacion por demasiado uso de memoria cuando se ejecuta un script. Toda la memoria resultante quedara automaticamente liberada cuando el script finalice. Pero si es seguro que no se vaya a necesitar la informacion nada mas que en un script, se debera llamar a la funcion odbc_free_result(), y la memoria asociada con result_id sera liberada.

Nota: Si la auto-entrega no esta activada la (ver odbc_autocommit()) y se ejecuta odbc_free_result() antes de la entrega, todo queda pendiente de las transaciones que esten en lista.

Anterior | Inicio | Siguiente
odbc_foreignkeys | Subir | odbc_gettypeinfo


odbc_gettypeinfo

(PHP 4 )

odbc_gettypeinfo -- Returns a result identifier containing information about data types supported by the data source.

Description

int odbc_gettypeinfo ( resource connection_id [, int data_type])

Retrieves information about data types supported by the data source. Returns an ODBC result identifier or FALSE on failure. The optional argument data_type can be used to restrict the information to a single data type.

The result set has the following columns:

  • TYPE_NAME

  • DATA_TYPE

  • PRECISION

  • LITERAL_PREFIX

  • LITERAL_SUFFIX

  • CREATE_PARAMS

  • NULLABLE

  • CASE_SENSITIVE

  • SEARCHABLE

  • UNSIGNED_ATTRIBUTE

  • MONEY

  • AUTO_INCREMENT

  • LOCAL_TYPE_NAME

  • MINIMUM_SCALE

  • MAXIMUM_SCALE

The result set is ordered by DATA_TYPE and TYPE_NAME.

Anterior | Inicio | Siguiente
odbc_free_result | Subir | odbc_longreadlen


odbc_longreadlen

(PHP 3>= 3.0.6, PHP 4 )

odbc_longreadlen -- manejo de LONGITUD de columnas

Descripcion

int odbc_longreadlen ( int result_id, int length)

(ODBC SQL tipos relaccionados: LONG, LONGVARBINARY) El numero de bytes devueltos para PHP es controlado por el parametro length. Si es asignado a 0, la longitud del campo es pasado al cliente.

Nota: El manejo de campos LONGVARBINARY tambien esta afectado por odbc_binmode()

Anterior | Inicio | Siguiente
odbc_gettypeinfo | Subir | odbc_next_result


odbc_next_result

(PHP 4 >= 4.0.5)

odbc_next_result -- Checks if multiple results are available

Description

bool odbc_next_result ( resource result_id)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
odbc_longreadlen | Subir | odbc_num_fields


odbc_num_fields

(PHP 3>= 3.0.6, PHP 4 )

odbc_num_fields -- numero de campos de un resultado

Descripcion

int odbc_num_fields ( int result_id)

odbc_num_fields() devolvera el numero de campos dentro de un ODBC. Esta funcion devolvera -1 en caso de error. El argumento es un identificador valido devuelto por odbc_exec().

Anterior | Inicio | Siguiente
odbc_next_result | Subir | odbc_num_rows


odbc_num_rows

(PHP 3>= 3.0.6, PHP 4 )

odbc_num_rows -- Numero de campos en un resultado

Descripcion

int odbc_num_rows ( int result_id)

odbc_num_rows() devolvera el numero de registros de un ODBC. Esta funcion devolvera -1 en caso de error. Para declaraciones INSERT, UPDATE y DELETE odbc_num_rows() devolvera el numero de registros afectados. Para una clausula SELECT esta puede ser el numero de registros permitidos.

Nota: El uso de odbc_num_rows() para determinar el numero de registros permitidos despues de un SELECT devolvera -1.

Anterior | Inicio | Siguiente
odbc_num_fields | Subir | odbc_pconnect


odbc_pconnect

(PHP 3>= 3.0.6, PHP 4 )

odbc_pconnect -- Abre una conexion permanente de base de datos

Descripcion

int odbc_pconnect ( string dsn, string user, string password [, int cursor_type])

Devuelve un identificador de conexion ODBC o 0 (FALSE) en caso de error. Esta funcion es odbc_connect(), excepto que la conexion no sea realmente cerrada cuando el script ha finalizado. Las respuestas futuras para una conexion con la misma combinacion dsn, user, password (via odbc_connect() y odbc_pconnect()) puede reusar la conexion permanente.

Nota: Las conexiones permanentes no tienen efecto si PHP es usado como programa CGI.

Para informacion acerca del paramentor opcional cursor_type ver la funcion odbc_connect(). Para mas informacion sobre conexiones permanentes, ir al apartado PHP FAQ.

Anterior | Inicio | Siguiente
odbc_num_rows | Subir | odbc_prepare


odbc_prepare

(PHP 3>= 3.0.6, PHP 4 )

odbc_prepare -- Prepara una declaracion para su ejecucion

Descripcion

int odbc_prepare ( int connection_id, string query_string)

Devuelve FALSE en caso de error.

Devuelve un identificador ODBC si el comando SQL esta preparado. El identificador resultante puede ser usado mas tarde para ejecutar la declaracion con odbc_execute().

Anterior | Inicio | Siguiente
odbc_pconnect | Subir | odbc_primarykeys


odbc_primarykeys

(PHP 4 )

odbc_primarykeys -- Returns a result identifier that can be used to fetch the column names that comprise the primary key for a table

Description

resource odbc_primarykeys ( resource connection_id, string qualifier, string owner, string table)

Returns the column names that comprise the primary key for a table. Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • TABLE_QUALIFIER

  • TABLE_OWNER

  • TABLE_NAME

  • COLUMN_NAME

  • KEY_SEQ

  • PK_NAME

Anterior | Inicio | Siguiente
odbc_prepare | Subir | odbc_procedurecolumns


odbc_procedurecolumns

(PHP 4 )

odbc_procedurecolumns -- Retrieve information about parameters to procedures

Description

resource odbc_procedurecolumns ( resource connection_id [, string qualifier [, string owner [, string proc [, string column]]]])

Returns the list of input and output parameters, as well as the columns that make up the result set for the specified procedures. Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • PROCEDURE_QUALIFIER

  • PROCEDURE_OWNER

  • PROCEDURE_NAME

  • COLUMN_NAME

  • COLUMN_TYPE

  • DATA_TYPE

  • TYPE_NAME

  • PRECISION

  • LENGTH

  • SCALE

  • RADIX

  • NULLABLE

  • REMARKS

The result set is ordered by PROCEDURE_QUALIFIER, PROCEDURE_OWNER, PROCEDURE_NAME and COLUMN_TYPE.

The owner, proc and column arguments accept search patterns ('%' to match zero or more characters and '_' to match a single character).

Anterior | Inicio | Siguiente
odbc_primarykeys | Subir | odbc_procedures


odbc_procedures

(PHP 4 )

odbc_procedures -- Get the list of procedures stored in a specific data source. Returns a result identifier containing the information.

Description

resource odbc_procedures ( resource connection_id [, string qualifier [, string owner [, string name]]])

Lists all procedures in the requested range. Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • PROCEDURE_QUALIFIER

  • PROCEDURE_OWNER

  • PROCEDURE_NAME

  • NUM_INPUT_PARAMS

  • NUM_OUTPUT_PARAMS

  • NUM_RESULT_SETS

  • REMARKS

  • PROCEDURE_TYPE

The owner and name arguments accept search patterns ('%' to match zero or more characters and '_' to match a single character).

Anterior | Inicio | Siguiente
odbc_procedurecolumns | Subir | odbc_result_all


odbc_result_all

(PHP 3>= 3.0.6, PHP 4 )

odbc_result_all -- Print result as HTML table

Descripcion

int odbc_result_all ( int result_id [, string format])

En caso de error, como resultado, devuelve FALSE.

odbc_result_all() Imprimira todos los registros de un identificador prducidoo por odbc_exec(). El resultado es impreso en una tabla formato HTML. Con el argumento de cadena opcional format, ademas, todas los formatos de tablas pueden ser realizadas.

Anterior | Inicio | Siguiente
odbc_procedures | Subir | odbc_result


odbc_result

(PHP 3>= 3.0.6, PHP 4 )

odbc_result -- coge informacion de un campo

Descripcion

string odbc_result ( int result_id, mixed field)

Devuelve el contenido de un campo.

field puede ser cualquier contenido del campo que queramos; o puede ser una cadena que contenga el nombre del campo; Por ejemplo:

$item_3 = odbc_result($Query_ID, 3 );
     $item_val = odbc_result($Query_ID, "val");

La primera sentencia odbc_result() devuelve el valor del tercer campo detro del registro actual de la cola resultante. La segunda funcion llama a odbc_result() y devuelve el valor de un campo cuyo nombre es "val" en el registro actual de la cola resultante. Ocurre un error si un numero de columna para un campo es menor que uno o excede el numero de campos en el registro actual. Similarmente, ocurre un error si un campo con un nombre que no sea uno de los nombres de campo de una talba o tablas que sea o sean encoladas.

Los indices de campo comienzan en 1. Recordando el metodo binario de campos con gran informacion, es devuleto con referencia a odbc_binmode () y odbc_longreadlen().

Anterior | Inicio | Siguiente
odbc_result_all | Subir | odbc_rollback


odbc_rollback

(PHP 3>= 3.0.6, PHP 4 )

odbc_rollback -- Volver a pasar una transacion

Descripcion

int odbc_rollback ( int connection_id)

Vuelve a pasar todas las declaraciones pendientes connection_id. Devuelve TRUE cuando el resultado es satisfactorio, FALSE cuando no lo es.

Anterior | Inicio | Siguiente
odbc_result | Subir | odbc_setoption


odbc_setoption

(PHP 3>= 3.0.6, PHP 4 )

odbc_setoption -- Ajusta la configuracion de ODBC. Devuelve FALSE en caso de error, en otro caso TRUE.

Descripcion

int odbc_setoption ( int id, int function, int option, int param)

Esta funcion permite buscar las opciones ODBC para una conexion particular o consulta resultante. Esto esta escrito para trabajar sobre problemas en peculiaries drivers ODBC. Esta funcion Solo se deberia usar siendo un programador de ODBC y entendiendo los efectos que las opciones tendran. Debemos tener la certeza de que necesitamos una buena referencia de reference to explicar todas las diferentes opciones y valores que pueden ser usados. Las diferentes versiones de drivers soportan diferentes opciones.

Ya que los efectos pueden variar dependiendo del driver ODBC, deberiamos usar la function en scripts para ser hecho publico lo que permitira que sea fuertemente desalentado. Algunas opciones ODBC no estan permitidas para esta funcion porque debe ser configurada antes de que la conexion sea establecida o la consulta este preparada. Sin embargo, si un determinado trabajo hace la tarea de PHP, el jefe no contaria con nosotros para usar un producto comercial, esto es lo que realmente suele pasar.

Id es una coexion id o resultado id sobre la que cambiaremos la configuracion. Para SQLSetConnectOption(), esta es una conexion id. Para SQLSetStmtOption(), este es un resultado id.

function es la funcion ODBC a usar. El valor deberia ser 1 para SQLSetConnectOption() y 2 para SQLSetStmtOption().

Parmeter option es la opcion a configurar.

El parametro param es el valor para la escogida opcion option.

Ejemplo 1. Ejemplos ODBC Setoption

// 1. Option 102 of SQLSetConnectOption() is SQL_AUTOCOMMIT.
//    Value 1 of SQL_AUTOCOMMIT is SQL_AUTOCOMMIT_ON.
//    Este ejemplo tiene el mismo efecto que
//    odbc_autocommit($conn, true);

odbc_setoption ($conn, 1, 102, 1);

// 2. Option 0 of SQLSetStmtOption() is SQL_QUERY_TIMEOUT.
//    Este ejemplo asigna el tiempo de espera de la consulta a 30 segundos.

$result = odbc_prepare ($conn, $sql);
odbc_setoption ($result, 2, 0, 30);
odbc_execute ($result);

Anterior | Inicio | Siguiente
odbc_rollback | Subir | odbc_specialcolumns


odbc_specialcolumns

(PHP 4 )

odbc_specialcolumns -- Returns either the optimal set of columns that uniquely identifies a row in the table or columns that are automatically updated when any value in the row is updated by a transaction

Description

resource odbc_specialcolumns ( resource connection_id, int type, string qualifier, string owner, string table, int scope, int nullable)

When the type argument is SQL_BEST_ROWID, odbc_specialcolumns() returns the column or columns that uniquely identify each row in the table.

When the type argument is SQL_ROWVER, odbc_specialcolumns() returns the optimal column or set of columns that, by retrieving values from the column or columns, allows any row in the specified table to be uniquely identified.

Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • SCOPE

  • COLUMN_NAME

  • DATA_TYPE

  • TYPE_NAME

  • PRECISION

  • LENGTH

  • SCALE

  • PSEUDO_COLUMN

The result set is ordered by SCOPE.

Anterior | Inicio | Siguiente
odbc_setoption | Subir | odbc_statistics


odbc_statistics

(PHP 4 )

odbc_statistics -- Retrieve statistics about a table

Description

resource odbc_statistics ( resource connection_id, string qualifier, string owner, string table_name, int unique, int accuracy)

Get statistics about a table and it's indexes. Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • TABLE_QUALIFIER

  • TABLE_OWNER

  • TABLE_NAME

  • NON_UNIQUE

  • INDEX_QUALIFIER

  • INDEX_NAME

  • TYPE

  • SEQ_IN_INDEX

  • COLUMN_NAME

  • COLLATION

  • CARDINALITY

  • PAGES

  • FILTER_CONDITION

The result set is ordered by NON_UNIQUE, TYPE, INDEX_QUALIFIER, INDEX_NAME and SEQ_IN_INDEX.

Anterior | Inicio | Siguiente
odbc_specialcolumns | Subir | odbc_tableprivileges


odbc_tableprivileges

(PHP 4 )

odbc_tableprivileges -- Lists tables and the privileges associated with each table

Description

int odbc_tableprivileges ( resource connection_id [, string qualifier [, string owner [, string name]]])

Lists tables in the requested range and the privileges associated with each table. Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • TABLE_QUALIFIER

  • TABLE_OWNER

  • TABLE_NAME

  • GRANTOR

  • GRANTEE

  • PRIVILEGE

  • IS_GRANTABLE

The result set is ordered by TABLE_QUALIFIER, TABLE_OWNER and TABLE_NAME.

The owner and name arguments accept search patterns ('%' to match zero or more characters and '_' to match a single character).

Anterior | Inicio | Siguiente
odbc_statistics | Subir | odbc_tables


odbc_tables

(PHP 3>= 3.0.17, PHP 4 )

odbc_tables -- Get the list of table names stored in a specific data source. Returns a result identifier containing the information.

Description

int odbc_tables ( resource connection_id [, string qualifier [, string owner [, string name [, string types]]]])

Lists all tables in the requested range. Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • TABLE_QUALIFIER

  • TABLE_OWNER

  • TABLE_NAME

  • TABLE_TYPE

  • REMARKS

The result set is ordered by TABLE_TYPE, TABLE_QUALIFIER, TABLE_OWNER and TABLE_NAME.

The owner and name arguments accept search patterns ('%' to match zero or more characters and '_' to match a single character).

To support enumeration of qualifiers, owners, and table types, the following special semantics for the qualifier, owner, name, and table_type are available:

  • If qualifier is a single percent character (%) and owner and name are empty strings, then the result set contains a list of valid qualifiers for the data source. (All columns except the TABLE_QUALIFIER column contain NULLs.)

  • If owner is a single percent character (%) and qualifier and name are empty strings, then the result set contains a list of valid owners for the data source. (All columns except the TABLE_OWNER column contain NULLs.)

  • If table_type is a single percent character (%) and qualifier, owner and name are empty strings, then the result set contains a list of valid table types for the data source. (All columns except the TABLE_TYPE column contain NULLs.)

If table_type is not an empty string, it must contain a list of comma-separated values for the types of interest; each value may be enclosed in single quotes (') or unquoted. For example, "'TABLE','VIEW'" or "TABLE, VIEW". If the data source does not support a specified table type, odbc_tables() does not return any results for that type.

See also odbc_tableprivileges() to retrieve associated privileges.

Anterior | Inicio | Siguiente
odbc_tableprivileges | Subir | Object Aggregation/Composition Functions


Object Aggregation/Composition Functions

Manual de PHP
Anterior Siguiente

LXXII. Object Aggregation/Composition Functions

Aviso

Esta extensión es EXPERIMENTAL. Esto significa que el comportamiento de esta extensión, los nombre de sus funciones y en definitiva TODO lo documentado sobre esta extensión, puede cambiar en una futura versión de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Introducción

In Object Oriented Programming, it is common to see the composition of simple classes (and/or instances) into a more complex one. This is a flexible strategy for building complicated objects and object hierachies and can function as a dynamic alternative to multiple inheritance. There are two ways to perform class (and/or object) composition depending on the relationship between the composed elements: Association and Aggregation.

An Association is a composition of independently constructed and externally visible parts. When we associate classes or objects, each one keeps a reference to the ones it is associated with. When we associate classes statically, one class will contain a reference to an instance of the other class. For example:

Ejemplo 1. Class association

<?php
class DateTime {

   function DateTime() {
       // empty constructor
   }

   function now() {
       return date("Y-m-d H:i:s");
   }
}

class Report {
   var $_dt;
   // more properties ...

   function Report() {
       $this->_dt = new DateTime();
       // initialization code ...
   }

   function generateReport() {
       $dateTime = $_dt->now();
       // more code ...
   }

   // more methods ...
}

$rep = new Report();
?>
We can also associate instances at runtime by passing a reference in a constructor (or any other method), which allow us to dynamically change the association relationship between objects. We will modify the example above to illustrate this point:

Ejemplo 2. Object association

<?php
class DateTime {
   // same as previous example
}

class DateTimePlus {
   var $_format;

   function DateTimePlus($format="Y-m-d H:i:s") {
       $this->_format = $format;
   }

   function now() {
       return date($this->_format);
   }
}

class Report {
   var $_dt;    // we'll keep the reference to DateTime here
   // more properties ...

   function Report() {
       // do some initialization
   }

   function setDateTime(&$dt) {
       $this->_dt =& $dt;
   }

   function generateReport() {
       $dateTime = $this->_dt->now();
       // more code ...
   }

   // more methods ...
}

$rep = new Report();
$dt = new DateTime();
$dtp = new DateTimePlus("l, F j, Y (h:i:s a, T)");

// generate report with simple date for web display
$rep->setDateTime(&$dt);
echo $rep->generateReport();

// later on in the code ...

// generate report with fancy date
$rep->setDateTime(&$dtp);
$output = $rep->generateReport();
// save $output in database
// ... etc ...
?>

Aggregation, on the other hand, implies encapsulation (hidding) of the parts of the composition. We can aggregate classes by using a (static) inner class (PHP does not yet support inner classes), in this case the aggregated class definition is not accessible, except through the class that contains it. The aggregation of instances (object aggregation) involves the dynamic creation of subobjects inside an object, in the process, expanding the properties and methods of that object.

Object aggregation is a natural way of representing a whole-part relationship, (for example, molecules are aggregates of atoms), or can be used to obtain an effect equivalent to multiple inheritance, without having to permanently bind a subclass to two or more parent classes and their interfaces. In fact object aggregation can be more flexible, in which we can select what methods or properties to "inherit" in the aggregated object.

Ejemplos

We define 3 classes, each implementing a different storage method:

Ejemplo 3. storage_classes.inc

<?php
class FileStorage {
    var $data;

    function FileStorage($data) {
        $this->data = $data;
    }
    function write($name) {
        $fp = fopen(name, "w");
        fwrite($fp, $this->data);
        fclose($data);
    }
}

class WDDXStorage {
    var $data;
    var $version = "1.0";
    var $_id; // "private" variable

    function WDDXStorage($data) {
        $this->data = $data;
        $this->_id = $this->_genID();
    }

    function store() {
        if ($this->_id) {
            $pid = wddx_packet_start($this->_id);
            wddx_add_vars($pid, "this->data");
            $packet = wddx_packet_end($pid);
        } else {
            $packet = wddx_serialize_value($this->data);
        }
        $dbh = dba_open("varstore", "w", "gdbm");
        dba_insert(md5(uniqid("",true)), $packet, $dbh);
        dba_close($dbh);
    }

    // a private method
    function _genID() {
        return md5(uniqid(rand(),true));
    }
}

class DBStorage {
    var $data;
    var $dbtype = "mysql";

    function DBStorage($data) {
        $this->data = $data;
    }

    function save() {
        $dbh = mysql_connect();
        mysql_select_db("storage", $dbh);
        $serdata = serialize($this->data);
        mysql_query("insert into vars ('$serdata',now())", $dbh);
        mysql_close($dbh);
    }
}

?>

We then instantiate a couple of objects from the defined classes, and perform some aggregations and deaggregations, printing some object information along the way:

Ejemplo 4. test_aggregation.php

<?php
include "storageclasses.inc";

// some utilty functions

function p_arr($arr) {
    foreach($arr as $k=>$v)
        $out[] = "\t$k => $v";
    return implode("\n", $out);
}

function object_info($obj) {
    $out[] = "Class: ".get_class($obj);
    foreach(get_object_vars($obj) as $var=>$val)
        if (is_array($val))
            $out[] = "property: $var (array)\n".p_arr($val);
        else
            $out[] = "property: $var = $val";
    foreach(get_class_methods($obj) as $method)
        $out[] = "method: $method";
    return implode("\n", $out);
}

$data = array(M_PI, "kludge != cruft");

// we create some basic objects
$fs = new FileStorage($data);
$ws = new WDDXStorage($data);

// print information on the objects
echo "\$fs object\n";
echo object_info($fs)."\n";
echo "\n\$ws object\n";
echo object_info($ws)."\n";

// do some aggregation

echo "\nLet's aggregate \$fs to the WDDXStorage class\n";
aggregate($fs, "WDDXStorage");
echo "\$fs object\n";
echo object_info($fs)."\n";

echo "\nNow let us aggregate it to the DBStorage class\n";
aggregate($fs, "DBStorage");
echo "\$fs object\n";
echo object_info($fs)."\n";

echo "\nAnd finally deaggregate WDDXStorage\n";
deaggregate($fs, "WDDXStorage");
echo "\$fs object\n";
echo object_info($fs)."\n";

?>

We will now consider the output to understand some of the side-effects and limitation of object aggregation in PHP. First, the newly created $fs and $ws objects give the expected output (according to their respective class declaration). Note that for the purposes of object aggregation, private elements of a class/object begin with an underscore character ("_"), even though there is not real distinction between public and private class/object elements in PHP.

$fs object
Class: filestorage
property: data (array)
    0 => 3.1415926535898
    1 => kludge != cruft
method: filestorage
method: write

$ws object
Class: wddxstorage
property: data (array)
    0 => 3.1415926535898
    1 => kludge != cruft
property: version = 1.0
property: _id = ID::9bb2b640764d4370eb04808af8b076a5
method: wddxstorage
method: store
method: _genid

We then aggregate $fs with the WDDXStorage class, and print out the object information. We can see now that even though nominally the $fs object is still of FileStorage, it now has the property $version, and the method store(), both defined in WDDXStorage. One important thing to note is that it has not aggregated the private elements defined in the class, which are present in the $ws object. Also absent is the constructor from WDDXStorage, which will not be logical to aggegate.

Let's aggregate $fs to the WDDXStorage class
$fs object
Class: filestorage
property: data (array)
    0 => 3.1415926535898
    1 => kludge != cruft
property: version = 1.0
method: filestorage
method: write
method: store

The proccess of aggregation is cummulative, so when we aggregate $fs with the class DBStorage, generating an object that can use the storage methods of all the defined classes.

Now let us aggregate it to the DBStorage class
$fs object
Class: filestorage
property: data (array)
    0 => 3.1415926535898
    1 => kludge != cruft
property: version = 1.0
property: dbtype = mysql
method: filestorage
method: write
method: store
method: save

Finally, the same way we aggregated properties and methods dynamically, we can also deaggregate them from the object. So, if we deaggregate the class WDDXStorage from $fs, we will obtain:

And deaggregate the WDDXStorage methods and properties
$fs object
Class: filestorage
property: data (array)
    0 => 3.1415926535898
    1 => kludge != cruft
property: dbtype = mysql
method: filestorage
method: write
method: save

One point that we have not mentioned above, is that the process of aggregation will not override existing properties or methods in the objects. For example, the class FileStorage defines a $data property, and the class WDDXStorage also defines a similar property which will not override the one in the object acquired during instantiation from the class FileStorage.

Tabla de contenidos
aggregate_info -- returns an associative array of the methods and properties from each class that has been aggregated to the object.
aggregate_methods_by_list -- selective dynamic class methods aggregation to an object
aggregate_methods_by_regexp -- selective class methods aggregation to an object using a regular expression
aggregate_methods -- dynamic class and object aggregation of methods
aggregate_properties_by_list -- selective dynamic class properties aggregation to an object
aggregate_properties_by_regexp -- selective class properties aggregation to an object using a regular expression
aggregate_properties -- dynamic aggregation of class properties to an object
aggregate -- dynamic class and object aggregation of methods and properties
aggregation_info -- Alias for aggregate_info()
deaggregate -- Removes the aggregated methods and properties from an object

Anterior | Inicio | Siguiente
odbc_tables | Subir | aggregate_info


aggregate_info

(PHP 5 CVS only)

aggregate_info -- returns an associative array of the methods and properties from each class that has been aggregated to the object.

Description

array aggregate_info ( object object)

Will return the aggretaion information for a particular object as an associative array of arrays of methods and properties. The key for the main array is the name of the aggregated class.

For example the code below

Ejemplo 1. Using aggregate_info()

<?php

class Slicer {
    var $vegetable;

    function Slicer($vegetable) {
        $this->vegetable = $vegetable;
    }

    function slice_it($num_cuts) {
        echo "Doing some simple slicing\n";
        for ($i=0; $i < $num_cuts; $i++) {
            // do some slicing
        }
    }
}

class Dicer {
    var $vegetable;
    var $rotation_angle = 90;   // degrees

    function Dicer($vegetable) {
        $this->vegetable = $vegetable;
    }

    function dice_it($num_cuts) {
        echo "Cutting in one direction\n";
        for ($i=0; $i < $num_cuts; $i++) {
            // do some cutting
        }
        $this->rotate($this->rotation_angle);
        echo "Cutting in a second direction\n";
        for ($i=0; $i < $num_cuts; $i++) {
            // do some more cutting
        }
    }

    function rotate($deg) {
        echo "Now rotating {$this->vegetable} {$deg} degrees\n";
    }

    function _secret_super_dicing($num_cuts) {
        // so secret we cannot show you ;-)
    }
}

$obj = new Slicer('onion');
aggregate($obj, 'Dicer');
print_r(aggregate_info($obj));
?>

Will produce the output

Array
(
    [dicer] => Array
        (
            [methods] => Array
                (
                    [0] => dice_it
                    [1] => rotate
                )

            [properties] => Array
                (
                    [0] => rotation_angle
                )

        )

)
As you can see, all properties and methods of the Dicer class have been aggregated into our new object, with the exception of the class constructor and the method _secret_super_dicing

See also
aggregate(),
aggregate_methods(),
aggregate_methods_by_list(),
aggregate_methods_by_regexp(),
aggregate_properties(),
aggregate_properties_by_list(),
aggregate_properties_by_regexp(),
deaggregate()

Anterior | Inicio | Siguiente
Object Aggregation/Composition Functions | Subir | aggregate_methods_by_list


aggregate_methods_by_list

(PHP 4 >= 4.2.0)

aggregate_methods_by_list -- selective dynamic class methods aggregation to an object

Description

void aggregate_methods_by_list ( object object, string class_name, array methods_list [, bool exclude])

Aggregates methods from a class to an existing object using a list of method names. The optional paramater exclude is used to decide whether the list contains the names of methods to include in the aggregation (i.e. exclude is FALSE, which is the default value), or to exclude from the aggregation (exclude is TRUE).

The class constructor or methods whose names start with an underscore character (_), which are considered private to the aggregated class, are always excluded.

See also
aggregate(),
aggregate_info(),
aggregate_methods(),
aggregate_methods_by_regexp(),
aggregate_properties(),
aggregate_properties_by_list(),
aggregate_properties_by_regexp(),
deaggregate()

Anterior | Inicio | Siguiente
aggregate_info | Subir | aggregate_methods_by_regexp


aggregate_methods_by_regexp

(PHP 4 >= 4.2.0)

aggregate_methods_by_regexp -- selective class methods aggregation to an object using a regular expression

Description

void aggregate_methods_by_regexp ( object object, string class_name, string regexp [, bool exclude])

Aggregates methods from a class to an existing object using a regular expresion to match method names. The optional paramater exclude is used to decide whether the regular expression will select the names of methods to include in the aggregation (i.e. exclude is FALSE, which is the default value), or to exclude from the aggregation (exclude is TRUE).

The class constructor or methods whose names start with an underscore character (_), which are considered private to the aggregated class, are always excluded.

See also
aggregate(),
aggregate_info(),
aggregate_methods(),
aggregate_methods_by_list(),
aggregate_properties(),
aggregate_properties_by_list(),
aggregate_properties_by_regexp(),
deaggregate()

Anterior | Inicio | Siguiente
aggregate_methods_by_list | Subir | aggregate_methods


aggregate_methods

(PHP 4 >= 4.2.0)

aggregate_methods -- dynamic class and object aggregation of methods

Description

void aggregate_methods ( object object, string class_name)

Aggregates all methods defined in a class to an existing object, except for the class constructor, or methods whose names start with an underscore character (_) which are considered private to the aggregated class.

See also
aggregate(),
aggregate_info(),
aggregate_methods_by_list(),
aggregate_methods_by_regexp(),
aggregate_properties(),
aggregate_properties_by_list(),
aggregate_properties_by_regexp(),
deaggregate()

Anterior | Inicio | Siguiente
aggregate_methods_by_regexp | Subir | aggregate_properties_by_list


aggregate_properties_by_list

(PHP 4 >= 4.2.0)

aggregate_properties_by_list -- selective dynamic class properties aggregation to an object

Description

void aggregate_properties_by_list ( object object, string class_name, array properties_list [, bool exclude])

Aggregates properties from a class to an existing object using a list of property names. The optional paramater exclude is used to decide whether the list contains the names of class properties to include in the aggregation (i.e. exclude is FALSE, which is the default value), or to exclude from the aggregation (exclude is TRUE).

The properties whose names start with an underscore character (_), which are considered private to the aggregated class, are always excluded.

See also
aggregate(),
aggregate_methods(),
aggregate_methods_by_list(),
aggregate_methods_by_regexp(),
aggregate_properties(),
aggregate_properties_by_regexp(),
aggregate_info(),
deaggregate()

Anterior | Inicio | Siguiente
aggregate_methods | Subir | aggregate_properties_by_regexp


aggregate_properties_by_regexp

(PHP 4 >= 4.2.0)

aggregate_properties_by_regexp -- selective class properties aggregation to an object using a regular expression

Description

void aggregate_properties_by_regexp ( object object, string class_name, string regexp [, bool exclude])

Aggregates properties from a class to an existing object using a regular expresion to match their names. The optional paramater exclude is used to decide whether the regular expression will select the names of class properties to include in the aggregation (i.e. exclude is FALSE, which is the default value), or to exclude from the aggregation (exclude is TRUE).

The properties whose names start with an underscore character (_), which are considered private to the aggregated class, are always excluded.

See also
aggregate(),
aggregate_methods(),
aggregate_methods_by_list(),
aggregate_methods_by_regexp(),
aggregate_properties(),
aggregate_properties_by_list(),
aggregate_info(),
deaggregate()

Anterior | Inicio | Siguiente
aggregate_properties_by_list | Subir | aggregate_properties


aggregate_properties

(PHP 4 >= 4.2.0)

aggregate_properties -- dynamic aggregation of class properties to an object

Description

void aggregate_properties ( object object, string class_name)

Aggregates all properties defined in a class to an existing object, except for properties whose names start with an underscore character (_) which are considered private to the aggregated class.

See also
aggregate(),
aggregate_methods(),
aggregate_methods_by_list(),
aggregate_methods_by_regexp(),
aggregate_properties_by_list(),
aggregate_properties_by_regexp(),
aggregate_info(),
deaggregate()

Anterior | Inicio | Siguiente
aggregate_properties_by_regexp | Subir | aggregate


aggregate

(PHP 4 >= 4.2.0)

aggregate -- dynamic class and object aggregation of methods and properties

Description

void aggregate ( object object, string class_name)

Aggregates methods and properties defined in a class to an existing object. Methods and properties with names starting with an underscore character (_) are considered private to the aggregated class and are not used, constructors are also excluded from the aggregation procedure.

See also
aggregate_info(),
aggregate_methods(),
aggregate_methods_by_list(),
aggregate_methods_by_regexp(),
aggregate_properties(),
aggregate_properties_by_list(),
aggregate_properties_by_regexp(),
deaggregate()

Anterior | Inicio | Siguiente
aggregate_properties | Subir | aggregation_info


aggregation_info

aggregation_info -- Alias for aggregate_info()

Description

This function is an alias of aggregate_info().

Anterior | Inicio | Siguiente
aggregate | Subir | deaggregate


deaggregate

(PHP 4 >= 4.2.0)

deaggregate -- Removes the aggregated methods and properties from an object

Description

void deaggregate ( object object [, string class_name])

Removes the methods and properties from classes that were aggregated to an object. If the optional class_name parameters is passed, only those methods and properties defined in that class are removed, otherwise all aggregated methods and properties are eliminated.

See also
aggregate(),
aggregate_methods(),
aggregate_methods_by_list(),
aggregate_methods_by_regexp(),
aggregate_properties(),
aggregate_properties_by_list(),
aggregate_properties_by_regexp(),
aggregate_info()

Anterior | Inicio | Siguiente
aggregation_info | Subir | Funciones de Oracle 8


Funciones de Oracle 8

Manual de PHP
Anterior Siguiente

LXXIII. Funciones de Oracle 8

Estas funciones permiten acceder a bases de datos Oracle8 y Oracle7. Estas usan la Oracle8 Call-Interface (OCI8). Necesitará las librerías clientes de Oracle8 para usar esta extensión.

Esta extensión es más flexible que las estándar de Oracle. Soporta el enlace de variables locales y globales de PHP con placeholders de Oracle, tiene soporte completo para LOB, FILE y ROWID y le permiten usar las variables definidas por el usuario.

Tabla de contenidos
OCIBindByName -- Enlaza una variable PHP a un Placeholder de Oracle
ocicancel -- Cancel reading from cursor
ocicloselob -- Closes lob descriptor
ocicollappend -- Append an object to the collection
ocicollassign -- Assign a collection from another existing collection
ocicollassignelem -- Assign element val to collection at index ndx
ocicollgetelem -- Retrieve the value at collection index ndx
ocicollmax -- Return the max value of a collection. For a varray this is the maximum length of the array
ocicollsize -- Return the size of a collection
ocicolltrim -- Trim num elements from the end of a collection
OCIColumnIsNULL -- comprueba si una una columna es NULL
OCIColumnName -- Devuelve el nombre de una columna.
ocicolumnprecision -- Tell the precision of a column
ocicolumnscale -- Tell the scale of a column
OCIColumnSize -- devuelve el tamaño de la columna
OCIColumnType -- Devuelve el tipo de dato de una columna.
ocicolumntyperaw -- Tell the raw oracle data type of a column
OCICommit -- Confirma transacciones pendientes
OCIDefineByName -- Usa una variable de PHP para el define-step durante una sentencia SELECT
OCIError -- Devuelve el último error de stmt|conn|global. Si no ocurre ningún error devuelve falso.
OCIExecute -- Ejecuta una sentencia
OCIFetch -- Busca la siguiente fila en el result-buffer
OCIFetchInto -- Busca la siguiente fila dentro del result-array
OCIFetchStatement -- Busca todas la filas de un resultset dentro de un array.
ocifreecollection -- Deletes collection object
OCIFreeCursor -- Libera todos los recursos asociados con cursor.
ocifreedesc -- Deletes a large object descriptor
OCIFreeStatement -- Libera todos los recursos asociados con una sentencia.
OCIInternalDebug -- Habilita o deshabilita la salida del depurador interno. Por defecto este está deshabiltado
ociloadlob -- Loads a large object
OCILogOff -- Termina la conexion con Oracle
OCILogon -- Establece la conexión con Oracle
ocinewcollection -- Initialize a new collection
OCINewCursor -- devuelve un cursor nuevo (Statement-Handle) - use esto para enlazar ref-cursors!
OCINewDescriptor -- Inicializa un nuevo descriptor vacío LOB/FILE (LOB por defecto)
OCINLogon -- Conecta con una base de datos Oracle usando una nueva conexión. Devuelve una nueva sesión.
OCINumCols -- Devuelve el número de columnas resultantes en una sentencia
OCIParse -- Analiza una consulta y devuelve una sentencia
OCIPLogon -- Conecta con una base de datos Oracle usando una conexión persistente. Devuelve una nueva sesión.
OCIResult -- Devuelve el valor de una columna en la fila buscada
OCIRollback -- Restablece todas las transaciones sin confirmar
OCIRowCount -- Obtiene el número de filas afectadas
ocisavelob -- Saves a large object
ocisavelobfile -- Saves a large object file
OCIServerVersion -- Devuelve una cadena conteniendo información a cerca de la version del servidor.
ocisetprefetch -- Sets number of rows to be prefetched
OCIStatementType -- Devuelve el tipo de una sentencia OCI.
ociwritelobtofile -- Saves a large object file
ociwritetemporarylob -- Writes temporary blob

Anterior | Inicio | Siguiente
deaggregate | Subir | OCIBindByName


OCIBindByName

(PHP 3>= 3.0.4, PHP 4 )

OCIBindByName -- Enlaza una variable PHP a un Placeholder de Oracle

Descripción

int OCIBindByName ( int stmt, string ph_name, mixed & variable, int length [, int type])

OCIBindByName() enlaza la variable PHP variable a un placeholder de Oracle ph_name. Si esta será usada para entrada o salida se determinará en tiempo de ejecución, y sera resevado el espacio necesario de almacenamiento. El parámetro length establece el tamaño máximo del enlace. Si establece length a -1 OCIBindByName() usará el tamaño de la variable para establecer el tamaño máximo.

Si necesita enlazar tipos de datos abstractos (LOB/ROWID/BFILE) necesitará primero reservar la memoria con la función OCINewDescriptor(). length no se usa para tipos de datos abstractos y debería establecerse a -1. La variable type le informa a Oracle, que tipo de descriptor queremos usar. Los valores posibles son: OCI_B_FILE (Binary-File), OCI_B_CFILE (Character-File), OCI_B_CLOB (Character-LOB), OCI_B_BLOB (Binary-LOB) and OCI_B_ROWID (ROWID).

Ejemplo 1. OCIDefineByName

<?php
/* OCIBindByPos example thies@digicol.de (980221)

  inserts 3 resords into emp, and uses the ROWID for updating the
  records just after the insert.
*/

$conn = OCILogon("scott","tiger");

$stmt = OCIParse($conn,"insert into emp (empno, ename) ".
                       "values (:empno,:ename) ".
                       "returning ROWID into :rid");

$data = array(1111 => "Larry", 2222 => "Bill", 3333 => "Jim");

$rowid = OCINewDescriptor($conn,OCI_D_ROWID);

OCIBindByName($stmt,":empno",&$empno,32);
OCIBindByName($stmt,":ename",&$ename,32);
OCIBindByName($stmt,":rid",&$rowid,-1,OCI_B_ROWID);

$update = OCIParse($conn,"update emp set sal = :sal where ROWID = :rid");
OCIBindByName($update,":rid",&$rowid,-1,OCI_B_ROWID);
OCIBindByName($update,":sal",&$sal,32);

$sal = 10000;

while (list($empno,$ename) = each($data)) {
    OCIExecute($stmt);
    OCIExecute($update);
}

$rowid->free();

OCIFreeStatement($update);
OCIFreeStatement($stmt);

$stmt = OCIParse($conn,"select * from emp where empno in (1111,2222,3333)");
OCIExecute($stmt);
while (OCIFetchInto($stmt,&$arr,OCI_ASSOC)) {
    var_dump($arr);
}
OCIFreeStatement($stmt);

/* delete our "junk" from the emp table.... */
$stmt = OCIParse($conn,"delete from emp where empno in (1111,2222,3333)");
OCIExecute($stmt);
OCIFreeStatement($stmt);

OCILogoff($conn);
?>

Anterior | Inicio | Siguiente
Funciones de Oracle 8 | Subir | ocicancel


ocicancel

(PHP 3>= 3.0.8, PHP 4 )

ocicancel -- Cancel reading from cursor

Description

bool ocicancel ( resource stmt)

If you do not want read more data from a cursor, then call ocicancel().

Anterior | Inicio | Siguiente
OCIBindByName | Subir | ocicloselob


ocicloselob

(no version information, might be only in CVS)

ocicloselob -- Closes lob descriptor

Description

bool ocicloselob ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ocicancel | Subir | ocicollappend


ocicollappend

(PHP 4 >= 4.0.6)

ocicollappend -- Append an object to the collection

Description

bool ocicollappend ( string value)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ocicloselob | Subir | ocicollassign


ocicollassign

(PHP 4 >= 4.0.6)

ocicollassign -- Assign a collection from another existing collection

Description

bool ocicollassign ( object from)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ocicollappend | Subir | ocicollassignelem


ocicollassignelem

(PHP 4 >= 4.0.6)

ocicollassignelem -- Assign element val to collection at index ndx

Description

bool ocicollassignelem ( int ndx, string val)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ocicollassign | Subir | ocicollgetelem


ocicollgetelem

(PHP 4 >= 4.0.6)

ocicollgetelem -- Retrieve the value at collection index ndx

Description

string ocicollgetelem ( int ndx)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ocicollassignelem | Subir | ocicollmax


ocicollmax

(PHP 4 >= 4.0.6)

ocicollmax -- Return the max value of a collection. For a varray this is the maximum length of the array

Description

int ocicollmax ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ocicollgetelem | Subir | ocicollsize


ocicollsize

(PHP 4 >= 4.0.6)

ocicollsize -- Return the size of a collection

Description

int ocicollsize ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ocicollmax | Subir | ocicolltrim


ocicolltrim

(PHP 4 >= 4.0.6)

ocicolltrim -- Trim num elements from the end of a collection

Description

bool ocicolltrim ( int num)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ocicollsize | Subir | OCIColumnIsNULL


OCIColumnIsNULL

(PHP 3>= 3.0.4, PHP 4 )

OCIColumnIsNULL -- comprueba si una una columna es NULL

Descripción

int OCIColumnIsNULL ( int stmt, mixed column)

OCIColumnIsNULL() devuelve vedadero si la columna devuelta column en el resultset de la sentencia stmt es NULL. Puede usar el número de la columna (1-Based) o el nombre de la columa indicado por el parámetro col.

Anterior | Inicio | Siguiente
ocicolltrim | Subir | OCIColumnName


OCIColumnName

(PHP 3>= 3.0.4, PHP 4 )

OCIColumnName -- Devuelve el nombre de una columna.

Descripción

string OCIColumnName ( int stmt, int col)

OCIColumnName() Devuelve el nombre de la columna correspondiente al número de la columna (1-based) que es pasado.

Ejemplo 1. OCIColumnName

<?php
    print "<HTML><PRE>\n";
    $conn = OCILogon("scott", "tiger");
    $stmt = OCIParse($conn,"select * from emp");
    OCIExecute($stmt);
    print "<TABLE BORDER=\"1\">";
    print "<TR>";
    print "<TH>Name</TH>";
    print "<TH>Type</TH>";
    print "<TH>Length</TH>";
    print "</TR>";
    $ncols = OCINumCols($stmt);
    for ( $i = 1; $i <= $ncols; $i++ ) {
        $column_name  = OCIColumnName($stmt,$i);
        $column_type  = OCIColumnType($stmt,$i);
        $column_size  = OCIColumnSize($stmt,$i);
        print "<TR>";
        print "<TD>$column_name</TD>";
        print "<TD>$column_type</TD>";
        print "<TD>$column_size</TD>";
        print "</TR>";
    }
    OCIFreeStatement($stmt);
    OCILogoff($conn);
    print "</PRE>";
    print "</HTML>\n";
?>

Vea también OCINumCols(), OCIColumnType(), y OCIColumnSize().

Anterior | Inicio | Siguiente
OCIColumnIsNULL | Subir | ocicolumnprecision


ocicolumnprecision

(PHP 4 )

ocicolumnprecision -- Tell the precision of a column

Description

int ocicolumnprecision ( resource stmt, int col)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
OCIColumnName | Subir | ocicolumnscale


ocicolumnscale

(PHP 4 )

ocicolumnscale -- Tell the scale of a column

Description

int ocicolumnscale ( resource stmt, int col)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ocicolumnprecision | Subir | OCIColumnSize


OCIColumnSize

(PHP 3>= 3.0.4, PHP 4 )

OCIColumnSize -- devuelve el tamaño de la columna

Descripción

int OCIColumnSize ( int stmt, mixed column)

OCIColumnSize() devuelve el tamaño de la columna indicada por Oracle Puede utilizar el número de la columna (1-Based) o el nombre indicado en el parámetro col.

Ejemplo 1. OCIColumnSize

<?php
    print "<HTML><PRE>\n";
    $conn = OCILogon("scott", "tiger");
    $stmt = OCIParse($conn,"select * from emp");
    OCIExecute($stmt);
    print "<TABLE BORDER=\"1\">";
    print "<TR>";
    print "<TH>Name</TH>";
    print "<TH>Type</TH>";
    print "<TH>Length</TH>";
    print "</TR>";
    $ncols = OCINumCols($stmt);
    for ( $i = 1; $i <= $ncols; $i++ ) {
        $column_name  = OCIColumnName($stmt,$i);
        $column_type  = OCIColumnType($stmt,$i);
        $column_size  = OCIColumnSize($stmt,$i);
        print "<TR>";
        print "<TD>$column_name</TD>";
        print "<TD>$column_type</TD>";
        print "<TD>$column_size</TD>";
        print "</TR>";
    }
    print "</TABLE>";
    OCIFreeStatement($stmt);
    OCILogoff($conn);
    print "</PRE>";
    print "</HTML>\n";
?>

Vea también OCINumCols(), OCIColumnName(), y OCIColumnSize().

Anterior | Inicio | Siguiente
ocicolumnscale | Subir | OCIColumnType


OCIColumnType

(PHP 3>= 3.0.4, PHP 4 )

OCIColumnType -- Devuelve el tipo de dato de una columna.

Descripción

mixed OCIColumnType ( int stmt, int col)

OCIColumnType() devuelve el tipo de dato de una columna correspondiente al número de la columna (1-based) que es pasado.

Ejemplo 1. OCIColumnType

<?php
    print "<HTML><PRE>\n";
    $conn = OCILogon("scott", "tiger");
    $stmt = OCIParse($conn,"select * from emp");
    OCIExecute($stmt);
    print "<TABLE BORDER=\"1\">";
    print "<TR>";
    print "<TH>Name</TH>";
    print "<TH>Type</TH>";
    print "<TH>Length</TH>";
    print "</TR>";
    $ncols = OCINumCols($stmt);
    for ( $i = 1; $i <= $ncols; $i++ ) {
        $column_name  = OCIColumnName($stmt,$i);
        $column_type  = OCIColumnType($stmt,$i);
        $column_size  = OCIColumnSize($stmt,$i);
        print "<TR>";
        print "<TD>$column_name</TD>";
        print "<TD>$column_type</TD>";
        print "<TD>$column_size</TD>";
        print "</TR>";
    }
    OCIFreeStatement($stmt);
    OCILogoff($conn);
    print "</PRE>";
    print "</HTML>\n";
?>

Vea también OCINumCols(), OCIColumnName(), y OCIColumnSize().

Anterior | Inicio | Siguiente
OCIColumnSize | Subir | ocicolumntyperaw


ocicolumntyperaw

(PHP 4 )

ocicolumntyperaw -- Tell the raw oracle data type of a column

Description

mixed ocicolumntyperaw ( resource stmt, int col)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
OCIColumnType | Subir | OCICommit


OCICommit

(PHP 3>= 3.0.7, PHP 4 )

OCICommit -- Confirma transacciones pendientes

Descripción

int OCICommit ( int connection)

OCICommit() confirma todas las sentencias pendientes para la conexión con Oracle connection.

Anterior | Inicio | Siguiente
ocicolumntyperaw | Subir | OCIDefineByName


OCIDefineByName

(PHP 3>= 3.0.7, PHP 4 )

OCIDefineByName -- Usa una variable de PHP para el define-step durante una sentencia SELECT

Descripción

int OCIDefineByName ( int stmt, string Column-Name, mixed & variable [, int type])

OCIDefineByName() busca el valor de las Columnas-SQL dentro de variables PHP definidas por el usuario. Cuidado que Oracle nombra todas las columnas en MAYUSCULAS, mientras que en su select puede usar también minúsculas write lower-case. OCIDefineByName() espera que Column-Name esté en mayúsculas. Si define una variable que no existe en la sentecia SELECT, no se producirá ningún error.

Si necesita definir un tipo de dato abstracto (LOB/ROWID/BFILE) tendrá que alojarlo primero usando la función OCINewDescriptor() function. Vea también la función OCIBindByName().

Ejemplo 1. OCIDefineByName

<?php
/* OCIDefineByPos example thies@digicol.de (980219) */

$conn = OCILogon("scott","tiger");

$stmt = OCIParse($conn,"select empno, ename from emp");

/* la definición DEBE hacerse ANTES del ociexecute! */

OCIDefineByName($stmt,"EMPNO",&$empno);
OCIDefineByName($stmt,"ENAME",&$ename);

OCIExecute($stmt);

while (OCIFetch($stmt)) {
    echo "empno:".$empno."\n";
    echo "ename:".$ename."\n";
}

OCIFreeStatement($stmt);
OCILogoff($conn);
?>

Anterior | Inicio | Siguiente
OCICommit | Subir | OCIError


OCIError

(PHP 3>= 3.0.7, PHP 4 )

OCIError -- Devuelve el último error de stmt|conn|global. Si no ocurre ningún error devuelve falso.

Descripción

array OCIError ( [int stmt|conn|global])

OCIError() devuelve el último error encontrado. Si el parámetro opcional stmt|conn|global no es usado, es devuelto el último error encontrado. Si no se encuentra ningún error, OCIError() devuelve falso. OCIError() devuelve el error como un array asociativo. En este array, code consiste en el código de error de Oracle y message en la cadena de descripción del error.

Anterior | Inicio | Siguiente
OCIDefineByName | Subir | OCIExecute


OCIExecute

(PHP 3>= 3.0.4, PHP 4 )

OCIExecute -- Ejecuta una sentencia

Descripción

int OCIExecute ( int statement [, int mode])

OCIExecute() ejecuta una sentencia previamente analizada. (see OCIParse()). El parámetro opcional mode le permite especificar el modo de ejecución (default is OCI_COMMIT_ON_SUCCESS). Si no desea que las sentencias se confirmen automaticamente, especifique OCI_DEFAULT como su modo.

Anterior | Inicio | Siguiente
OCIError | Subir | OCIFetch


OCIFetch

(PHP 3>= 3.0.4, PHP 4 )

OCIFetch -- Busca la siguiente fila en el result-buffer

Descripción

int OCIFetch ( int statement)

OCIFetch() Busca la siguiente fila (para sentencias SELECT) dentro del result-buffer interno.

Anterior | Inicio | Siguiente
OCIExecute | Subir | OCIFetchInto


OCIFetchInto

(PHP 3>= 3.0.4, PHP 4 )

OCIFetchInto -- Busca la siguiente fila dentro del result-array

Descripción

int OCIFetchInto ( int stmt, array & result [, int mode])

OCIFetchInto() busca la siguiente fila (for SELECT statements) dentro del array result. OCIFetchInto() sobreescribirá el contenido previo de result. Por defecto result contendrá un array basado en todas las columnas que no son NULL.

El parámetro mode le permite cambiar el comportamineto por defecto. Puede especificar más de una flag simplemente añadiendolas (ej. OCI_ASSOC+OCI_RETURN_NULLS). Las flags son:

OCI_ASSOC Devuelve un array asociativo.
OCI_NUM Devuelve un array numerado empezando en 1. (POR DEFECTO)
OCI_RETURN_NULLS Devuelve columnas vacias.
OCI_RETURN_LOBS Devuelve el valor de un LOB en vez de el descriptor.

Anterior | Inicio | Siguiente
OCIFetch | Subir | OCIFetchStatement


OCIFetchStatement

(PHP 3>= 3.0.8, PHP 4 )

OCIFetchStatement -- Busca todas la filas de un resultset dentro de un array.

Descripción

int OCIFetchStatement ( int stmt, array & variable)

OCIFetchStatement() busca todas las filas de un resultset dentro de un array definido por el usuario. OCIFetchStatement() devuelve el numero de filas buscadas.

Ejemplo 1. OCIFetchStatement

<?php
/* OCIFetchStatement example mbritton@verinet.com (990624) */

$conn = OCILogon("scott","tiger");

$stmt = OCIParse($conn,"select * from emp");

OCIExecute($stmt);

$nrows = OCIFetchStatement($stmt,$results);
if ( $nrows > 0 ) {
   print "<TABLE BORDER=\"1\">\n";
   print "<TR>\n";
   while ( list( $key, $val ) = each( $results ) ) {
      print "<TH>$key</TH>\n";
   }
   print "</TR>\n";

   for ( $i = 0; $i < $nrows; $i++ ) {
      reset($results);
      print "<TR>\n";
      while ( $column = each($results) ) {
         $data = $column['value'];
         print "<TD>$data[$i]</TD>\n";
      }
      print "</TR>\n";
   }
   print "</TABLE>\n";
} else {
   echo "No data found<BR>\n";
}
print "$nrows Records Selected<BR>\n";

OCIFreeStatement($stmt);
OCILogoff($conn);

?>

Anterior | Inicio | Siguiente
OCIFetchInto | Subir | ocifreecollection


ocifreecollection

(PHP 4 >= 4.1.0)

ocifreecollection -- Deletes collection object

Description

bool ocifreecollection ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
OCIFetchStatement | Subir | OCIFreeCursor


OCIFreeCursor

(PHP 3>= 3.0.8, PHP 4 )

OCIFreeCursor -- Libera todos los recursos asociados con cursor.

Descripción

int OCIFreeCursor ( int stmt)

OCIFreeCursor() devuelve cierto si la operacion se lleva a cabo, o falso en caso contrario.

Anterior | Inicio | Siguiente
ocifreecollection | Subir | ocifreedesc


ocifreedesc

(PHP 4 )

ocifreedesc -- Deletes a large object descriptor

Description

bool ocifreedesc ( void )

ocifreedesc() deletes a large object descriptor. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Anterior | Inicio | Siguiente
OCIFreeCursor | Subir | OCIFreeStatement


OCIFreeStatement

(PHP 3>= 3.0.5, PHP 4 )

OCIFreeStatement -- Libera todos los recursos asociados con una sentencia.

Descripción

int OCIFreeStatement ( int stmt)

OCIFreeStatement() devuelve cierto si la operacion se lleva a cabo, o falso en caso contrario.

Anterior | Inicio | Siguiente
ocifreedesc | Subir | OCIInternalDebug


OCIInternalDebug

(PHP 3>= 3.0.4, PHP 4 )

OCIInternalDebug -- Habilita o deshabilita la salida del depurador interno. Por defecto este está deshabiltado

Descripción

void OCIInternalDebug ( int onoff)

OCIInternalDebug() habilita la salida del depurador interno. Asigne 0 a onoff para deshabilitar la salida y 1 para habilitarla.

Anterior | Inicio | Siguiente
OCIFreeStatement | Subir | ociloadlob


ociloadlob

(PHP 4 )

ociloadlob -- Loads a large object

Description

string ociloadlob ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
OCIInternalDebug | Subir | OCILogOff


OCILogOff

(PHP 3>= 3.0.4, PHP 4 )

OCILogOff -- Termina la conexion con Oracle

Descripción

int OCILogOff ( int connection)

OCILogOff() cierra una conexión con Oracle.

Anterior | Inicio | Siguiente
ociloadlob | Subir | OCILogon


OCILogon

(PHP 3>= 3.0.4, PHP 4 )

OCILogon -- Establece la conexión con Oracle

Descripción

int OCILogon ( string username, string password [, string db])

OCILogon() devuelve el identificador de conexión necesario en la mayoria de las funciones OCI. El tercer parámetro, que es opcional, puede contener el nombre de la instancia a Oracle o el nombre dado en el fichero tnsnames.ora de la base de datos a la que nos queremos conectar. Si este parámetro no se especifica, PHP usa la variable de entorno ORACLE_SID (Oracle instance) o TWO_TASK (tnsnames.ora) para determinar la base de datos con la que queremos conectar.

Las conexiones son compartidas a nivel de página cuando usemos OCILogon(). Lo cual significa que los "commits" y "rollbacks" son aplicadas a todas las transacciones abiertas en la página, incluso si usted ha creado conexiones múltiples.

Este ejemplo demuestra como son compartidas las conexiones.

Ejemplo 1. OCILogon

<?php
print "<HTML><PRE>";
$db = "";

$c1 = ocilogon("scott","tiger",$db);
$c2 = ocilogon("scott","tiger",$db);

function create_table($conn)
{ $stmt = ociparse($conn,"create table scott.hallo (test varchar2(64))");
  ociexecute($stmt);
  echo $conn." created table\n\n";
}

function drop_table($conn)
{ $stmt = ociparse($conn,"drop table scott.hallo");
  ociexecute($stmt);
  echo $conn." dropped table\n\n";
}

function insert_data($conn)
{ $stmt = ociparse($conn,"insert into scott.hallo
            values('$conn' || ' ' || to_char(sysdate,'DD-MON-YY HH24:MI:SS'))");
  ociexecute($stmt,OCI_DEFAULT);
  echo $conn." inserted hallo\n\n";
}

function delete_data($conn)
{ $stmt = ociparse($conn,"delete from scott.hallo");
  ociexecute($stmt,OCI_DEFAULT);
  echo $conn." deleted hallo\n\n";
}

function commit($conn)
{ ocicommit($conn);
  echo $conn." commited\n\n";
}

function rollback($conn)
{ ocirollback($conn);
  echo $conn." rollback\n\n";
}

function select_data($conn)
{ $stmt = ociparse($conn,"select * from scott.hallo");
  ociexecute($stmt,OCI_DEFAULT);
  echo $conn."----selecting\n\n";
  while (ocifetch($stmt))
    echo $conn." <".ociresult($stmt,"TEST").">\n\n";
  echo $conn."----done\n\n";
}

create_table($c1);
insert_data($c1);   // Insert a row using c1
insert_data($c2);   // Insert a row using c2

select_data($c1);   // Results of both inserts are returned
select_data($c2);

rollback($c1);      // Rollback using c1

select_data($c1);   // Both inserts have been rolled back
select_data($c2);

insert_data($c2);   // Insert a row using c2
commit($c2);        // commit using c2

select_data($c1);   // result of c2 insert is returned

delete_data($c1);   // delete all rows in table using c1
select_data($c1);   // no rows returned
select_data($c2);   // no rows returned
commit($c1);        // commit using c1

select_data($c1);   // no rows returned
select_data($c2);   // no rows returned

drop_table($c1);
print "</PRE></HTML>";
?>

See also OCIPLogon() and OCINLogon().

Anterior | Inicio | Siguiente
OCILogOff | Subir | ocinewcollection


ocinewcollection

(PHP 4 >= 4.0.6)

ocinewcollection -- Initialize a new collection

Description

object ocinewcollection ( resource connection, string tdo [, string schema])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
OCILogon | Subir | OCINewCursor


OCINewCursor

(PHP 3>= 3.0.8, PHP 4 )

OCINewCursor -- devuelve un cursor nuevo (Statement-Handle) - use esto para enlazar ref-cursors!

Descripción

int OCINewCursor ( int conn)

OCINewCursor() allocates a new statement handle on the specified connection.

Ejemplo 1. Usando un REF CURSOR de un procedimiento almacenado

<?php
// suppose your stored procedure info.output returns a ref cursor in :data

$conn = OCILogon("scott","tiger");
$curs = OCINewCursor($conn);
$stmt = OCIParse($conn,"begin info.output(:data); end;");

ocibindbyname($stmt,"data",&$curs,-1,OCI_B_CURSOR);
ociexecute($stmt);
ociexecute($curs);

while (OCIFetchInto($curs,&$data)) {
    var_dump($data);
}

OCIFreeCursor($stmt);
OCIFreeStatement($curs);
OCILogoff($conn);
?>

Ejemplo 2. Usando un REF CURSOR en una sentencia select

<?php
print "<HTML><BODY>";
$conn = OCILogon("scott","tiger");
$count_cursor = "CURSOR(select count(empno) num_emps from emp " .
                "where emp.deptno = dept.deptno) as EMPCNT from dept";
$stmt = OCIParse($conn,"select deptno,dname,$count_cursor");

ociexecute($stmt);
print "<TABLE BORDER=\"1\">";
print "<TR>";
print "<TH>DEPT NAME</TH>";
print "<TH>DEPT #</TH>";
print "<TH># EMPLOYEES</TH>";
print "</TR>";

while (OCIFetchInto($stmt,&$data,OCI_ASSOC)) {
    print "<TR>";
    $dname  = $data["DNAME"];
    $deptno = $data["DEPTNO"];
    print "<TD>$dname</TD>";
    print "<TD>$deptno</TD>";
    ociexecute($data[ "EMPCNT" ]);
    while (OCIFetchInto($data[ "EMPCNT" ],&$subdata,OCI_ASSOC)) {
        $num_emps = $subdata["NUM_EMPS"];
        print  "<TD>$num_emps</TD>";
    }
    print "</TR>";
}
print "</TABLE>";
print "</BODY></HTML>";
OCIFreeStatement($stmt);
OCILogoff($conn);
?>

Anterior | Inicio | Siguiente
ocinewcollection | Subir | OCINewDescriptor


OCINewDescriptor

(PHP 3>= 3.0.7, PHP 4 )

OCINewDescriptor -- Inicializa un nuevo descriptor vacío LOB/FILE (LOB por defecto)

Descripción

string OCINewDescriptor ( int connection [, int type])

OCINewDescriptor() Reserva espacio para mantener descriptores o localizadores LOB. Los valores válidos para el tipo type son OCI_D_FILE, OCI_D_LOB, OCI_D_ROWID. Para descriptores LOB, los métodos load, save, y savefile están asociados con el descriptor, para BFILE sólo el método load existe. Vea el segundo ejemplo.

Ejemplo 1. OCINewDescriptor

<?php
    /* This script is designed to be called from a HTML form.
     * It expects $user, $password, $table, $where, and $commitsize
     * to be passed in from the form.  The script then deletes
     * the selected rows using the ROWID and commits after each
     * set of $commitsize rows. (Use with care, there is no rollback)
     */
    $conn = OCILogon($user, $password);
    $stmt = OCIParse($conn,"select rowid from $table $where");
    $rowid = OCINewDescriptor($conn,OCI_D_ROWID);
    OCIDefineByName($stmt,"ROWID",&$rowid);
    OCIExecute($stmt);
    while ( OCIFetch($stmt) ) {
       $nrows = OCIRowCount($stmt);
       $delete = OCIParse($conn,"delete from $table where ROWID = :rid");
       OCIBindByName($delete,":rid",&$rowid,-1,OCI_B_ROWID);
       OCIExecute($delete);
       print "$nrows\n";
       if ( ($nrows % $commitsize) == 0 ) {
           OCICommit($conn);
       }
    }
    $nrows = OCIRowCount($stmt);
    print "$nrows deleted...\n";
    OCIFreeStatement($stmt);
    OCILogoff($conn);
?>
<?php
    /* This script demonstrates file upload to LOB columns
     * The formfield used for this example looks like this
     * <form action="upload.php3" method="post" enctype="multipart/form-data">
     * <input type="file" name="lob_upload">
     * ...
     */
  if(!isset($lob_upload) || $lob_upload == 'none'){
?>
<form action="upload.php3" method="post" enctype="multipart/form-data">
Upload file: <input type="file" name="lob_upload"><br>
<input type="submit" value="Upload"> - <input type="reset">
</form>
<?php
  } else {
     // $lob_upload contains the temporary filename of the uploaded file
     $conn = OCILogon($user, $password);
     $lob = OCINewDescriptor($conn, OCI_D_LOB);
     $stmt = OCIParse($conn,"insert into $table (id, the_blob)
               values(my_seq.NEXTVAL, EMPTY_BLOB()) returning the_blob into :the_blob");
     OCIBindByName($stmt, ':the_blob', &$lob, -1, OCI_B_BLOB);
     OCIExecute($stmt);
     if($lob->savefile($lob_upload)){
        OCICommit($conn);
        echo "Blob successfully uploaded\n";
     }else{
        echo "Couldn't upload Blob\n";
     }
     OCIFreeDescriptor($lob);
     OCIFreeStatement($stmt);
     OCILogoff($conn);
  }
?>

Anterior | Inicio | Siguiente
OCINewCursor | Subir | OCINLogon


OCINLogon

(PHP 3>= 3.0.8, PHP 4 )

OCINLogon -- Conecta con una base de datos Oracle usando una nueva conexión. Devuelve una nueva sesión.

Descripción

int OCINLogon ( string username, string password [, string db])

OCINLogon() crea una nueva conexión con una base de datos Oracle 8. El tercer parámetro, que es opcional, puede contener el nombre de la instancia a Oracle o el nombre dado en el fichero tnsnames.ora de la base de datos a la que nos queremos conectar. Si este parámetro no se especifica, PHP usa la variable de entorno ORACLE_SID (Oracle instance) o TWO_TASK (tnsnames.ora) para determinar la base de datos con la que queremos conectar.

OCINLogon() fuerza una nueva conexión. Se debe usar si necesita aislar un conjunto de transacciones. Por defecto, las conexiones son compartidas a nivel de página si usa OCILogon() o a nivel del proceso del servidor web si usa OCIPLogon(). Si posee múltiples conexiones abiertas usando OCINLogon(), todos los "commits" y "rollbacks" se aplican sólo a la conexion especificada.

Este ejemplo demuestra como las conexiones están separadas.

Ejemplo 1. OCINLogon

<?php
print "<HTML><PRE>";
$db = "";

$c1 = ocilogon("scott","tiger",$db);
$c2 = ocinlogon("scott","tiger",$db);

function create_table($conn)
{ $stmt = ociparse($conn,"create table scott.hallo (test
varchar2(64))");
  ociexecute($stmt);
  echo $conn." created table\n\n";
}

function drop_table($conn)
{ $stmt = ociparse($conn,"drop table scott.hallo");
  ociexecute($stmt);
  echo $conn." dropped table\n\n";
}

function insert_data($conn)
{ $stmt = ociparse($conn,"insert into scott.hallo
            values('$conn' || ' ' || to_char(sysdate,'DD-MON-YY HH24:MI:SS'))");
  ociexecute($stmt,OCI_DEFAULT);
  echo $conn." inserted hallo\n\n";
}

function delete_data($conn)
{ $stmt = ociparse($conn,"delete from scott.hallo");
  ociexecute($stmt,OCI_DEFAULT);
  echo $conn." deleted hallo\n\n";
}
function commit($conn)
{ ocicommit($conn);
  echo $conn." commited\n\n";
}

function rollback($conn)
{ ocirollback($conn);
  echo $conn." rollback\n\n";
}

function select_data($conn)
{ $stmt = ociparse($conn,"select * from scott.hallo");
  ociexecute($stmt,OCI_DEFAULT);
  echo $conn."----selecting\n\n";
  while (ocifetch($stmt))
    echo $conn." <".ociresult($stmt,"TEST").">\n\n";
  echo $conn."----done\n\n";
}

create_table($c1);
insert_data($c1);

select_data($c1);
select_data($c2);

rollback($c1);

select_data($c1);
select_data($c2);

insert_data($c2);
commit($c2);

select_data($c1);

delete_data($c1);
select_data($c1);
select_data($c2);
commit($c1);

select_data($c1);
select_data($c2);

drop_table($c1);
print "</PRE></HTML>";
?>

See also OCILogon() and OCIPLogon().

Anterior | Inicio | Siguiente
OCINewDescriptor | Subir | OCINumCols


OCINumCols

(PHP 3>= 3.0.4, PHP 4 )

OCINumCols -- Devuelve el número de columnas resultantes en una sentencia

Descripción

int OCINumCols ( int stmt)

OCINumCols() devuelve el número de columnas en una sentencia

Ejemplo 1. OCINumCols

<?php
    print "<HTML><PRE>\n";
    $conn = OCILogon("scott", "tiger");
    $stmt = OCIParse($conn,"select * from emp");
    OCIExecute($stmt);
    while ( OCIFetch($stmt) ) {
        print "\n";
        $ncols = OCINumCols($stmt);
        for ( $i = 1; $i <= $ncols; $i++ ) {
            $column_name  = OCIColumnName($stmt,$i);
            $column_value = OCIResult($stmt,$i);
            print $column_name . ': ' . $column_value . "\n";
        }
        print "\n";
    }
    OCIFreeStatement($stmt);
    OCILogoff($conn);
    print "</PRE>";
    print "</HTML>\n";
?>

Anterior | Inicio | Siguiente
OCINLogon | Subir | OCIParse


OCIParse

(PHP 3>= 3.0.4, PHP 4 )

OCIParse -- Analiza una consulta y devuelve una sentencia

Descripción

int OCIParse ( int conn, strint query)

OCIParse() analiza la query usando conn. Devuelve el identificador de la sentencia si la consulta es válida, y falso si no lo es. La query puede ser cualquier sentencia SQL válida.

Anterior | Inicio | Siguiente
OCINumCols | Subir | OCIPLogon


OCIPLogon

(PHP 3>= 3.0.8, PHP 4 )

OCIPLogon -- Conecta con una base de datos Oracle usando una conexión persistente. Devuelve una nueva sesión.

Descripción

int OCIPLogon ( string username, string password [, string db])

OCIPLogon() crea una conexión persistente con una base de datos Oracle 8. El tercer parámetro, que es opcional, puede contener el nombre de la instancia a Oracle o el nombre dado en el fichero tnsnames.ora de la base de datos a la que nos queremos conectar. Si este parámetro no se especifica, PHP usa la variable de entorno ORACLE_SID (Oracle instance) o TWO_TASK (tnsnames.ora) para determinar la base de datos con la que queremos conectar.

Vea también OCILogon() y OCINLogon().

Anterior | Inicio | Siguiente
OCIParse | Subir | OCIResult


OCIResult

(PHP 3>= 3.0.4, PHP 4 )

OCIResult -- Devuelve el valor de una columna en la fila buscada

Descripción

mixed OCIResult ( int statement, mixed column)

OCIResult() devuelve el valor de la columna column de la fila actual (vea OCIFetch()).OCIResult() devolverá todo como una cadena excepto para los tipo de datos abstractos (ROWIDs, LOBs and FILEs).

Anterior | Inicio | Siguiente
OCIPLogon | Subir | OCIRollback


OCIRollback

(PHP 3>= 3.0.7, PHP 4 )

OCIRollback -- Restablece todas las transaciones sin confirmar

Descripción

int OCIRollback ( int connection)

OCIRollback() restablece todas las transacciones sin confirmar para la conexión Oracle connection.

Anterior | Inicio | Siguiente
OCIResult | Subir | OCIRowCount


OCIRowCount

(PHP 3>= 3.0.7, PHP 4 )

OCIRowCount -- Obtiene el número de filas afectadas

Descripción

int OCIRowCount ( int statement)

OCIRowCount() devuelve el número de filas afectadas, por ej. en sentencias de actualización. !Esta función no indicará el número de de filas que devuelve una sentencia SELECT!

Ejemplo 1. OCIRowCount

<?php
    print "<HTML><PRE>";
    $conn = OCILogon("scott","tiger");
    $stmt = OCIParse($conn,"create table emp2 as select * from emp");
    OCIExecute($stmt);
    print OCIRowCount($stmt) . " rows inserted.<BR>";
    OCIFreeStatement($stmt);
    $stmt = OCIParse($conn,"delete from emp2");
    OCIExecute($stmt);
    print OCIRowCount($stmt) . " rows deleted.<BR>";
    OCICommit($conn);
    OCIFreeStatement($stmt);
    $stmt = OCIParse($conn,"drop table emp2");
    OCIExecute($stmt);
    OCIFreeStatement($stmt);
    OCILogOff($conn);
    print "</PRE></HTML>";
?>

Anterior | Inicio | Siguiente
OCIRollback | Subir | ocisavelob


ocisavelob

(PHP 4 )

ocisavelob -- Saves a large object

Description

bool ocisavelob ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
OCIRowCount | Subir | ocisavelobfile


ocisavelobfile

(PHP 4 )

ocisavelobfile -- Saves a large object file

Description

bool ocisavelobfile ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ocisavelob | Subir | OCIServerVersion


OCIServerVersion

(PHP 3>= 3.0.4, PHP 4 )

OCIServerVersion -- Devuelve una cadena conteniendo información a cerca de la version del servidor.

Descripción

string OCIServerVersion ( int conn)

Ejemplo 1. OCIServerVersion

<?php
   $conn = OCILogon("scott","tiger");
   print "Server Version: " . OCIServerVersion($conn);
   OCILogOff($conn);
?>

Anterior | Inicio | Siguiente
ocisavelobfile | Subir | ocisetprefetch


ocisetprefetch

(PHP 3>= 3.0.12, PHP 4 )

ocisetprefetch -- Sets number of rows to be prefetched

Description

bool ocisetprefetch ( resource stmt, int rows)

Sets the number of top level rows to be prefetched to rows. The default value for rows is 1 row.

Anterior | Inicio | Siguiente
OCIServerVersion | Subir | OCIStatementType


OCIStatementType

(PHP 3>= 3.0.5, PHP 4 )

OCIStatementType -- Devuelve el tipo de una sentencia OCI.

Descripción

string OCIStatementType ( int stmt)

OCIStatementType() devuelve uno de los siguiente valores:

  1. "SELECT"

  2. "UPDATE"

  3. "DELETE"

  4. "INSERT"

  5. "CREATE"

  6. "DROP"

  7. "ALTER"

  8. "BEGIN"

  9. "DECLARE"

  10. "UNKNOWN"

Ejemplo 1. Code examples

<?php
    print "<HTML><PRE>";
    $conn = OCILogon("scott","tiger");
    $sql  = "delete from emp where deptno = 10";

    $stmt = OCIParse($conn,$sql);
    if ( OCIStatementType($stmt) == "DELETE" ) {
        die "You are not allowed to delete from this table<BR>";
    }

    OCILogoff($conn);
    print "</PRE></HTML>";
?>

Anterior | Inicio | Siguiente
ocisetprefetch | Subir | ociwritelobtofile


ociwritelobtofile

(PHP 4 )

ociwritelobtofile -- Saves a large object file

Description

bool ociwritelobtofile ( [string filename [, int start [, int length]]])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
OCIStatementType | Subir | ociwritetemporarylob


ociwritetemporarylob

(no version information, might be only in CVS)

ociwritetemporarylob -- Writes temporary blob

Description

bool ociwritetemporarylob ( string var [, int lob_type])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
ociwritelobtofile | Subir | OpenSSL functions


OpenSSL functions

Manual de PHP
Anterior Siguiente

LXXIV. OpenSSL functions

Introducción

This module uses the functions of OpenSSL for generation and verification of signatures and for sealing (encrypting) and opening (decrypting) data. OpenSSL offers many features that this module currently doesn't support. Some of these may be added in the future.

Requerimientos

In order to use the OpenSSL functions you need to install the OpenSSL package. PHP-4.0.4pl1 requires OpenSSL >= 0.9.6, but PHP-4.0.5 and greater will also work with OpenSSL >= 0.9.5.

Instalación

To use PHP's OpenSSL support you must also compile PHP --with-openssl[=DIR].

Note to Win32 Users: In order to enable this module on a Windows environment, you must copy libeay32.dll from the DLL folder of the PHP/Win32 binary package to the SYSTEM32 folder of your windows machine. (Ex: C:\WINNT\SYSTEM32 or C:\WINDOWS\SYSTEM32)

Additionally, if you are planning to use the key generation and certificate signing functions, you will need to install a valid openssl.cnf on your system. As of PHP 4.3.0, we include a sample configuration file in the openssl of our win32 binary distribution. If you are using PHP 4.2.0 or later and are missing the file, you can obtain it from the OpenSSL home page or by downloading the PHP 4.3.0 release and using the configuration file from there.

Note to Win32 Users: PHP will search for the openssl.cnf using the following logic:

  • the OPENSSL_CONF environmental variable, if set, will be used as the path (including filename) of the configuration file.

  • the SSLEAY_CONF environmental variable, if set, will be used as the path (including filename) of the configuration file.

  • The file openssl.cnf will be assumed to be found in the default certificate area, as configured at the time that the openssl DLL was compiled. This is usually means that the default filename is c:\usr\local\ssl\openssl.cnf.

In your installation, you need to decide whether to install the configuration file at c:\usr\local\ssl\openssl.cnf or whether to install it someplace else and use environmental variables (possibly on a per-virtual-host basis) to locate the configuration file. Note that it is possible to override the default path from the script using the configargs of the functions that require a configuration file.

Configuración en tiempo de ejecución

Esta extensión no tiene directivas de configuración en php.ini.

Tipos de recursos

Key/Certificate parameters

Quite a few of the openssl functions require a key or a certificate parameter. PHP 4.0.5 and earlier have to use a key or certificate resource returned by one of the openssl_get_xxx functions. Later versions may use one of the following methods:

  • Certificates

    1. An X.509 resource returned from openssl_x509_read()

    2. A string having the format file://path/to/cert.pem; the named file must contain a PEM encoded certificate

    3. A string containing the content of a certificate, PEM encoded

  • Public/Private Keys

    1. A key resource returned from openssl_get_publickey() or openssl_get_privatekey()

    2. For public keys only: an X.509 resource

    3. A string having the format file://path/to/file.pem - the named file must contain a PEM encoded certificate/private key (it may contain both)

    4. A string containing the content of a certificate/key, PEM encoded

    5. For private keys, you may also use the syntax array($key, $passphrase) where $key represents a key specified using the file:// or textual content notation above, and $passphrase represents a string containing the passphrase for that private key

Certificate Verification

When calling a function that will verify a signature/certificate, the cainfo parameter is an array containing file and directory names that specify the locations of trusted CA files. If a directory is specified, then it must be a correctly formed hashed directory as the openssl command would use.

Constantes predefinidas

Estas constantes están definidas por esta extensión y estarán disponibles solamente cuando la extensión ha sido o bien compilada dentro de PHP o grabada dinámicamente en tiempo de ejecución.

Purpose checking flags

X509_PURPOSE_SSL_CLIENT (integer)

X509_PURPOSE_SSL_SERVER (integer)

X509_PURPOSE_NS_SSL_SERVER (integer)

X509_PURPOSE_SMIME_SIGN (integer)

X509_PURPOSE_SMIME_ENCRYPT (integer)

X509_PURPOSE_CRL_SIGN (integer)

X509_PURPOSE_ANY (integer)

Padding flags

OPENSSL_PKCS1_PADDING (integer)

OPENSSL_SSLV23_PADDING (integer)

OPENSSL_NO_PADDING (integer)

OPENSSL_PKCS1_OAEP_PADDING (integer)

Key types

OPENSSL_KEYTYPE_RSA (integer)

OPENSSL_KEYTYPE_DSA (integer)

OPENSSL_KEYTYPE_DH (integer)

PKCS7 Flags/Constants

The S/MIME functions make use of flags which are specified using a bitfield which can include one or more of the following values:

Tabla 1. PKCS7 CONSTANTS

Constant | Description
PKCS7_TEXT | adds text/plain content type headers to encrypted/signed message. If decrypting or verifying, it strips those headers from the output - if the decrypted or verified message is not of MIME type text/plain then an error will occur.
PKCS7_BINARY | normally the input message is converted to "canonical" format which is effectively using CR and LF as end of line: as required by the S/MIME specification. When this options is present, no translation occurs. This is useful when handling binary data which may not be in MIME format.
PKCS7_NOINTERN | when verifying a message, certificates (if any) included in the message are normally searched for the signing certificate. With this option only the certificates specified in the extracerts parameter of openssl_pkcs7_verify() are used. The supplied certificates can still be used as untrusted CAs however.
PKCS7_NOVERIFY | do not verify the signers certificate of a signed message.
PKCS7_NOCHAIN | do not chain verification of signers certificates: that is don't use the certificates in the signed message as untrusted CAs.
PKCS7_NOCERTS | when signing a message the signer's certificate is normally included - with this option it is excluded. This will reduce the size of the signed message but the verifier must have a copy of the signers certificate available locally (passed using the extracerts to openssl_pkcs7_verify() for example.
PKCS7_NOATTR | normally when a message is signed, a set of attributes are included which include the signing time and the supported symmetric algorithms. With this option they are not included.
PKCS7_DETACHED | When signing a message, use cleartext signing with the MIME type multipart/signed. This is the default if the flags parameter to openssl_pkcs7_sign() if you do not specify any flags. If you turn this option off, the message will be signed using opaque signing, which is more resistant to translation by mail relays but cannot be read by mail agents that do not support S/MIME.
PKCS7_NOSIGS | Don't try and verify the signatures on a message

Nota: These constants were added in 4.0.6.

Tabla de contenidos
openssl_csr_export_to_file -- Exports a CSR to a file
openssl_csr_export -- Exports a CSR as a string
openssl_csr_new -- Generates a CSR
openssl_csr_sign -- Sign a CSR with another certificate (or itself) and generate a certificate
openssl_error_string -- Return openSSL error message
openssl_free_key -- Free key resource
openssl_get_privatekey -- Get a private key
openssl_get_publickey -- Extract public key from certificate and prepare it for use
openssl_open -- Open sealed data
openssl_pkcs7_decrypt -- Decrypts an S/MIME encrypted message
openssl_pkcs7_encrypt -- Encrypt an S/MIME message
openssl_pkcs7_sign -- sign an S/MIME message
openssl_pkcs7_verify -- Verifies the signature of an S/MIME signed message
openssl_pkey_export_to_file -- Gets an exportable representation of a key into a file
openssl_pkey_export -- Gets an exportable representation of a key into a string
openssl_pkey_get_private -- Get a private key
openssl_pkey_get_public -- Extract public key from certificate and prepare it for use
openssl_pkey_new -- Generates a new private key
openssl_private_decrypt -- Decrypts data with private key
openssl_private_encrypt -- Encrypts data with private key
openssl_public_decrypt -- Decrypts data with public key
openssl_public_encrypt -- Encrypts data with public key
openssl_seal -- Seal (encrypt) data
openssl_sign -- Generate signature
openssl_verify -- Verify signature
openssl_x509_check_private_key -- Checks if a private key corresponds to a certificate
openssl_x509_checkpurpose -- Verifies if a certificate can be used for a particular purpose
openssl_x509_export_to_file -- Exports a certificate to file
openssl_x509_export -- Exports a certificate as a string
openssl_x509_free -- Free certificate resource
openssl_x509_parse -- Parse an X509 certificate and return the information as an array
openssl_x509_read -- Parse an X.509 certificate and return a resource identifier for it

Anterior | Inicio | Siguiente
ociwritetemporarylob | Subir | openssl_csr_export_to_file


openssl_csr_export_to_file

(PHP 4 >= 4.2.0)

openssl_csr_export_to_file -- Exports a CSR to a file

Description

bool openssl_csr_export_to_file ( resource csr, string outfilename [, bool notext])

openssl_csr_export_to_file() takes the Certificate Signing Request represented by csr and saves it as ascii-armoured text into the file named by outfilename.

The optional parameter notext affects the verbosity of the output; if it is FALSE then additional human-readable information is included in the output. The default value of notext is TRUE.

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

See also openssl_csr_export(),
openssl_csr_new() and
openssl_csr_sign().

Anterior | Inicio | Siguiente
OpenSSL functions | Subir | openssl_csr_export


openssl_csr_export

(PHP 4 >= 4.2.0)

openssl_csr_export -- Exports a CSR as a string

Description

bool openssl_csr_export ( resource csr, string &out [, bool notext])

openssl_csr_export() takes the Certificate Signing Request represented by csr and stores it as ascii-armoured text into out, which is passed by reference.

The optional parameter notext affects the verbosity of the output; if it is FALSE then additional human-readable information is included in the output. The default value of notext is TRUE.

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

See also openssl_csr_export_to_file(),
openssl_csr_new() and
openssl_csr_sign().

Anterior | Inicio | Siguiente
openssl_csr_export_to_file | Subir | openssl_csr_new


openssl_csr_new

(PHP 4 >= 4.2.0)

openssl_csr_new -- Generates a CSR

Description

bool openssl_csr_new ( array dn, resource privkey [, array configargs [, array extraattribs]])

openssl_csr_new() generates a new CSR (Certificate Signing Request) based on the information provided by dn, which represents the Distinguished Name to be used in the certificate.

privkey should be set to a private key that was previously generated by openssl_pkey_new() (or otherwise obtained from the other openssl_pkey family of functions). The corresponding public portion of the key will be used to sign the CSR.

extraattribs is used to specify additional configuration options for the CSR. Both dn and extraattribs are associative arrays whose keys are converted to OIDs and applied to the relevant part of the request.

Nota: You need to have a valid openssl.cnf installed for this function to operate correctly. See the notes under the installation section for more information.

By default, the information in your system openssl.conf is used to initialize the request; you can specify a configuration file section by setting the config_section_section key of configargs. You can also specify an alternative openssl configuration file by setting the value of the config key to the path of the file you want to use. The following keys, if present in configargs behave as their equivalents in the openssl.conf, as listed in the table below.

Tabla 1. Configuration overrides

configargs key | type | openssl.conf equivalent | description
digest_alg | string | default_md | Selects which digest method to use
x509_extensions | string | x509_extensions | Selects which extensions should be used when creating an x509 certificate
req_extensions | string | req_extensions | Selects which extensions should be used when creating a CSR
private_key_bits | string | default_bits | Specifies how many bits should be used to generate a private key
private_key_type | integer | none | Specifies the type of private key to create. This can be one of OPENSSL_KEYTYPE_DSA, OPENSSL_KEYTYPE_DH or OPENSSL_KEYTYPE_RSA. The default value is OPENSSL_KEYTYPE_RSA which is currently the only supported key type.
encrypt_key | boolean | encrypt_key | Should an exported key (with passphrase) be encrypted?

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Ejemplo 1. openssl_csr_new() example - creating a self-signed-certificate

<?php
// Fill in data for the distinguished name to be used in the cert
// You must change the values of these keys to match your name and
// company, or more precisely, the name and company of the person/site
// that you are generating the certificate for.
// For SSL certificates, the commonName is usually the domain name of
// that will be using the certificate, but for S/MIME certificates,
// the commonName will be the name of the individual who will use the
// certificate.
$dn = array(
    "countryName" => "UK",
    "stateOrProvinceName" => "Somerset",
    "localityName" => "Glastonbury",
    "organizationName" => "The Brain Room Limited",
    "organizationalUnitName" => "PHP Documentation Team",
    "commonName" => "Wez Furlong",
    "emailAddress" => "wez@example.com"
);

// Generate a new private (and public) key pair
$privkey = openssl_pkey_new();

// Generate a certificate signing request
$csr = openssl_csr_new($dn, $privkey);

// You will usually want to create a self-signed certificate at this
// point until your CA fulfills your request.
// This creates a self-signed cert that is valid for 365 days
$sscert = openssl_csr_sign($csr, null, $privkey, 365);

// Now you will want to preserve your private key, CSR and self-signed
// cert so that they can be installed into your web server, mail server
// or mail client (depending on the intended use of the certificate).
// This example shows how to get those things into variables, but you
// can also store them directly into files.
// Typically, you will send the CSR on to your CA who will then issue
// you with the "real" certificate.
openssl_csr_export($csr, $csrout) and debug_zval_dump($csrout);
openssl_x509_export($sscert, $certout) and debug_zval_dump($certout);
openssl_pkey_export($privkey, $pkeyout, "mypassword") and debug_zval_dump($pkeyout);

// Show any errors that occurred here
while (($e = openssl_error_string()) !== false) {
    echo $e . "\n";
}
?>

Anterior | Inicio | Siguiente
openssl_csr_export | Subir | openssl_csr_sign


openssl_csr_sign

(PHP 4 >= 4.2.0)

openssl_csr_sign -- Sign a CSR with another certificate (or itself) and generate a certificate

Description

resource openssl_csr_sign ( mixed csr, mixed cacert, mixed priv_key, int days [, array configargs [, int serial]])

openssl_csr_sign() generates an x509 certificate resource from the csr previously generated by openssl_csr_new(), but it can also be the path to a PEM encoded CSR when specified as file://path/to/csr or an exported string generated by openssl_csr_export(). The generated certificate will be signed by cacert. If cacert is NULL, the generated certificate will be a self-signed certificate. priv_key is the private key that corresponds to cacert. days specifies the length of time for which the generated certificate will be valid, in days. You can finetune the CSR signing by configargs. See openssl_csr_new() for more information about configargs. Since PHP 4.3.3 you can specify the serial number of issued certificate by serial. In earlier versions, it was always 0.

Returns an x509 certificate resource on success, FALSE on failure.

Nota: You need to have a valid openssl.cnf installed for this function to operate correctly. See the notes under the installation section for more information.

Ejemplo 1. openssl_csr_sign() example - signing a CSR (how to implement your own CA)

<?php
// Let's assume that this script is set to receive a CSR that has
// been pasted into a textarea from another page
$csrdata = $_POST["CSR"];

// We will sign the request using our own "certificate authority"
// certificate.  You can use any certificate to sign another, but
// the process is worthless unless the signing certificate is trusted
// by the software/users that will deal with the newly signed certificate

// We need our CA cert and it's private key
$cacert = "file://path/to/ca.crt";
$privkey = array("file://path/to/ca.key", "your_ca_key_passphrase");

$userscert = openssl_csr_sign($csrdata, $cacert, $privkey, 365);

// Now display the generated certificate so that the user can
// copy and paste it into their local configuration (such as a file
// to hold the certificate for their SSL server)
openssl_x509_export($usercert, $certout);
echo $certout;

// Show any errors that occurred here
while (($e = openssl_error_string()) !== false) {
    echo $e . "\n";
}
?>

Anterior | Inicio | Siguiente
openssl_csr_new | Subir | openssl_error_string


openssl_error_string

(PHP 4 >= 4.0.6)

openssl_error_string -- Return openSSL error message

Description

mixed openssl_error_string ( void )

Returns an error message string, or FALSE if there are no more error messages to return.

openssl_error_string() returns the last error from the openSSL library. Error messages are stacked, so this function should be called multiple times to collect all of the information.

Ejemplo 1. openssl_error_string() example

<?php
// lets assume you just called an openssl function that failed
while($msg = openssl_error_string())
    echo $msg . "<br />\n";
?>

Nota: This function was added in 4.0.6.

Anterior | Inicio | Siguiente
openssl_csr_sign | Subir | openssl_free_key


openssl_free_key

(PHP 4 >= 4.0.4)

openssl_free_key -- Free key resource

Description

void openssl_free_key ( resource key_identifier)

openssl_free_key() frees the key associated with the specified key_identifier from memory.

Anterior | Inicio | Siguiente
openssl_error_string | Subir | openssl_get_privatekey


openssl_get_privatekey

(PHP 4 >= 4.0.4)

openssl_get_privatekey -- Get a private key

Description

resource openssl_get_privatekey ( mixed key [, string passphrase])

This is an alias for openssl_pkey_get_private().

Anterior | Inicio | Siguiente
openssl_free_key | Subir | openssl_get_publickey


openssl_get_publickey

(PHP 4 >= 4.0.4)

openssl_get_publickey -- Extract public key from certificate and prepare it for use

Description

resource openssl_get_publickey ( mixed certificate)

This is an alias for openssl_pkey_get_public().

Anterior | Inicio | Siguiente
openssl_get_privatekey | Subir | openssl_open


openssl_open

(PHP 4 >= 4.0.4)

openssl_open -- Open sealed data

Description

bool openssl_open ( string sealed_data, string open_data, string env_key, mixed priv_key_id)

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo. If successful the opened data is returned in open_data.

openssl_open() opens (decrypts) sealed_data using the private key associated with the key identifier priv_key_id and the envelope key env_key, and fills open_data with the decrypted data. The envelope key is generated when the data are sealed and can only be used by one specific private key. See openssl_seal() for more information.

Ejemplo 1. openssl_open() example

<?php
// $sealed and $env_key are assumed to contain the sealed data
// and our envelope key, both given to us by the sealer.

// fetch private key from file and ready it
$fp = fopen("/src/openssl-0.9.6/demos/sign/key.pem", "r");
$priv_key = fread($fp, 8192);
fclose($fp);
$pkeyid = openssl_get_privatekey($priv_key);

// decrypt the data and store it in $open
if (openssl_open($sealed, $open, $env_key, $pkeyid))
    echo "here is the opened data: ", $open;
else
    echo "failed to open data";

// free the private key from memory
openssl_free_key($pkeyid);
?>

See also openssl_seal().

Anterior | Inicio | Siguiente
openssl_get_publickey | Subir | openssl_pkcs7_decrypt


openssl_pkcs7_decrypt

(PHP 4 >= 4.0.6)

openssl_pkcs7_decrypt -- Decrypts an S/MIME encrypted message

Description

bool openssl_pkcs7_decrypt ( string infilename, string outfilename, mixed recipcert [, mixed recipkey])

Decrypts the S/MIME encrypted message contained in the file specified by infilename using the certificate and it's associated private key specified by recipcert and recipkey.

The decrypted message is output to the file specified by outfilename

Ejemplo 1. openssl_pkcs7_decrypt() example

<?php
// $cert and $key are assumed to contain your personal certificate and private
// key pair, and that you are the recipient of an S/MIME message
$infilename = "encrypted.msg";  // this file holds your encrypted message
$outfilename = "decrypted.msg"; // make sure you can write to this file

if (openssl_pkcs7_decrypt($infilename, $outfilename, $cert, $key))
    echo "decrypted!";
else
    echo "failed to decrypt!";
?>

Nota: This function was added in 4.0.6.

Anterior | Inicio | Siguiente
openssl_open | Subir | openssl_pkcs7_encrypt


openssl_pkcs7_encrypt

(PHP 4 >= 4.0.6)

openssl_pkcs7_encrypt -- Encrypt an S/MIME message

Description

bool openssl_pkcs7_encrypt ( string infile, string outfile, mixed recipcerts, array headers [, int flags])

openssl_pkcs7_encrypt() takes the contents of the file named infile and encrypts them using an RC2 40-bit cipher so that they can only be read by the intended recipients specified by recipcerts, which is either a lone X.509 certificate, or an array of X.509 certificates. headers is an array of headers that will be prepended to the data after it has been encrypted. flags can be used to specify options that affect the encoding process - see PKCS7 constants. headers can be either an associative array keyed by header name, or an indexed array, where each element contains a single header line.

Ejemplo 1. openssl_pkcs7_encrypt() example

<?php
// the message you want to encrypt and send to your secret agent
// in the field, known as nighthawk.  You have his certificate
// in the file nighthawk.pem
$data = <<<EOD
Nighthawk,

Top secret, for your eyes only!

The enemy is closing in! Meet me at the cafe at 8.30am
to collect your forged passport!

HQ
EOD;

// load key
$key = file_get_contents("nighthawk.pem");

// save message to file
$fp = fopen("msg.txt", "w");
fwrite($fp, $data);
fclose($fp);

// encrypt it
if (openssl_pkcs7_encrypt("msg.txt", "enc.txt", $key,
    array("To" => "nighthawk@example.com", // keyed syntax
          "From: HQ <hq@example.com>", // indexed syntax
          "Subject" => "Eyes only")))
{
    // message encrypted - send it!
    exec(ini_get("sendmail_path") . " < enc.txt");
}
?>

Anterior | Inicio | Siguiente
openssl_pkcs7_decrypt | Subir | openssl_pkcs7_sign


openssl_pkcs7_sign

(PHP 4 >= 4.0.6)

openssl_pkcs7_sign -- sign an S/MIME message

Description

bool openssl_pkcs7_sign ( string infilename, string outfilename, mixed signcert, mixed privkey, array headers [, int flags [, string extracerts]])

openssl_pkcs7_sign() takes the contents of the file named infilename and signs them using the certificate and it's matching private key specified by signcert and privkey parameters.

headers is an array of headers that will be prepended to the data after it has been signed (see openssl_pkcs7_encrypt() for more information about the format of this parameter.

flags can be used to alter the output - see PKCS7 constants - if not specified, it defaults to PKCS7_DETACHED.

extracerts specifies the name of a file containing a bunch of extra certificates to include in the signature which can for example be used to help the recipient to verify the certificate that you used.

Ejemplo 1. openssl_pkcs7_sign() example

<?php
// the message you want to sign so that recipient can be sure it was you that
// sent it
$data = <<<EOD

You have my authorization to spend $10,000 on dinner expenses.

The CEO
EOD;
// save message to file
$fp = fopen("msg.txt", "w");
fwrite($fp, $data);
fclose($fp);
// encrypt it
if (openssl_pkcs7_sign("msg.txt", "signed.txt", "mycert.pem",
    array("mycert.pem", "mypassphrase"),
    array("To" => "joes@example.com", // keyed syntax
          "From" => "HQ <ceo@example.com>", // indexed syntax
          "Subject" => "Eyes only")
    ))
{
    // message signed - send it!
    exec(ini_get("sendmail_path") . " < signed.txt");
}
?>

Nota: This function was added in 4.0.6.

Anterior | Inicio | Siguiente
openssl_pkcs7_encrypt | Subir | openssl_pkcs7_verify


openssl_pkcs7_verify

(PHP 4 >= 4.0.6)

openssl_pkcs7_verify -- Verifies the signature of an S/MIME signed message

Description

bool openssl_pkcs7_verify ( string filename, int flags [, string outfilename [, array cainfo [, string extracerts]]])

openssl_pkcs7_verify() reads the S/MIME message contained in the filename specified by filename and examines the digital signature. It returns TRUE if the signature is verified, FALSE if it is not correct (the message has been tampered with, or the signing certificate is invalid), or -1 on error.

flags can be used to affect how the signature is verified - see PKCS7 constants for more information.

If the outfilename is specified, it should be a string holding the name of a file into which the certificates of the persons that signed the messages will be stored in PEM format.

If the cainfo is specified, it should hold information about the trusted CA certificates to use in the verification process - see certificate verification for more information about this parameter.

If the extracerts is specified, it is the filename of a file containing a bunch of certificates to use as untrusted CAs.

Nota: This function was added in 4.0.6.

Anterior | Inicio | Siguiente
openssl_pkcs7_sign | Subir | openssl_pkey_export_to_file


openssl_pkey_export_to_file

(PHP 4 >= 4.2.0)

openssl_pkey_export_to_file -- Gets an exportable representation of a key into a file

Description

bool openssl_pkey_export_to_file ( mixed key, string outfilename [, string passphrase [, array configargs]])

openssl_pkey_export_to_file() saves an ascii-armoured (PEM encoded) rendition of key into the file named by outfilename. The key can be optionally protected by a passphrase. configargs can be used to fine-tune the export process by specifying and/or overriding options for the openssl configuration file. See openssl_csr_new() for more information about configargs. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Nota: You need to have a valid openssl.cnf installed for this function to operate correctly. See the notes under the installation section for more information.

Anterior | Inicio | Siguiente
openssl_pkcs7_verify | Subir | openssl_pkey_export


openssl_pkey_export

(PHP 4 >= 4.2.0)

openssl_pkey_export -- Gets an exportable representation of a key into a string

Description

bool openssl_pkey_export ( mixed key, string &out [, string passphrase [, array configargs]])

openssl_pkey_export() exports key as a PEM encoded string and stores it into out (which is passed by reference). The key is optionally protected by passphrase. configargs can be used to fine-tune the export process by specifying and/or overriding options for the openssl configuration file. See openssl_csr_new() for more information about configargs. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Nota: You need to have a valid openssl.cnf installed for this function to operate correctly. See the notes under the installation section for more information.

Anterior | Inicio | Siguiente
openssl_pkey_export_to_file | Subir | openssl_pkey_get_private


openssl_pkey_get_private

(PHP 4 >= 4.2.0)

openssl_pkey_get_private -- Get a private key

Description

resource openssl_get_privatekey ( mixed key [, string passphrase])

Returns a positive key resource identifier on success, or FALSE on error.

openssl_get_privatekey() parses key and prepares it for use by other functions. key can be one of the following:

  1. a string having the format file://path/to/file.pem. The named file must contain a PEM encoded certificate/private key (it may contain both).

  2. A PEM formatted private key.

The optional parameter passphrase must be used if the specified key is encrypted (protected by a passphrase).

Anterior | Inicio | Siguiente
openssl_pkey_export | Subir | openssl_pkey_get_public


openssl_pkey_get_public

(PHP 4 >= 4.2.0)

openssl_pkey_get_public -- Extract public key from certificate and prepare it for use

Description

resource openssl_pkey_get_public ( mixed certificate)

Returns a positive key resource identifier on success, or FALSE on error.

openssl_get_publickey() extracts the public key from certificate and prepares it for use by other functions. certificate can be one of the following:

  1. an X.509 certificate resource

  2. a string having the format file://path/to/file.pem. The named file must contain a PEM encoded certificate/private key (it may contain both).

  3. A PEM formatted private key.

Anterior | Inicio | Siguiente
openssl_pkey_get_private | Subir | openssl_pkey_new


openssl_pkey_new

(PHP 4 >= 4.2.0)

openssl_pkey_new -- Generates a new private key

Description

resource openssl_pkey_new ( [array configargs])

openssl_pkey_new() generates a new private and public key pair. The public component of the key can be obtained using openssl_pkey_get_public(). You can finetune the key generation (such as specifying the number of bits) using configargs. See openssl_csr_new() for more information about configargs.

Nota: You need to have a valid openssl.cnf installed for this function to operate correctly. See the notes under the installation section for more information.

Anterior | Inicio | Siguiente
openssl_pkey_get_public | Subir | openssl_private_decrypt


openssl_private_decrypt

(PHP 4 >= 4.0.6)

openssl_private_decrypt -- Decrypts data with private key

Description

bool openssl_private_decrypt ( string data, string &decrypted, mixed key [, int padding])

openssl_private_decrypt() decrypts data that was previous encrypted via openssl_private_encrypt() and stores the result into decrypted. key must be the private key corresponding that was used to encrypt the data. padding defaults to OPENSSL_PKCS1_PADDING, but can also be one of OPENSSL_SSLV23_PADDING, OPENSSL_PKCS1_OAEP_PADDING OPENSSL_NO_PADDING.

Anterior | Inicio | Siguiente
openssl_pkey_new | Subir | openssl_private_encrypt


openssl_private_encrypt

(PHP 4 >= 4.0.6)

openssl_private_encrypt -- Encrypts data with private key

Description

bool openssl_private_encrypt ( string data, string crypted, mixed key [, int padding])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
openssl_private_decrypt | Subir | openssl_public_decrypt


openssl_public_decrypt

(PHP 4 >= 4.0.6)

openssl_public_decrypt -- Decrypts data with public key

Description

bool openssl_public_decrypt ( string data, string crypted, resource key [, int padding])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
openssl_private_encrypt | Subir | openssl_public_encrypt


openssl_public_encrypt

(PHP 4 >= 4.0.6)

openssl_public_encrypt -- Encrypts data with public key

Description

bool openssl_public_encrypt ( string data, string crypted, mixed key [, int padding])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
openssl_public_decrypt | Subir | openssl_seal


openssl_seal

(PHP 4 >= 4.0.4)

openssl_seal -- Seal (encrypt) data

Description

int openssl_seal ( string data, string sealed_data, array env_keys, array pub_key_ids)

Returns the length of the sealed data on success, or FALSE on error. If successful the sealed data is returned in sealed_data, and the envelope keys in env_keys.

openssl_seal() seals (encrypts) data by using RC4 with a randomly generated secret key. The key is encrypted with each of the public keys associated with the identifiers in pub_key_ids and each encrypted key is returned in env_keys. This means that one can send sealed data to multiple recipients (provided one has obtained their public keys). Each recipient must receive both the sealed data and the envelope key that was encrypted with the recipient's public key.

Ejemplo 1. openssl_seal() example

<?php
// $data is assumed to contain the data to be sealed

// fetch public keys for our recipients, and ready them
$fp = fopen("/src/openssl-0.9.6/demos/maurice/cert.pem", "r");
$cert = fread($fp, 8192);
fclose($fp);
$pk1 = openssl_get_publickey($cert);
// Repeat for second recipient
$fp = fopen("/src/openssl-0.9.6/demos/sign/cert.pem", "r");
$cert = fread($fp, 8192);
fclose($fp);
$pk2 = openssl_get_publickey($cert);

// seal message, only owners of $pk1 and $pk2 can decrypt $sealed with keys
// $ekeys[0] and $ekeys[1] respectively.
openssl_seal($data, $sealed, $ekeys, array($pk1,$pk2));

// free the keys from memory
openssl_free_key($pk1);
openssl_free_key($pk2);
?>

See also openssl_open().

Anterior | Inicio | Siguiente
openssl_public_encrypt | Subir | openssl_sign


openssl_sign

(PHP 4 >= 4.0.4)

openssl_sign -- Generate signature

Description

bool openssl_sign ( string data, string signature, mixed priv_key_id)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo. If successful the signature is returned in signature.

openssl_sign() computes a signature for the specified data by using SHA1 for hashing followed by encryption using the private key associated with priv_key_id. Note that the data itself is not encrypted.

Ejemplo 1. openssl_sign() example

<?php
// $data is assumed to contain the data to be signed

// fetch private key from file and ready it
$fp = fopen("/src/openssl-0.9.6/demos/sign/key.pem", "r");
$priv_key = fread($fp, 8192);
fclose($fp);
$pkeyid = openssl_get_privatekey($priv_key);

// compute signature
openssl_sign($data, $signature, $pkeyid);

// free the key from memory
openssl_free_key($pkeyid);
?>

See also openssl_verify().

Anterior | Inicio | Siguiente
openssl_seal | Subir | openssl_verify


openssl_verify

(PHP 4 >= 4.0.4)

openssl_verify -- Verify signature

Description

int openssl_verify ( string data, string signature, mixed pub_key_id)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Returns 1 if the signature is correct, 0 if it is incorrect, and -1 on error.

openssl_verify() verifies that the signature is correct for the specified data using the public key associated with pub_key_id. This must be the public key corresponding to the private key used for signing.

Ejemplo 1. openssl_verify() example

<?php
// $data and $signature are assumed to contain the data and the signature

// fetch public key from certificate and ready it
$fp = fopen("/src/openssl-0.9.6/demos/sign/cert.pem", "r");
$cert = fread($fp, 8192);
fclose($fp);
$pubkeyid = openssl_get_publickey($cert);

// state whether signature is okay or not
$ok = openssl_verify($data, $signature, $pubkeyid);
if ($ok == 1)
    echo "good";
elseif ($ok == 0)
    echo "bad";
else
    echo "ugly, error checking signature";

// free the key from memory
openssl_free_key($pubkeyid);
?>

See also openssl_sign().

Anterior | Inicio | Siguiente
openssl_sign | Subir | openssl_x509_check_private_key


openssl_x509_check_private_key

(PHP 4 >= 4.2.0)

openssl_x509_check_private_key -- Checks if a private key corresponds to a certificate

Description

bool openssl_x509_check_private_key ( mixed cert, mixed key)

openssl_x509_check_private_key() returns TRUE if key is the private key that corresponds to cert, or FALSE otherwise.

Anterior | Inicio | Siguiente
openssl_verify | Subir | openssl_x509_checkpurpose


openssl_x509_checkpurpose

(PHP 4 >= 4.0.6)

openssl_x509_checkpurpose -- Verifies if a certificate can be used for a particular purpose

Description

bool openssl_x509_checkpurpose ( mixed x509cert, int purpose, array cainfo [, string untrustedfile])

Returns TRUE if the certificate can be used for the intended purpose, FALSE if it cannot, or -1 on error.

openssl_x509_checkpurpose() examines the certificate specified by x509cert to see if it can be used for the purpose specified by purpose.

cainfo should be an array of trusted CA files/dirs as described in Certificate Verification.

untrustedfile, if specified, is the name of a PEM encoded file holding certificates that can be used to help verify the certificate, although no trust in placed in the certificates that come from that file.

Tabla 1. openssl_x509_checkpurpose() purposes

Constant | Description
X509_PURPOSE_SSL_CLIENT | Can the certificate be used for the client side of an SSL connection?
X509_PURPOSE_SSL_SERVER | Can the certificate be used for the server side of an SSL connection?
X509_PURPOSE_NS_SSL_SERVER | Can the cert be used for Netscape SSL server?
X509_PURPOSE_SMIME_SIGN | Can the cert be used to sign S/MIME email?
X509_PURPOSE_SMIME_ENCRYPT | Can the cert be used to encrypt S/MIME email?
X509_PURPOSE_CRL_SIGN | Can the cert be used to sign a certificate revocation list (CRL)?
X509_PURPOSE_ANY | Can the cert be used for Any/All purposes?
These options are not bitfields - you may specify one only!

Nota: This function was added in 4.0.6.

Anterior | Inicio | Siguiente
openssl_x509_check_private_key | Subir | openssl_x509_export_to_file


openssl_x509_export_to_file

(PHP 4 >= 4.2.0)

openssl_x509_export_to_file -- Exports a certificate to file

Description

bool openssl_x509_export_to_file ( mixed x509, string outfilename [, bool notext])

openssl_x509_export_to_file() stores x509 into a file named by outfilename in a PEM encoded format.

The optional parameter notext affects the verbosity of the output; if it is FALSE then additional human-readable information is included in the output. The default value of notext is TRUE.

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Anterior | Inicio | Siguiente
openssl_x509_checkpurpose | Subir | openssl_x509_export


openssl_x509_export

(PHP 4 >= 4.2.0)

openssl_x509_export -- Exports a certificate as a string

Description

bool openssl_x509_export ( mixed x509, string &output [, bool notext])

openssl_x509_export() stores x509 into a string named by output in a PEM encoded format.

The optional parameter notext affects the verbosity of the output; if it is FALSE then additional human-readable information is included in the output. The default value of notext is TRUE.

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Anterior | Inicio | Siguiente
openssl_x509_export_to_file | Subir | openssl_x509_free


openssl_x509_free

(PHP 4 >= 4.0.6)

openssl_x509_free -- Free certificate resource

Description

void openssl_x509_free ( resource x509cert)

openssl_x509_free() frees the certificate associated with the specified x509cert resource from memory.

Nota: This function was added in 4.0.6.

Anterior | Inicio | Siguiente
openssl_x509_export | Subir | openssl_x509_parse


openssl_x509_parse

(PHP 4 >= 4.0.6)

openssl_x509_parse -- Parse an X509 certificate and return the information as an array

Description

array openssl_x509_parse ( mixed x509cert [, bool shortnames])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

openssl_x509_parse() returns information about the supplied x509cert, including fields such as subject name, issuer name, purposes, valid from and valid to dates etc. shortnames controls how the data is indexed in the array - if shortnames is TRUE (the default) then fields will be indexed with the short name form, otherwise, the long name form will be used - e.g.: CN is the shortname form of commonName.

The structure of the returned data is (deliberately) not yet documented, as it is still subject to change.

Nota: This function was added in 4.0.6.

Anterior | Inicio | Siguiente
openssl_x509_free | Subir | openssl_x509_read


openssl_x509_read

(PHP 4 >= 4.0.6)

openssl_x509_read -- Parse an X.509 certificate and return a resource identifier for it

Description

resource openssl_x509_read ( mixed x509certdata)

openssl_x509_read() parses the certificate supplied by x509certdata and returns a resource identifier for it.

Nota: This function was added in 4.0.6.

Anterior | Inicio | Siguiente
openssl_x509_parse | Subir | Funciones Oracle


Funciones Oracle

Manual de PHP
Anterior Siguiente

LXXV. Funciones Oracle

Tabla de contenidos
Ora_Bind -- Vincula una variable PHP a un parámetro Oracle
Ora_Close -- Cierra un cursor Oracle
Ora_ColumnName -- toma el nombre de una columna de resultados Oracle
ora_columnsize -- Returns the size of an Oracle result column
Ora_ColumnType -- toma el tipo de una columna de resultados Oracle
Ora_Commit -- realiza una transacción Oracle
Ora_CommitOff -- deshabilita el modo automatico de ejecucion de tareas (autocommit)
Ora_CommitOn -- Habilita la ejecucion automática de tareas (autocommit)
ora_do -- Parse, Exec, Fetch
Ora_Error -- toma los mensajes de error de Oracle
Ora_ErrorCode -- captura el código de error Oracle
Ora_Exec -- ejecuta las declaraciones interpretadas en un cursor Oracle
ora_fetch_into -- Fetch a row into the specified result array
Ora_Fetch -- extrae una fila de datos a partir de un cursor
Ora_GetColumn -- toma datos de la fila extraída
Ora_Logoff -- cierra una conexión Oracle
Ora_Logon -- Abre una conexión Oracle
ora_numcols -- Returns the number of columns
ora_numrows -- Returns the number of rows
Ora_Open -- abre un cursor Oracle
Ora_Parse -- interpreta una declaración SQL
ora_plogon -- Open a persistent Oracle connection
Ora_Rollback -- retrocede en la lista de transacciones (hace un roll back)

Anterior | Inicio | Siguiente
openssl_x509_read | Subir | Ora_Bind


Ora_Bind

(PHP 3, PHP 4 )

Ora_Bind -- Vincula una variable PHP a un parámetro Oracle

Descripción

int ora_bind ( int cursor, string nombre de variable PHP, string nombre de parámetro SQL, int longitud [, int tipo])

Devuelve verdadero si el vínculo se realiza con éxito, y sino devuelve falso. Los detalles de los errores pueden examinarse usando la funciones ora_error() y ora_errorcode().

Esta función liga la variable PHP nombrada con el parámetro SQL. El parámtro SQL debe estar en la forma ":name". Con el parámetro optativo tipo, se define si el parámetro SQL se trata de un parámetro de entrada/salida (0 y por defecto), entrada (1) o salida (2). Como en PHP 3.0.1, se puede usar las constantes ORA_BIND_INOUT, ORA_BIND_IN y ORA_BIND_OUT en lugar de los números.

ora_bind debe ser llamada después de ora_parse() y antes de ora_exec(). Los valores de entrada pueden pasarse por asignación a las variables PHP vinculadas, despues de la llamada a ora_exec() dichas variables contendrán los valores de salida, si éstos estuvieran disponibles.

<?php
ora_parse($curs, "declare tmp INTEGER; begin tmp := :in; :out := tmp; :x := 7.77; end;");
ora_bind($curs, "result", ":x", $len, 2);
ora_bind($curs, "input", ":in", 5, 1);
ora_bind($curs, "output", ":out", 5, 2);
$input = 765;
ora_exec($curs);
echo "Result: $result<BR>Out: $output<BR>In: $input";
?>

Anterior | Inicio | Siguiente
Funciones Oracle | Subir | Ora_Close


Ora_Close

(PHP 3, PHP 4 )

Ora_Close -- Cierra un cursor Oracle

Descripción

int ora_close ( int cursor)

Devuelve verdadero si el cierre fué exitoso, o falso de lo contrario. Los detalles de los errores se recuperan usando las funciones ora_error() y ora_errorcode().

Esta función cierra un cursor de datos abierto con ora_open().

Anterior | Inicio | Siguiente
Ora_Bind | Subir | Ora_ColumnName


Ora_ColumnName

(PHP 3, PHP 4 )

Ora_ColumnName -- toma el nombre de una columna de resultados Oracle

Descripción

string Ora_ColumnName ( int cursor, int column)

Devuelve el nomre de un campo/columna column en el cursor cursor. el nombre devuelto estará en letras mayúsculas.

Anterior | Inicio | Siguiente
Ora_Close | Subir | ora_columnsize


ora_columnsize

(PHP 3, PHP 4 )

ora_columnsize -- Returns the size of an Oracle result column

Description

int ora_columnsize ( resource cursor, int column)

Returns the size of the Oracle column column on the cursor cursor. Column 0 is the first column.

Anterior | Inicio | Siguiente
Ora_ColumnName | Subir | Ora_ColumnType


Ora_ColumnType

(PHP 3, PHP 4 )

Ora_ColumnType -- toma el tipo de una columna de resultados Oracle

Descripción

string Ora_ColumnType ( int cursor, int column)

Devuelve el nombre del tipo de datos del campo o columna column en el cursor cursor. Se devolverá un tipo de datos, de entre los siguientes:

"VARCHAR2"
"VARCHAR"
"CHAR"
"NUMBER"
"LONG"
"LONG RAW"
"ROWID"
"DATE"
"CURSOR"

Anterior | Inicio | Siguiente
ora_columnsize | Subir | Ora_Commit


Ora_Commit

(PHP 3, PHP 4 )

Ora_Commit -- realiza una transacción Oracle

Descripción

int ora_commit ( int conn)

Devuelve verdadero si es exitosa, de lo cantrario devuelve falso. Puede verse los detalles del error usando las funciones ora_error() y ora_errorcode(). Esta función realiza una transacción Oracle. Se define como transacción cualquier cambio en una conexión dada, desde la última tarea/retroceso en la ejecucion (rollback), anulación de la ejecución automática de tareas (autocommit), o cuando se ha establecido la conexión.

Anterior | Inicio | Siguiente
Ora_ColumnType | Subir | Ora_CommitOff


Ora_CommitOff

(PHP 3, PHP 4 )

Ora_CommitOff -- deshabilita el modo automatico de ejecucion de tareas (autocommit)

Descripción

int ora_commitoff ( int conn)

Devuelve verdadero si se ejecuta con éxito, sino devuelve falso. Los pormenores del error en cuestion, pueden revisarse invocando las funciones ora_error() y ora_errorcode().

Esta función deshabilita la ejecucion automatica luego de cada instancia ora_exec().

Anterior | Inicio | Siguiente
Ora_Commit | Subir | Ora_CommitOn


Ora_CommitOn

(PHP 3, PHP 4 )

Ora_CommitOn -- Habilita la ejecucion automática de tareas (autocommit)

Descripción

int ora_commiton ( int conn)

Esta función habilita la ejecucion automatica luego de cada instancia ora_exec() en la conexión dada.

Devuelve verdadero si se ejecuta con éxito, sino devuelve falso. Los pormenores del error en cuestion, pueden revisarse invocando las funciones ora_error() y ora_errorcode().

Anterior | Inicio | Siguiente
Ora_CommitOff | Subir | ora_do


ora_do

(PHP 3, PHP 4 )

ora_do -- Parse, Exec, Fetch

Description

resource ora_do ( resource conn, string query)

ora_do() is quick combination of ora_parse(), ora_exec() and ora_fetch(). It will parse and execute a statement, then fetch the first result row.

This function returns a cursor index or FALSE on failure. Details about the error can be retrieved using the ora_error() and ora_errorcode() functions.

See also ora_parse(),ora_exec(), and ora_fetch().

Anterior | Inicio | Siguiente
Ora_CommitOn | Subir | Ora_Error


Ora_Error

(PHP 3, PHP 4 )

Ora_Error -- toma los mensajes de error de Oracle

Descripción

string Ora_Error ( int cursor_or_connection)

Devuelve los mensajes de error en la forma XXX-NNNNN donde XXX es la procedencia del error y NNNNN es la identificación del mensaje de error.

Nota: El soporte para las identificaciones de conexión fue agregado en la versión 3.0.4.

En las versiones UNIX de Oracle, pueden encontrarse detalles acerca de un mensaje de error como este: $ oerr ora 00001 00001, 00000, "unique constraint (%s.%s) violated" // *Cause: An update or insert statement attempted to insert a duplicate key // For Trusted ORACLE configured in DBMS MAC mode, you may see // this message if a duplicate entry exists at a different level. // *Action: Either remove the unique restriction or do not insert the key

Anterior | Inicio | Siguiente
ora_do | Subir | Ora_ErrorCode


Ora_ErrorCode

(PHP 3, PHP 4 )

Ora_ErrorCode -- captura el código de error Oracle

Descripción

int Ora_ErrorCode ( int cursor_or_connection)

Devuelve el codigo numérico de error de la última declaración ejecutada en el cursor o conexion espacificada.

Nota: El soporte para las identificaciones de conexión fue agregado en la versión 3.0.4.

Anterior | Inicio | Siguiente
Ora_Error | Subir | Ora_Exec


Ora_Exec

(PHP 3, PHP 4 )

Ora_Exec -- ejecuta las declaraciones interpretadas en un cursor Oracle

Descripción

int ora_exec ( int cursor)

Devuelve verdadero ante la ejecución exitosa, de lo contrario, devuelve falso. Los detalles del error pueden verse invocando las funciones ora_error() y ora_errorcode().

Anterior | Inicio | Siguiente
Ora_ErrorCode | Subir | ora_fetch_into


ora_fetch_into

(PHP 3, PHP 4 )

ora_fetch_into -- Fetch a row into the specified result array

Description

int ora_fetch_into ( resource cursor, array result [, int flags])

Fetches a row of data into an array. The flags has two flag values: if the ORA_FETCHINTO_NULLS flag is set, columns with NULL values are set in the array; and if the ORA_FETCHINTO_ASSOC flag is set, an associative array is created.

Returns the number of columns fetched.

Ejemplo 1. ora_fetch_into()

<?php
$results = array();
ora_fetch_into($cursor, $results);
echo $results[0];
echo $results[1];
$results = array();
ora_fetch_into($cursor, $results, ORA_FETCHINTO_NULLS|ORA_FETCHINTO_ASSOC);
echo $results['MyColumn'];
?>

See also ora_parse(),ora_exec(), ora_fetch(), and ora_do().

Anterior | Inicio | Siguiente
Ora_Exec | Subir | Ora_Fetch


Ora_Fetch

(PHP 3, PHP 4 )

Ora_Fetch -- extrae una fila de datos a partir de un cursor

Descripción

int ora_fetch ( int cursor)

Devuelve verdadero (se extrajo una fila) o falso (no hay mas filas, o ha ocurrido un error). Si ocurre un error, los detalles del mismo pueden verse invocando las funciones ora_error() y ora_errorcode(). Si no hubo errores, ora_errorcode() devolverá 0. Recupera una hilera de datos partiendo de un cursor especificado.

Anterior | Inicio | Siguiente
ora_fetch_into | Subir | Ora_GetColumn


Ora_GetColumn

(PHP 3, PHP 4 )

Ora_GetColumn -- toma datos de la fila extraída

Descripción

mixed ora_getcolumn ( int cursor, mixed column)

Devuelve la columna de datos. Si hay un error, se devuelve falso y ora_errorcode() devulve un valor distinto de cero. Note, de igual manera, que la busqueda de un resultado Falso en esta función, puede resultar verdadera, aún en casos en que no ocurran errores:(resultado NULO, cadenas vacias, valor 0 o cadenas "0"). Extrae los datos para una columna o resultado de función.

Anterior | Inicio | Siguiente
Ora_Fetch | Subir | Ora_Logoff


Ora_Logoff

(PHP 3, PHP 4 )

Ora_Logoff -- cierra una conexión Oracle

Descripción

int ora_logoff ( int connection)

Devuelve verdadero si es exitosa, o falso si hay errores. Los detalles del error pueden verse invocando las funciones ora_error() y ora_errorcode(). Cierra la sesión de trabajo del usuario, y lo desconecta del servidor.

Anterior | Inicio | Siguiente
Ora_GetColumn | Subir | Ora_Logon


Ora_Logon

(PHP 3, PHP 4 )

Ora_Logon -- Abre una conexión Oracle

Descripción

int ora_logon ( string usuario, string contraseña)

Establece una conexión entre PHP y una base de datos Oracle, con los datos de nombre de usuario y contraseña especificados.

Las conexiones pueden llevarse adelante usando SQL*Net indicando el nombre TNS al usuario de este modo:

$conn = Ora_Logon("usuario@TNSNAME", "contraseña");

Si hubiesen datos con caracteres no-ASCII, habría que asegurarse de que esté presente la variable de entorno NLS_LANG en el sistema. Para los modulos de servidor, deberían definirse en el entorno del servidor antes de iniciarlo.

Devuelve el índice de la conexión si aquella tuvo éxito, de lo cantrario devuelve falso. Los detalles del error pueden verse invocando las funciones ora_error() y ora_errorcode().

Anterior | Inicio | Siguiente
Ora_Logoff | Subir | ora_numcols


ora_numcols

(PHP 3, PHP 4 )

ora_numcols -- Returns the number of columns

Description

int ora_numcols ( resource cursor)

ora_numcols() returns the number of columns in a result. Only returns meaningful values after an parse/exec/fetch sequence.

See also ora_parse(),ora_exec(), ora_fetch(), and ora_do().

Anterior | Inicio | Siguiente
Ora_Logon | Subir | ora_numrows


ora_numrows

(PHP 3, PHP 4 )

ora_numrows -- Returns the number of rows

Description

int ora_numrows ( resource cursor)

ora_numrows() returns the number of rows in a result.

Anterior | Inicio | Siguiente
ora_numcols | Subir | Ora_Open


Ora_Open

(PHP 3, PHP 4 )

Ora_Open -- abre un cursor Oracle

Descripción

int ora_open ( int connection)

Abre un cursor asociado con la conexión.

Devuelve el índice del cursor o Falso si hay un error. Los detalles del error pueden verse invocando las funciones ora_error() y ora_errorcode().

Anterior | Inicio | Siguiente
ora_numrows | Subir | Ora_Parse


Ora_Parse

(PHP 3, PHP 4 )

Ora_Parse -- interpreta una declaración SQL

Descripción

int ora_parse ( int cursor_ind, string sql_statement, int defer)

Esta función interpreta una declaración SQL o un bloque PL/SQL y los asocia con el cursor dado. Devuelve 0 si se ejecuta con exito, o -1 ante un error.

Anterior | Inicio | Siguiente
Ora_Open | Subir | ora_plogon


ora_plogon

(PHP 3, PHP 4 )

ora_plogon -- Open a persistent Oracle connection

Description

resource ora_plogon ( string user, string password)

Establishes a persistent connection between PHP and an Oracle database with the username user and password password.

See also ora_logon().

Anterior | Inicio | Siguiente
Ora_Parse | Subir | Ora_Rollback


Ora_Rollback

(PHP 3, PHP 4 )

Ora_Rollback -- retrocede en la lista de transacciones (hace un roll back)

Descripción

int ora_rollback ( int connection)

Deshace una transaccion Oracle. (Ver ora_commit() para la definición de transacción.)

Devuelve verdadero si tiene éxito, o falso si hay un error. Los detalles del error pueden verse invocando las funciones ora_error() y ora_errorcode().

Anterior | Inicio | Siguiente
ora_plogon | Subir | Ovrimos SQL functions


Ovrimos SQL functions

Manual de PHP
Anterior Siguiente

LXXVI. Ovrimos SQL functions

Ovrimos SQL Server, is a client/server, transactional RDBMS combined with Web capabilities and fast transactions.

Ovrimos SQL Server is available at www.ovrimos.com. To enable ovrimos support in PHP just compile php with the '--with-ovrimos' parameter to configure script. You'll need to install the sqlcli library available in the Ovrimos SQL Server distribution.

Ejemplo 1. Connect to Ovrimos SQL Server and select from a system table

<?php
$conn = ovrimos_connect ("server.domain.com", "8001", "admin", "password");
if ($conn != 0) {
    echo ("Connection ok!");
    $res = ovrimos_exec ($conn, "select table_id, table_name from sys.tables");
    if ($res != 0) {
        echo "Statement ok!";
        ovrimos_result_all ($res);
        ovrimos_free_result ($res);
    }
    ovrimos_close($conn);
}
?>
This will just connect to SQL Server.

Tabla de contenidos
ovrimos_close -- Closes the connection to ovrimos
ovrimos_commit -- Commits the transaction
ovrimos_connect -- Connect to the specified database
ovrimos_cursor -- Returns the name of the cursor
ovrimos_exec -- Executes an SQL statement
ovrimos_execute -- Executes a prepared SQL statement
ovrimos_fetch_into -- Fetches a row from the result set
ovrimos_fetch_row -- Fetches a row from the result set
ovrimos_field_len -- Returns the length of the output column
ovrimos_field_name -- Returns the output column name
ovrimos_field_num -- Returns the (1-based) index of the output column
ovrimos_field_type -- Returns the (numeric) type of the output column
ovrimos_free_result -- Frees the specified result_id
ovrimos_longreadlen -- Specifies how many bytes are to be retrieved from long datatypes
ovrimos_num_fields -- Returns the number of columns
ovrimos_num_rows -- Returns the number of rows affected by update operations
ovrimos_prepare -- Prepares an SQL statement
ovrimos_result_all -- Prints the whole result set as an HTML table
ovrimos_result -- Retrieves the output column
ovrimos_rollback -- Rolls back the transaction

Anterior | Inicio | Siguiente
Ora_Rollback | Subir | ovrimos_close


ovrimos_close

(PHP 4 >= 4.0.3)

ovrimos_close -- Closes the connection to ovrimos

Description

void ovrimos_close ( int connection)

ovrimos_close() is used to close the specified connection.

ovrimos_close() closes a connection to Ovrimos. This has the effect of rolling back uncommitted transactions.

Anterior | Inicio | Siguiente
Ovrimos SQL functions | Subir | ovrimos_commit


ovrimos_commit

(PHP 4 >= 4.0.3)

ovrimos_commit -- Commits the transaction

Description

int ovrimos_commit ( int connection_id)

ovrimos_commit() is used to commit the transaction.

ovrimos_commit() commits the transaction.

Anterior | Inicio | Siguiente
ovrimos_close | Subir | ovrimos_connect


ovrimos_connect

(PHP 4 >= 4.0.3)

ovrimos_connect -- Connect to the specified database

Description

int ovrimos_connect ( string host, string db, string user, string password)

ovrimos_connect() is used to connect to the specified database.

ovrimos_connect() returns a connection id (greater than 0) or 0 for failure. The meaning of 'host' and 'port' are those used everywhere in Ovrimos APIs. 'Host' is a host name or IP address and 'db' is either a database name, or a string containing the port number.

Ejemplo 1. ovrimos_connect() Example

<?php
$conn = ovrimos_connect ("server.domain.com", "8001", "admin", "password");
if ($conn != 0) {
    echo "Connection ok!";
    $res=ovrimos_exec ($conn, "select table_id, table_name from sys.tables");
    if ($res != 0) {
        echo "Statement ok!";
        ovrimos_result_all ($res);
        ovrimos_free_result ($res);
    }
    ovrimos_close ($conn);
}
?>
The above example will connect to the database and print out the specified table.

Anterior | Inicio | Siguiente
ovrimos_commit | Subir | ovrimos_cursor


ovrimos_cursor

(PHP 4 >= 4.0.3)

ovrimos_cursor -- Returns the name of the cursor

Description

int ovrimos_cursor ( int result_id)

ovrimos_cursor() is used to get the name of the cursor.

ovrimos_cursor() returns the name of the cursor. Useful when wishing to perform positioned updates or deletes.

Anterior | Inicio | Siguiente
ovrimos_connect | Subir | ovrimos_exec


ovrimos_exec

(PHP 4 >= 4.0.3)

ovrimos_exec -- Executes an SQL statement

Description

int ovrimos_exec ( int connection_id, string query)

ovrimos_exec() is used to execute an SQL statement.

ovrimos_exec() executes an SQL statement (query or update) and returns a result_id or FALSE. Evidently, the SQL statement should not contain parameters.

Anterior | Inicio | Siguiente
ovrimos_cursor | Subir | ovrimos_execute


ovrimos_execute

(PHP 4 >= 4.0.3)

ovrimos_execute -- Executes a prepared SQL statement

Description

int ovrimos_execute ( int result_id [, array parameters_array])

ovrimos_execute() is used to execute an SQL statement.

ovrimos_execute() executes a prepared statement. Returns TRUE or FALSE. If the prepared statement contained parameters (question marks in the statement), the correct number of parameters should be passed in an array. Notice that I don't follow the PHP convention of placing just the name of the optional parameter inside square brackets. I couldn't bring myself on liking it.

Anterior | Inicio | Siguiente
ovrimos_exec | Subir | ovrimos_fetch_into


ovrimos_fetch_into

(PHP 4 >= 4.0.3)

ovrimos_fetch_into -- Fetches a row from the result set

Description

int ovrimos_fetch_into ( int result_id, array result_array [, string how [, int rownumber]])

ovrimos_fetch_into() is used to fetch a row from the result set.

ovrimos_fetch_into() fetches a row from the result set into 'result_array', which should be passed by reference. Which row is fetched is determined by the two last parameters. 'how' is one of 'Next' (default), 'Prev', 'First', 'Last', 'Absolute', corresponding to forward direction from current position, backward direction from current position, forward direction from the start, backward direction from the end and absolute position from the start (essentially equivalent to 'first' but needs 'rownumber'). Case is not significant. 'Rownumber' is optional except for absolute positioning. Returns TRUE or FALSE.

Ejemplo 1. A fetch into example

<?php
$conn=ovrimos_connect ("neptune", "8001", "admin", "password");
if ($conn!=0) {
    echo "Connection ok!";
    $res=ovrimos_exec ($conn,"select table_id, table_name from sys.tables");
    if ($res != 0) {
        echo "Statement ok!";
        if (ovrimos_fetch_into ($res, $row)) {
            list ($table_id, $table_name) = $row;
            echo "table_id=".$table_id.", table_name=".$table_name."\n";
            if (ovrimos_fetch_into ($res, $row)) {
                list ($table_id, $table_name) = $row;
                echo "table_id=".$table_id.", table_name=".$table_name."\n";
            } else {
                echo "Next: error\n";
            }
        } else {
            echo "First: error\n";
        }
        ovrimos_free_result ($res);
    }
    ovrimos_close ($conn);
}
?>
This example will fetch a row.

Anterior | Inicio | Siguiente
ovrimos_execute | Subir | ovrimos_fetch_row


ovrimos_fetch_row

(PHP 4 >= 4.0.3)

ovrimos_fetch_row -- Fetches a row from the result set

Description

int ovrimos_fetch_row ( int result_id [, int how [, int row_number]])

ovrimos_fetch_row() is used to fetch a row from the result set.

ovrimos_fetch_row() fetches a row from the result set. Column values should be retrieved with other calls. Returns TRUE or FALSE.

Ejemplo 1. A fetch row example

<?php
$conn = ovrimos_connect ("remote.host", "8001", "admin", "password");
if ($conn != 0) {
    echo "Connection ok!";
    $res=ovrimos_exec ($conn, "select table_id, table_name from sys.tables");
    if ($res != 0) {
        echo "Statement ok!";
        if (ovrimos_fetch_row ($res, "First")) {
            $table_id = ovrimos_result ($res, 1);
            $table_name = ovrimos_result ($res, 2);
            echo "table_id=".$table_id.", table_name=".$table_name."\n";
            if (ovrimos_fetch_row ($res, "Next")) {
                $table_id = ovrimos_result ($res, "table_id");
                $table_name = ovrimos_result ($res, "table_name");
                echo "table_id=".$table_id.", table_name=".$table_name."\n";
            } else {
                echo "Next: error\n";
            }
        } else {
            echo "First: error\n";
        }
        ovrimos_free_result ($res);
    }
    ovrimos_close ($conn);
}
?>
This will fetch a row and print the result.

Anterior | Inicio | Siguiente
ovrimos_fetch_into | Subir | ovrimos_field_len


ovrimos_field_len

(PHP 4 >= 4.0.3)

ovrimos_field_len -- Returns the length of the output column

Description

int ovrimos_field_len ( int result_id, int field_number)

ovrimos_field_len() is used to get the length of the output column.

ovrimos_field_len() returns the length of the output column at the (1-based) index specified.

Anterior | Inicio | Siguiente
ovrimos_fetch_row | Subir | ovrimos_field_name


ovrimos_field_name

(PHP 4 >= 4.0.3)

ovrimos_field_name -- Returns the output column name

Description

int ovrimos_field_name ( int result_id, int field_number)

ovrimos_field_name() is used to get the output column name.

ovrimos_field_name() returns the output column name at the (1-based) index specified.

Anterior | Inicio | Siguiente
ovrimos_field_len | Subir | ovrimos_field_num


ovrimos_field_num

(PHP 4 >= 4.0.3)

ovrimos_field_num -- Returns the (1-based) index of the output column

Description

int ovrimos_field_num ( int result_id, string field_name)

ovrimos_field_num() is used to get the (1-based) index of the output column.

ovrimos_field_num() returns the (1-based) index of the output column specified by name, or FALSE.

Anterior | Inicio | Siguiente
ovrimos_field_name | Subir | ovrimos_field_type


ovrimos_field_type

(PHP 4 >= 4.0.3)

ovrimos_field_type -- Returns the (numeric) type of the output column

Description

int ovrimos_field_type ( int result_id, int field_number)

ovrimos_field_type() is used to get the (numeric) type of the output column.

ovrimos_field_type() returns the (numeric) type of the output column at the (1-based) index specified.

Anterior | Inicio | Siguiente
ovrimos_field_num | Subir | ovrimos_free_result


ovrimos_free_result

(PHP 4 >= 4.0.3)

ovrimos_free_result -- Frees the specified result_id

Description

int ovrimos_free_result ( int result_id)

ovrimos_free_result() is used to free the result_id.

ovrimos_free_result() frees the specified result_id. Returns TRUE.

Anterior | Inicio | Siguiente
ovrimos_field_type | Subir | ovrimos_longreadlen


ovrimos_longreadlen

(PHP 4 >= 4.0.3)

ovrimos_longreadlen -- Specifies how many bytes are to be retrieved from long datatypes

Description

int ovrimos_longreadlen ( int result_id, int length)

ovrimos_longreadlen() is used to specify how many bytes are to be retrieved from long datatypes.

ovrimos_longreadlen() specifies how many bytes are to be retrieved from long datatypes (long varchar and long varbinary). Default is zero. Regardless of its taking a result_id as an argument, it currently sets this parameter for all result sets. Returns TRUE.

Anterior | Inicio | Siguiente
ovrimos_free_result | Subir | ovrimos_num_fields


ovrimos_num_fields

(PHP 4 >= 4.0.3)

ovrimos_num_fields -- Returns the number of columns

Description

int ovrimos_num_fields ( int result_id)

ovrimos_num_fields() is used to get the number of columns.

ovrimos_num_fields() returns the number of columns in a result_id resulting from a query.

Anterior | Inicio | Siguiente
ovrimos_longreadlen | Subir | ovrimos_num_rows


ovrimos_num_rows

(PHP 4 >= 4.0.3)

ovrimos_num_rows -- Returns the number of rows affected by update operations

Description

int ovrimos_num_rows ( int result_id)

ovrimos_num_rows() is used to get the number of rows affected by update operations.

ovrimos_num_rows() returns the number of rows affected by update operations.

Anterior | Inicio | Siguiente
ovrimos_num_fields | Subir | ovrimos_prepare


ovrimos_prepare

(PHP 4 >= 4.0.3)

ovrimos_prepare -- Prepares an SQL statement

Description

int ovrimos_prepare ( int connection_id, string query)

ovrimos_prepare() is used to prepare an SQL statement.

ovrimos_prepare() prepares an SQL statement and returns a result_id (or FALSE on failure).

Ejemplo 1. Connect to Ovrimos SQL Server and prepare a statement

<?php
$conn=ovrimos_connect ("db_host", "8001", "admin", "password");
if ($conn!=0) {
    echo "Connection ok!";
    $res=ovrimos_prepare ($conn, "select table_id, table_name
                                  from sys.tables where table_id=1");
    if ($res != 0) {
        echo "Prepare ok!";
        if (ovrimos_execute ($res)) {
            echo "Execute ok!\n";
            ovrimos_result_all ($res);
        } else {
            echo "Execute not ok!";
        }
        ovrimos_free_result ($res);
    } else {
        echo "Prepare not ok!\n";
    }
    ovrimos_close ($conn);
}
?>
This will connect to Ovrimos SQL Server, prepare a statement and the execute it.

Anterior | Inicio | Siguiente
ovrimos_num_rows | Subir | ovrimos_result_all


ovrimos_result_all

(PHP 4 >= 4.0.3)

ovrimos_result_all -- Prints the whole result set as an HTML table

Description

int ovrimos_result_all ( int result_id [, string format])

ovrimos_result_all() is used to print an HTML table containing the whole result set.

ovrimos_result_all() prints the whole result set as an HTML table. Returns TRUE or FALSE.

Ejemplo 1. Prepare a statement, execute, and view the result

<?php
$conn = ovrimos_connect ("db_host", "8001", "admin", "password");
if ($conn != 0) {
    echo "Connection ok!";
    $res = ovrimos_prepare ($conn, "select table_id, table_name
                                    from sys.tables where table_id = 7");
    if ($res != 0) {
        echo "Prepare ok!";
        if (ovrimos_execute ($res, array(3))) {
            echo "Execute ok!\n";
            ovrimos_result_all ($res);
        } else {
            echo "Execute not ok!";
        }
        ovrimos_free_result ($res);
    } else {
        echo "Prepare not ok!\n";
    }
    ovrimos_close ($conn);
}
?>
This will execute an SQL statement and print the result in an HTML table.

Ejemplo 2. Ovrimos_result_all with meta-information

<?php
$conn = ovrimos_connect ("db_host", "8001", "admin", "password");
if ($conn != 0) {
    echo "Connection ok!";
    $res = ovrimos_exec ($conn, "select table_id, table_name
                                 from sys.tables where table_id = 1")
    if ($res != 0) {
        echo "Statement ok! cursor=".ovrimos_cursor ($res)."\n";
        $colnb = ovrimos_num_fields ($res);
        echo "Output columns=".$colnb."\n";
        for ($i=1; $i<=$colnb; $i++) {
            $name = ovrimos_field_name ($res, $i);
            $type = ovrimos_field_type ($res, $i);
            $len = ovrimos_field_len ($res, $i);
            echo "Column ".$i." name=".$name." type=".$type." len=".$len."\n";
        }
        ovrimos_result_all ($res);
        ovrimos_free_result ($res);
    }
    ovrimos_close ($conn);
}
?>

Ejemplo 3. ovrimos_result_all example

<?php
$conn = ovrimos_connect ("db_host", "8001", "admin", "password");
if ($conn != 0) {
    echo "Connection ok!";
    $res = ovrimos_exec ($conn, "update test set i=5");
    if ($res != 0) {
        echo "Statement ok!";
        echo ovrimos_num_rows ($res)." rows affected\n";
        ovrimos_free_result ($res);
    }
    ovrimos_close ($conn);
}
?>

Anterior | Inicio | Siguiente
ovrimos_prepare | Subir | ovrimos_result


ovrimos_result

(PHP 4 >= 4.0.3)

ovrimos_result -- Retrieves the output column

Description

int ovrimos_result ( int result_id, mixed field)

ovrimos_result() is used to retrieve the output column.

ovrimos_result() retrieves the output column specified by 'field', either as a string or as an 1-based index.

Anterior | Inicio | Siguiente
ovrimos_result_all | Subir | ovrimos_rollback


ovrimos_rollback

(PHP 4 >= 4.0.3)

ovrimos_rollback -- Rolls back the transaction

Description

int ovrimos_rollback ( int connection_id)

ovrimos_rollback() is used to roll back the transaction.

ovrimos_rollback() rolls back the transaction.

Anterior | Inicio | Siguiente
ovrimos_result | Subir | Output Control Functions


Output Control Functions

Manual de PHP
Anterior Siguiente

LXXVII. Output Control Functions

The Output Control functions allow you to control when output is sent from the script. This can be useful in several different situations, especially if you need to send headers to the browser after your script has began outputing data. The Output Control functions do not affect headers sent using header() or setcookie(), only functions such as echo() and data between blocks of PHP code.

Ejemplo 1. Output Control example

<?php

ob_start();
echo "Hello\n";

setcookie ("cookiename", "cookiedata");

ob_end_flush();

?>

In the above example, the output from echo() would be stored in the output buffer until ob_end_flush() was called. In the mean time, the call to setcookie() successfully stored a cookie without causing an error. (You can not normally send headers to the browser after data has already been sent.)

See also header() and setcookie().

Tabla de contenidos
flush -- Flush the output buffer
ob_clean -- Clean (erase) the output buffer
ob_end_clean -- Clean (erase) the output buffer and turn off output buffering
ob_end_flush -- Flush (send) the output buffer and turn off output buffering
ob_flush -- Flush (send) the output buffer
ob_get_clean -- Get current buffer contents and delete current output buffer
ob_get_contents -- Return the contents of the output buffer
ob_get_length -- Return the length of the output buffer
ob_get_level -- Return the nesting level of the output buffering mechanism
ob_get_status -- Get status of output buffers
ob_gzhandler -- ob_start callback function to gzip output buffer
ob_implicit_flush -- Turn implicit flush on/off
ob_start -- Turn on output buffering

Anterior | Inicio | Siguiente
ovrimos_rollback | Subir | flush


flush

(PHP 3, PHP 4 )

flush -- Flush the output buffer

Description

void flush ( void )

Flushes the output buffers of PHP and whatever backend PHP is using (CGI, a web server, etc.) This effectively tries to push all the output so far to the user's browser.

Anterior | Inicio | Siguiente
Output Control Functions | Subir | ob_clean


ob_clean

(PHP 4 >= 4.2.0)

ob_clean -- Clean (erase) the output buffer

Description

void ob_clean ( void )

This function discards the contents of the output buffer.

This function does not destroy the output buffer like ob_end_clean() does.

See also ob_flush(),
ob_end_flush() and
ob_end_clean().

Anterior | Inicio | Siguiente
flush | Subir | ob_end_clean


ob_end_clean

(PHP 4 )

ob_end_clean -- Clean (erase) the output buffer and turn off output buffering

Description

void ob_end_clean ( void )

This function discards the contents of the output buffer and turns off output buffering.

See also ob_start() and ob_end_flush().

Anterior | Inicio | Siguiente
ob_clean | Subir | ob_end_flush


ob_end_flush

(PHP 4 )

ob_end_flush -- Flush (send) the output buffer and turn off output buffering

Description

void ob_end_flush ( void )

This function will send the contents of the output buffer (if any) and turn output buffering off. If you want to further process the buffer's contents you have to call ob_get_contents() before ob_end_flush() as the buffer contents are discarded after ob_get_contents() is called.

See also ob_start(),
ob_get_contents(), and
ob_end_clean().

Anterior | Inicio | Siguiente
ob_end_clean | Subir | ob_flush


ob_flush

(PHP 4 >= 4.2.0)

ob_flush -- Flush (send) the output buffer

Description

void ob_flush ( void )

This function will send the contents of the output buffer (if any). If you want to further process the buffer's contents you have to call ob_get_contents() before ob_flush() as the buffer contents are discarded after ob_flush() is called.

This function does not destroy the output buffer like ob_end_flush() does.

See also ob_get_contents(),
ob_clean(),
ob_end_flush() and
ob_end_clean().

Anterior | Inicio | Siguiente
ob_end_flush | Subir | ob_get_clean


ob_get_clean

(PHP 4 >= 4.3.0)

ob_get_clean -- Get current buffer contents and delete current output buffer

Description

string ob_get_clean ( void )

This will return the contents of the output buffer and end output
buffering.  If output buffering isn't active then FALSE is returned.
ob_get_clean() essentially executes both
ob_get_contents() and
ob_end_clean().

Ejemplo 1. A simple ob_get_clean() example

<?php

ob_start();

print "Hello World";

$out = ob_get_clean();
$out = strtolower($out);

var_dump($out);

/* Our example will output:

string(11) "hello world"

*/
?>

See also ob_start() and ob_get_contents().

Anterior | Inicio | Siguiente
ob_flush | Subir | ob_get_contents


ob_get_contents

(PHP 4 )

ob_get_contents -- Return the contents of the output buffer

Description

string ob_get_contents ( void )

This will return the contents of the output buffer or FALSE, if output buffering isn't active.

See also ob_start() and ob_get_length().

Anterior | Inicio | Siguiente
ob_get_clean | Subir | ob_get_length


ob_get_length

(PHP 4 >= 4.0.2)

ob_get_length -- Return the length of the output buffer

Description

string ob_get_length ( void )

This will return the length of the contents in the output buffer or FALSE, if output buffering isnt't active.

See also ob_start() and ob_get_contents().

Anterior | Inicio | Siguiente
ob_get_contents | Subir | ob_get_level


ob_get_level

(PHP 4 >= 4.2.0)

ob_get_level -- Return the nesting level of the output buffering mechanism

Description

int ob_get_level ( void )

This will return the level of nested output buffering handlers.

See also ob_start() and ob_get_contents().

Anterior | Inicio | Siguiente
ob_get_length | Subir | ob_get_status


ob_get_status

(PHP 4 >= 4.2.0)

ob_get_status -- Get status of output buffers

Description

array ob_get_status ( [bool full_status])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

This will return the current status of output buffers. It returns array contains buffer status or FALSE for error.

See also ob_get_level().

Anterior | Inicio | Siguiente
ob_get_level | Subir | ob_gzhandler


ob_gzhandler

(PHP 4 >= 4.0.4)

ob_gzhandler -- ob_start callback function to gzip output buffer

Description

string ob_gzhandler ( string buffer [, int mode])

Nota: mode was added in PHP 4.0.5.

ob_gzhandler() is intended to be used as a callback function for ob_start() to help facilitate sending gz-encoded data to web browsers that support compressed web pages. Before ob_gzhandler() actually sends compressed data, it determines what type of content encoding the browser will accept ("gzip", "deflate" or none at all) and will return it's output accordingly. All browsers are supported since it's up to the browser to send the correct header saying that it accepts compressed web pages.

Ejemplo 1. ob_gzhandler() Example

<?php

ob_start("ob_gzhandler");

?>
<html>
<body>
<p>This should be a compressed page.
</html>
<body>

See also ob_start() and ob_end_flush().

Nota: You cannot use both ob_gzhandler() and ini.zlib.output_compression. Also note that using ini.zlib.output_compression is preferred over ob_gzhandler().

Anterior | Inicio | Siguiente
ob_get_status | Subir | ob_implicit_flush


ob_implicit_flush

(PHP 4 )

ob_implicit_flush -- Turn implicit flush on/off

Description

void ob_implicit_flush ( [int flag])

ob_implicit_flush() will turn implicit flushing on or off (if no flag is given, it defaults to on). Implicit flushing will result in a flush operation after every output call, so that explicit calls to flush() will no longer be needed.

Turning implicit flushing on will disable output buffering, the output buffers current output will be sent as if ob_end_flush() had been called.

See also flush(),
ob_start(), and
ob_end_flush().

Anterior | Inicio | Siguiente
ob_gzhandler | Subir | ob_start


ob_start

(PHP 4 )

ob_start -- Turn on output buffering

Description

void ob_start ( void )

This function will turn output buffering on. While output buffering is active no output is sent from the script, instead the output is stored in an internal buffer.

The contents of this internal buffer may be copied into a string variable using ob_get_contents(). To output what is stored in the internal buffer, use ob_end_flush(). Alternatively, ob_end_clean() will silently discard the buffer contents.

See also ob_get_contents(),
ob_end_flush(),
ob_end_clean(), and
ob_implicit_flush()

Anterior | Inicio | Siguiente
ob_implicit_flush | Subir | Object property and method call overloading


Object property and method call overloading

Manual de PHP
Anterior Siguiente

LXXVIII. Object property and method call overloading

Introducción

The purpose of this extension is to allow overloading of object property access and method calls. Only one function is defined in this extension, overload() which takes the name of the class that should have this functionality enabled. The class named has to define appropriate methods if it wants to have this functionality: __get(), __set() and __call() respectively for getting/setting a property, or calling a method. This way overloading can be selective. Inside these handler functions the overloading is disabled so you can access object properties normally.

Aviso

Esta extensión es EXPERIMENTAL. Esto significa que el comportamiento de esta extensión, los nombre de sus funciones y en definitiva TODO lo documentado sobre esta extensión, puede cambiar en una futura versión de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Requerimientos

No se necesitan bibliotecas externas para construir esta extensión

Instalación

In order to use these functions, you must compile PHP with the --enable-overload option. Starting with PHP 4.3.0 this extension is enabled by default. You can disable overload support with --disable--overload.

La versión para Windows de PHP tiene soporte nativo para esta extensión. No se necesita cargar ninguna extensión adicional para usar estas funciones.

Nota: Builtin support for overload is available with PHP 4.3.0.

Configuración en tiempo de ejecución

Esta extensión no tiene directivas de configuración en php.ini.

Tipos de recursos

Esta extensión no tiene ningún tipo de recurso definido.

Constantes predefinidas

Esta extensión no tiene ninguna constante definida.

Ejemplos

Some simple examples on using the overload() function:

Ejemplo 1. Overloading a PHP class

<?php

class OO
{
    var $a = 111;
    var $elem = array('b' => 9, 'c' => 42);

    // Callback method for getting a property
    function __get($prop_name, &$prop_value)
    {
        if (isset($this->elem[$prop_name])) {
            $prop_value = $this->elem[$prop_name];
            return true;
        } else {
            return false;
        }
    }

    // Callback method for setting a property
    function __set($prop_name, $prop_value)
    {
        $this->elem[$prop_name] = $prop_value;
        return true;
    }
}

// Here we overload the OO object
overload('OO');

$o = new OO;
print "\$o->a: $o->a\n"; // print: $o->a:
print "\$o->b: $o->b\n"; // print: $o->b: 9
print "\$o->c: $o->c\n"; // print: $o->c: 42
print "\$o->d: $o->d\n"; // print: $o->d:

// add a new item to the $elem array in OO
$o->x = 56;

// instantiate stdclass (it is built-in in PHP 4)
// $val is not overloaded!
$val = new stdclass;
$val->prop = 555;

// Set "a" to be an array with the $val object in it
// But __set() will put this in the $elem array
$o->a = array($val);
var_dump($o->a[0]->prop);

?>

Aviso

As this is an experimental extension, not all things work. There is no __call() support currently, you can only overload the get and set operations for properties. You cannot invoke the original overloading handlers of the class, and __set() only works to one level of property access.

Tabla de contenidos
overload -- Enable property and method call overloading for a class

Anterior | Inicio | Siguiente
ob_start | Subir | overload


overload

(4.2.0 - 4.3.2 only)

overload -- Enable property and method call overloading for a class

Description

void overload ( [string class_name])

The overload() function will enable property and method call overloading for a class identified by class_name. See an example in the introductory section of this part.

Anterior | Inicio | Siguiente
Object property and method call overloading | Subir | PDF functions


PDF functions

Manual de PHP
Anterior Siguiente

LXXIX. PDF functions

You can use the PDF functions in PHP to create PDF files if you have the PDF library by Thomas Merz (available at http://www.pdflib.com/products/pdflib/index.html; you will also need the JPEG library and the TIFF library to compile this. These two libs also quite often make problems when configuring php. Follow the messages of configure to fix possible problems. If you use pdflib 2.01 check how the lib was installed. There should be file or link libpdf.so. Version 2.01 just creates a lib with the name libpdf2.01.so which cannot be found when linking the test programm in configure. You will have to create a symbolic link from libpdf.so to libpdf2.01.so.).

Version 2.20 of pdflib has introduced more changes to its API and support for chinese and japanese fonts. This unfortunately causes some changes of the pdf module of php4 (not php3). If you use pdflib 2.20 handle the in memory generation of PDF documents with care. Until pdflib 3.0 is released it might be unstable. The encoding parameter of pdf_set_font() has changed to a string. This means that instead of e.g. 4 you have to use 'winansi'.

If you use pdflib 2.30 the pdf_set_text_matrix() will have gone. It is not supported any more. In general it is a good advise to consult the release notes of the used version of pdflib for possible changes.

Since version 3.0 of pdflib you should configure pdflib with the option --enable-shared-pdflib.

Any version of PHP4 after March, 9th 2000 do not support versions of pdflib older than 3.0. PHP3 on the other hand should not be used with version newer than 2.01.

Please consult the excellent documentation for pdflib shipped with the source distribution of pdflib. It provides a very good overview of what pdflib capable of doing. Most of the functions in pdflib and the PHP module have the same name. The parameters are also identical. You should also understand some of the concepts of PDF or Postscript to efficiently use this module. All lengths and coordinates are measured in Postscript points. There are generally 72 PostScript points to an inch, but this depends on the output resolution.

There is another PHP module for pdf document creation based on FastIO's. ClibPDF. It has a slightly different API. Check the ClibPDF functions section for details.

Currently all versions of pdflib are supported. It is recommended that you use the newest version since it has more features and fixes some problems which required a patch for the old version. Unfortunately, the changes of the pdflib API in 2.x compared to 0.6 have been so severe that even some PHP functions had to be altered. Here is a list of changes:

  • The Info structure does not exist anymore. Therefore the function
pdf_get_info() is obsolete and the functions
pdf_set_info_creator(),
pdf_set_info_title(),
pdf_set_info_author(),
pdf_set_info_subject() and
pdf_set_info_keywords() do not take the
info structure as the first parameter but the pdf document. This
also means that the pdf document must be opened before these functions
can be called. The above functions can and should also be replaced by
pdf_set_info()

  • The way a new document is opened has changed. The function pdf_open() takes only one parameter which is the file handle of a file opened with fopen().

There were some more changes with the release 2.01 of pdflib which should be covered by PHP. Some functions are not required anymore (e.g. pdf_put_image()). You will get a warning so don't be shocked.

The pdf module introduces two new types of variables (if pdflib 2.x is used it is only one new type). They are called pdfdoc and pdfinfo (pdfinfo is not existent if pdflib 2.x is used. pdfdoc is a pointer to a pdf document and almost all functions need it as its first parameter. pdfinfo contains meta data about the PDF document. It has to be set before pdf_open() is called.

Nota: The following is only TRUE for pdflib 0.6. Read the pdflib manual for newer version

In order to output text into a PDF document you will need to provide the afm file for each font. Afm files contain font metrics for a Postscript font. By default these afm files are searched for in a directory named 'fonts' relative to the directory where the PHP script is located. (Again, this was TRUE for pdflib 0.6, newer versions do not not neccessarily need the afm files.)

Most of the functions are fairly easy to use. The most difficult part is probably to create a very simple pdf document at all. The following example should help to get started. It uses the PHP functions for pdflib 0.6. It creates the file test.pdf with one page. The page contains the text "Times-Roman" in an outlined 30pt font. The text is also underlined.

Ejemplo 1. Creating a PDF document with pdflib 0.6

<?php
$fp = fopen("test.pdf", "w");
$info = PDF_get_info();
pdf_set_info_author($info, "Uwe Steinmann");
PDF_set_info_title($info, "Test for PHP wrapper of PDFlib 0.6");
PDF_set_info_author($info, "Name of Author");
pdf_set_info_creator($info, "See Author");
pdf_set_info_subject($info, "Testing");
$pdf = PDF_open($fp, $info);
PDF_begin_page($pdf, 595, 842);
PDF_add_outline($pdf, "Page 1");
pdf_set_font($pdf, "Times-Roman", 30, 4);
pdf_set_text_rendering($pdf, 1);
PDF_show_xy($pdf, "Times Roman outlined", 50, 750);
pdf_moveto($pdf, 50, 740);
pdf_lineto($pdf, 330, 740);
pdf_stroke($pdf);
PDF_end_page($pdf);
PDF_close($pdf);
fclose($fp);
echo "<A HREF=getpdf.php3>finished</A>";
?>

The PHP script getpdf.php3 just outputs the pdf document.

<?php
$fp = fopen("test.pdf", "r");
header("Content-type: application/pdf");
fpassthru($fp);
fclose($fp);
?>

Doing the same with pdflib 2.x looks like the following:

Ejemplo 2. Creating a PDF document with pdflib 2.x

<?php
$fp = fopen("test.pdf", "w");
$pdf = PDF_open($fp);
pdf_set_info_author($pdf, "Uwe Steinmann");
PDF_set_info_title($pdf, "Test for PHP wrapper of PDFlib 2.0");
PDF_set_info_author($pdf, "Name of Author");
pdf_set_info_creator($pdf, "See Author");
pdf_set_info_subject($pdf, "Testing");
PDF_begin_page($pdf, 595, 842);
PDF_add_outline($pdf, "Page 1");
pdf_set_font($pdf, "Times-Roman", 30, 4);
pdf_set_text_rendering($pdf, 1);
PDF_show_xy($pdf, "Times Roman outlined", 50, 750);
pdf_moveto($pdf, 50, 740);
pdf_lineto($pdf, 330, 740);
pdf_stroke($pdf);
PDF_end_page($pdf);
PDF_close($pdf);
fclose($fp);
echo "<A HREF=getpdf.php3>finished</A>";
?>

The PHP script getpdf.php3 is the same as above.

The pdflib distribution contains a more complex example which creates a serious of pages with an analog clock. This example converted into PHP using pdflib 2.x looks as the following (you can see the same example in the documentation for the clibpdf module):

Ejemplo 3. pdfclock example from pdflib 2.x distribution

<?php
$pdffilename = "clock.pdf";
$radius = 200;
$margin = 20;
$pagecount = 40;

$fp = fopen($pdffilename, "w");
$pdf = pdf_open($fp);
pdf_set_info_creator($pdf, "pdf_clock.php3");
pdf_set_info_author($pdf, "Uwe Steinmann");
pdf_set_info_title($pdf, "Analog Clock");

while($pagecount-- > 0) {
    pdf_begin_page($pdf, 2 * ($radius + $margin), 2 * ($radius + $margin));

    pdf_set_transition($pdf, 4);  /* wipe */
    pdf_set_duration($pdf, 0.5);

    pdf_translate($pdf, $radius + $margin, $radius + $margin);
    pdf_save($pdf);
    pdf_setrgbcolor($pdf, 0.0, 0.0, 1.0);

    /* minute strokes */
    pdf_setlinewidth($pdf, 2.0);
    for ($alpha = 0; $alpha < 360; $alpha += 6) {
        pdf_rotate($pdf, 6.0);
        pdf_moveto($pdf, $radius, 0.0);
        pdf_lineto($pdf, $radius-$margin/3, 0.0);
        pdf_stroke($pdf);
    }

    pdf_restore($pdf);
    pdf_save($pdf);

    /* 5 minute strokes */
    pdf_setlinewidth($pdf, 3.0);
    for ($alpha = 0; $alpha < 360; $alpha += 30) {
        pdf_rotate($pdf, 30.0);
        pdf_moveto($pdf, $radius, 0.0);
        pdf_lineto($pdf, $radius-$margin, 0.0);
        pdf_stroke($pdf);
    }

    $ltime = getdate();

    /* draw hour hand */
    pdf_save($pdf);
    pdf_rotate($pdf,-(($ltime['minutes']/60.0)+$ltime['hours']-3.0)*30.0);
    pdf_moveto($pdf, -$radius/10, -$radius/20);
    pdf_lineto($pdf, $radius/2, 0.0);
    pdf_lineto($pdf, -$radius/10, $radius/20);
    pdf_closepath($pdf);
    pdf_fill($pdf);
    pdf_restore($pdf);

    /* draw minute hand */
    pdf_save($pdf);
    pdf_rotate($pdf,-(($ltime['seconds']/60.0)+$ltime['minutes']-15.0)*6.0);
    pdf_moveto($pdf, -$radius/10, -$radius/20);
    pdf_lineto($pdf, $radius * 0.8, 0.0);
    pdf_lineto($pdf, -$radius/10, $radius/20);
    pdf_closepath($pdf);
    pdf_fill($pdf);
    pdf_restore($pdf);

    /* draw second hand */
    pdf_setrgbcolor($pdf, 1.0, 0.0, 0.0);
    pdf_setlinewidth($pdf, 2);
    pdf_save($pdf);
    pdf_rotate($pdf, -(($ltime['seconds'] - 15.0) * 6.0));
    pdf_moveto($pdf, -$radius/5, 0.0);
    pdf_lineto($pdf, $radius, 0.0);
    pdf_stroke($pdf);
    pdf_restore($pdf);

    /* draw little circle at center */
    pdf_circle($pdf, 0, 0, $radius/30);
    pdf_fill($pdf);

    pdf_restore($pdf);

    pdf_end_page($pdf);
}

$pdf = pdf_close($pdf);
fclose($fp);
echo "<A HREF=getpdf.php3?filename=".$pdffilename.">finished</A>";
?>

The PHP script getpdf.php3 just outputs the pdf document.
<?php
$fp = fopen($filename, "r");
header("Content-type: application/pdf");
fpassthru($fp);
fclose($fp);
?>

Tabla de contenidos
pdf_add_annotation -- Adds annotation
pdf_add_bookmark -- Adds bookmark for current page
pdf_add_launchlink -- Add a launch annotation for current page
pdf_add_locallink -- Add a link annotation for current page
pdf_add_note -- Sets annotation for current page
PDF_add_outline -- Adds bookmark for current page
pdf_add_pdflink -- Adds file link annotation for current page
pdf_add_thumbnail -- Adds thumbnail for current page
pdf_add_weblink -- Adds weblink for current page
PDF_arc -- Draws an arc
pdf_arcn -- Draws an arc (clockwise)
pdf_attach_file -- Adds a file attachment for current page
PDF_begin_page -- Starts new page
pdf_begin_pattern -- Starts new pattern
pdf_begin_template -- Starts new template
PDF_circle -- Draws a circle
PDF_clip -- Clips to current path
PDF_close_image -- Closes an image
pdf_close_pdi_page -- Close the page handle
pdf_close_pdi -- Close the input PDF document
PDF_close -- Closes a pdf document
PDF_closepath_fill_stroke -- Closes, fills and strokes current path
PDF_closepath_stroke -- Closes path and draws line along path
PDF_closepath -- Closes path
pdf_concat -- Concatenate a matrix to the CTM
PDF_continue_text -- Outputs text in next line
PDF_curveto -- Draws a curve
pdf_delete -- Deletes a PDF object
PDF_end_page -- Ends a page
pdf_end_pattern -- Finish pattern
pdf_end_template -- Finish template
PDF_endpath -- Ends current path
PDF_fill_stroke -- Fills and strokes current path
PDF_fill -- Fills current path
pdf_findfont -- Prepare font for later use with pdf_setfont().
pdf_get_buffer -- Fetch the buffer containig the generated PDF data.
pdf_get_font -- Deprecated: font handling
pdf_get_fontname -- Deprecated: font handling
pdf_get_fontsize -- Deprecated: font handling
pdf_get_image_height -- Deprecated: returns height of an image
pdf_get_image_width -- Deprecated: Returns width of an image
pdf_get_majorversion -- Returns the major version number of the PDFlib
pdf_get_minorversion -- Returns the minor version number of the PDFlib
PDF_get_parameter -- Gets certain parameters
pdf_get_pdi_parameter -- Get some PDI string parameters
pdf_get_pdi_value -- Gets some PDI numerical parameters
PDF_get_value -- Gets certain numerical value
pdf_initgraphics -- Resets graphic state
PDF_lineto -- Draws a line
pdf_makespotcolor -- Makes a spotcolor
PDF_moveto -- Sets current point
pdf_new -- Creates a new pdf resource
pdf_open_CCITT -- Opens a new image file with raw CCITT data
pdf_open_file -- Opens a new pdf object
PDF_open_gif -- Opens a GIF image
pdf_open_image_file -- Reads an image from a file
pdf_open_image -- Versatile function for images
PDF_open_jpeg -- Opens a JPEG image
PDF_open_memory_image -- Opens an image created with PHP's image functions
pdf_open_pdi_page -- Prepare a page
pdf_open_pdi -- Opens a PDF file
PDF_open_png -- Opens a PNG image
pdf_open_tiff -- Deprecated: Opens a TIFF image
PDF_open -- Opens a new pdf document
PDF_place_image -- Places an image on the page
pdf_place_pdi_page -- Places an image on the page
PDF_rect -- Draws a rectangle
PDF_restore -- Restores formerly saved environment
PDF_rotate -- Sets rotation
PDF_save -- Saves the current environment
PDF_scale -- Sets scaling
PDF_set_border_color -- Sets color of border around links and annotations
PDF_set_border_dash -- Sets dash style of border around links and annotations
PDF_set_border_style -- Sets style of border around links and annotations
PDF_set_char_spacing -- Sets character spacing
PDF_set_duration -- Sets duration between pages
PDF_set_font -- Selects a font face and size
PDF_set_horiz_scaling -- Sets horizontal scaling of text
pdf_set_info_author -- Deprecated: Fills the author field of the document
pdf_set_info_creator -- Deprecated: Fills the creator field of the document
pdf_set_info_keywords -- Deprecated: Fills the keywords field of the document
pdf_set_info_subject -- Deprecated: Fills the subject field of the document
pdf_set_info_title -- Deprecated: Fills the title field of the document
PDF_set_info -- Fills a field of the document information
PDF_set_leading -- Sets distance between text lines
PDF_set_parameter -- Sets certain parameters
PDF_set_text_matrix -- Sets the text matrix
PDF_set_text_pos -- Sets text position
PDF_set_text_rendering -- Determines how text is rendered
PDF_set_text_rise -- Sets the text rise
PDF_set_value -- Sets certain numerical value
PDF_set_word_spacing -- Sets spacing between words
pdf_setcolor -- Sets fill and stroke color
PDF_setdash -- Sets dash pattern
PDF_setflat -- Sets flatness
pdf_setfont -- Set the current font
PDF_setgray_fill -- Sets filling color to gray value
PDF_setgray_stroke -- Sets drawing color to gray value
PDF_setgray -- Sets drawing and filling color to gray value
PDF_setlinecap -- Sets linecap parameter
PDF_setlinejoin -- Sets linejoin parameter
PDF_setlinewidth -- Sets line width
pdf_setmatrix -- Sets current transformation matrix
PDF_setmiterlimit -- Sets miter limit
pdf_setpolydash -- Deprecated: Sets complicated dash pattern
PDF_setrgbcolor_fill -- Sets filling color to rgb color value
PDF_setrgbcolor_stroke -- Sets drawing color to rgb color value
PDF_setrgbcolor -- Sets drawing and filling color to rgb color value
PDF_show_boxed -- Output text in a box
PDF_show_xy -- Output text at given position
PDF_show -- Output text at current position
PDF_skew -- Skews the coordinate system
PDF_stringwidth -- Returns width of text using current font
PDF_stroke -- Draws line along path
PDF_translate -- Sets origin of coordinate system

Anterior | Inicio | Siguiente
overload | Subir | pdf_add_annotation


pdf_add_annotation

(PHP 3>= 3.0.12, PHP 4 )

pdf_add_annotation -- Adds annotation

Description

void pdf_add_annotation ( int pdf document, double llx, double lly, double urx, double ury, string title, string content)

The pdf_add_annotation() adds a note with the lower left corner at (llx, lly) and the upper right corner at (urx, ury).

Anterior | Inicio | Siguiente
PDF functions | Subir | pdf_add_bookmark


pdf_add_bookmark

(PHP 4 >= 4.0.1)

pdf_add_bookmark -- Adds bookmark for current page

Description

int pdf_add_bookmark ( resource pdfdoc, string text [, int parent [, int open]])

Add a nested bookmark under parent, or a new top-level bookmark if parent = 0. Returns a bookmark descriptor which may be used as parent for subsequent nested bookmarks. If open = 1, child bookmarks will be folded out, and invisible if open = 0.

Ejemplo 1. pdf_add_bookmark() example

<?php
// create a new PDF

$pdf = pdf_new();
pdf_open_file($pdf);
pdf_set_info($pdf, "Author","Bob Nijman");

// begin a new page
pdf_begin_page($pdf, 300, 300);

// add a top-level bookmark
$bookmark = pdf_add_bookmark($pdf, "People");

// add a nested bookmark
pdf_add_bookmark($pdf, "Rasmus", $bookmark);

// and some text
pdf_set_font($pdf, "Helvetica", 20, "host");
$text = "This is R's page";
$width = pdf_stringwidth($pdf, $text);
pdf_set_text_pos($pdf, (300-$width)/2, 100);
pdf_show($pdf, $text);

// close the page and the PDF
pdf_end_page($pdf);
pdf_close($pdf);

?>

Anterior | Inicio | Siguiente
pdf_add_annotation | Subir | pdf_add_launchlink


pdf_add_launchlink

(PHP 4 >= 4.0.5)

pdf_add_launchlink -- Add a launch annotation for current page

Description

bool pdf_add_launchlink ( resource pdfdoc, float llx, float lly, float urx, float ury, string filename)

Adds a link to a web resource specified by filename. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

See also pdf_add_locallink().

Anterior | Inicio | Siguiente
pdf_add_bookmark | Subir | pdf_add_locallink


pdf_add_locallink

(PHP 4 >= 4.0.5)

pdf_add_locallink -- Add a link annotation for current page

Description

bool pdf_add_locallink ( resource pdfdoc, float lowerleftx, float lowerlefty, float upperrightx, float upperrighty, int page, string dest)

Add a link annotation to a target within the current PDF file. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

dest is the zoom setting on the destination page, it can be one of retain, fitpage, fitwidth, fitheight or fitbbox.

See also pdf_add_launchlink().

Anterior | Inicio | Siguiente
pdf_add_launchlink | Subir | pdf_add_note


pdf_add_note

(PHP 4 >= 4.0.5)

pdf_add_note -- Sets annotation for current page

Description

bool pdf_add_note ( resource pdfdoc, float llx, float lly, float urx, float ury, string contents, string title, string icon, int open)

Sets an annotation for the current page. icon is one of comment, insert, note, paragraph, newparagraph, key, or help. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Anterior | Inicio | Siguiente
pdf_add_locallink | Subir | PDF_add_outline


PDF_add_outline

(PHP 3>= 3.0.6, PHP 4 )

PDF_add_outline -- Adds bookmark for current page

Description

int pdf_add_outline ( int pdf document, string text [, int parent [, int open]])

The PDF_add_outline() function adds a bookmark with text text that points to the current page. The bookmark is inserted as a child of parent and is by default open if open is not 0. The return value is an identifier for the bookmark which can be used as a parent for other bookmarks. Therefore you can build up hierarchies of bookmarks.

Unfortunately pdflib does not make a copy of the string, which forces PHP to allocate the memory. Currently this piece of memory is not been freed by any PDF function but it will be taken care of by the PHP memory manager.

Anterior | Inicio | Siguiente
pdf_add_note | Subir | pdf_add_pdflink


pdf_add_pdflink

(PHP 3>= 3.0.12, PHP 4 )

pdf_add_pdflink -- Adds file link annotation for current page

Description

bool pdf_add_pdflink ( resource pdfdoc, float bottom_left_x, float bottom_left_y, float up_right_x, float up_right_y, string filename, int page, string dest)

Add a file link annotation (to a PDF target). Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

See also pdf_add_locallink() and pdf_add_weblink().

Anterior | Inicio | Siguiente
PDF_add_outline | Subir | pdf_add_thumbnail


pdf_add_thumbnail

(PHP 4 >= 4.0.5)

pdf_add_thumbnail -- Adds thumbnail for current page

Description

bool pdf_add_thumbnail ( resource pdfdoc, int image)

Adds an existing image as thumbnail for the current page. Thumbnail images must not be wider or higher than 106 pixels. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

See also pdf_open_image(),
pdf_open_image_file(),
pdf_open_memory_image().

Anterior | Inicio | Siguiente
pdf_add_pdflink | Subir | pdf_add_weblink


pdf_add_weblink

(PHP 3>= 3.0.12, PHP 4 )

pdf_add_weblink -- Adds weblink for current page

Description

bool pdf_add_weblink ( resource pdfdoc, float lowerleftx, float lowerlefty, float upperrightx, float upperrighty, string url)

Add a weblink annotation to a target url on the Web. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Anterior | Inicio | Siguiente
pdf_add_thumbnail | Subir | PDF_arc


PDF_arc

(PHP 3>= 3.0.6, PHP 4 )

PDF_arc -- Draws an arc

Description

void pdf_arc ( int pdf document, double x-coor, double y-coor, double radius, double start, double end)

The PDF_arc() function draws an arc with center at point (x-coor, y-coor) and radius radius, starting at angle start and ending at angle end.

See also PDF_circle(), PDF_stroke().

Anterior | Inicio | Siguiente
pdf_add_weblink | Subir | pdf_arcn


pdf_arcn

(PHP 4 >= 4.0.5)

pdf_arcn -- Draws an arc (clockwise)

Description

bool pdf_arcn ( resource pdfdoc, float x, float y, float r, float alpha, float beta)

Add a clockwise circular arc from alpha to beta degrees with center (x; y) and radius r. Actual drawing of the circle is performed by the next stroke or fill operation.

Ejemplo 1. pdf_arcn() example

<?php
    // prepare document
    $pdf = pdf_new();
    pdf_open_file($pdf, "");
    pdf_begin_page($pdf, 595, 842);

    // an outlined arcn
    pdf_arcn($pdf, 200, 700, 100, 0, 90);
    pdf_stroke($pdf);

    // a filled arcn
    pdf_arcn($pdf, 200, 700, 50, 0, 90);
    pdf_fill($pdf);

  // an outlined and filled arcn
  pdf_setcolor($pdf, "fill", "gray", 0.8);
    pdf_arcn($pdf, 400, 700, 50, 0, 90);
  pdf_fill_stroke($pdf);

    // finish document
    pdf_end_page($pdf);
    pdf_close($pdf);
    header("Content-type: application/pdf");
    echo pdf_get_buffer($pdf);
    pdf_delete($pdf);
?>

See also: pdf_arc(), pdf_circle(),
pdf_stroke(), pdf_fill() and
pdf_fillstroke().

Anterior | Inicio | Siguiente
PDF_arc | Subir | pdf_attach_file


pdf_attach_file

(PHP 4 >= 4.0.5)

pdf_attach_file -- Adds a file attachment for current page

Description

bool pdf_attach_file ( resource pdfdoc, float llx, float lly, float urx, float ury, string filename, string description, string author, string mimetype, string icon)

Add a file attachment annotation. icon is one of graph, paperclip, pushpin, or tag. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Nota: Only the 'Full' Acrobat software will be able to display these file attachments. All other PDF viewers will either show nothing or display a question mark.

Anterior | Inicio | Siguiente
pdf_arcn | Subir | PDF_begin_page


PDF_begin_page

(PHP 3>= 3.0.6, PHP 4 )

PDF_begin_page -- Starts new page

Description

void pdf_begin_page ( int pdf document, double width, double height)

The PDF_begin_page() function starts a new page with height height and width width. In order to create a valid document you must call this function and PDF_end_page().

See also PDF_end_page().

Anterior | Inicio | Siguiente
pdf_attach_file | Subir | pdf_begin_pattern


pdf_begin_pattern

(PHP 4 >= 4.0.5)

pdf_begin_pattern -- Starts new pattern

Description

int pdf_begin_pattern ( resource pdfdoc, float width, float height, float xstep, float ystep, int painttype)

Starts a new pattern definition and returns a pattern handle. width, and height define the bounding box for the pattern. xstep and ystep give the repeated pattern offsets. painttype=1 means that the pattern has its own colour settings whereas a value of 2 indicates that the current colour is used when the pattern is applied.

See also pdf_end_pattern().

Anterior | Inicio | Siguiente
PDF_begin_page | Subir | pdf_begin_template


pdf_begin_template

(PHP 4 >= 4.0.5)

pdf_begin_template -- Starts new template

Description

int pdf_begin_template ( resource pdfdoc, float width, float height)

Start a new template definition.

Anterior | Inicio | Siguiente
pdf_begin_pattern | Subir | PDF_circle


PDF_circle

(PHP 3>= 3.0.6, PHP 4 )

PDF_circle -- Draws a circle

Description

void pdf_circle ( int pdf document, double x-coor, double y-coor, double radius)

The PDF_circle() function draws a circle with center at point (x-coor, y-coor) and radius radius.

See also PDF_arc(), PDF_stroke().

Anterior | Inicio | Siguiente
pdf_begin_template | Subir | PDF_clip


PDF_clip

(PHP 3>= 3.0.6, PHP 4 )

PDF_clip -- Clips to current path

Description

void pdf_clip ( int pdf document)

The PDF_clip() function clips all drawing to the current path.

Anterior | Inicio | Siguiente
PDF_circle | Subir | PDF_close_image


PDF_close_image

(PHP 3>= 3.0.7, PHP 4 )

PDF_close_image -- Closes an image

Description

void pdf_close_image ( int image)

The PDF_close_image() function closes an image which has been opened with any of the PDF_open_xxx() functions.

See also PDF_open_jpeg(),
         PDF_open_gif(),
         PDF_open_memory_image().

Anterior | Inicio | Siguiente
PDF_clip | Subir | pdf_close_pdi_page


pdf_close_pdi_page

(PHP 4 >= 4.0.5)

pdf_close_pdi_page -- Close the page handle

Description

bool pdf_close_pdi_page ( resource pdfdoc, int pagehandle)

Close the page handle, and free all page-related resources. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Anterior | Inicio | Siguiente
PDF_close_image | Subir | pdf_close_pdi


pdf_close_pdi

(PHP 4 >= 4.0.5)

pdf_close_pdi -- Close the input PDF document

Description

bool pdf_close_pdi ( resource pdfdoc, int dochandle)

Close all open page handles, and close the input PDF document. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

See also pdf_open_pdi().

Anterior | Inicio | Siguiente
pdf_close_pdi_page | Subir | PDF_close


PDF_close

(PHP 3>= 3.0.6, PHP 4 )

PDF_close -- Closes a pdf document

Description

void pdf_close ( int pdf document)

The PDF_close() function closes the pdf document.

Nota: Due to an unclean implementation of the pdflib 0.6 the internal closing of the document also closes the file. This should not be done because pdflib did not open the file, but expects an already open file when PDF_open() is called. Consequently it shouldn't close the file. In order to fix this just take out line 190 of the file p_basic.c in the pdflib 0.6 source distribution until the next release of pdflib will fix this.

Nota: This function works properly without any patches to pdflib if pdflib 2.0 support is activated.

See also PDF_open(), fclose().

Anterior | Inicio | Siguiente
pdf_close_pdi | Subir | PDF_closepath_fill_stroke


PDF_closepath_fill_stroke

(PHP 3>= 3.0.6, PHP 4 )

PDF_closepath_fill_stroke -- Closes, fills and strokes current path

Description

void pdf_closepath_fill_stroke ( int pdf document)

The PDF_closepath_fill_stroke() function closes, fills the interior of the current path with the current fill color and draws current path.

See also PDF_closepath(),
         PDF_stroke(),
         PDF_fill(),
         PDF_setgray_fill(),
         PDF_setgray(),
         PDF_setrgbcolor_fill(),
         PDF_setrgbcolor().

Anterior | Inicio | Siguiente
PDF_close | Subir | PDF_closepath_stroke


PDF_closepath_stroke

(PHP 3>= 3.0.6, PHP 4 )

PDF_closepath_stroke -- Closes path and draws line along path

Description

void pdf_closepath_stroke ( int pdf document)

The PDF_closepath_stroke() function is a
combination of PDF_closepath() and
PDF_stroke(). It also clears the path.

See also PDF_closepath(), PDF_stroke().

Anterior | Inicio | Siguiente
PDF_closepath_fill_stroke | Subir | PDF_closepath


PDF_closepath

(PHP 3>= 3.0.6, PHP 4 )

PDF_closepath -- Closes path

Description

void pdf_closepath ( int pdf document)

The PDF_closepath() function closes the current path. This means, it draws a line from current point to the point where the first line was started. Many functions like PDF_moveto(), PDF_circle() and PDF_rect() start a new path.

Anterior | Inicio | Siguiente
PDF_closepath_stroke | Subir | pdf_concat


pdf_concat

(PHP 4 >= 4.0.5)

pdf_concat -- Concatenate a matrix to the CTM

Description

bool pdf_concat ( resource pdfdoc, float a, float b, float c, float d, float e, float f)

Concatenate a matrix to the CTM. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Anterior | Inicio | Siguiente
PDF_closepath | Subir | PDF_continue_text


PDF_continue_text

(PHP 3>= 3.0.6, PHP 4 )

PDF_continue_text -- Outputs text in next line

Description

void pdf_continue_text ( int pdf document, string text)

The PDF_continue_text() function outputs the string in text in the next line. The distance between the lines can be set with PDF_set_leading().

See also PDF_show_xy(),
         PDF_set_leading(),
         PDF_set_text_pos().

Anterior | Inicio | Siguiente
pdf_concat | Subir | PDF_curveto


PDF_curveto

(PHP 3>= 3.0.6, PHP 4 )

PDF_curveto -- Draws a curve

Description

void pdf_curveto ( int pdf document, double x1, double y1, double x2, double y2, double x3, double y3)

The PDF_curveto() function draws a Bezier curve from the current point to the point (x3, y3) using (x1, y1) and (x2, y2) as control points.

See also PDF_moveto(),
         PDF_lineto(),
         PDF_stroke().

Anterior | Inicio | Siguiente
PDF_continue_text | Subir | pdf_delete


pdf_delete

(PHP 4 >= 4.0.5)

pdf_delete -- Deletes a PDF object

Description

bool pdf_delete ( resource pdfdoc)

Delete the PDF resource, and free all internal resources. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

See also pdf_new().

Anterior | Inicio | Siguiente
PDF_curveto | Subir | PDF_end_page


PDF_end_page

(PHP 3>= 3.0.6, PHP 4 )

PDF_end_page -- Ends a page

Description

void pdf_end_page ( int pdf document)

The PDF_end_page() function ends a page. Once a page is ended it cannot be modified anymore.

See also PDF_begin_page().

Anterior | Inicio | Siguiente
pdf_delete | Subir | pdf_end_pattern


pdf_end_pattern

(PHP 4 >= 4.0.5)

pdf_end_pattern -- Finish pattern

Description

bool pdf_end_pattern ( resource pdfdoc)

Finish the pattern definition. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

See also pdf_begin_pattern().

Anterior | Inicio | Siguiente
PDF_end_page | Subir | pdf_end_template


pdf_end_template

(PHP 4 >= 4.0.5)

pdf_end_template -- Finish template

Description

bool pdf_end_template ( resource pdfdoc)

Finish the template definition. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Anterior | Inicio | Siguiente
pdf_end_pattern | Subir | PDF_endpath


PDF_endpath

(PHP 3>= 3.0.6, PHP 4 )

PDF_endpath -- Ends current path

Description

void pdf_endpath ( int pdf document)

The PDF_endpath() function ends the current path but does not close it.

See also PDF_closepath().

Anterior | Inicio | Siguiente
pdf_end_template | Subir | PDF_fill_stroke


PDF_fill_stroke

(PHP 3>= 3.0.6, PHP 4 )

PDF_fill_stroke -- Fills and strokes current path

Description

void pdf_fill_stroke ( int pdf document)

The PDF_fill_stroke() function fills the interior of the current path with the current fill color and draws current path.

See also PDF_closepath(),
         PDF_stroke(),
         PDF_fill(),
         PDF_setgray_fill(),
         PDF_setgray(),
         PDF_setrgbcolor_fill(),
         PDF_setrgbcolor().

Anterior | Inicio | Siguiente
PDF_endpath | Subir | PDF_fill


PDF_fill

(PHP 3>= 3.0.6, PHP 4 )

PDF_fill -- Fills current path

Description

void pdf_fill ( int pdf document)

The PDF_fill() function fills the interior of the current path with the current fill color.

See also PDF_closepath(),
         PDF_stroke(),
         PDF_setgray_fill(),
         PDF_setgray(),
         PDF_setrgbcolor_fill(),
         PDF_setrgbcolor().

Anterior | Inicio | Siguiente
PDF_fill_stroke | Subir | pdf_findfont


pdf_findfont

(PHP 4 >= 4.0.5)

pdf_findfont -- Prepare font for later use with pdf_setfont().

Description

int pdf_findfont ( resource pdfdoc, string fontname, string encoding [, int embed])

Prepare a font for later use with pdf_setfont(). The metrics will be loaded, and if embed is nonzero, the font file will be checked, but not yet used. encoding is one of builtin, macroman, winansi, host, a user-defined encoding name or the name of a CMap.

pdf_findfont() returns a font handle or FALSE on error.

Ejemplo 1. pdf_findfont() example

<?php

$font = pdf_findfont($pdf, "Times New Roman", "winansi", 1);
if ($font) {
    pdf_setfont($pdf, $font, 10);
}

?>

Anterior | Inicio | Siguiente
PDF_fill | Subir | pdf_get_buffer


pdf_get_buffer

(PHP 4 >= 4.0.5)

pdf_get_buffer -- Fetch the buffer containig the generated PDF data.

Description

string pdf_get_buffer ( resource pdfdoc)

Get the contents of the PDF output buffer. The result must be used by the client before calling any other PDFlib function.

Anterior | Inicio | Siguiente
pdf_findfont | Subir | pdf_get_font


pdf_get_font

pdf_get_font -- Deprecated: font handling

Description

This function is deprecated, use pdf_get_value() instead.

Anterior | Inicio | Siguiente
pdf_get_buffer | Subir | pdf_get_fontname


pdf_get_fontname

pdf_get_fontname -- Deprecated: font handling

Description

This function is deprecated, use pdf_get_parameter() instead.

Anterior | Inicio | Siguiente
pdf_get_font | Subir | pdf_get_fontsize


pdf_get_fontsize

pdf_get_fontsize -- Deprecated: font handling

Description

This function is deprecated, use pdf_get_value() instead.

Anterior | Inicio | Siguiente
pdf_get_fontname | Subir | pdf_get_image_height


pdf_get_image_height

pdf_get_image_height -- Deprecated: returns height of an image

Description

This function is deprecated, use pdf_get_value() instead.

Anterior | Inicio | Siguiente
pdf_get_fontsize | Subir | pdf_get_image_width


pdf_get_image_width

pdf_get_image_width -- Deprecated: Returns width of an image

Description

This function is deprecated, use pdf_get_value() instead.

Anterior | Inicio | Siguiente
pdf_get_image_height | Subir | pdf_get_majorversion


pdf_get_majorversion

(PHP 4 >= 4.2.0)

pdf_get_majorversion -- Returns the major version number of the PDFlib

Description

int pdf_get_majorversion ( void )

Returns the major version number of the PDFlib.

See also pdf_get_minorversion().

Anterior | Inicio | Siguiente
pdf_get_image_width | Subir | pdf_get_minorversion


pdf_get_minorversion

(PHP 4 >= 4.2.0)

pdf_get_minorversion -- Returns the minor version number of the PDFlib

Description

int pdf_get_minorversion ( void )

Returns the minor version number of the PDFlib.

See also pdf_get_majorversion().

Anterior | Inicio | Siguiente
pdf_get_majorversion | Subir | PDF_get_parameter


PDF_get_parameter

(PHP 4 >= 4.0.1)

PDF_get_parameter -- Gets certain parameters

Description

string pdf_get_parameter ( int pdf document, string name, double modifier)

The PDF_get_parameter() function gets several parameters of pdflib which are of the type string. The function parameter modifier characterizes the parameter to get. If the modifier is not needed it has to be 0.

See also PDF_get_value(),
         PDF_set_value(),
         PDF_set_parameter().

Anterior | Inicio | Siguiente
pdf_get_minorversion | Subir | pdf_get_pdi_parameter


pdf_get_pdi_parameter

(PHP 4 >= 4.0.5)

pdf_get_pdi_parameter -- Get some PDI string parameters

Description

string pdf_get_pdi_parameter ( resource pdfdoc, string key, int document, int page, int index)

Get the contents of some PDI document parameter with string type.

Anterior | Inicio | Siguiente
PDF_get_parameter | Subir | pdf_get_pdi_value


pdf_get_pdi_value

(PHP 4 >= 4.0.5)

pdf_get_pdi_value -- Gets some PDI numerical parameters

Description

string pdf_get_pdi_value ( resource pdfdoc, string key, int doc, int page, int index)

Get the contents of some PDI document parameter with numerical type.

Anterior | Inicio | Siguiente
pdf_get_pdi_parameter | Subir | PDF_get_value


PDF_get_value

(PHP 4 >= 4.0.1)

PDF_get_value -- Gets certain numerical value

Description

double pdf_get_value ( int pdf document, string name, double modifier)

The PDF_get_value() function gets several numerical parameters of pdflib. The function parameter modifier characterizes the parameter to get. If the modifier is not needed it has to be 0.

See also PDF_set_value(),
         PDF_get_parameter(),
         PDF_set_parameter().

Anterior | Inicio | Siguiente
pdf_get_pdi_value | Subir | pdf_initgraphics


pdf_initgraphics

(PHP 4 >= 4.0.5)

pdf_initgraphics -- Resets graphic state

Description

bool pdf_initgraphics ( resource pdfdoc)

Reset all implicit color and graphics state parameters to their defaults. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Anterior | Inicio | Siguiente
PDF_get_value | Subir | PDF_lineto


PDF_lineto

(PHP 3>= 3.0.6, PHP 4 )

PDF_lineto -- Draws a line

Description

void pdf_lineto ( int pdf document, double x-coor, double y-coor)

The PDF_lineto() function draws a line from the current point to the point with coordinates (x-coor, y-coor).

See also PDF_moveto(),
         PDF_curveto(),
         PDF_stroke().

Anterior | Inicio | Siguiente
pdf_initgraphics | Subir | pdf_makespotcolor


pdf_makespotcolor

(PHP 4 >= 4.0.5)

pdf_makespotcolor -- Makes a spotcolor

Description

bool pdf_makespotcolor ( resource pdfdoc, string spotname)

Make a named spot color from the current color. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

See also pdf_setcolor().

Anterior | Inicio | Siguiente
PDF_lineto | Subir | PDF_moveto


PDF_moveto

(PHP 3>= 3.0.6, PHP 4 )

PDF_moveto -- Sets current point

Description

void pdf_moveto ( int pdf document, double x-coor, double y-coor)

The PDF_moveto() function sets the current point to the coordinates x-coor and y-coor.

Anterior | Inicio | Siguiente
pdf_makespotcolor | Subir | pdf_new


pdf_new

(PHP 4 >= 4.0.5)

pdf_new -- Creates a new pdf resource

Description

resource pdf_new ( )

Create a new PDF resource, using default error handling and memory management.

See also pdf_close().

Anterior | Inicio | Siguiente
PDF_moveto | Subir | pdf_open_CCITT


pdf_open_CCITT

(PHP 4 >= 4.0.5)

pdf_open_CCITT -- Opens a new image file with raw CCITT data

Description

int pdf_open_CCITT ( resource pdfdoc, string filename, int width, int height, int BitReverse, int k, int Blackls1)

Open a raw CCITT image.

Anterior | Inicio | Siguiente
pdf_new | Subir | pdf_open_file


pdf_open_file

(PHP 4 >= 4.0.5)

pdf_open_file -- Opens a new pdf object

Description

bool pdf_open_file ( resource pdfdoc [, string filename])

Create a new PDF file using the supplied file name. If filename is empty the PDF document will be generated in memory instead of on file. The result must be fetched by the client with the pdf_get_buffer() function. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

The following example shows how to create a pdf document in memory and how to output it correctly.

Ejemplo 1. Creating a PDF document in memory

<?php

$pdf = pdf_new();

pdf_open_file($pdf);
pdf_begin_page($pdf, 595, 842);
pdf_set_font($pdf, "Times-Roman", 30, "host");
pdf_set_value($pdf, "textrendering", 1);
pdf_show_xy($pdf, "A PDF document created in memory!", 50, 750);
pdf_end_page($pdf);
pdf_close($pdf);

$data = pdf_get_buffer($pdf);

header("Content-type: application/pdf");
header("Content-disposition: inline; filename=test.pdf");
header("Content-length: " . strlen($data));

echo $data;

?>

Anterior | Inicio | Siguiente
pdf_open_CCITT | Subir | PDF_open_gif


PDF_open_gif

(PHP 3>= 3.0.7, PHP 4 )

PDF_open_gif -- Opens a GIF image

Description

int pdf_open_gif ( int pdf document, string filename)

The PDF_open_gif() function opens an image stored in the file with the name filename. The format of the image has to be gif. The function returns a pdf image identifier.

Ejemplo 1. Including a gif image

<?php
$im = PDF_open_gif($pdf, "test.gif");
pdf_place_image($pdf, $im, 100, 100, 1);
pdf_close_image($pdf, $im);
?>

See also PDF_close_image(),
         PDF_open_jpeg(),
         PDF_open_memory_image(),
         PDF_execute_image(),
         PDF_place_image(),
         PDF_put_image().

Anterior | Inicio | Siguiente
pdf_open_file | Subir | pdf_open_image_file


pdf_open_image_file

(PHP 3 CVS only, PHP 4 )

pdf_open_image_file -- Reads an image from a file

Description

int pdf_open_image_file ( resource pdfdoc, string imagetype, string filename [, string stringparam [, string intparam]])

Open an image file. Supported types are jpeg, tiff, gif, and png. stringparam is either , mask, masked, or page. intparamis either 0, the image id of the applied mask, or the page.

Anterior | Inicio | Siguiente
PDF_open_gif | Subir | pdf_open_image


pdf_open_image

(PHP 4 >= 4.0.5)

pdf_open_image -- Versatile function for images

Description

int pdf_open_image ( resource PDF-document, string imagetype, string source, string data, long length, int width, int height, int components, int bpc, string params)

Use image data from a variety of data sources. Supported types are jpeg, ccitt, raw. Supported sources are memory, fileref, url. len is only used when type is raw, params is only used when type is ccitt.

Anterior | Inicio | Siguiente
pdf_open_image_file | Subir | PDF_open_jpeg


PDF_open_jpeg

(PHP 3>= 3.0.7, PHP 4 )

PDF_open_jpeg -- Opens a JPEG image

Description

int pdf_open_jpeg ( int pdf document, string filename)

The PDF_open_jpeg() function opens an image stored in the file with the name filename. The format of the image has to be jpeg. The function returns a pdf image identifier.

See also PDF_close_image(),
         PDF_open_gif(),
         PDF_open_png(),
         PDF_open_memory_image(),
         PDF_execute_image(),
         PDF_place_image(),
         PDF_put_image().

Anterior | Inicio | Siguiente
pdf_open_image | Subir | PDF_open_memory_image


PDF_open_memory_image

(PHP 3>= 3.0.10, PHP 4 )

PDF_open_memory_image -- Opens an image created with PHP's image functions

Description

int pdf_open_memory_image ( int pdf document, int image)

The PDF_open_memory_image() function takes an image created with the PHP's image functions and makes it available for the pdf document. The function returns a pdf image identifier.

Ejemplo 1. Including a memory image

<?php
$im = ImageCreate(100, 100);
$col = ImageColorAllocate($im, 80, 45, 190);
ImageFill($im, 10, 10, $col);
$pim = PDF_open_memory_image($pdf, $im);
ImageDestroy($im);
pdf_place_image($pdf, $pim, 100, 100, 1);
pdf_close_image($pdf, $pim);
?>

See also PDF_close_image(),
         PDF_open_jpeg(),
         PDF_open_gif(),
         PDF_open_png()
         PDF_execute_image(),
         PDF_place_image(),
         PDF_put_image().

Anterior | Inicio | Siguiente
PDF_open_jpeg | Subir | pdf_open_pdi_page


pdf_open_pdi_page

(PHP 4 >= 4.0.5)

pdf_open_pdi_page -- Prepare a page

Description

int pdf_open_pdi_page ( resource pdfdoc, int dochandle, int pagenumber, string pagelabel)

Prepare a page for later use with pdf_place_image()

Anterior | Inicio | Siguiente
PDF_open_memory_image | Subir | pdf_open_pdi


pdf_open_pdi

(PHP 4 >= 4.0.5)

pdf_open_pdi -- Opens a PDF file

Description

int pdf_open_pdi ( resource pdfdoc, string filename, string stringparam, int intparam)

Opens an existing PDF document and prepares it for later use.

See also pdf_close_pdi().

Anterior | Inicio | Siguiente
pdf_open_pdi_page | Subir | PDF_open_png


PDF_open_png

(PHP 4 )

PDF_open_png -- Opens a PNG image

Description

int pdf_open_png ( int pdf, string png_file)

The PDF_open_png() function opens an image stored in the file with the name filename. The format of the image has to be png. The function returns a pdf image identifier.

Ejemplo 1. Including a PNG image

<?php
$im = PDF_open_png ($pdf, "test.png");
pdf_place_image ($pdf, $im, 100, 100, 1);
pdf_close_image ($pdf, $im);
?>

See also PDF_close_image(),
         PDF_open_jpeg(),
         PDF_open_gif(),
         PDF_open_memory_image(),
         PDF_execute_image(),
         PDF_place_image(),
         PDF_put_image().

Anterior | Inicio | Siguiente
pdf_open_pdi | Subir | pdf_open_tiff


pdf_open_tiff

pdf_open_tiff -- Deprecated: Opens a TIFF image

Description

This function is deprecated, use pdf_open_image() instead.

Anterior | Inicio | Siguiente
PDF_open_png | Subir | PDF_open


PDF_open

(PHP 3>= 3.0.6, PHP 4 )

PDF_open -- Opens a new pdf document

Description

int pdf_open ( int file, int info)

The PDF_open() function opens a new pdf document. The corresponding file has to be opened with fopen() and the file descriptor passed as argument file. info is the info structure that has to be created with pdf_get_info(). The info structure will be deleted within this function.

Nota: The return value is needed as the first parameter in all other functions writing to the pdf document.

Nota: This function does not allow the second parameter if pdflib 2.0 support is activated.

See also fopen(),
         PDF_get_info(),
         PDF_close().

Anterior | Inicio | Siguiente
pdf_open_tiff | Subir | PDF_place_image


PDF_place_image

(PHP 3>= 3.0.7, PHP 4 )

PDF_place_image -- Places an image on the page

Description

void pdf_place_image ( int pdf document, int image, double x-coor, double y-coor, double scale)

The PDF_place_image() function places an image on the page at postion (x-coor, x-coor). The image can be scaled at the same time.

See also PDF_put_image().

Anterior | Inicio | Siguiente
PDF_open | Subir | pdf_place_pdi_page


pdf_place_pdi_page

(PHP 4 >= 4.0.6)

pdf_place_pdi_page -- Places an image on the page

Description

bool pdf_place_pdi_page ( resource pdfdoc, int page, float x, float y, float sx, float sy)

Place a PDI page with the lower left corner at (x, y), and scale it. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Anterior | Inicio | Siguiente
PDF_place_image | Subir | PDF_rect


PDF_rect

(PHP 3>= 3.0.6, PHP 4 )

PDF_rect -- Draws a rectangle

Description

void pdf_rect ( int pdf document, double x-coor, double y-coor, double width, double height)

The PDF_rect() function draws a rectangle with its lower left corner at point (x-coor, y-coor). This width is set to widgth. This height is set to height.

See also PDF_stroke().

Anterior | Inicio | Siguiente
pdf_place_pdi_page | Subir | PDF_restore


PDF_restore

(PHP 3>= 3.0.6, PHP 4 )

PDF_restore -- Restores formerly saved environment

Description

void pdf_restore ( int pdf document)

The PDF_restore() function restores the environment saved with PDF_save(). It works like the postscript command grestore.

Ejemplo 1. Save and Restore

<?php PDF_save($pdf);
// do all kinds of rotations, transformations, ...
PDF_restore($pdf) ?>

See also PDF_save().

Anterior | Inicio | Siguiente
PDF_rect | Subir | PDF_rotate


PDF_rotate

(PHP 3>= 3.0.6, PHP 4 )

PDF_rotate -- Sets rotation

Description

void pdf_rotate ( int pdf document, double angle)

The PDF_rotate() function sets the rotation in degress to angle.

Anterior | Inicio | Siguiente
PDF_restore | Subir | PDF_save


PDF_save

(PHP 3>= 3.0.6, PHP 4 )

PDF_save -- Saves the current environment

Description

void pdf_save ( int pdf document)

The PDF_save() function saves the current environment. It works like the postscript command gsave. Very useful if you want to translate or rotate an object without effecting other objects. PDF_save() should always be followed by PDF_restore() to restore the environment before PDF_save().

See also PDF_restore().

Anterior | Inicio | Siguiente
PDF_rotate | Subir | PDF_scale


PDF_scale

(PHP 3>= 3.0.6, PHP 4 )

PDF_scale -- Sets scaling

Description

void pdf_scale ( int pdf document, double x-scale, double y-scale)

The PDF_scale() function sets the scaling factor in both directions. The following example scales x and y direction by 72. The following line will therefore be drawn one inch in both directions.

Ejemplo 1. Scaling

<?php PDF_scale($pdf, 72.0, 72.0);
PDF_lineto($pdf, 1, 1);
PDF_stroke($pdf);
?>

Anterior | Inicio | Siguiente
PDF_save | Subir | PDF_set_border_color


PDF_set_border_color

(PHP 3>= 3.0.12, PHP 4 )

PDF_set_border_color -- Sets color of border around links and annotations

Description

void pdf_set_border_color ( int pdf document, double red, double green, double blue)

The PDF_set_border_color() function sets the color of the suroundig box of links and annotations. The three color components have to have a value between 0.0 and 1.0.

See also PDF_set_border_style(), PDF_set_border_dash().

Anterior | Inicio | Siguiente
PDF_scale | Subir | PDF_set_border_dash


PDF_set_border_dash

(PHP 4 >= 4.0.1)

PDF_set_border_dash -- Sets dash style of border around links and annotations

Description

void pdf_set_border_dash ( int pdf document, double black, double white)

The PDF_set_border_dash() function sets the lenght of black and white areas of a dashed line of the suroundig box of links and annotations.

See also PDF_set_border_style(), PDF_set_border_color().

Anterior | Inicio | Siguiente
PDF_set_border_color | Subir | PDF_set_border_style


PDF_set_border_style

(PHP 3>= 3.0.12, PHP 4 )

PDF_set_border_style -- Sets style of border around links and annotations

Description

void pdf_set_border_style ( int pdf document, string style, double width)

The PDF_set_border_style() function sets the style and width of the suroundig box of links and annotations. The parameter style can be 'solid' or 'dashed'.

See also PDF_set_border_color(), PDF_set_border_dash().

Anterior | Inicio | Siguiente
PDF_set_border_dash | Subir | PDF_set_char_spacing


PDF_set_char_spacing

(PHP 3>= 3.0.6, PHP 4 )

PDF_set_char_spacing -- Sets character spacing

Description

void pdf_set_char_spacing ( int pdf document, double space)

The PDF_set_char_spacing() function sets the spacing between characters.

See also PDF_set_word_spacing(), PDF_set_leading().

Anterior | Inicio | Siguiente
PDF_set_border_style | Subir | PDF_set_duration


PDF_set_duration

(PHP 3>= 3.0.6, PHP 4 )

PDF_set_duration -- Sets duration between pages

Description

void pdf_set_duration ( int pdf document, double duration)

The PDF_set_duration() function set the duration between following pages in seconds.

See also PDF_set_transition().

Anterior | Inicio | Siguiente
PDF_set_char_spacing | Subir | PDF_set_font


PDF_set_font

(PHP 3>= 3.0.6, PHP 4 )

PDF_set_font -- Selects a font face and size

Description

void pdf_set_font ( int pdf document, string font name, double size, string encoding [, int embed])

The PDF_set_font() function sets the current font face, font size and encoding. If you use pdflib 0.6 you will need to provide the Adobe Font Metrics (afm-files) for the font in the font path (default is ./fonts). If you use php3 or a version of pdflib older than 2.20 the fourth parameter encoding can take the following values: 0 = builtin, 1 = pdfdoc, 2 = macroman, 3 = macexpert, 4 = winansi. An encoding greater than 4 and less than 0 will default to winansi. winansi is often a good choice. If you use php4 and a version of pdflib >= 2.20 the encoding parameter has changed to a string. Use 'winansi', 'builtin', 'host', 'macroman' etc. instead. If the last parameter is set to 1 the font is embedded into the pdf document otherwise it is not. To embed a font is usually a good idea if the font is not widely spread and you cannot ensure that the person watching your document has access on fonts in the document. I font is only embedded once even if you call PDF_set_font() several times.

Nota: This function has to be called after PDF_begin_page() in order to create a valid pdf document.

Nota: If you reference a font in a .upr file make sure the name in the afm file and the font name are the same. Otherwise, the font will be embedded several times (Thanks to Paul Haddon for finding this.)

Anterior | Inicio | Siguiente
PDF_set_duration | Subir | PDF_set_horiz_scaling


PDF_set_horiz_scaling

(PHP 3>= 3.0.6, PHP 4 )

PDF_set_horiz_scaling -- Sets horizontal scaling of text

Description

void pdf_set_horiz_scaling ( int pdf document, double scale)

The PDF_set_horiz_scaling() function sets the horizontal scaling to scale percent.

Anterior | Inicio | Siguiente
PDF_set_font | Subir | pdf_set_info_author


pdf_set_info_author

pdf_set_info_author -- Deprecated: Fills the author field of the document

Description

This function is deprecated, use pdf_set_info() instead.

Anterior | Inicio | Siguiente
PDF_set_horiz_scaling | Subir | pdf_set_info_creator


pdf_set_info_creator

pdf_set_info_creator -- Deprecated: Fills the creator field of the document

Description

This function is deprecated, use pdf_set_info() instead.

Anterior | Inicio | Siguiente
pdf_set_info_author | Subir | pdf_set_info_keywords


pdf_set_info_keywords

pdf_set_info_keywords -- Deprecated: Fills the keywords field of the document

Description

This function is deprecated, use pdf_set_info() instead.

Anterior | Inicio | Siguiente
pdf_set_info_creator | Subir | pdf_set_info_subject


pdf_set_info_subject

pdf_set_info_subject -- Deprecated: Fills the subject field of the document

Description

This function is deprecated, use pdf_set_info() instead.

Anterior | Inicio | Siguiente
pdf_set_info_keywords | Subir | pdf_set_info_title


pdf_set_info_title

pdf_set_info_title -- Deprecated: Fills the title field of the document

Description

This function is deprecated, use pdf_set_info() instead.

Anterior | Inicio | Siguiente
pdf_set_info_subject | Subir | PDF_set_info


PDF_set_info

(PHP 4 >= 4.0.1)

PDF_set_info -- Fills a field of the document information

Description

void pdf_set_info ( int pdf document, string fieldname, string value)

The PDF_set_info() function sets an information field of a pdf document. Possible values for the fieldname are 'Subject', 'Title', 'Creator', 'Author', 'Keywords' and one user-defined name. It can be called before beginning a page.

Ejemplo 1. Setting document information

<?php
$fd = fopen("test.pdf", "w");
$pdfdoc = pdf_open($fd);
pdf_set_info($pdfdoc, "Author", "Uwe Steinmann");
pdf_set_info($pdfdoc, "Creator", "Uwe Steinmann");
pdf_set_info($pdfdoc, "Title", "Testing Info Fields");
pdf_set_info($pdfdoc, "Subject", "Test");
pdf_set_info($pdfdoc, "Keywords", "Test, Fields");
pdf_set_info($pdfdoc, "CustomField", "What ever makes sense");
pdf_begin_page($pdfdoc, 595, 842);
pdf_end_page($pdfdoc);
pdf_close($pdfdoc);
?>

Nota:
     This function replaces PDF_set_info_keywords(),
              PDF_set_info_title(),
              PDF_set_info_subject(),
              PDF_set_info_creator(),
              PDF_set_info_sybject().

Anterior | Inicio | Siguiente
pdf_set_info_title | Subir | PDF_set_leading


PDF_set_leading

(PHP 3>= 3.0.6, PHP 4 )

PDF_set_leading -- Sets distance between text lines

Description

void pdf_set_leading ( int pdf document, double distance)

The PDF_set_leading() function sets the distance between text lines. This will be used if text is output by PDF_continue_text().

See also PDF_continue_text().

Anterior | Inicio | Siguiente
PDF_set_info | Subir | PDF_set_parameter


PDF_set_parameter

(PHP 4 )

PDF_set_parameter -- Sets certain parameters

Description

void pdf_set_parameter ( int pdf document, string name, string value)

The PDF_set_parameter() function sets several parameters of pdflib which are of the type string.

See also PDF_get_value(),
         PDF_set_value(),
         PDF_get_parameter().

Anterior | Inicio | Siguiente
PDF_set_leading | Subir | PDF_set_text_matrix


PDF_set_text_matrix

(PHP 3>= 3.0.6)

PDF_set_text_matrix -- Sets the text matrix

Description

void pdf_set_text_matrix ( int pdf document, array matrix)

The PDF_set_text_matrix() function sets a matrix which describes a transformation applied on the current text font. The matrix has to passed as an array with six elements.

Anterior | Inicio | Siguiente
PDF_set_parameter | Subir | PDF_set_text_pos


PDF_set_text_pos

(PHP 3>= 3.0.6, PHP 4 )

PDF_set_text_pos -- Sets text position

Description

void pdf_set_text_pos ( int pdf document, double x-coor, double y-coor)

The PDF_set_text_pos() function sets the position of text for the next pdf_show() function call.

See also PDF_show(), PDF_show_xy().

Anterior | Inicio | Siguiente
PDF_set_text_matrix | Subir | PDF_set_text_rendering


PDF_set_text_rendering

(PHP 3>= 3.0.6, PHP 4 )

PDF_set_text_rendering -- Determines how text is rendered

Description

void pdf_set_text_rendering ( int pdf document, int mode)

The PDF_set_text_rendering() function determines how text is rendered. The possible values for mode are 0=fill text, 1=stroke text, 2=fill and stroke text, 3=invisible, 4=fill text and add it to cliping path, 5=stroke text and add it to clipping path, 6=fill and stroke text and add it to cliping path, 7=add it to clipping path.

Anterior | Inicio | Siguiente
PDF_set_text_pos | Subir | PDF_set_text_rise


PDF_set_text_rise

(PHP 3>= 3.0.6, PHP 4 )

PDF_set_text_rise -- Sets the text rise

Description

void pdf_set_text_rise ( int pdf document, double rise)

The PDF_set_text_rise() function sets the text rising to rise points.

Anterior | Inicio | Siguiente
PDF_set_text_rendering | Subir | PDF_set_value


PDF_set_value

(PHP 4 >= 4.0.1)

PDF_set_value -- Sets certain numerical value

Description

void pdf_set_value ( int pdf document, string name, double value)

The PDF_set_value() function sets several numerical parameters of pdflib.

See also PDF_get_value(),
         PDF_get_parameter(),
         PDF_set_parameter().

Anterior | Inicio | Siguiente
PDF_set_text_rise | Subir | PDF_set_word_spacing


PDF_set_word_spacing

(PHP 3>= 3.0.6, PHP 4 )

PDF_set_word_spacing -- Sets spacing between words

Description

void pdf_set_word_spacing ( int pdf document, double space)

The PDF_set_word_spacing() function sets the spacing between words.

See also PDF_set_char_spacing(), PDF_set_leading().

Anterior | Inicio | Siguiente
PDF_set_value | Subir | pdf_setcolor


pdf_setcolor

(PHP 4 >= 4.0.5)

pdf_setcolor -- Sets fill and stroke color

Description

bool pdf_setcolor ( resource pdfdoc, string type, string colorspace, float c1 [, float c2 [, float c3 [, float c4]]])

Set the current color space and color. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo. The parameter type can be fill, stroke or both to specify that the color is set for filling, stroking or both filling and stroking. The parameter colorspace can be gray, rgb, cmyk, spot or pattern. The parameters c1, c2, c3 and c4 represent the color components for the color space specified by colorspace. Except as otherwise noted, the color components are floating-point values that range from 0 to 1.

For gray only c1 is used.

For rgb parameters c1, c2, and c3 specify the red, green and blue values respectively.

<?php
// Set fill and stroke colors to white.
pdf_setcolor($pdf, "both", "rgb", 1, 1, 1);
?>

For cmyk, parameters c1, c2, c3, and c4 are the cyan, magenta, yellow and black values, respectively.

<?php
// Set fill and stroke colors to black.
pdf_setcolor($pdf, "both", "cmyk", 0, 0, 0, 1);
?>

For spot, c1 should be a spot color handles returned by pdf_makespotcolor() and c2 is a tint value between 0 and 1.

For pattern, c1 should be a pattern handle returned by pdf_begin_pattern().

Anterior | Inicio | Siguiente
PDF_set_word_spacing | Subir | PDF_setdash


PDF_setdash

(PHP 3>= 3.0.6, PHP 4 )

PDF_setdash -- Sets dash pattern

Description

void pdf_setdash ( int pdf document, double white, double black)

The PDF_setdash() function sets the dash pattern white white points and black black points. If both are 0 a solid line is set.

Anterior | Inicio | Siguiente
pdf_setcolor | Subir | PDF_setflat


PDF_setflat

(PHP 3>= 3.0.6, PHP 4 )

PDF_setflat -- Sets flatness

Description

void pdf_setflat ( int pdf document, double value)

The PDF_setflat() function sets the flatness to a value between 0 and 100.

Anterior | Inicio | Siguiente
PDF_setdash | Subir | pdf_setfont


pdf_setfont

(PHP 4 >= 4.0.5)

pdf_setfont -- Set the current font

Description

bool pdf_setfont ( resource pdfdoc, int font, float size)

Set the current font in the given size, using a font handle returned by pdf_findfont(). Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

See also pdf_findfont().

Anterior | Inicio | Siguiente
PDF_setflat | Subir | PDF_setgray_fill


PDF_setgray_fill

(PHP 3>= 3.0.6, PHP 4 )

PDF_setgray_fill -- Sets filling color to gray value

Description

void pdf_setgray_fill ( int pdf document, double gray value)

The PDF_setgray_fill() function sets the current gray value to fill a path.

See also PDF_setrgbcolor_fill().

Anterior | Inicio | Siguiente
pdf_setfont | Subir | PDF_setgray_stroke


PDF_setgray_stroke

(PHP 3>= 3.0.6, PHP 4 )

PDF_setgray_stroke -- Sets drawing color to gray value

Description

void pdf_setgray_stroke ( int pdf document, double gray value)

The PDF_setgray_stroke() function sets the current drawing color to the given gray value.

See also PDF_setrgbcolor_stroke().

Anterior | Inicio | Siguiente
PDF_setgray_fill | Subir | PDF_setgray


PDF_setgray

(PHP 3>= 3.0.6, PHP 4 )

PDF_setgray -- Sets drawing and filling color to gray value

Description

void pdf_setgray ( int pdf document, double gray value)

The PDF_setgray() function sets the current drawing and filling color to the given gray value.

See also PDF_setrgbcolor_stroke(), PDF_setrgbcolor_fill().

Anterior | Inicio | Siguiente
PDF_setgray_stroke | Subir | PDF_setlinecap


PDF_setlinecap

(PHP 3>= 3.0.6, PHP 4 )

PDF_setlinecap -- Sets linecap parameter

Description

void pdf_setlinecap ( int pdf document, int value)

The PDF_setlinecap() function sets the linecap parameter between a value of 0 and 2.

Anterior | Inicio | Siguiente
PDF_setgray | Subir | PDF_setlinejoin


PDF_setlinejoin

(PHP 3>= 3.0.6, PHP 4 )

PDF_setlinejoin -- Sets linejoin parameter

Description

void pdf_setlinejoin ( int pdf document, long value)

The PDF_setlinejoin() function sets the linejoin parameter between a value of 0 and 2.

Anterior | Inicio | Siguiente
PDF_setlinecap | Subir | PDF_setlinewidth


PDF_setlinewidth

(PHP 3>= 3.0.6, PHP 4 )

PDF_setlinewidth -- Sets line width

Description

void pdf_setlinewidth ( int pdf document, double width)

The PDF_setlinewidth() function sets the line width to width.

Anterior | Inicio | Siguiente
PDF_setlinejoin | Subir | pdf_setmatrix


pdf_setmatrix

(PHP 4 >= 4.0.5)

pdf_setmatrix -- Sets current transformation matrix

Description

bool pdf_setmatrix ( resource pdfdoc, float a, float b, float c, float d, float e, float f)

Explicitly set the current transformation matrix. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Anterior | Inicio | Siguiente
PDF_setlinewidth | Subir | PDF_setmiterlimit


PDF_setmiterlimit

(PHP 3>= 3.0.6, PHP 4 )

PDF_setmiterlimit -- Sets miter limit

Description

void pdf_setmiterlimit ( int pdf document, double value)

The PDF_setmiterlimit() function sets the miter limit to a value greater of equal than 1.

Anterior | Inicio | Siguiente
pdf_setmatrix | Subir | pdf_setpolydash


pdf_setpolydash

pdf_setpolydash -- Deprecated: Sets complicated dash pattern

Description

This function is deprecated, use pdf_setdash() instead.

Anterior | Inicio | Siguiente
PDF_setmiterlimit | Subir | PDF_setrgbcolor_fill


PDF_setrgbcolor_fill

(PHP 3>= 3.0.6, PHP 4 )

PDF_setrgbcolor_fill -- Sets filling color to rgb color value

Description

void pdf_setrgbcolor_fill ( int pdf document, double red value, double green value, double blue value)

The PDF_setrgbcolor_fill() function sets the current rgb color value to fill a path.

See also PDF_setrgbcolor_fill().

Anterior | Inicio | Siguiente
pdf_setpolydash | Subir | PDF_setrgbcolor_stroke


PDF_setrgbcolor_stroke

(PHP 3>= 3.0.6, PHP 4 )

PDF_setrgbcolor_stroke -- Sets drawing color to rgb color value

Description

void pdf_setrgbcolor_stroke ( int pdf document, double red value, double green value, double blue value)

The PDF_setrgbcolor_stroke() function sets the current drawing color to the given rgb color value.

See also PDF_setrgbcolor_stroke().

Anterior | Inicio | Siguiente
PDF_setrgbcolor_fill | Subir | PDF_setrgbcolor


PDF_setrgbcolor

(PHP 3>= 3.0.6, PHP 4 )

PDF_setrgbcolor -- Sets drawing and filling color to rgb color value

Description

void pdf_setrgbcolor ( int pdf document, double red value, double green value, double blue value)

The PDF_setrgbcolor_stroke() function sets the current drawing and filling color to the given rgb color value.

See also PDF_setrgbcolor_stroke(), PDF_setrgbcolor_fill().

Anterior | Inicio | Siguiente
PDF_setrgbcolor_stroke | Subir | PDF_show_boxed


PDF_show_boxed

(PHP 4 )

PDF_show_boxed -- Output text in a box

Description

int pdf_show_boxed ( int pdf document, string text, double x-coor, double y-coor, double width, double height, string mode)

The PDF_show_boxed() function outputs the string text in a box with its lower left position at (x-coor, y-coor). The boxes dimension is height by width. The parameter mode determines how the text is type set. If width and height are zero, the mode can be "left", "right" or "center". If width or height is unequal zero it can also be "justify" and "fulljustify".

Returns the number of characters that could not be processed because they did not fit into the box.

See also PDF_show(), PDF_show_xy().

Anterior | Inicio | Siguiente
PDF_setrgbcolor | Subir | PDF_show_xy


PDF_show_xy

(PHP 3>= 3.0.6, PHP 4 )

PDF_show_xy -- Output text at given position

Description

void pdf_show_xy ( int pdf document, string text, double x-coor, double y-coor)

The PDF_show_xy() function outputs the string text at position (x-coor, y-coor).

See also PDF_show().

Anterior | Inicio | Siguiente
PDF_show_boxed | Subir | PDF_show


PDF_show

(PHP 3>= 3.0.6, PHP 4 )

PDF_show -- Output text at current position

Description

void pdf_show ( int pdf document, string text)

The PDF_show() function outputs the string text at the current position using the current font.

See also PDF_show_xy(),
         PDF_set_text_pos(),
         PDF_set_font().

Anterior | Inicio | Siguiente
PDF_show_xy | Subir | PDF_skew


PDF_skew

(PHP 4 )

PDF_skew -- Skews the coordinate system

Description

void pdf_skew ( int pdf document, double alpha, double beta)

The PDF_skew() function skew the coordinate system by alpha (x) and beta (y) degrees. alpha and beta may not be 90 or 270 degrees.

Anterior | Inicio | Siguiente
PDF_show | Subir | PDF_stringwidth


PDF_stringwidth

(PHP 3>= 3.0.6, PHP 4 )

PDF_stringwidth -- Returns width of text using current font

Description

double pdf_stringwidth ( int pdf document, string text)

The PDF_stringwidth() function returns the width of the string in text by using the current font. It requires a font to be set before with PDF_set_font().

See also PDF_set_font().

Anterior | Inicio | Siguiente
PDF_skew | Subir | PDF_stroke


PDF_stroke

(PHP 3>= 3.0.6, PHP 4 )

PDF_stroke -- Draws line along path

Description

void pdf_stroke ( int pdf document)

The PDF_stroke() function draws a line along current path. The current path is the sum of all line drawing. Without this function the line would not be drawn.

See also PDF_closepath(), PDF_closepath_stroke().

Anterior | Inicio | Siguiente
PDF_stringwidth | Subir | PDF_translate


PDF_translate

(PHP 3>= 3.0.6, PHP 4 )

PDF_translate -- Sets origin of coordinate system

Description

void pdf_translate ( int pdf document, double x-coor, double y-coor)

The PDF_translate() function sets the origin of coordinate system to the point (x-coor, y-coor) relativ the current origin. The following example draws a line from (0, 0) to (200, 200) relative to the initial coordinate system. You have to set the current point after PDF_translate() and before you start drawing more objects.

Ejemplo 1. Translation

<?php PDF_moveto($pdf, 0, 0);
PDF_lineto($pdf, 100, 100);
PDF_stroke($pdf);
PDF_translate($pdf, 100, 100);
PDF_moveto($pdf, 0, 0);
PDF_lineto($pdf, 100, 100);
PDF_stroke($pdf);
?>

Anterior | Inicio | Siguiente
PDF_stroke | Subir | Verisign Payflow Pro functions


Verisign Payflow Pro functions

Manual de PHP
Anterior Siguiente

LXXX. Verisign Payflow Pro functions

This extension allows you to process credit cards and other financial transactions using Verisign Payment Services, formerly known as Signio (http://www.verisign.com/products/payflow/pro/index.html).

These functions are only available if PHP has been compiled with the --with-pfpro[=DIR] option. You will require the appropriate SDK for your platform, which may be downloaded from within the manager interface once you have registered.

Once you have downloaded the SDK you should copy the files from the lib directory of the distribution. Copy the header file pfpro.h to /usr/local/include and the library file libpfpro.so to /usr/local/lib.

When using these functions, you may omit calls to pfpro_init() and pfpro_cleanup() as this extension will do so automatically if required. However the functions are still available in case you are processing a number of transactions and require fine control over the library. You may perform any number of transactions using pfpro_process() between the two.

These functions have been added in PHP 4.0.2.

Nota: These functions only provide a link to Verisign Payment Services. Be sure to read the Payflow Pro Developers Guide for full details of the required parameters.

Tabla de contenidos
pfpro_cleanup -- Shuts down the Payflow Pro library
pfpro_init -- Initialises the Payflow Pro library
pfpro_process_raw -- Process a raw transaction with Payflow Pro
pfpro_process -- Process a transaction with Payflow Pro
pfpro_version -- Returns the version of the Payflow Pro software

Anterior | Inicio | Siguiente
PDF_translate | Subir | pfpro_cleanup


pfpro_cleanup

(PHP 4 >= 4.0.2)

pfpro_cleanup -- Shuts down the Payflow Pro library

Description

void pfpro_cleanup ( void )

pfpro_cleanup() is used to shutdown the Payflow Pro library cleanly. It should be called after you have processed any transactions and before the end of your script. However you may omit this call, in which case this extension will automatically call pfpro_cleanup() after your script terminates.

See also pfpro_init().

Anterior | Inicio | Siguiente
Verisign Payflow Pro functions | Subir | pfpro_init


pfpro_init

(PHP 4 >= 4.0.2)

pfpro_init -- Initialises the Payflow Pro library

Description

void pfpro_init ( void )

pfpro_init() is used to initialise the Payflow Pro library. You may omit this call, in which case this extension will automatically call pfpro_init() before the first transaction.

See also pfpro_cleanup().

Anterior | Inicio | Siguiente
pfpro_cleanup | Subir | pfpro_process_raw


pfpro_process_raw

(PHP 4 >= 4.0.2)

pfpro_process_raw -- Process a raw transaction with Payflow Pro

Description

string pfpro_process_raw ( string parameters [, string address [, int port [, int timeout [, string proxy address [, int proxy port [, string proxy logon [, string proxy password]]]]]]])

Returns: A string containing the response.

pfpro_process_raw() processes a raw transaction string with Payflow Pro. You should really use pfpro_process() instead, as the encoding rules of these transactions are non-standard.

The first parameter in this case is a string containing the raw transaction request. All other parameters are the same as with pfpro_process(). The return value is a string containing the raw response.

Nota: Be sure to read the Payflow Pro Developers Guide for full details of the required parameters and encoding rules. You would be well advised to use pfpro_process() instead.

Ejemplo 1. Payflow Pro raw example

<?php

pfpro_init();

$response = pfpro_process("USER=mylogin&PWD[5]=m&ndy&TRXTYPE=S&TENDER=C&AMT=1.50&ACCT=4111111111111111&EXPDATE=0904");

if (!$response) {
  die("Couldn't establish link to Verisign.\n");
}

echo "Verisign raw response was ".$response;

pfpro_cleanup();

?>

Anterior | Inicio | Siguiente
pfpro_init | Subir | pfpro_process


pfpro_process

(PHP 4 >= 4.0.2)

pfpro_process -- Process a transaction with Payflow Pro

Description

array pfpro_process ( array parameters [, string address [, int port [, int timeout [, string proxy address [, int proxy port [, string proxy logon [, string proxy password]]]]]]])

Returns: An associative array containing the response

pfpro_process() processes a transaction with Payflow Pro. The first parameter is an associative array containing keys and values that will be encoded and passed to the processor.

The second parameter is optional and specifies the host to connect to. By default this is "test.signio.com", so you will certainly want to change this to "connect.signio.com" in order to process live transactions.

The third parameter specifies the port to connect on. It defaults to 443, the standard SSL port.

The fourth parameter specifies the timeout to be used, in seconds. This defaults to 30 seconds. Note that this timeout appears to only begin once a link to the processor has been established and so your script could potentially continue for a very long time in the event of DNS or network problems.

The fifth parameter, if required, specifies the hostname of your SSL proxy. The sixth parameter specifies the port to use.

The seventh and eighth parameters specify the logon identity and password to use on the proxy.

The function returns an associative array of the keys and values in the response.

Nota: Be sure to read the Payflow Pro Developers Guide for full details of the required parameters.

Ejemplo 1. Payflow Pro example

<?php

pfpro_init();

$transaction = array(USER	=> 'mylogin',
             PWD	=> 'mypassword',
             TRXTYPE	=> 'S',
             TENDER	=> 'C',
             AMT	=> 1.50,
             ACCT	=> '4111111111111111',
             EXPDATE	=> '0904'
             );

$response = pfpro_process($transaction);

if (!$response) {
  die("Couldn't establish link to Verisign.\n");
}

echo "Verisign response code was ".$response[RESULT];
echo ", which means: ".$response[RESPMSG]."\n";

echo "\nThe transaction request: ";
print_r($transaction);

echo "\nThe response: ";
print_r($response);

pfpro_cleanup();

?>

Anterior | Inicio | Siguiente
pfpro_process_raw | Subir | pfpro_version


pfpro_version

(PHP 4 >= 4.0.2)

pfpro_version -- Returns the version of the Payflow Pro software

Description

string pfpro_version ( void )

pfpro_version() returns the version string of the Payflow Pro library. At the time of writing, this was L211.

Anterior | Inicio | Siguiente
pfpro_process | Subir | Opciones e Información de PHP


Opciones e Información de PHP

Manual de PHP
Anterior Siguiente

LXXXI. Opciones e Información de PHP

Introducción

Estas funciones le dan la capacidad de obtener una gran cantidad de información sobre PHP mismo, p.ej. configuración de tiempo de ejecución, extensiones cargadas, versiones y mucho más. También encontrará funciones para establecer opciones para su intérprete PHP en ejecución. La que es probablemente la función mejor conocida de PHP - phpinfo() - puede ser encontrada aquí.

Requerimientos

No se necesitan bibliotecas externas para construir esta extensión

Instalación

No se necesita ninguna instalación para usar estas funciones, son parte del núcleo de PHP.

Configuración en tiempo de ejecución

El comportamiento de estas funciones está afectado por los valores definidos en php.ini.

Tabla 1. Opciones de Configuración del sistema de información PHP

Nombre | Predeterminado | Modificable
assert.active | "1" | PHP_INI_ALL
assert.bail | "0" | PHP_INI_ALL
assert.warning | "1" | PHP_INI_ALL
assert.callback | NULL | PHP_INI_ALL
assert.quiet_eval | "0" | PHP_INI_ALL
enable_dl | "1" | PHP_INI_SYSTEM
max_execution_time | "30" | PHP_INI_ALL
magic_quotes_gpc | "1" | PHP_INI_PERDIR|PHP_INI_SYSTEM
magic_quotes_runtime | "0" | PHP_INI_ALL
Para más detalles sobre las constantes PHP_INI_* y su definición, vea ini_set().

A continuación se presenta una corta explicación de las directivas de configuración

assert.active boolean

Habilitar la evaluación assert().

assert.bail boolean

Terminar la ejecución del script cuando las aserciones fallen.

assert.warning boolean

Producir una advertencia PHP para cada aserción fallida.

assert.callback string

Función de usuario a llamar cuando las aserciones fallen.

assert.quiet_eval boolean

Usar el valor actual de error_reporting() durante la evaluación de expresiones asertivas. Si se habilita, no se muestran errores durante la evaluación (implicit error_reporting(0)). Si se deshabilita, los errores son mostrados de acuerdo a los valores de error_reporting().

enable_dl boolean

Esta directiva es útil en realidad únicamente en la versión de módulo de Apache de PHP. Puede habilitar y deshabilitar la carga dinámica de extensiones PHP con dl() para cada servidor virtual o por directorio.

La razón principal para deshabilitar la carga dinámica es la seguridad. Con la carga dinámica, es posible ignorar todas las restricciones open_basedir. El comportamiento predeterminado es permitir la carga dinámica, excepto cuando se usa safe mode. En safe mode, siempre es imposible usar dl().

max_execution_time integer

Este valor define el tiempo máximo en segundos que se le permite correr a un script, antes de que sea detenido por el intérprete. Esto ayuda a prevenir que scripts pobremente escritos congestionen el servidor. El valor predeterminado es 30.

El tiempo máximo de ejecución no es afectado por llamadas del sistema, la función sleep(), etc. Por favor consulte la función set_time_limit() para más detalles.

No puede modificar este parámetro con ini_set() cuando está corriendo bajo safe mode. El único modo de evitar este contratiempo es deshabilitar el modo seguro, o cambiar el tiempo límite en php.ini.

magic_quotes_gpc boolean

Establece el estado de magic_quotes para las operaciones GPC (Get/Post/Cookie). Cuando magic_quotes se encuentra activo, todos los caracteres ' (comilla-simple), " (comilla doble), \ (barra invertida) y NULs son escapados con una barra invertida automáticamente.

Nota: Si la directiva magic_quotes_sybase se encuentra activa también, sobrescribirá completamente el valor de magic_quotes_gpc. Tener ambas directivas activas quiere decir que solo las comillas simples son escapadas como ''. Las comillas dobles, las barras invertidas y NULs permanecerán intactos y sin escapar.

Vea también get_magic_quotes_gpc().

magic_quotes_runtime boolean

Si magic_quotes_runtime está habilitado, la mayoría de funciones que devuelven datos de alguna clase de fuente externa, incluyendo bases de datos y archivos de texto, tendrán las comillas escapadas con barras invertidas. Si magic_quotes_sybase se encuentra habilitado también, una comilla sencilla es escapada con una comilla sencilla en lugar de una barra invertida.

Tipos de recursos

Esta extensión no tiene ningún tipo de recurso definido.

Constantes predefinidas

Las constantes listadas aqui están siempre disponibles a través del "núcleo PHP".

Tabla 2. Constantes predefinidas de phpcredits()

Constante | Valor | Descripción
CREDITS_GROUP | 1 | Una lista de los desarrolladores centrales
CREDITS_GENERAL | 2 | Créditos generales: Diseño y concepto del lenguaje, autores de PHP 4.0 y del módulo SAPI.
CREDITS_SAPI | 4 | Una lista de los módulos API de servidor para PHP, y sus autores.
CREDITS_MODULES | 8 | Una lista de módulos de extensión de PHP, y sus autores.
CREDITS_DOCS | 16 | Los créditos para el equipo de documentación.
CREDITS_FULLPAGE | 32 | Usualmente usado en combinación con las otras banderas. Indica que es necesario imprimir una página HTML independiente que incluya la información indicada por las otras banderas.
CREDITS_QA | 64 | Los créditos para el equipo de revisión de calidad.
CREDITS_ALL | -1 | Todos los créditos, equivalente a usar: CREDITS_DOCS + CREDITS_GENERAL + CREDITS_GROUP + CREDITS_MODULES + CREDITS_QA CREDITS_FULLPAGE. Genera una página HTML independiente completa con las etiquetas apropiadas. Este es el valor predeterminado.

Tabla 3. Constantes phpinfo()

Constante | Valor | Descripción
INFO_GENERAL | 1 | La línea de configuración, ubicación de php.ini, fecha de compilación, Servidor Web, Sistema y más.
INFO_CREDITS | 2 | Créditos PHP 4. Vea también phpcredits().
INFO_CONFIGURATION | 4 | Valores Locales y Maestros actuales de las directivas php. Vea también ini_get().
INFO_MODULES | 8 | Módulos cargados y sus respectivos parámetros.
INFO_ENVIRONMENT | 16 | Información de Variables de Entorno, que también está disponible en $_ENV.
INFO_VARIABLES | 32 | Muestra todas las variables predefinidas de EGPCS (Entorno, GET, POST, Cookie, Servidor).
INFO_LICENSE | 64 | Información de la Licencia PHP. Vea también el faq de licencia.
INFO_ALL | -1 | Muestra todo lo anterior. Este es el valor predeterminado.

ASSERT_ACTIVE (integer)

ASSERT_CALLBACK (integer)

ASSERT_BAIL (integer)

ASSERT_WARNING (integer)

ASSERT_QUIET_EVAL (integer)

Tabla de contenidos
assert_options -- Establecer/obtener las varias banderas de aserción
assert -- Revisa si la aserción es evaluada a FALSE
dl -- Carga una extensión PHP en tiempo de ejecución
extension_loaded -- averigua si una extensión ha sido cargada
get_cfg_var -- Obtiene el valor de una opción de configuración de PHP.
get_current_user -- Obtiene el nombre del propietario del script PHP actual.
get_defined_constants -- Devuelve una matriz asociativa con los nombres de todas las constantes y sus valores
get_extension_funcs -- Devuelve una matriz con los nombres de funciones de un módulo
get_include_path -- Obtiene la opción de configuración include_path actual
get_included_files -- Devuelve una matriz con los nombres de los archivos incluidos o requeridos
get_loaded_extensions -- Devuelve una matriz con los nombres de todos los módulos compilados y cargados
get_magic_quotes_gpc -- Obtiene el valor de la configuración activa actual de las comillas mágicas gpc.
get_magic_quotes_runtime -- Obtiene el valor de la configuración activa actual de magic_quotes_runtime.
get_required_files -- Alias de get_included_files()
getenv -- Obtiene el valor de una variable de entorno
getlastmod -- Recupera la fecha/hora de la última modificación de la página.
getmygid -- Obtener el GID del dueño del script PHP
getmyinode -- Recupera el inodo del script actual.
getmypid -- Obtiene el ID de proceso de PHP.
getmyuid -- Obtiene el UID del propietario del script PHP.
getopt -- Obtiene opciones de la lista de argumentos desde la línea de comandos
getrusage -- Obtiene el consumo actual de recursos.
ini_alter -- Alias de ini_set()
ini_get_all -- Obtiene todas las opciones de configuración
ini_get -- Obtiene el valor de una opción de configuración
ini_restore -- Restablece el valor de una opción de configuración
ini_set -- Establece el valor de una opción de configuración
main -- Página predeterminada para main()
memory_get_usage -- Devuelve la cantidad de memoria ubicada para PHP
php_ini_scanned_files -- Devolver una lista de archivos .ini procesados del directorio ini adicional
php_logo_guid -- Obtiene el guid logo
php_sapi_name -- Devuelve el tipo de interfaz entre el servidor web y PHP
php_uname -- Devuelve información sobre el sistema operativo en el que fue compilado PHP
phpcredits -- Imprime los créditos de PHP
phpinfo -- Recupera gran cantidad de información de PHP.
phpversion -- Obtiene la versión actual de PHP.
putenv -- Establece el valor de una variable de entorno.
restore_include_path -- Restablece el valor de la opción de configuración include_path
set_include_path -- Establece la opción de configuración include_path
set_magic_quotes_runtime -- Establece el valor de la configuración activa actual de magic_quotes_runtime.
set_time_limit -- limita el tiempo máximo de ejecución
version_compare -- Compara dos cadenas de número de versión "PHP-estándar"
zend_logo_guid -- Obtiene el guid zend
zend_version -- Obtiene la versión del motor Zend actual

Anterior | Inicio | Siguiente
pfpro_version | Subir | assert_options


assert_options

(PHP 4 )

assert_options -- Establecer/obtener las varias banderas de aserción

Descripción

mixed assert_options ( int que [, mixed valor])

Mediante el uso de assert_options(), usted puede establecer las varias opciones de control de assert(), o simplemente consultar sus valores actuales.

Tabla 1. Opciones de Assert

opción | parámetro-ini | predeterminado | descripción
ASSERT_ACTIVE | assert.active | 1 | habilitar la evaluación assert()
ASSERT_WARNING | assert.warning | 1 | generar una advertencia PHP para cada aserción fallida
ASSERT_BAIL | assert.bail | 0 | terminar la ejecución cuando las aserciones fallen
ASSERT_QUIET_EVAL | assert.quiet_eval | 0 | deshabilitar error_reporting durante la evaluación de expresiones de aserción
ASSERT_CALLBACK | assert.callback | (NULL) | función de usuario a llamar cuando las aserciones fallen

assert_options() devolverá el valor original de cualquier opción, o FALSE si ocurren fallos.

Anterior | Inicio | Siguiente
Opciones e Información de PHP | Subir | assert


assert

(PHP 4 )

assert -- Revisa si la aserción es evaluada a FALSE

Descripción

int assert ( mixed asercion)

assert() revisará la asercion dada y tomará una acción apropiada si su resultado es FALSE.

Si la asercion es dada como una cadena, ésta será evaluada como código PHP por assert(). Las ventajas de una asercion tipo cadena son menor sobrecarga cuando el chequeo de aserciones se encuentre deshabilitado, y la producción de mensajes que contengan la expresión asercion cuando ésta falle. Esto quiere decir que si pasa una condición booleana como asercion, ésta condición no aparecerá como parámetro de la función de aserción, la cual pudo haber definido con la función assert_options(), la condición es convertida en una cadena antes de llamar tal función gestora, y el valor booleano FALSE es convertido como una cadena vacía.

Las aserciones deben ser usadas como una característica de depuración únicamente. Puede usarlas para realizar chequeos de integridad que prueben condiciones que deberían ser siempre TRUE y que indiquen algunos errores de programación si no se cumplen, o que chequeen por la presencia de ciertas características como las funciones de extensión, o ciertos límites y características de sistema.

Las aserciones no deberían ser usadas para operaciones normales de tiempo de ejecución como chequeos de parámetros de entrada. Como regla de oro, su código debería trabajar correctamente siempre si el chequeo de aserciones no está activado.

El comportamiento de assert() puede ser configurado por assert_options() o mediante los parámetros .ini descritos en su respectiva página del manual.

La función assert_options() o la directiva de configuración ASSERT_CALLBACK permiten el uso de llamadas de retorno para gestionar las aserciones fallidas.

Las llamadas de retorno de assert() son particularmente útiles para productos que prueben procesos automatizados de generación, ya que le permitin capturar fácilmente el código pasado a la aserción, junto con información sobre dónde se creó la aserción. Aunque esta información puede ser capturada mediante otros métodos, ¡el uso de aserciones lo hace mucho más rápido y sencillo!

La llamada de retorno debe aceptar tres argumentos. El primer argumento contendrá el archivo en el que ha fallado la aserción. El segundo argumento contendrá la línea en la que falló la aserción, y el tercer argumento contendrá la expresión que falló (si está disponible - valores literales como 1 o "dos" no serán pasados a través de este argumento).

Ejemplo 1. Gestionar una aserción fallida con una función personalizada

<?php
// Activar las aserciones y hacerlas calladas
assert_options (ASSERT_ACTIVE, 1);
assert_options (ASSERT_WARNING, 0);
assert_options (ASSERT_QUIET_EVAL, 1);

// Crear una funcion gestora
function mi_gestor_de_asercion ($archivo, $linea, $codigo) {
    echo "<hr>Aserci&oacute;n Fallida:
        Archivo '$archivo'<br>
        Linea   '$linea'<br>
        Codigo  '$codigo'<br><hr>";
}

// Configurar la llamada de retorno
assert_options (ASSERT_CALLBACK, 'mi_gestor_de_asercion');

// Crear una aserci&oacute;n que deber&iacute;a fallar
assert ('mysql_query ("")');
?>

Anterior | Inicio | Siguiente
assert_options | Subir | dl


dl

(PHP 3, PHP 4 )

dl -- Carga una extensión PHP en tiempo de ejecución

Descripción

int dl ( string libreria)

Carga la extensión PHP dada por el parámetro libreria. El parámetro libreria es únicamente el nombre de archivo de la extensión a cargar, el cual también depende de su plataforma. Por ejemplo, la extensión sockets (si fue compilada como módulo, ¡que no es el comportamiento predeterminado!) podría llamarse sockets.so en plataformas Unix, mientras que se llama php_sockets.dll en la plataforma windows.

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo. Si la funcionalidad de carga de módulos no está disponible (ver Nota) o ha sido deshabilitada (ya sea mediante la desactivación de enable_dl o activando safe mode en php.ini) un E_ERROR es producido y se detiene la ejecución. Si dl() falla porque la librería especificada no pudo ser cargada, se emite un mensaje E_WARNING en compañía del FALSE.

Use extension_loaded() para probar si una cierta extensión ya se encuentra disponible o no. Esto funciona tanto con extensiones integradas como con las cargadas dinámicamente (ya sea mediante php.ini o dl()).

Ejemplo 1. Ejemplos de dl()

<?php
// Ejemplo de carga de una extension en base al SO
if (!extension_loaded('sqlite')) {
    if (strtoupper(substr(PHP_OS, 0,3) == 'WIN')) {
        dl('php_sqlite.dll');
    } else {
        dl('sqlite.so');
    }
}

// O, usando la constante PHP_SHLIB_SUFFIX que esta disponible a
// partir de PHP 4.3.0
if (!extension_loaded('sqlite')) {
    $prefijo = (PHP_SHLIB_SUFFIX == 'dll') ? 'php_' : '';
    dl($prefijo . 'sqlite.' . PHP_SHLIB_SUFFIX);
}
?>

El directorio desde donde es cargada la extensión depende de su plataforma:

Windows - Si no está definida explícitamente en php.ini, la extensión es cargada desde c:\php4\extensions\ por defecto.

Unix - Si no está definida explícitamente en php.ini, el directorio de extensiones predeterminado depende de

  • si PHP ha sido compilado con --enable-debug o no

  • si PHP ha sido compilado con soporte ZTS (Zend Thread Safety) (experimental) o no

  • el valor interno ZEND_MODULE_API_NO actual (número interno de API de módulo Zend, el cual es básicamente la fecha en la que ocurrié un cambio significativo en la API de módulo, p.ej. 20010901)

Tomando en cuenta lo anterior, el directorio recibe el valor predeterminado de <dir-instalacion>/lib/php/extensions/ <debug-o-no>-<zts-o-no>-ZEND_MODULE_API_NO, p.ej. /usr/local/php/lib/php/extensions/debug-non-zts-20010901 o /usr/local/php/lib/php/extensions/no-debug-zts-20010901.

Nota: La función dl() no es soportada en servidores Web multi-hilos. Use la sentencia extensions en su php.ini cuando trabaje sobre ese tipo de entornos. Sin embargo, ¡las versiones CGI y CLI no son afectadas!

Nota: dl() es sensible a mayúsculas y minúsculas en plataformas Unix.

Vea también Directivas de Carga de Extensión y extension_loaded().

Anterior | Inicio | Siguiente
assert | Subir | extension_loaded


extension_loaded

(PHP 3>= 3.0.10, PHP 4 )

extension_loaded -- averigua si una extensión ha sido cargada

Descripción

bool extension_loaded ( string name)

Devuelve TRUE si la extensión identificada por name (nombre) está cargada. Puede ver el nombre de varias extensiones utilizando phpinfo().

Véase también phpinfo().

Nota: Esta función fue añadida en 3.0.10.

Anterior | Inicio | Siguiente
dl | Subir | get_cfg_var


get_cfg_var

(PHP 3, PHP 4 )

get_cfg_var -- Obtiene el valor de una opción de configuración de PHP.

Descripción

string get_cfg_var ( string varname)

Devuelve el valor actual de una variable de configuración de PHP especificada en varname, o FALSE si ocurre un error.

No devolverá información de la configuracion cuando el PHP fue compilado, o leído desde un fichero de configuración Apache (utilizando las directivas php3_configuration_option directives).

Para comprobar si el sistema está utilizando un fichero de configuración, intente recuperar el valor de cfg_file_path. Si está disponible, se está utilizando un fichero de configuración.

Anterior | Inicio | Siguiente
extension_loaded | Subir | get_current_user


get_current_user

(PHP 3, PHP 4 )

get_current_user -- Obtiene el nombre del propietario del script PHP actual.

Descripción

string get_current_user ( void )

Devuelve el nombre del propietario del script PHP actual.

Véase también getmyuid(),
getmypid(), getmyinode(),
y getlastmod().

Anterior | Inicio | Siguiente
get_cfg_var | Subir | get_defined_constants


get_defined_constants

(PHP 4 >= 4.1.0)

get_defined_constants -- Devuelve una matriz asociativa con los nombres de todas las constantes y sus valores

Descripción

array get_defined_constants ( void )

Esta función devuelve los nombres y valores de todas las constantes definidas actualmente. Esto incluye aquellas creadas por extensiones, asi como aquellas creadas con la función define().

Por ejemplo, la siguiente línea:

<?php
print_r(get_defined_constants());
?>

imprimirá una lista como:

Array
(
    [E_ERROR] => 1
    [E_WARNING] => 2
    [E_PARSE] => 4
    [E_NOTICE] => 8
    [E_CORE_ERROR] => 16
    [E_CORE_WARNING] => 32
    [E_COMPILE_ERROR] => 64
    [E_COMPILE_WARNING] => 128
    [E_USER_ERROR] => 256
    [E_USER_WARNING] => 512
    [E_USER_NOTICE] => 1024
    [E_ALL] => 2047
    [TRUE] => 1
)

Vea también
get_loaded_extensions(),
get_defined_functions(), y
get_defined_vars().

Anterior | Inicio | Siguiente
get_current_user | Subir | get_extension_funcs


get_extension_funcs

(PHP 4 )

get_extension_funcs -- Devuelve una matriz con los nombres de funciones de un módulo

Descripción

array get_extension_funcs ( string nombre_modulo)

Esta función devuelve los nombres de todas las funciones definidas en el módulo indicado por nombre_modulo.

Por ejemplo, las siguientes líneas

<?php
print_r(get_extension_funcs("xml"));
print_r(get_extension_funcs("gd"));
?>

imprimirán una lista de las funciones en los módulos xml y gd respectivamente.

Vea también: get_loaded_extensions()

Anterior | Inicio | Siguiente
get_defined_constants | Subir | get_include_path


get_include_path

(PHP 4 >= 4.3.0)

get_include_path -- Obtiene la opción de configuración include_path actual

Descripción

string get_include_path ( void )

Obtiene el valor actual de la opción de configuración include_path.

Ejemplo 1. Ejemplo de get_include_path()

<?php
// Funciona a partir de PHP 4.3.0
print get_include_path();

// Funciona en todas las versiones de PHP
print ini_get('include_path');
?>

Vea también ini_get(),
restore_include_path(),
set_include_path(), y
include().

Anterior | Inicio | Siguiente
get_extension_funcs | Subir | get_included_files


get_included_files

(PHP 4 )

get_included_files -- Devuelve una matriz con los nombres de los archivos incluidos o requeridos

Descripción

array get_included_files ( void )

Devuelve una matriz de nombres de todos los archivos que han sido incluidos usando include(), include_once(), require() o require_once().

Los archivos que son incluidos o requeridos múltiples veces solo aparecen una vez en la matriz devuelta.

Nota: Los archivos incluidos usando la directiva de configuración auto_prepend_file no se incluyen en la matriz devuelta.

Ejemplo 1. Ejemplo de get_included_files()

<?php

include("test1.php");
include_once("test2.php");
require("test3.php");
require_once("test4.php");

$archivos_incluidos = get_included_files();

foreach($archivos_incluidos as $nombre_archivo) {
    echo "$nombre_archivo\n";
}

?>

generará la siguiente salida:

test1.php
test2.php
test3.php
test4.php

Nota: En PHP 4.0.1pl2 y versiones anteriores, get_included_files() asumía que los archivos requeridos finalizaban en la extensión .php; otras extensiones no serán devueltas. La matriz devuelta por get_included_files() era una matriz asociativa y solo listaba los archivos incluidos por include() y include_once().

Vea también
include(),
include_once(),
require(),
require_once(), y
get_required_files().

Anterior | Inicio | Siguiente
get_include_path | Subir | get_loaded_extensions


get_loaded_extensions

(PHP 4 )

get_loaded_extensions -- Devuelve una matriz con los nombres de todos los módulos compilados y cargados

Descripción

array get_loaded_extensions ( void )

Esta función devuelve los nombres de todos los módulos compilados y cargados en el intérprete PHP.

Por ejemplo, la siguiente línea

<?php
print_r(get_loaded_extensions());
?>

imprimirá una lista como:

Array
(
   [0] => xml
   [1] => wddx
   [2] => standard
   [3] => session
   [4] => posix
   [5] => pgsql
   [6] => pcre
   [7] => gd
   [8] => ftp
   [9] => db
   [10] => calendar
   [11] => bcmath
)

Vea también
get_extension_funcs(),
extension_loaded(),
dl(), y
phpinfo().

Anterior | Inicio | Siguiente
get_included_files | Subir | get_magic_quotes_gpc


get_magic_quotes_gpc

(PHP 3>= 3.0.6, PHP 4 )

get_magic_quotes_gpc -- Obtiene el valor de la configuración activa actual de las comillas mágicas gpc.

Descripción

long get_magic_quotes_gpc ( void )

Devuelve el valor de la configuración activa actual de magic_quotes_gpc. (0 desactivado, 1 activado)

Véase también get_magic_quotes_runtime(), set_magic_quotes_runtime().

Anterior | Inicio | Siguiente
get_loaded_extensions | Subir | get_magic_quotes_runtime


get_magic_quotes_runtime

(PHP 3>= 3.0.6, PHP 4 )

get_magic_quotes_runtime -- Obtiene el valor de la configuración activa actual de magic_quotes_runtime.

Descripción

long get_magic_quotes_runtime ( void )

Devuelve el valor de la configuración activa actual de magic_quotes_runtime. (0 desactivado, 1 activado)

Véase también get_magic_quotes_gpc(), set_magic_quotes_runtime().

Anterior | Inicio | Siguiente
get_magic_quotes_gpc | Subir | get_required_files


get_required_files

get_required_files -- Alias de get_included_files()

Descripción

Esta función es un alias de get_included_files().

Anterior | Inicio | Siguiente
get_magic_quotes_runtime | Subir | getenv


getenv

(PHP 3, PHP 4 )

getenv -- Obtiene el valor de una variable de entorno

Descripción

string getenv ( string varname)

Devuelve el valor de la variable de entorno varname, o FALSE en caso de error.

$ip = getenv("REMOTE_ADDR"); // get the ip number of the user

Puede ver una lista de todas las variables de entorno utilizando phpinfo(). Puede encontrar el significado de la mayoría echando un vistazo en CGI specification (especificación CGI), especialmente en page on environmental variables (página de variables de entorno).

Anterior | Inicio | Siguiente
get_required_files | Subir | getlastmod


getlastmod

(PHP 3, PHP 4 )

getlastmod -- Recupera la fecha/hora de la última modificación de la página.

Descripción

int getlastmod ( void )

Devuelve la fecha/hora de la última modificación de la página actual. El valor devuelto está en formato de fecha/hora Unix, adecuado para que sirva a date(). Devuelve FALSE en caso de error.

Ejemplo 1. ejemplo getlastmod()

// outputs e.g. 'Last modified: March 04 1998 20:43:59.'
echo "Last modified: ".date( "F d Y H:i:s.", getlastmod() );

Véase también date(),
getmyuid(),
get_current_user(),
getmyinode(), y
getmypid().

Anterior | Inicio | Siguiente
getenv | Subir | getmygid


getmygid

(PHP 4 >= 4.1.0)

getmygid -- Obtener el GID del dueño del script PHP

Descripción

int getmygid ( void )

Devuelve el ID de grupo del script actual, o FALSE en caso de fallo.

Vea también getmyuid(),
getmypid(),
get_current_user(),
getmyinode(), y
getlastmod().

Anterior | Inicio | Siguiente
getlastmod | Subir | getmyinode


getmyinode

(PHP 3, PHP 4 )

getmyinode -- Recupera el inodo del script actual.

Descripción

int getmyinode ( void )

Devuelve el inodo del script actual, o FALSE en caso de error.

Véase también getmyuid(),
get_current_user(),
getmypid(), y
getlastmod().

Anterior | Inicio | Siguiente
getmygid | Subir | getmypid


getmypid

(PHP 3, PHP 4 )

getmypid -- Obtiene el ID de proceso de PHP.

Descripción

int getmypid ( void )

Devuelve el ID del proceso PHP actual, o FALSE en caso de error.

Advierta que cuando se ejecuta como un módulo de servidor, diferentes llamadas del script no garantizan que tengan distintos pids.

Véase también getmyuid(),
get_current_user(),
getmyinode(), y
getlastmod().

Anterior | Inicio | Siguiente
getmyinode | Subir | getmyuid


getmyuid

(PHP 3, PHP 4 )

getmyuid -- Obtiene el UID del propietario del script PHP.

Descripción

int getmyuid ( void )

Devuelve el ID de usuario del script actual, o FALSE en caso de error.

Véase también getmypid(),
get_current_user(),
getmyinode(), y
getlastmod().

Anterior | Inicio | Siguiente
getmypid | Subir | getopt


getopt

(PHP 4 >= 4.3.0)

getopt -- Obtiene opciones de la lista de argumentos desde la línea de comandos

Descripción

array getopt ( string opciones)

Devuelve una matriz asociativa con parejas opción / argumento en base al formato de opciones especificado en opciones, o FALSE en caso de fallo.

<?php
// procesar la linea de comandos ($GLOBALS['argv'])
$opciones = getopt("f:hp:");
?>

El parámetro opciones puede contener los siguientes elementos: caracteres individuales, y caracteres seguidos de dos puntos para indicar que sigue un argumento que declara una opción. Por ejemplo, la cadena x reconoce una opción -x, y una cadena x: reconoce una opción y un argumento -x argumento. No importa si un argumento incluye espacio en blanco al comienzo.

Esta función devolverá una matriz de parejas opción / argumento. Si una opción no tiene argumento, el valor será definido a FALSE.

Nota: Esta función no está implementada en plataformas Windows.

Anterior | Inicio | Siguiente
getmyuid | Subir | getrusage


getrusage

(PHP 3>= 3.0.7, PHP 4 )

getrusage -- Obtiene el consumo actual de recursos.

Descripción

array getrusage ( [int who])

Es un interface a getrusage(2). Devuelve un array asociativo que contiene los datos devueltos de la llamada del sistema. Si who (quien) es 1, getrusage debería llamarse con RUSAGE_CHILDREN. Todas las entradas son accesibles utilizando sus nombres de campo documentados.

Ejemplo 1. Ejemplo Getrusage

$dat = getrusage();
echo $dat["ru_nswap"];         # number of swaps
echo $dat["ru_majflt"];        # number of page faults
echo $dat["ru_utime.tv_sec"];  # user time used (seconds)
echo $dat["ru_utime.tv_usec"]; # user time used (microseconds)
Vea la página man de system para más detalles.

Anterior | Inicio | Siguiente
getopt | Subir | ini_alter


ini_alter

ini_alter -- Alias de ini_set()

Descripción

Esta función es un alias de ini_set().

Anterior | Inicio | Siguiente
getrusage | Subir | ini_get_all


ini_get_all

(PHP 4 >= 4.2.0)

ini_get_all -- Obtiene todas las opciones de configuración

Descripción

array ini_get_all ( [string extension])

Devuelve todas las opciones de configuración registradas como una matriz asociativa. Si el parámetro opcional extension está definido, devuelve solo las opciones específicas para esa extensión.

La matriz devuelta usa el nombre de directiva como clave de la matriz, mientras los elementos de esa matriz son global_value (definido en php.ini), local_value (quizás definido con ini_set() o en .htaccess), y access (el nivel de acceso). Vea la sección del manual sobre cambios de configuración para más información sobre qué quieren decir los niveles de acceso.

Nota: Es posible que una directiva tenga múltiples niveles de acceso, razón por la cual access muestra los valores de máscara de bits apropiados.

Ejemplo 1. Un ejemplo de ini_get_all()

<?php
$inis = ini_get_all();

print_r($inis);

/* La salida parcial podria verse como:

Array
(
    [allow_call_time_pass_reference] => Array
    (
        [global_value] => 1
        [local_value] => 1
        [access] => 6
    )
    [allow_url_fopen] => Array
    (
        [global_value] => 1
        [local_value] => 1
        [access] => 7
    )

    ...

)
*/
?>

Vea también: ini_get(),
ini_restore(),
ini_set(),
get_loaded_extensions(), y
phpinfo().

Anterior | Inicio | Siguiente
ini_alter | Subir | ini_get


ini_get

(PHP 4 )

ini_get -- Obtiene el valor de una opción de configuración

Descripción

string ini_get ( string nombre_var)

Devuelve el valor de la opción de configuración en caso de éxito. Si ocurre un fallo, como que se realice una consulta por un valor que no existe, devolverá una cadena vacía.

Cuando se consultan valores booleanos: Un valor ini booleano de off será devuelto como una cadena vacía, mientras que un valor ini booleano de on será devuelto como "1".

Cuando se consultan valores de tamaño de memoria: Muchos valores ini de tamaño de memoria, como upload_max_filesize son almacenados en el archivo php.ini en notación abreviada. ini_get() devolverá la cadena exacta almacenada en el archivo php.ini, NO su valor entero. Usar funciones aritméticas normales sobre éstos valores no tendrían los resultados que de otra forma podrían esperarse.

<?php
/*
Nuestro php.ini contiene los siguientes parametros:

display_errors = On
register_globals = Off
post_max_size = 8M
*/

print 'display_errors = ' . ini_get('display_errors') . "\n";
print 'register_globals = ' . ini_get('register_globals') . "\n";
print 'post_max_size = ' . ini_get('post_max_size') . "\n";
print 'post_max_size+1 = ' . (ini_get('post_max_size')+1) . "\n";

?>

Este script producirá:

display_errors = 1
register_globals = 0
post_max_size = 8M
post_max_size+1 = 9

Vea también
get_cfg_var(),
ini_get_all(),
ini_restore(), y
ini_set().

Anterior | Inicio | Siguiente
ini_get_all | Subir | ini_restore


ini_restore

(PHP 4 )

ini_restore -- Restablece el valor de una opción de configuración

Descripción

string ini_restore ( string nombre_var)

Restablece una opción de configuración dada a su valor original.

Vea también
ini_get(),
ini_get_all(), y
ini_set().

Anterior | Inicio | Siguiente
ini_get | Subir | ini_set


ini_set

(PHP 4 )

ini_set -- Establece el valor de una opción de configuración

Descripción

string ini_set ( string nombre_var, string nuevo_valor)

Establece el valor de la opción de configuración dada. Devuelve el valor antiguo en caso de éxito, FALSE en caso de fallo. La opción de configuración mantendrá este nuevo valor durante la ejecución del script, y será restablecido al final del script.

No todas las opciones disponibles pueden ser modificadas usando ini_set(). A continuación se encuentra una tabla con una lista de todas las opciones PHP (a la altura de PHP 4.2.0), indicando cuáles pueden ser modificadas/definidas y en qué nivel.

Tabla 1. Opciones de configuración

Nombre | Predeterminado | Modificable
com.allow_dcom | "0" | PHP_INI_SYSTEM
com.autoregister_typelib | "0" | PHP_INI_SYSTEM
com.autoregister_verbose | "0" | PHP_INI_SYSTEM
com.autoregister_casesensitive | "1" | PHP_INI_SYSTEM
com.typelib_file | "" | PHP_INI_SYSTEM
crack.default_dictionary | NULL | PHP_INI_SYSTEM
exif.encode_unicode | "ISO-8859-15" | PHP_INI_ALL
exif.decode_unicode_motorola | "UCS-2BE" | PHP_INI_ALL
exif.decode_unicode_intel | "UCS-2LE" | PHP_INI_ALL
exif.encode_jis | "" | PHP_INI_ALL
exif.decode_jis_motorola | "JIS" | PHP_INI_ALL
exif.decode_jis_intel | "JIS" | PHP_INI_ALL
fbsql.allow_persistent | "1" | PHP_INI_SYSTEM
fbsql.generate_warnings | "0" | PHP_INI_SYSTEM
fbsql.autocommit | "1" | PHP_INI_SYSTEM
fbsql.max_persistent | "-1" | PHP_INI_SYSTEM
fbsql.max_links | "128" | PHP_INI_SYSTEM
fbsql.max_connections | "128" | PHP_INI_SYSTEM
fbsql.max_results | "128" | PHP_INI_SYSTEM
fbsql.batchSize | "1000" | PHP_INI_SYSTEM
fbsql.default_host | NULL | PHP_INI_SYSTEM
fbsql.default_user | "_SYSTEM" | PHP_INI_SYSTEM
fbsql.default_password | "" | PHP_INI_SYSTEM
fbsql.default_database | "" | PHP_INI_SYSTEM
fbsql.default_database_password | "" | PHP_INI_SYSTEM
hwapi.allow_persistent | "0" | PHP_INI_SYSTEM
hyperwave.allow_persistent | "0" | PHP_INI_SYSTEM
hyperwave.default_port | "418" | PHP_INI_ALL
iconv.input_encoding | ICONV_INPUT_ENCODING | PHP_INI_ALL
iconv.output_encoding | ICONV_OUTPUT_ENCODING | PHP_INI_ALL
iconv.internal_encoding | ICONV_INTERNAL_ENCODING | PHP_INI_ALL
ifx.allow_persistent | "1" | PHP_INI_SYSTEM
ifx.max_persistent | "-1" | PHP_INI_SYSTEM
ifx.max_links | "-1" | PHP_INI_SYSTEM
ifx.default_host | NULL | PHP_INI_SYSTEM
ifx.default_user | NULL | PHP_INI_SYSTEM
ifx.default_password | NULL | PHP_INI_SYSTEM
ifx.blobinfile | "1" | PHP_INI_ALL
ifx.textasvarchar | "0" | PHP_INI_ALL
ifx.byteasvarchar | "0" | PHP_INI_ALL
ifx.charasvarchar | "0" | PHP_INI_ALL
ifx.nullformat | "0" | PHP_INI_ALL
ingres.allow_persistent | "1" | PHP_INI_SYSTEM
ingres.max_persistent | "-1" | PHP_INI_SYSTEM
ingres.max_links | "-1" | PHP_INI_SYSTEM
ingres.default_database | NULL | PHP_INI_ALL
ingres.default_user | NULL | PHP_INI_ALL
ingres.default_password | NULL | PHP_INI_ALL
ibase.allow_persistent | "1" | PHP_INI_SYSTEM
ibase.max_persistent | "-1" | PHP_INI_SYSTEM
ibase.max_links | "-1" | PHP_INI_SYSTEM
ibase.default_user | NULL | PHP_INI_ALL
ibase.default_password | NULL | PHP_INI_ALL
ibase.timestampformat | "%m/%d/%Y%H:%M:%S" | PHP_INI_ALL
ibase.dateformat | "%m/%d/%Y" | PHP_INI_ALL
ibase.timeformat | "%H:%M:%S" | PHP_INI_ALL
java.class.path | NULL | PHP_INI_ALL
java.home | NULL | PHP_INI_ALL
java.library.path | NULL | PHP_INI_ALL
java.library | JAVALIB | PHP_INI_ALL
java.library | NULL | PHP_INI_ALL
ldap.max_links | "-1" | PHP_INI_SYSTEM
mbstring.detect_order | NULL | PHP_INI_ALL
mbstring.http_input | NULL | PHP_INI_ALL
mbstring.http_output | NULL | PHP_INI_ALL
mbstring.internal_encoding | NULL | PHP_INI_ALL
mbstring.substitute_character | NULL | PHP_INI_ALL
mbstring.func_overload | "0" | PHP_INI_SYSTEM
mcrypt.algorithms_dir | NULL | PHP_INI_ALL
mcrypt.modes_dir | NULL | PHP_INI_ALL
mime_magic.magicfile | "/usr/share/misc/magic.mime" | PHP_INI_SYSTEM
mssql.allow_persistent | "1" | PHP_INI_SYSTEM
mssql.max_persistent | "-1" | PHP_INI_SYSTEM
mssql.max_links | "-1" | PHP_INI_SYSTEM
mssql.max_procs | "25" | PHP_INI_ALL
mssql.min_error_severity | "10" | PHP_INI_ALL
mssql.min_message_severity | "10" | PHP_INI_ALL
mssql.compatability_mode | "0" | PHP_INI_ALL
mssql.connect_timeout | "5" | PHP_INI_ALL
mssql.timeout | "60" | PHP_INI_ALL
mssql.textsize | "-1" | PHP_INI_ALL
mssql.textlimit | "-1" | PHP_INI_ALL
mssql.batchsize | "0" | PHP_INI_ALL
mssql.datetimeconvert | "1" | PHP_INI_ALL
mssql.secure_connection | "0" | PHP_INI_SYSTEM
mysql.allow_persistent | "1" | PHP_INI_SYSTEM
mysql.max_persistent | "-1" | PHP_INI_SYSTEM
mysql.max_links | "-1" | PHP_INI_SYSTEM
mysql.default_host | NULL | PHP_INI_ALL
mysql.default_user | NULL | PHP_INI_ALL
mysql.default_password | NULL | PHP_INI_ALL
mysql.default_port | NULL | PHP_INI_ALL
mysql.default_socket | NULL | PHP_INI_ALL
ncurses.value | "42" | PHP_INI_ALL
ncurses.string | "foobar" | PHP_INI_ALL
odbc.allow_persistent | "1" | PHP_INI_SYSTEM
odbc.max_persistent | "-1" | PHP_INI_SYSTEM
odbc.max_links | "-1" | PHP_INI_SYSTEM
odbc.default_db | NULL | PHP_INI_ALL
odbc.default_user | NULL | PHP_INI_ALL
odbc.default_pw | NULL | PHP_INI_ALL
odbc.defaultlrl | "4096" | PHP_INI_ALL
odbc.defaultbinmode | "1" | PHP_INI_ALL
odbc.check_persistent | "1" | PHP_INI_SYSTEM
pfpro.defaulthost | "test.signio.com" |
pfpro.defaulthost | "test-payflow.verisign.com" |
pfpro.defaultport | "443" | PHP_INI_ALL
pfpro.defaulttimeout | "30" | PHP_INI_ALL
pfpro.proxyaddress | "" | PHP_INI_ALL
pfpro.proxyport | "" | PHP_INI_ALL
pfpro.proxylogon | "" | PHP_INI_ALL
pfpro.proxypassword | "" | PHP_INI_ALL
pgsql.allow_persistent | "1" | PHP_INI_SYSTEM
pgsql.max_persistent | "-1" | PHP_INI_SYSTEM
pgsql.max_links | "-1" | PHP_INI_SYSTEM
pgsql.auto_reset_persistent | "0" | PHP_INI_SYSTEM
pgsql.ignore_notice | "0" | PHP_INI_ALL
pgsql.log_notice | "0" | PHP_INI_ALL
session.save_path | "/tmp" | PHP_INI_ALL
session.name | "PHPSESSID" | PHP_INI_ALL
session.save_handler | "files" | PHP_INI_ALL
session.auto_start | "0" | PHP_INI_ALL
session.gc_probability | "1" | PHP_INI_ALL
session.gc_maxlifetime | "1440" | PHP_INI_ALL
session.serialize_handler | "php" | PHP_INI_ALL
session.cookie_lifetime | "0" | PHP_INI_ALL
session.cookie_path | "/" | PHP_INI_ALL
session.cookie_domain | "" | PHP_INI_ALL
session.cookie_secure | "" | PHP_INI_ALL
session.use_cookies | "1" | PHP_INI_ALL
session.use_only_cookies | "0" | PHP_INI_ALL
session.referer_check | "" | PHP_INI_ALL
session.entropy_file | "" | PHP_INI_ALL
session.entropy_length | "0" | PHP_INI_ALL
session.cache_limiter | "nocache" | PHP_INI_ALL
session.cache_expire | "180" | PHP_INI_ALL
session.use_trans_sid | "0" | PHP_INI_SYSTEM|PHP_INI_PERDIR
session.encode_sources | "globals,track" | PHP_INI_ALL
assert.active | "1" | PHP_INI_ALL
assert.bail | "0" | PHP_INI_ALL
assert.warning | "1" | PHP_INI_ALL
assert.callback | NULL | PHP_INI_ALL
assert.quiet_eval | "0" | PHP_INI_ALL
safe_mode_protected_env_vars | SAFE_MODE_PROTECTED_ENV_VARS | PHP_INI_SYSTEM
safe_mode_allowed_env_vars | SAFE_MODE_ALLOWED_ENV_VARS | PHP_INI_SYSTEM
url_rewriter.tags | "a=href,area=href,frame=src,form=fakeentry" | PHP_INI_ALL
sybct.allow_persistent | "1" | PHP_INI_SYSTEM
sybct.max_persistent | "-1" | PHP_INI_SYSTEM
sybct.max_links | "-1" | PHP_INI_SYSTEM
sybct.min_server_severity | "10" | PHP_INI_ALL
sybct.min_client_severity | "10" | PHP_INI_ALL
sybct.hostname | NULL | PHP_INI_ALL
vpopmail.directory | "" | PHP_INI_ALL
zlib.output_compression | "0" | PHP_INI_SYSTEM|PHP_INI_PERDIR
zlib.output_compression_level | "-1" | PHP_INI_ALL
define_syslog_variables | "0" | PHP_INI_ALL
highlight.bg | HL_BG_COLOR | PHP_INI_ALL
highlight.comment | HL_COMMENT_COLOR | PHP_INI_ALL
highlight.default | HL_DEFAULT_COLOR | PHP_INI_ALL
highlight.html | HL_HTML_COLOR | PHP_INI_ALL
highlight.keyword | HL_KEYWORD_COLOR | PHP_INI_ALL
highlight.string | HL_STRING_COLOR | PHP_INI_ALL
allow_call_time_pass_reference | "1" | PHP_INI_SYSTEM|PHP_INI_PERDIR
asp_tags | "0" | PHP_INI_SYSTEM|PHP_INI_PERDIR
display_errors | "1" | PHP_INI_ALL
display_startup_errors | "0" | PHP_INI_ALL
enable_dl | "1" | PHP_INI_SYSTEM
expose_php | "1" | PHP_INI_SYSTEM
html_errors | "1" | PHP_INI_SYSTEM
xmlrpc_errors | "0" | PHP_INI_SYSTEM
xmlrpc_error_number | "0" | PHP_INI_ALL
ignore_user_abort | "0" | PHP_INI_ALL
implicit_flush | "0" | PHP_INI_PERDIR|PHP_INI_SYSTEM
log_errors | "0" | PHP_INI_ALL
log_errors_max_len | "1024" | PHP_INI_ALL
ignore_repeated_errors | "0" | PHP_INI_ALL
ignore_repeated_source | "0" | PHP_INI_ALL
magic_quotes_gpc | "1" | PHP_INI_PERDIR|PHP_INI_SYSTEM
magic_quotes_runtime | "0" | PHP_INI_ALL
magic_quotes_sybase | "0" | PHP_INI_ALL
output_buffering | "0" | PHP_INI_PERDIR|PHP_INI_SYSTEM
output_handler | NULL | PHP_INI_PERDIR|PHP_INI_SYSTEM
register_argc_argv | "1" | PHP_INI_PERDIR|PHP_INI_SYSTEM
register_globals | "0" | PHP_INI_PERDIR|PHP_INI_SYSTEM
safe_mode | "1" | PHP_INI_SYSTEM
safe_mode | "0" | PHP_INI_SYSTEM
safe_mode_include_dir | NULL | PHP_INI_SYSTEM
safe_mode_gid | "0" | PHP_INI_SYSTEM
short_open_tag | DEFAULT_SHORT_OPEN_TAG | PHP_INI_SYSTEM|PHP_INI_PERDIR
sql.safe_mode | "0" | PHP_INI_SYSTEM
track_errors | "0" | PHP_INI_ALL
y2k_compliance | "0" | PHP_INI_ALL
unserialize_callback_func | NULL | PHP_INI_ALL
arg_separator.output | "&" | PHP_INI_ALL
arg_separator.input | "&" | PHP_INI_SYSTEM|PHP_INI_PERDIR
auto_append_file | NULL | PHP_INI_SYSTEM|PHP_INI_PERDIR
auto_prepend_file | NULL | PHP_INI_SYSTEM|PHP_INI_PERDIR
doc_root | NULL | PHP_INI_SYSTEM
default_charset | SAPI_DEFAULT_CHARSET | PHP_INI_ALL
default_mimetype | SAPI_DEFAULT_MIMETYPE | PHP_INI_ALL
error_log | NULL | PHP_INI_ALL
extension_dir | PHP_EXTENSION_DIR | PHP_INI_SYSTEM
gpc_order | "GPC" | PHP_INI_ALL
include_path | PHP_INCLUDE_PATH | PHP_INI_ALL
max_execution_time | "30" | PHP_INI_ALL
open_basedir | NULL | PHP_INI_SYSTEM
safe_mode_exec_dir | "1" | PHP_INI_SYSTEM
upload_max_filesize | "2M" | PHP_INI_SYSTEM
file_uploads | "1" | PHP_INI_SYSTEM
post_max_size | "8M" | PHP_INI_SYSTEM
upload_tmp_dir | NULL | PHP_INI_SYSTEM
user_dir | NULL | PHP_INI_SYSTEM
variables_order | NULL | PHP_INI_ALL
error_append_string | NULL | PHP_INI_ALL
error_prepend_string | NULL | PHP_INI_ALL
SMTP | "localhost" | PHP_INI_ALL
smtp_port | 25 | PHP_INI_ALL
browscap | NULL | PHP_INI_SYSTEM
error_reporting | NULL | PHP_INI_ALL
memory_limit | "8M" | PHP_INI_ALL
precision | "14" | PHP_INI_ALL
sendmail_from | NULL | PHP_INI_ALL
sendmail_path | DEFAULT_SENDMAIL_PATH | PHP_INI_SYSTEM
disable_functions | "" | PHP_INI_SYSTEM
allow_url_fopen | "1" | PHP_INI_ALL
always_populate_raw_post_data | "0" | PHP_INI_ALL
xbithack | "0" | PHP_INI_ALL
engine | "1" | PHP_INI_ALL
last_modified | "0" | PHP_INI_ALL
child_terminate | "0" | PHP_INI_ALL
async_send | "0" | PHP_INI_ALL

Tabla 2. Definición de las constantes PHP_INI_*

Constante | Valor | Significado
PHP_INI_USER | 1 | La entrada puede ser definida en scripts de usuario
PHP_INI_PERDIR | 2 | La entrada puede definirse en php.ini, .htaccess o httpd.conf
PHP_INI_SYSTEM | 4 | La entrada puede definirse en php.ini o httpd.conf
PHP_INI_ALL | 7 | La entrada puede definirse en cualquier parte

Vea también: get_cfg_var(),
ini_get(),
ini_get_all(), y
ini_restore()

Anterior | Inicio | Siguiente
ini_restore | Subir | main


main

main -- Página predeterminada para main()

Descripción

No existe una función llamada main(), excepto en el código fuente de PHP. En PHP 4.3.0, un nuevo tipo de gestión de errores en las fuentes de PHP (php_error_docref) fue añadido. Una característica es la de proveer enlaces a la página del manual en los mensajes de error de PHP cuando las directivas PHP html_errors (habilitada por defecto) y docref_root (habilitada por defecto hasta PHP 4.3.2) están definidas.

Algunas veces los mensajes de error se refieren a una página del manual para la función main(), razón por la que existe esta página. Por favor agregue un comentario de usuario a continuación que mencione qué función de PHP causó el error que enlazaba con main() y ésta será arreglada y documentada apropiadamente.

Tabla 1. Errores conocidos que apuntan a main()

Nombre de función | Ya no apunta hacia aquí a partir de
include() | 4.3.2
include_once() | 4.3.2
require() | 4.3.2
require_once() | 4.3.2

Vea también html_errors y display_errors.

Anterior | Inicio | Siguiente
ini_set | Subir | memory_get_usage


memory_get_usage

(PHP 4 >= 4.3.2)

memory_get_usage -- Devuelve la cantidad de memoria ubicada para PHP

Descripción

int memory_get_usage ( void )

Devuelve la cantidad de memoria, en bytes, que está siendo ubicada actualmente para su script PHP.

memory_get_usage() se encontrará definida únicamente si su instalación de PHP es compilada con la opción de configuración --enable-memory-limit.

Ejemplo 1. Un ejemplo de memory_get_usage()

<?php
// Este es solo un ejemplo, los numeros presentados seran diferentes
// dependiendo de su sistema

echo memory_get_usage() . "\n"; // 36640

$a = str_repeat("Hola.", 4242);

echo memory_get_usage() . "\n"; // 57960

unset($a);

echo memory_get_usage() . "\n"; // 36744

?>

Vea también memory_limit.

Anterior | Inicio | Siguiente
main | Subir | php_ini_scanned_files


php_ini_scanned_files

(PHP 4 >= 4.3.0)

php_ini_scanned_files -- Devolver una lista de archivos .ini procesados del directorio ini adicional

Descripción

string php_ini_scanned_files ( void )

php_ini_scanned_files() devuelve una lista separada por comas de archivos de configuración procesados después de php.ini. Estos archivos se encuentran en un directorio definido por la opción --with-config-file-scan-dir, la cual es definida durante la compilación.

Devuelve una cadena, separada por comas, de archivos .ini en caso de éxito. Si la directiva --with-config-files-scan-dir no fue definida, se devuelve FALSE. Si la opción estaba definida y el directorio estaba vacío, se devuelve una cadena vacía. Si un archivo es irreconocible, éste aun será incluido en la cadena devuelta, pero también se producirá un error de PHP. Este error de PHP será visto tanto en tiempo de compilación como cuando se usa php_ini_scanned_files().

Los archivos de configuración devueltos también incluyen la ruta, tal y como fuera sido declarada en la directiva --with-config-file-scan-dir. Asimismo, cada coma es seguida por una nueva línea.

Ejemplo 1. Un ejemplo simple para listar los archivos ini devueltos

<?php
if ($lista_archivos = php_ini_scanned_files()) {
    if (strlen($lista_archivos) > 0) {
        $archivos = explode(',', $lista_archivos);

        foreach ($archivos as $archivo) {
            echo "<li>" . trim($archivo) . "</li>\n";
        }
    }
}
?>

Vea también ini_set() y phpinfo().

Anterior | Inicio | Siguiente
memory_get_usage | Subir | php_logo_guid


php_logo_guid

(PHP 4 )

php_logo_guid -- Obtiene el guid logo

Descripción

string php_logo_guid ( void )

Nota: Esta funcionalidad fue añadida en PHP4 Beta 4.

Anterior | Inicio | Siguiente
php_ini_scanned_files | Subir | php_sapi_name


php_sapi_name

(PHP 4 >= 4.0.1)

php_sapi_name -- Devuelve el tipo de interfaz entre el servidor web y PHP

Descripción

string php_sapi_name ( void )

php_sapi_name() devuelve una cadena en minúsculas que describe el tipo de interfaz entre el servidor web y PHP (API de Servidor, SAPI). En PHP CGI, esta cadena es "cgi", en mod_php para Apache, esta cadena es "apache" y así sucesivamente.

Ejemplo 1. Ejemplo de php_sapi_name()

<?php
$tipo_sapi = php_sapi_name();
if ($tipo_sapi == "cgi")
    print "Est&aacute; usando PHP CGI\n";
else
    print "No est&aacute; usando PHP CGI\n";
?>

Anterior | Inicio | Siguiente
php_logo_guid | Subir | php_uname


php_uname

(PHP 4 >= 4.0.2)

php_uname -- Devuelve información sobre el sistema operativo en el que fue compilado PHP

Descripción

string php_uname ( void )

php_uname() devuelve un valor string con una descripción del sistema operativo en el que PHP fue compilado. Si desea simplemente el nombre del sistema operativo, considere el uso de la constante PHP_OS.

Ejemplo 1. Algunos ejemplos de php_uname()

<?php
echo php_uname();
echo PHP_OS;

/* Algunas posibles salidas:
Linux localhost 2.4.21-0.13mdk #1 Fri Mar 14 15:08:06 EST 2003 i686
Linux

FreeBSD localhost 3.2-RELEASE #15: Mon Dec 17 08:46:02 GMT 2001
FreeBSD

Windows NT XN1 5.1 build 2600
WINNT
*/

if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
    echo '&iexcl;Este es un servidor usando Windows!';
} else {
    echo '&iexcl;Este es un servidor que no usa Windows!';
}

?>

También existen algunas constantes de PHP predefinidas relacionadas que podrían resultar útiles, por ejemplo:

Ejemplo 2. Algunos ejemplos de constantes relacionadas con el SO

<?php
// *nix
echo DIRECTORY_SEPARATOR; // :
echo PHP_SHLIB_SUFFIX;    // so

// Win*
echo DIRECTORY_SEPARATOR; // ;
echo PHP_SHLIB_SUFFIX;    // dll
?>

Vea también phpversion(),
php_sapi_name(), y
phpinfo().

Anterior | Inicio | Siguiente
php_sapi_name | Subir | phpcredits


phpcredits

(PHP 4 )

phpcredits -- Imprime los créditos de PHP

Descripción

void phpcredits ( [int bandera])

Esta función imprime los créditos que listan los desarrolladores de PHP, los módulos, etc. Genera los códigos HTML apropiados para insertar la información en una página. bandera es opcional, y su valor predeterminado es CREDITS_ALL. Para generar una página de créditos personalizada, puede que quiera usar el parámetro bandera. Por ejemplo, para imprimir los créditos generales, usará algo así en alguna parte de su código:

<?php
phpcredits(CREDITS_GENERAL);
?>

Y si desea imprimir la lista de desarrolladores centrales y del grupo de documentación, en una página independiente, debe usar:

<?php
phpcredits(CREDITS_GROUP + CREDITS_DOCS + CREDITS_FULLPAGE);
?>

Y si desea embeber todos los créditos en su página, entonces algo como lo siguiente logrará el cometido:

<html>
 <head>
  <title>Mi p&aacute;gina de cr&eacute;ditos</title>
 </head>
 <body>
  <?php
 // algo de codigo suyo
 phpcredits(CREDITS_ALL);
 // mas codigo
 ?>
 </body>
</html>

Tabla 1. Banderas de phpcredits() predefinidas

nombre | descripción
CREDITS_ALL | Todos los créditos, equivalente a usar: CREDITS_DOCS + CREDITS_GENERAL + CREDITS_GROUP + CREDITS_MODULES + CREDITS_FULLPAGE. Genera una página HTML completa e independiente con las etiquetas apropiadas.
CREDITS_DOCS | Los créditos para el equipo de documentación
CREDITS_FULLPAGE | Usualmente usada en conjunto con las otras banderas. Indica que es necesario imprimir una página HTML completa e independiente, incluyendo la información indicada por las otras banderas.
CREDITS_GENERAL | Créditos generales: Diseño y concepto del lenguaje, autores de PHP 4.0 y módulo SAPI.
CREDITS_GROUP | Una lista de los desarrolladores centrales
CREDITS_MODULES | Una lista de los módulos de extensión para PHP, y sus autores
CREDITS_SAPI | Una lista de módulos API de servidor para PHP, y sus autores

Vea también phpinfo(),
phpversion() y
php_logo_guid().

Anterior | Inicio | Siguiente
php_uname | Subir | phpinfo


phpinfo

(PHP 3, PHP 4 )

phpinfo -- Recupera gran cantidad de información de PHP.

Descripción

int phpinfo ( void )

Obtiene gran cantidad de información sobre el estado actual de PHP. Esto incluye información sobre las opciones de compilación y extensiones de PHP, la versión PHP, información y entorno del servidor (si está compilado como un módulo), el entorno PHP, información sobre la versión del SO, rutas, opciones de configuración maestras y locales, cabeceras HTTP, y la Licencia Pública GNU.

Véase también phpversion().

Anterior | Inicio | Siguiente
phpcredits | Subir | phpversion


phpversion

(PHP 3, PHP 4 )

phpversion -- Obtiene la versión actual de PHP.

Descripción

string phpversion ( void )

Devuelve una cadena de carácteres que contiene la versión del parser PHP que está ejecutándose actualmente.

Ejemplo 1. ejemplo phpversion()

// prints e.g. 'Current PHP version: 3.0rel-dev'
echo "Current PHP version: ".phpversion();

Véase también phpinfo().

Anterior | Inicio | Siguiente
phpinfo | Subir | putenv


putenv

(PHP 3, PHP 4 )

putenv -- Establece el valor de una variable de entorno.

Descripción

void putenv ( string setting)

Añade setting (valor) al entorno.

Ejemplo 1. Establecer una Variable de Entorno

putenv("UNIQID=$uniqid");

Anterior | Inicio | Siguiente
phpversion | Subir | restore_include_path


restore_include_path

(PHP 4 >= 4.3.0)

restore_include_path -- Restablece el valor de la opción de configuración include_path

Descripción

void restore_include_path ( void )

Restablece la opción de configuración include_path de vuelta a su valor maestro original, tal y como se encuentre definido en php.ini

Ejemplo 1. Ejemplo de restore_include_path()

<?php

print get_include_path();  // .:/usr/local/lib/php

set_include_path('/inc');

print get_include_path();  // /inc

// Funciona a partir de PHP 4.3.0
restore_include_path();

// Funciona en todas las versiones de PHP
ini_restore('include_path');

print get_include_path();  // .:/usr/local/lib/php

?>

Vea también ini_restore(),
set_include_path(),
get_include_path(), e
include().

Anterior | Inicio | Siguiente
putenv | Subir | set_include_path


set_include_path

(PHP 4 >= 4.3.0)

set_include_path -- Establece la opción de configuración include_path

Descripción

string set_include_path ( string nueva_ruta_inclusion)

Establece la opción de configuración include_path durante la duración del script. Devuelve el valor antiguo de include_path en caso de éxito, o FALSE en caso de fallo.

Ejemplo 1. Ejemplo de set_include_path()

<?php
// Funciona a partir de PHP 4.3.0
set_include_path('/inc');

// Funciona en todas las versiones de PHP
ini_set('include_path', '/inc');
?>

Vea también ini_set(),
get_include_path(),
restore_include_path(), e
include().

Anterior | Inicio | Siguiente
restore_include_path | Subir | set_magic_quotes_runtime


set_magic_quotes_runtime

(PHP 3>= 3.0.6, PHP 4 )

set_magic_quotes_runtime -- Establece el valor de la configuración activa actual de magic_quotes_runtime.

Descripción

long set_magic_quotes_runtime ( int new_setting)

Establece el valor de la configuración activa actual de magic_quotes_runtime. (0 desactivado, 1 activado)

Véase también get_magic_quotes_gpc(), get_magic_quotes_runtime().

Anterior | Inicio | Siguiente
set_include_path | Subir | set_time_limit


set_time_limit

(PHP 3, PHP 4 )

set_time_limit -- limita el tiempo máximo de ejecución

Descripción

void set_time_limit ( int seconds)

Establece el número de segundos que se le permite a un script ejecutarse. Si éste es alcanzado, el script devuelve un error de tipo fatal. El límite por defecto es 30 segundos o, si existe, el valor max_execution_time definido en el fichero de configuración. Si seconds (segundos) se establece a cero, no se impone ningún límite.

Cuando se llama, set_time_limit() reinicia el contador del timeout a cero. En otras palabras, si el timeout es el de por defecto de 30 segundos, y después de 25 segundos de ejecución del script se realiza una llamada set_time_limit(20), el script se ejecutará durante un total de 45 segundos antes de alcanzar su límite.

Advierta que set_time_limit() no tiene efecto cuando PHP se ejecuta en modo seguro (safe mode). No hay otra opción que que desactivar el modo seguro o cambiar el límite de tiempo en el fichero de configuración.

Anterior | Inicio | Siguiente
set_magic_quotes_runtime | Subir | version_compare


version_compare

(PHP 4 >= 4.1.0)

version_compare -- Compara dos cadenas de número de versión "PHP-estándar"

Descripción

int version_compare ( string version1, string version2 [, string operador])

version_compare() compara dos cadenas de número de versión "PHP-estandarizadas". Esto es útil si quisiera escribir programas que trabajen solo en algunas versiones de PHP.

version_compare() devuelve -1 si la primera versión es inferior a la segunda, 0 si son iguales, y +1 si la segunda es menor.

La función comienza por reemplazar _, - y + con un punto . en las cadenas de versión, y también inserta puntos . antes y después de cualquier secuencia no numérica, de modo que por ejemplo '4.3.2RC1' se convierte en '4.3.2.RC.1'. Luego separa los resultados como si se usara explode('.',$ver). Luego compara las partes de izquierda a derecha. Si una parte contiene cadenas de versión especiales, éstas son gestionadas en el siguiente orden: dev < alpha = a < beta = b < RC < pl. De este modo, no solo las versiones con diferentes niveles, como '4.1' y '4.1.2' pueden ser comparadas, sino que también cualquier versión específica de PHP que contenga un indicador de estado de desarrollo.

Si especifica el tercer argumento opcional operador, puede realizar pruebas por una relación en particular. Los operadores posibles son: <, lt, <=, le, >, gt, >=, ge, ==, =, eq, !=, <>, ne respectivamente. Mediante el uso de este argumento, la función devolverá 1 si la relación es la especificada por el operador, o 0 de lo contrario.

Ejemplo 1. Ejemplo de version_compare()

<?php
// imprime -1
echo version_compare("4.0.4", "4.0.6");

// todos estos casos imprimen 1
echo version_compare("4.0.4", "4.0.6", "<");
echo version_compare("4.0.6", "4.0.6", "eq");
?>

Anterior | Inicio | Siguiente
set_time_limit | Subir | zend_logo_guid


zend_logo_guid

(PHP 4 )

zend_logo_guid -- Obtiene el guid zend

Descripción

string zend_logo_guid ( void )

Nota: Esta funcionalidad fue añadida en PHP4 Beta 4.

Anterior | Inicio | Siguiente
version_compare | Subir | zend_version


zend_version

(PHP 4 )

zend_version -- Obtiene la versión del motor Zend actual

Descripción

string zend_version ( void )

Devuelve una cadena que contiene la versión del Motor Zend ejecutándose actualmente.

Ejemplo 1. Ejemplo de zend_version()

<?php
// imprime p.ej. 'Version del motor Zend: 1.0.4'
echo "Version del motor Zend: " . zend_version();
?>

Vea también phpinfo(),
phpcredits(),
php_logo_guid(), y
phpversion().

Anterior | Inicio | Siguiente
zend_logo_guid | Subir | Funciones POSIX


Funciones POSIX

Manual de PHP
Anterior Siguiente

LXXXII. Funciones POSIX

Este módulo contiene una interfaz a aquellas funciones definidas en el documento estandar IEEE 1003.1 (POSIX.1) que no son accesibles de otra manera. POSIX.1 por ejemplo definió las funciones open(),read(), write() y close(), las cuales han sido parte de PHP durante mucho tiempo.Algunas funciones específicas del sistema no habian estado disponibles antes, aunque con este módulo se intenta remediar esto ofreciendo un acceso fácil a esas funciones.

Tabla de contenidos
posix_ctermid -- Recoge el nombre de ruta de la terminal de control
posix_get_last_error -- Recuperar el número de error establecido por la última función posix que ha fallado.
posix_getcwd -- Nombre de ruta del directorio actual
posix_getegid -- Devuelve el ID de grupo efectivo del proceso actual
posix_geteuid -- Devuelve el ID de usuario efectivo del proceso actual
posix_getgid -- Devuelve el ID de grupo real del proceso actual
posix_getgrgid -- Devuelve información sobre un grupo a trave del id de grupo
posix_getgrnam -- Devuelve información sobre un grupo a traves del nombre
posix_getgroups -- Devuelve el conjunto de grupos del proceso actual
posix_getlogin -- Devuelve el nombre de usuario
posix_getpgid -- Recoge el id del grupo de procesos para el control de trabajo
posix_getpgrp -- Devuelve el identificador de grupo del proceso actual
posix_getpid -- Devuelve el identificador del proceso actual
posix_getppid -- Devuelve el identificador del proceso padre
posix_getpwnam -- Devuelve información sobre un usuario a traves del nombre de usuario
posix_getpwuid -- Devuelve información sobre un usuario a traves de su id
posix_getrlimit -- Devuelve información sobre los limites de recursos del sistema
posix_getsid -- Consigue el sid actual del proceso
posix_getuid -- Devuelve el ID de usuario real del proceso actual
posix_isatty -- Determina si un descriptor de fichero esta en una terminal interactiva
posix_kill -- Manda una señal a un proceso
posix_mkfifo -- Crea un fichero especial fifo (los llamados pipe o tuberias)
posix_setegid -- Establecer el GID efectivo del proceso actual
posix_seteuid -- Establecer el UID efectivo del proceso actual
posix_setgid -- Asigna el GID efectivo del proceso actual
posix_setpgid -- Asigna el id de grupo de procesos para el control de trabajos
posix_setsid -- Convierte el proceso actual en lider de sesión
posix_setuid -- Asigna el UID efectivo del proceso actual
posix_strerror -- Recuperar el mensaje de error del sistema asociado con el errno dado.
posix_times -- Recoge el tiempo de los procesos
posix_ttyname -- Determina el nombre del dispositivo terminal
posix_uname -- Consigue el nombre del sistema

Anterior | Inicio | Siguiente
zend_version | Subir | posix_ctermid


posix_ctermid

(PHP 3>= 3.0.13, PHP 4 )

posix_ctermid -- Recoge el nombre de ruta de la terminal de control

Descripción

string posix_ctermid ( void )

Necesita ser escrito.

Anterior | Inicio | Siguiente
Funciones POSIX | Subir | posix_get_last_error


posix_get_last_error

(PHP 4 >= 4.2.0)

posix_get_last_error -- Recuperar el número de error establecido por la última función posix que ha fallado.

Descripción

int posix_get_last_error ( void )

Devuelve el errno (número de error) establecido por la última función posix que falló. Si no existe error, el valor 0 es devuelto. Si desea contar con el mensaje de error del sistema asociado con el errno, utilice posix_strerror().

Vea también posix_strerror().

Anterior | Inicio | Siguiente
posix_ctermid | Subir | posix_getcwd


posix_getcwd

(PHP 3>= 3.0.13, PHP 4 )

posix_getcwd -- Nombre de ruta del directorio actual

Descripción

string posix_getcwd ( void )

Necesita ser escrito cuanto antes.

Anterior | Inicio | Siguiente
posix_get_last_error | Subir | posix_getegid


posix_getegid

(PHP 3>= 3.0.10, PHP 4 )

posix_getegid -- Devuelve el ID de grupo efectivo del proceso actual

Descripción

int posix_getegid ( void )

Devuelve el valor numérico ID de grupo efectivo del proceso actual. Vea también posix_getgrgid() para información sobre como convertir este número en un nombre de grupo manejable.

Anterior | Inicio | Siguiente
posix_getcwd | Subir | posix_geteuid


posix_geteuid

(PHP 3>= 3.0.10, PHP 4 )

posix_geteuid -- Devuelve el ID de usuario efectivo del proceso actual

Descripción

int posix_geteuid ( void )

Devuelve el valor numérico ID de usuario efectivo del proceso actual. Vea también posix_getpwuid() para información sobre como convertir este número en un nombre de usuario manejable.

Anterior | Inicio | Siguiente
posix_getegid | Subir | posix_getgid


posix_getgid

(PHP 3>= 3.0.10, PHP 4 )

posix_getgid -- Devuelve el ID de grupo real del proceso actual

Descripción

int posix_getgid ( void )

Devuelve el valor númerico ID de grupo real del proceso actual. Vea también posix_getgrgid() para información sobre como convertir esto en un nombre de grupo manejable.

Anterior | Inicio | Siguiente
posix_geteuid | Subir | posix_getgrgid


posix_getgrgid

(PHP 3>= 3.0.13, PHP 4 )

posix_getgrgid -- Devuelve información sobre un grupo a trave del id de grupo

Descripción

array posix_getgrgid ( int gid)

Necesita ser escrito.

Anterior | Inicio | Siguiente
posix_getgid | Subir | posix_getgrnam


posix_getgrnam

(PHP 3>= 3.0.13, PHP 4 )

posix_getgrnam -- Devuelve información sobre un grupo a traves del nombre

Descripción

array posix_getgrnam ( string name)

Necesita ser escrito.

Anterior | Inicio | Siguiente
posix_getgrgid | Subir | posix_getgroups


posix_getgroups

(PHP 3>= 3.0.10, PHP 4 )

posix_getgroups -- Devuelve el conjunto de grupos del proceso actual

Descripción

array posix_getgroups ( void )

Devuelve un vector de enteros que contiene los ids numéricos de grupo de el conjunto de grupos del proceso actual. Vea también posix_getgrgid() para información sobre como convertir esto en nombres de grupo manejables.

Anterior | Inicio | Siguiente
posix_getgrnam | Subir | posix_getlogin


posix_getlogin

(PHP 3>= 3.0.13, PHP 4 )

posix_getlogin -- Devuelve el nombre de usuario

Descripción

string posix_getlogin ( void )

Devuelve el nombre de usuario (login) que es dueño del proceso actual. Vea posix_getpwnam() para información sobre como conseguir mas datos de este usuario.

Anterior | Inicio | Siguiente
posix_getgroups | Subir | posix_getpgid


posix_getpgid

(PHP 3>= 3.0.10, PHP 4 )

posix_getpgid -- Recoge el id del grupo de procesos para el control de trabajo

Descripción

int posix_getpgid ( int pid)

Devuelve el identificador de grupo de procesos del proceso pid.

Esta no es una función POSIX, pero es normal en sistemas BSD y System V. Si su sistema no soporta esta función a nivel de sistema, esta función PHP devolverá siempre FALSE.

Anterior | Inicio | Siguiente
posix_getlogin | Subir | posix_getpgrp


posix_getpgrp

(PHP 3>= 3.0.10, PHP 4 )

posix_getpgrp -- Devuelve el identificador de grupo del proceso actual

Descripción

int posix_getpgrp ( void )

Devuelve el identificador de grupo de proceso del proceso actual. Vea POSIX.1 y la página de manual getpgrp(2) de su sistema POSIX para más información de grupos de procesos.

Anterior | Inicio | Siguiente
posix_getpgid | Subir | posix_getpid


posix_getpid

(PHP 3>= 3.0.10, PHP 4 )

posix_getpid -- Devuelve el identificador del proceso actual

Descripción

int posix_getpid ( void )

Devuelve el identificador de proceso del proceso actual.

Anterior | Inicio | Siguiente
posix_getpgrp | Subir | posix_getppid


posix_getppid

(PHP 3>= 3.0.10, PHP 4 )

posix_getppid -- Devuelve el identificador del proceso padre

Descripción

int posix_getppid ( void )

Devuelve el identificador de proceso del proceso padre del proceso actual.

Anterior | Inicio | Siguiente
posix_getpid | Subir | posix_getpwnam


posix_getpwnam

(PHP 3>= 3.0.13, PHP 4 )

posix_getpwnam -- Devuelve información sobre un usuario a traves del nombre de usuario

Description

array posix_getpwnam ( string username)

Devuelve un vector asociativo conteniendo información sobre un usuario referenciado por un nombre alfanumérico, pasado a la función en el parametro username.

Los elementos del vector devuelto son:

Tabla 1. El vector de información de usuario

Elemento | Descripción
name | El elemento name contiene el nombre de usuario del usuario. Este es un nombre, normalmente menor de 16 caracteres, que no es su nombre completo, pero identifica al usario. Este debe ser el mismo que el parámetro username usado en la llamada a la función y por lo tanto es redundante.
passwd | El elemento passwd contiene la contraseña del usuario en un formato encriptado. Normalmente, por ejemplo en un sistema que este utilizando contraseñas "shadow", devolverá un asterisco.
uid | El ID de usuario del usuario en formato numérico.
gid | El ID de grupo del usuario. Utiliza la función posix_getgrgid() para resolver el nombre del grupo y una lista de sus miembros.
gecos | GECOS es un término obsoleto que se refiere al campo apuntado de información en un sistema de procesamiento batch Honeywell. El campo y sus contenidos han sido formalizado por POSIX y contiene una lista separada por comas con el nombre completo del usuario, teléfono del trabajo, número de oficina y télefono de casa. En muchos sistemas solo está disponible el nombre completo del usuario.
dir | Este elemento contiene la ruta absoluta al directorio del usuario (directorio home).
shell | El elemento shell contiene la ruta absoluta al ejecutable del shell por defecto del usuario.

Anterior | Inicio | Siguiente
posix_getppid | Subir | posix_getpwuid


posix_getpwuid

(PHP 3>= 3.0.13, PHP 4 )

posix_getpwuid -- Devuelve información sobre un usuario a traves de su id

Descripción

array posix_getpwuid ( int uid)

Devuelve un vector asociativo que contiene información sobre un usuario referenciado con un ID de usuario, pasado por el parámetro uid.

Los elementos del array son:

Tabla 1. El vector de información del usuario

Elemento | Descripción
name | El elemento name contiene el nombre de usuario del usuario. Este es un nombre, normalmente menor de 16 caracteres, que no es su verdadero nombre.
passwd | El elemento passwd contiene la contraseña del usuario en un formato encriptado. Normalmente, por ejemplo en un sistema con contraseñas "shadow", devolverá un asterisco.
uid | ID del usuario, debe ser el mismo que el parametro uid usado en la llamada a la función, y por lo tanto redundante.
gid | El ID del grupo del usuario. Utiliza la función posix_getgrgid() para resolver el nombre del grupo y una lista de sus miembros.
gecos | GECOS es un término obsoleto que se refiere al campo apuntado de de información en un sistema de procesamiento batch Honeywell. El campo y sus contenidos han sido formalizados por POSIX y contiene una lista separada por comas con el nombre completo del usuario, teléfono del trabajo, número de oficina y teléfono de casa. En muchos sistemas solo está disponible el nombre completo del usuario.
dir | Este elemento contiene la ruta absoluta al directorio del usuario (directorio home).
shell | El elemento shell contiene la ruta absoluta al ejecutable del shell por defecto del usuario.

Anterior | Inicio | Siguiente
posix_getpwnam | Subir | posix_getrlimit


posix_getrlimit

(PHP 3>= 3.0.10, PHP 4 )

posix_getrlimit -- Devuelve información sobre los limites de recursos del sistema

Descripción

array posix_getrlimit ( void )

Necesita ser escrita tan pronto como sea posible.

Anterior | Inicio | Siguiente
posix_getpwuid | Subir | posix_getsid


posix_getsid

(PHP 3>= 3.0.10, PHP 4 )

posix_getsid -- Consigue el sid actual del proceso

Descripción

int posix_getsid ( int pid)

Devuelve el sid del proceso pid. Si pid es 0, se devolverá el sid del proceso actual.

Esta no es una función POSIX, pero es normal en sistemas System V. Si su sistema no soporta esta función a nivel de sistema, esta función PHP devolverá siempre FALSE.

Anterior | Inicio | Siguiente
posix_getrlimit | Subir | posix_getuid


posix_getuid

(PHP 3>= 3.0.10, PHP 4 )

posix_getuid -- Devuelve el ID de usuario real del proceso actual

Descripción

int posix_getuid ( void )

Devuelve el valor numerico ID de usuario real del proceso actual. Vea también posix_getpwuid() para información sobre como convertir este ID en un nombre de usuario manejable.

Anterior | Inicio | Siguiente
posix_getsid | Subir | posix_isatty


posix_isatty

(PHP 3>= 3.0.13, PHP 4 )

posix_isatty -- Determina si un descriptor de fichero esta en una terminal interactiva

Descripción

bool posix_isatty ( int fd)

Necesita ser escrito.

Anterior | Inicio | Siguiente
posix_getuid | Subir | posix_kill


posix_kill

(PHP 3>= 3.0.13, PHP 4 )

posix_kill -- Manda una señal a un proceso

Descripción

bool posix_kill ( int pid, int sig)

Manda la señal sig al proceso con el identificador de proceso pid. Devuelve FALSE, si no puede enviar la señal.Si sí la envia devuelve TRUE .

Vea también la página de manual kill(2) de su sistema POSIX, la cual contiene información adicional sobre los identificadores de proceso negativos, el pid especial 0, el pid especial -1, y la señal numero 0.

Anterior | Inicio | Siguiente
posix_isatty | Subir | posix_mkfifo


posix_mkfifo

(PHP 3>= 3.0.13, PHP 4 )

posix_mkfifo -- Crea un fichero especial fifo (los llamados pipe o tuberias)

Descripción

bool posix_getcwd ( string pathname, int mode)

Necesita ser escrito lo más pronto posible.

Anterior | Inicio | Siguiente
posix_kill | Subir | posix_setegid


posix_setegid

(PHP 4 >= 4.0.2)

posix_setegid -- Establecer el GID efectivo del proceso actual

Descripción

bool posix_setegid ( int gid)

Establece el ID de grupo efectivo del proceso actual. Esta es una función privilegiada y usted necesita los permisos apropiados (usualmente root) en su sistema para contar con la capacidad de ejecutar esta función.

Devuelve TRUE en caso de éxito, o FALSE de lo contrario.

Anterior | Inicio | Siguiente
posix_mkfifo | Subir | posix_seteuid


posix_seteuid

(PHP 4 >= 4.0.2)

posix_seteuid -- Establecer el UID efectivo del proceso actual

Descripción

bool posix_seteuid ( int uid)

Establece el ID de usuario real del proceso actual. Esta es una función privilegiada y usted necesita los permisos apropiados (usualmente root) en su sistema para tener la capacidad de ejecutar esta función.

Devuelve TRUE en caso de éxito, o FALSE de lo contrario. Vea también posix_setgid().

Anterior | Inicio | Siguiente
posix_setegid | Subir | posix_setgid


posix_setgid

(PHP 3>= 3.0.13, PHP 4 )

posix_setgid -- Asigna el GID efectivo del proceso actual

Descripción

bool posix_setgid ( int gid)

Asigna el ID de grupo real del proceso actual. Esta es una función privilegiada y necesitas los privilegion apropiados (normalmente root) en tu sistema para realizar esta función. El orden apropiado de llamada es posix_setgid() primero, posix_setuid() después.

Devuelve TRUE si tiene éxito, FALSE en caso contrario.

Anterior | Inicio | Siguiente
posix_seteuid | Subir | posix_setpgid


posix_setpgid

(PHP 3>= 3.0.13, PHP 4 )

posix_setpgid -- Asigna el id de grupo de procesos para el control de trabajos

Descripción

int posix_setpgid ( int pid, int pgid)

Inserta el proceso pid en el grupo de procesos pgid. Vea POSIX.1 y la página de manual setsid(2) de su sistema POSIX para más información sobre grupos de procesos y control de trabajo. Devuelve TRUE si tiene éxito y FALSE en caso contrario.

Anterior | Inicio | Siguiente
posix_setgid | Subir | posix_setsid


posix_setsid

(PHP 3>= 3.0.13, PHP 4 )

posix_setsid -- Convierte el proceso actual en lider de sesión

Descripción

int posix_setsid ( void )

Convierte el proceso actual en lider de sesión. Vea POSIX.1 y la página de manual setsid(2) en su sistema POSIX para más informacion en grupos de proceso y control de trabajos. Devuelve el id de sesión.

Anterior | Inicio | Siguiente
posix_setpgid | Subir | posix_setuid


posix_setuid

(PHP 3>= 3.0.13, PHP 4 )

posix_setuid -- Asigna el UID efectivo del proceso actual

Descripción

bool posix_setuid ( int uid)

Asigna el ID de usuario real al proceso actual. Esta es una función privilegiada y necesitas los privilegios apropiados (normalmente root) en tu sistema para realizar esta función.

Devuelve TRUE si tiene exito, FALSE en caso contrario. Vea también posix_setgid().

Anterior | Inicio | Siguiente
posix_setsid | Subir | posix_strerror


posix_strerror

(PHP 4 >= 4.2.0)

posix_strerror -- Recuperar el mensaje de error del sistema asociado con el errno dado.

Descripción

string posix_strerror ( int errno)

Devuelve el mensaje de error del sistema POSIX asociado con el errno dado. Si errno es 0, entonces la cadena "Success" es devuelta. La función posix_get_last_error() es usada para recuperar el último errno POSIX.

Vea también posix_get_last_error().

Anterior | Inicio | Siguiente
posix_setuid | Subir | posix_times


posix_times

(PHP 3>= 3.0.13, PHP 4 )

posix_times -- Recoge el tiempo de los procesos

Descripción

array posix_times ( void )

Devuelve un hash de cadenas con información sobre el uso de CPU del proceso actual. Los índices del hash son

  • ticks - el numero de ticks de reloj que han pasado desde el reinicio.

  • utime - tiempo de usuario usado por el proceso actual.

  • stime - tiempo de sistema usado por el proceso actual.

  • cutime - tiempo de usuario usado por el proceso actual e hijos.

  • cstime - tiempo de sistema usado por el proceso actual e hijos.

Anterior | Inicio | Siguiente
posix_strerror | Subir | posix_ttyname


posix_ttyname

(PHP 3>= 3.0.13, PHP 4 )

posix_ttyname -- Determina el nombre del dispositivo terminal

Descripción

string posix_ttyname ( int fd)

Necesita ser escrito.

Anterior | Inicio | Siguiente
posix_times | Subir | posix_uname


posix_uname

(PHP 3>= 3.0.10, PHP 4 )

posix_uname -- Consigue el nombre del sistema

Descripción

array posix_uname ( void )

Devuelve un hash de cadenas con información sobre el sistema. Los índices del hash son

  • sysname - nombre del sistema operativo (e.g. Linux)

  • nodename - nombre del sistema (e.g. valiant)

  • release - release del sistema operativo (e.g. 2.2.10)

  • version - versión del sistema operativo (e.g. #4 Tue Jul 20 17:01:36 MEST 1999)

  • machine - arquitectura del sistema (e.g. i586)

Posix requiere que usted no debe hacer ninguna suposición sobre el formato de los valores, por ejemplo usted no puede confiar en los tres dígitos de la version o cualquier cosa devuelta por esta función.

Anterior | Inicio | Siguiente
posix_ttyname | Subir | Funciones de PostgreSQL


Funciones de PostgreSQL

Manual de PHP
Anterior Siguiente

LXXXIII. Funciones de PostgreSQL

Postgres, desarrollado originalmente en el UC Berkeley Computer Science Department, ha sido pionero en muchos de los conceptos relacionales/orientados a objeto que ahora están empezando a estar disponibles en algunas bases de datos comperciales. Tiene soporte de lenguaje SQL92/SQL3, integridad transaccional, y extensibilidad de tipos. PostgreSQL es un descendiente de dominio público, más concretamente open source, del código original de Berkeley.

PostgreSQL se encuentra disponible sin coste alguno. La versión actual la tienes a tu disposición en www.PostgreSQL.org.

Desde la versión 6.3 (02/03/1998) PostgreSQL usa sockets tipo Unix. Abajo se da una tabla con las diferentes posibilidades. El socket se encuentra en el ficheero /tmp/.s.PGSQL.5432. Esta opción se controla mediante el flag '-i' del postmaster y cuando se incluye significa "escuchar sockets TCP/IP además de los de dominio Unix" ya que si no se le dice nada solo escucha sockets tipo Unix.

Tabla 1. Postmaster y PHP

Postmaster | PHP | Estado
postmaster & | pg_connect("", "", "", "", "dbname"); | OK
postmaster -i & | pg_connect("", "", "", "", "dbname"); | OK
postmaster & | pg_connect("localhost", "", "", "", "dbname"); | Unable to connect to PostgreSQL server: connectDB() failed: Is the postmaster running and accepting TCP/IP (with -i) connection at 'localhost' on port '5432'? in /path/to/file.php3 on line 20. (Imposible conectar al servidor PostgreSQL, la llamada connectDB() ha fallado: ¿Está funcionando el postmaster aceptando conextiones TCP/IP (con -i) en 'localhost' en el puerto '5432'? en /path/to/file.php3 en linea 20.
postmaster -i & | pg_connect("localhost", "", "", "", "dbname"); | OK

Uno puede establecer una conexión con el siguiente comando:

Para usar el interface de objetos grandes (large object o lo), es necesario encapsularlo en un bloque de transacción. Un bloque de transacción empieza con un begin y si la transacción fue valida termina con commit y end. Si la transacción falla debe ser cerrada con abort y rollback.

Ejemplo 1. Usando Objetos Grandes (lo)

<?php
$database = pg_Connect ("", "", "", "", "jacarta");
pg_exec ($database, "begin");
    $oid = pg_locreate ($database);
    echo ("$oid\n");
    $handle = pg_loopen ($database, $oid, "w");
    echo ("$handle\n");
    pg_lowrite ($handle, "gaga");
    pg_loclose ($handle);
pg_exec ($database, "commit")
pg_exec ($database, "end")
?>

Tabla de contenidos
pg_affected_rows -- Returns number of affected records (tuples)
pg_cancel_query -- Cancel asynchronous query
pg_client_encoding -- Gets the client encoding
pg_Close -- Cierra una conexión PostgreSQL
pg_Connect -- Abre una conexión
pg_connection_busy -- Get connection is busy or not
pg_connection_reset -- Reset connection (reconnect)
pg_connection_status -- Get connection status
pg_convert -- Convert associative array value into suitable for SQL statement.
pg_copy_from -- Insert records into a table from an array
pg_copy_to -- Copy a table to an array
pg_DBname -- Nombre de la base de datos
pg_delete -- Deletes records.
pg_end_copy -- Sync with PostgreSQL backend
pg_escape_bytea -- Escape binary for bytea type
pg_escape_string -- Escape string for text/char type
pg_fetch_all -- Fetches all rows from a result as an array
pg_Fetch_Array -- obtiene una fila en la forma de un array
pg_fetch_assoc -- Fetch a row as an associative array
pg_Fetch_Object -- obtener una fila en forma de objeto
pg_fetch_result -- Returns values from a result resource
pg_Fetch_Row -- obtiene la fila como un array enumerado
pg_field_is_null -- Test if a field is NULL
pg_field_name -- Returns the name of a field
pg_field_num -- Returns the field number of the named field
pg_field_prtlen -- Returns the printed length
pg_field_size -- Returns the internal storage size of the named field
pg_field_type -- Returns the type name for the corresponding field number
pg_free_result -- Free result memory
pg_get_notify -- Ping database connection
pg_get_pid -- Ping database connection
pg_get_result -- Get asynchronous query result
pg_Host -- Devuelve el nombre del host
pg_insert -- Insert array into table.
pg_last_error -- Get the last error message string of a connection
pg_last_notice -- Returns the last notice message from PostgreSQL server
pg_last_oid -- Returns the last object's oid
pg_lo_close -- Close a large object
pg_lo_create -- Create a large object
pg_lo_export -- Export a large object to file
pg_lo_import -- Import a large object from file
pg_lo_open -- Open a large object
pg_lo_read_all -- Reads an entire large object and send straight to browser
pg_lo_read -- Read a large object
pg_lo_seek -- Seeks position of large object
pg_lo_tell -- Returns current position of large object
pg_lo_unlink -- Delete a large object
pg_lo_write -- Write a large object
pg_meta_data -- Get meta data for table.
pg_num_fields -- Returns the number of fields
pg_num_rows -- Returns the number of rows
pg_Options -- Devuelve opciones
pg_pConnect -- Crea una conexión persistente con una base de datos
pg_ping -- Ping database connection
pg_Port -- Devuelve el número de puerto
pg_put_line -- Send a NULL-terminated string to PostgreSQL backend
pg_query -- Execute a query
pg_result_error -- Get error message associated with result
pg_result_seek -- Set internal row offset in result resource
pg_result_status -- Get status of query result
pg_select -- Select records.
pg_send_query -- Sends asynchronous query
pg_set_client_encoding -- Set the client encoding
pg_trace -- Enable tracing a PostgreSQL connection
pg_tty -- Devuelve el nombre del tty
pg_unescape_bytea -- Unescape binary for bytea type
pg_untrace -- Disable tracing of a PostgreSQL connection
pg_update -- Update table.

Anterior | Inicio | Siguiente
posix_uname | Subir | pg_affected_rows


pg_affected_rows

(PHP 4 >= 4.2.0)

pg_affected_rows -- Returns number of affected records (tuples)

Description

int pg_affected_rows ( resource result)

pg_affected_rows() returns the number of tuples (instances/records/rows) affected by INSERT, UPDATE, and DELETE queries executed by pg_query(). If no tuple is affected by this function, it will return 0.

Ejemplo 1. pg_affected_rows() example

<?php
     $result = pg_query($conn, "INSERT INTO authors VALUES ('Orwell', 2002, 'Animal Farm')");
     $cmdtuples = pg_affected_rows($result);
     echo $cmdtuples . " tuples are affected.\n";
?>

Nota: This function used to be called pg_cmdtuples().

See also pg_query() and pg_num_rows().

Anterior | Inicio | Siguiente
Funciones de PostgreSQL | Subir | pg_cancel_query


pg_cancel_query

(PHP 4 >= 4.2.0)

pg_cancel_query -- Cancel asynchronous query

Description

bool pg_cancel_query ( resource connection)

pg_cancel_query() cancel asynchronous query sent by pg_send_query(). You cannot cancel query executed by pg_query().

See also pg_send_query() and pg_connection_busy().

Anterior | Inicio | Siguiente
pg_affected_rows | Subir | pg_client_encoding


pg_client_encoding

(PHP 3 CVS only, PHP 4 >= 4.0.3)

pg_client_encoding -- Gets the client encoding

Description

string pg_client_encoding ( [resource connection])

pg_client_encoding() returns the client encoding as the string. The returned string should be either : SQL_ASCII, EUC_JP, EUC_CN, EUC_KR, EUC_TW, UNICODE, MULE_INTERNAL, LATINX (X=1...9), KOI8, WIN, ALT, SJIS, BIG5, WIN1250.

Nota: This function requires PHP-4.0.3 or higher and PostgreSQL-7.0 or higher. If libpq is compiled without multibyte encoding support, pg_set_client_encoding() always return "SQL_ASCII". Supported encoding depends on PostgreSQL version. Refer to PostgreSQL manual for details to enable multibyte support and encoding supported.

The function used to be called pg_clientencoding().

See also pg_set_client_encoding().

Anterior | Inicio | Siguiente
pg_cancel_query | Subir | pg_Close


pg_Close

(PHP 3, PHP 4 )

pg_Close -- Cierra una conexión PostgreSQL

Descripción

bool pg_close ( int connection)

Devuelve FALSE si connection no es un indice de conexión valido y TRUE en cualquier otro caso. Cierra la conexión a la base de datos PostgreSQL asociada con el indice de conexión pasado como parámetro.

Anterior | Inicio | Siguiente
pg_client_encoding | Subir | pg_Connect


pg_Connect

(PHP 3, PHP 4 )

pg_Connect -- Abre una conexión

Descripción

int pg_connect ( string host, string port, string options, string tty, string dbname)

Devuelve un índice de conexión en caso de éxito, o falso si la conexión no se puede realizar. Esta función abre una conexión a una base de datos PostgreSQL. Cada uno de los argumentos debe ser una cadena entrecomillada, incluyendo el número de puerto. Los parámetros options y tty son opcionales y pueden ser omitidos. Esta función devuelve un índice de conexión que se necesitará para otras funciones PostgreSQL. Puedes tener multiples conexiones abiertas al mismo tiempo.

Una conexión también se puede establecer con el siguiente comando: $conn = pg_connect("dbname=marliese port=5432"); Otros parámetros aparte de dbname y port son host, tty, options, user y password.

Ver también pg_pConnect().

Anterior | Inicio | Siguiente
pg_Close | Subir | pg_connection_busy


pg_connection_busy

(PHP 4 >= 4.2.0)

pg_connection_busy -- Get connection is busy or not

Description

bool pg_connection_busy ( resource connection)

pg_connection_busy() returns TRUE if the connection is busy. If it is busy, a previous query is still executing. If pg_get_result() is called, it will be blocked.

Ejemplo 1. pg_connection_busy() example

<?php
    $dbconn = pg_connect("dbname=publisher") or die("Could not connect");
    $bs = pg_connection_busy($dbconn);
    if ($bs) {
        echo 'connection is busy';
    }
    else {
       echo 'connection is not busy';
    }
?>

See also pg_connection_status() and pg_get_result().

Anterior | Inicio | Siguiente
pg_Connect | Subir | pg_connection_reset


pg_connection_reset

(PHP 4 >= 4.2.0)

pg_connection_reset -- Reset connection (reconnect)

Description

bool pg_connection_reset ( resource connection)

pg_connection_reset() resets the connection. It is useful for error recovery. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Ejemplo 1. pg_connection_reset() example

<?php
    $dbconn = pg_connect("dbname=publisher") or die("Could not connect");
    $dbconn2 = pg_connection_reset($dbconn);
    if ($dbconn2) {
        echo "reset successful\n";
    }
    else {
        echo "reset failed\n";
    }
?>

See also pg_connect(),
pg_pconnect() and
pg_connection_status().

Anterior | Inicio | Siguiente
pg_connection_busy | Subir | pg_connection_status


pg_connection_status

(PHP 4 >= 4.2.0)

pg_connection_status -- Get connection status

Description

int pg_connection_status ( resource connection)

pg_connection_status() returns a connection status. Possible statuses are PGSQL_CONNECTION_OK and PGSQL_CONNECTION_BAD. The return value 0 as integer indicates a valid connection.

Ejemplo 1. pg_connection_status() example

<?php
    $dbconn = pg_connect("dbname=publisher") or die("Could not connect");
    $stat = pg_connection_status($dbconn);
    if ($stat === 0) {
        echo 'Connection status ok';
    } else {
        echo 'Connection status bad';
    }
?>

See also pg_connection_busy().

Anterior | Inicio | Siguiente
pg_connection_reset | Subir | pg_convert


pg_convert

(PHP 4 >= 4.3.0)

pg_convert -- Convert associative array value into suitable for SQL statement.

Description

array pg_convert ( resource connection, string table_name, array assoc_array [, int options])

pg_convert() checks and converts the values in assoc_array into suitable values for use in a SQL statement. Precondition for pg_convert() is the existence of a table table_name which has at least as many columns as assoc_array has elements. The fieldnames as well as the fieldvalues in table_name must match the indices and values of assoc_array. Returns an array with the converted values on success, FALSE otherwise.

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

See also pg_meta_data().

Anterior | Inicio | Siguiente
pg_connection_status | Subir | pg_copy_from


pg_copy_from

(PHP 4 >= 4.2.0)

pg_copy_from -- Insert records into a table from an array

Description

bool pg_copy_from ( resource connection, string table_name, array rows [, string delimiter [, string null_as]])

pg_copy_from() insert records into a table from rows. It issues COPY FROM SQL command internally to insert records. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

See also pg_copy_to().

Anterior | Inicio | Siguiente
pg_convert | Subir | pg_copy_to


pg_copy_to

(PHP 4 >= 4.2.0)

pg_copy_to -- Copy a table to an array

Description

array pg_copy_to ( resource connection, string table_name [, string delimiter [, string null_as]])

pg_copy_to() copies a table to an array. It issues COPY TO SQL command internally to insert records. The resulting array is returned. It returns FALSE on failure.

See also pg_copy_from().

Anterior | Inicio | Siguiente
pg_copy_from | Subir | pg_DBname


pg_DBname

(PHP 3, PHP 4 )

pg_DBname -- Nombre de la base de datos

Descripción

string pg_dbname ( int connection)

Devuelve el nombre de la base de datos a la cual es el índice de conexión con PostgreSQL está conectado, o FALSE si connection no es un índice de conexión válido.

Anterior | Inicio | Siguiente
pg_copy_to | Subir | pg_delete


pg_delete

(PHP 4 >= 4.3.0)

pg_delete -- Deletes records.

Description

mixed pg_delete ( resource connection, string table_name, array assoc_array [, int options])

pg_delete() deletes record condition specified by assoc_array which has field=>value. If option is specified, pg_convert() is applied to assoc_array with specified option.

Ejemplo 1. pg_delete() example

<?php
    $db = pg_connect('dbname=foo');
    // This is safe, since $_POST is converted automatically
    $res = pg_delete($db, 'post_log', $_POST);
    if ($res) {
        echo "POST data is deleted: $res\n";
    }
    else {
        echo "User must have sent wrong inputs\n";
    }
?>

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

See also pg_convert().

Anterior | Inicio | Siguiente
pg_DBname | Subir | pg_end_copy


pg_end_copy

(PHP 4 >= 4.0.3)

pg_end_copy -- Sync with PostgreSQL backend

Description

bool pg_end_copy ( [resource connection])

pg_end_copy() syncs the PostgreSQL frontend (usually a web server process) with the PostgreSQL server after doing a copy operation performed by pg_put_line(). pg_end_copy() must be issued, otherwise the PostgreSQL server may get out of sync with the frontend and will report an error. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

For further details and an example, see also pg_put_line().

Anterior | Inicio | Siguiente
pg_delete | Subir | pg_escape_bytea


pg_escape_bytea

(PHP 4 >= 4.2.0)

pg_escape_bytea -- Escape binary for bytea type

Description

string pg_escape_bytea ( string data)

pg_escape_bytea() escapes string for bytea datatype. It returns escaped string.

Nota: When you SELECT bytea type, PostgreSQL returns octal byte value prefixed by \ (e.g. \032). Users are supposed to convert back to binary format by yourself.

This function requires PostgreSQL 7.2 or later. With PostgreSQL 7.2.0 and 7.2.1, bytea type must be casted when you enable multi-byte support. i.e. INSERT INTO test_table (image) VALUES ('$image_escaped'::bytea); PostgreSQL 7.2.2 or later does not need cast. Exception is when client and backend character encoding does not match, there may be multi-byte stream error. User must cast to bytea to avoid this error.

See also pg_unescape_bytea() and pg_escape_string().

Anterior | Inicio | Siguiente
pg_end_copy | Subir | pg_escape_string


pg_escape_string

(PHP 4 >= 4.2.0)

pg_escape_string -- Escape string for text/char type

Description

string pg_escape_string ( string data)

pg_escape_string() escapes string for text/char datatype. It returns escaped string for PostgreSQL. Use of this function is recommended instead of addslashes().

Nota: This function requires PostgreSQL 7.2 or later.

See also pg_escape_bytea()

Anterior | Inicio | Siguiente
pg_escape_bytea | Subir | pg_fetch_all


pg_fetch_all

(PHP 4 >= 4.3.0)

pg_fetch_all -- Fetches all rows from a result as an array

Description

array pg_fetch_all ( resource result)

pg_fetch_all() returns an array that contains all rows (tuples/records) in result resource. It returns FALSE, if there are no rows.

Ejemplo 1. PostgreSQL fetch all

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
    echo "An error occured.\n";
    exit;
}

$result = pg_query($conn, "SELECT * FROM authors");
if (!$result) {
    echo "An error occured.\n";
    exit;
}

$arr = pg_fetch_all($result);

var_dump($arr);

?>

See also pg_fetch_row(),
pg_fetch_array(),
pg_fetch_object() and
pg_fetch_result().

Anterior | Inicio | Siguiente
pg_escape_string | Subir | pg_Fetch_Array


pg_Fetch_Array

(PHP 3>= 3.0.1, PHP 4 )

pg_Fetch_Array -- obtiene una fila en la forma de un array

Descripción

array pg_fetch_array ( int result, int row [, int result_type])

Devuelve: Un array que se corresponde con la fila obtenida, o FALSE si no hay más filas.

pg_fetch_array() es una versión extendida de pg_fetch_row(). Además de almacenar los datos en los índices numericos del array resultante, también almacena los datos usando índices asociativos, empleando para ello el nombre del campo como la llave o índice.

El tercer parámetro opcional result_type en pg_fetch_array() es una constante y puede tomar cualquiera de los siguientes valores: PGSQL_ASSOC, PGSQL_NUM, y PGSQL_BOTH.

Nota: Result_type se añadio en PHP 4.0.

Una cosa importante a tener en cuenta es que usar pg_fetch_array() NO es significativamente más lento que usar pg_fetch_row(), y sin embargo el valor añadido que aporta sí lo es.

Para más detalles, ver pg_fetch_row()

Ejemplo 1. PostgreSQL fetch array

<?php
$conn = pg_pconnect("","","","","publisher");
if (!$conn) {
    echo "An error occured.\n";
    exit;
}

$result = pg_Exec ($conn, "SELECT * FROM authors");
if (!$result) {
    echo "An error occured.\n";
    exit;
}

$arr = pg_fetch_array ($result, 0);
echo $arr[0] . " <- array\n";

$arr = pg_fetch_array ($result, 1);
echo $arr["author"] . " <- array\n";
?>

Anterior | Inicio | Siguiente
pg_fetch_all | Subir | pg_fetch_assoc


pg_fetch_assoc

(PHP 4 >= 4.3.0)

pg_fetch_assoc -- Fetch a row as an associative array

Description

array pg_fetch_assoc ( resource result [, int row])

pg_fetch_assoc() returns an associative array that corresponds to the fetched row (tuples/records). It returns FALSE, if there are no more rows.

pg_fetch_assoc() is equivalent to calling pg_fetch_array() with PGSQL_ASSOC for the optional third parameter. It only returns an associative array. If you need the numeric indices, use pg_fetch_row().

row is row (record) number to be retrieved. First row is 0.

pg_fetch_assoc() is NOT significantly slower than using pg_fetch_row(), while it provides a significant ease of use.

Ejemplo 1. pg_fetch_assoc() example

<?php
$conn = pg_connect("dbname=publisher");
if (!$conn) {
    echo "An error occured.\n";
    exit;
}

$result = pg_query($conn, "SELECT id, author, email FROM authors");
if (!$result) {
    echo "An error occured.\n";
    exit;
}

while ($row = pg_fetch_assoc($result)) {
    echo $row['id'];
    echo $row['author'];
    echo $row['email'];
}
?>

See also
pg_fetch_row(),
pg_fetch_array(),
pg_fetch_object() and
pg_fetch_result().

Anterior | Inicio | Siguiente
pg_Fetch_Array | Subir | pg_Fetch_Object


pg_Fetch_Object

(PHP 3>= 3.0.1, PHP 4 )

pg_Fetch_Object -- obtener una fila en forma de objeto

Descripción

object pg_fetch_object ( int result, int row [, int result_type])

Devuelve: Un objeto cuyas propiedades se corresponden con los campos de la fila obtenida, o FALSE si no hay más filas.

pg_fetch_object() es parecida a pg_fetch_array(), con una diferencia - se devuelve un objeto, en vez de un array. Indirectamente, eso significa que solo puedes acceder a los datos por medio de su nombre de campo, y no a través de sus posiciones (los números son nombres de propiedad invalidos).

El tercer parámetro opcional result_type en pg_fetch_object() es una constante y puede tomar cualquiera de los siguientes valores: PGSQL_ASSOC, PGSQL_NUM, y PGSQL_BOTH.

Nota: Result_type se añadio en PHP 4.0.

Referente a la velocidad, la función es identica a pg_fetch_array(), y practicamente tan rápida como pg_fetch_row() (la diferencia es insignificante).

Ver también: pg_fetch_array() y pg_fetch_row().

Ejemplo 1. Postgres fetch object

<?php
$database = "verlag";
$db_conn = pg_connect ("localhost", "5432", "", "", $database);
if (!$db_conn): ?>
    <H1>Failed connecting to postgres database <? echo $database ?></H1> <?
    exit;
endif;

$qu = pg_exec ($db_conn, "SELECT * FROM verlag ORDER BY autor");
$row = 0; // postgres needs a row counter other dbs might not

while ($data = pg_fetch_object ($qu, $row)):
    echo $data->autor." (";
    echo $data->jahr ."): ";
    echo $data->titel."<BR>";
    $row++;
endwhile; ?>

<PRE><?php
$fields[] = Array ("autor", "Author");
$fields[] = Array ("jahr",  "  Year");
$fields[] = Array ("titel", " Title");

$row= 0; // postgres needs a row counter other dbs might not
while ($data = pg_fetch_object ($qu, $row)):
    echo "----------\n";
    reset ($fields);
    while (list (,$item) = each ($fields)):
        echo $item[1].": ".$data->$item[0]."\n";
    endwhile;
    $row++;
endwhile;
echo "----------\n"; ?>
</PRE> <?php
pg_freeResult ($qu);
pg_close ($db_conn);
?>

Anterior | Inicio | Siguiente
pg_fetch_assoc | Subir | pg_fetch_result


pg_fetch_result

(PHP 4 >= 4.2.0)

pg_fetch_result -- Returns values from a result resource

Description

mixed pg_fetch_result ( resource result, int row, mixed field)

pg_fetch_result() returns values from a result resource returned by pg_query(). row is integer. field is field name (string) or field index (integer). The row and field specify what cell in the table of results to return. Row numbering starts from 0. Instead of naming the field, you may use the field index as an unquoted number. Field indices start from 0.

PostgreSQL has many built in types and only the basic ones are directly supported here. All forms of integer types are returned as integer values. All forms of float, and real types are returned as float values. Boolean is returned as "t" or "f". All other types, including arrays are returned as strings formatted in the same default PostgreSQL manner that you would see in the psql program.

Anterior | Inicio | Siguiente
pg_Fetch_Object | Subir | pg_Fetch_Row


pg_Fetch_Row

(PHP 3>= 3.0.1, PHP 4 )

pg_Fetch_Row -- obtiene la fila como un array enumerado

Descripción

array pg_fetch_row ( int result, int row)

Devuelve: Un array que se corresponde con la fila obtenida, o FALSE en el caso de que no haya más filas.

pg_fetch_row() obtiene una fila de datos a partir del resultado asociado con el identificador de resultado especificado. La fila se devuelve en forma de array. Cada columna del resultado se almacena en una posición del array, empezando a partir de la posición 0.

Las siguientes llamadas a pg_fetch_row() devolverán la fila siguiente en el conjunto resultado, o falso en el caso de que no haya más filas que devolver.

Ver también: pg_fetch_array(), pg_fetch_object(), pg_result().

Ejemplo 1. Postgres fetch row

<?php
$conn = pg_pconnect("","","","","publisher");
if (!$conn) {
    echo "An error occured.\n";
    exit;
}

$result = pg_Exec ($conn, "SELECT * FROM authors");
if (!$result) {
    echo "An error occured.\n";
    exit;
}

$row = pg_fetch_row ($result, 0);
echo $row[0] . " <- row\n";

$row = pg_fetch_row ($result, 1);
echo $row[0] . " <- row\n";

$row = pg_fetch_row ($result, 2);
echo $row[1] . " <- row\n";
?>

Anterior | Inicio | Siguiente
pg_fetch_result | Subir | pg_field_is_null


pg_field_is_null

(PHP 4 >= 4.2.0)

pg_field_is_null -- Test if a field is NULL

Description

int pg_field_is_null ( resource result, int row, mixed field)

pg_field_is_null() tests if a field is NULL or not. It returns 1 if the field in the given row is NULL. It returns 0 if the field in the given row is NOT NULL. Field can be specified as column index (number) or fieldname (string). Row numbering starts at 0.

Ejemplo 1. pg_field_is_null() example

<?php
    $dbconn = pg_connect("dbname=publisher") or die ("Could not connect");
    $res = pg_query($dbconn, "select * from authors where author = 'Orwell'");
    if ($res) {
        if (pg_field_is_null($res, 0, "year") == 1) {
            echo "The value of the field year is null.\n";
        }
        if (pg_field_is_null($res, 0, "year") == 0) {
            echo "The value of the field year is not null.\n";
      }
   }
?>

Nota: This function used to be called pg_fieldisnull().

Anterior | Inicio | Siguiente
pg_Fetch_Row | Subir | pg_field_name


pg_field_name

(PHP 4 >= 4.2.0)

pg_field_name -- Returns the name of a field

Description

string pg_field_name ( resource result, int field_number)

pg_field_name() returns the name of the field occupying the given field_number in the given PostgreSQL result resource. Field numbering starts from 0.

Ejemplo 1. Getting informations about fields

<?php
    $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

    $res = pg_query($dbconn, "select * from authors where author = 'Orwell'");
    $i = pg_num_fields($res);
    for ($j = 0; $j < $i; $j++) {
        echo "column $j\n";
        $fieldname = pg_field_name($res, $j);
        echo "fieldname: $fieldname\n";
        echo "printed length: ".pg_field_prtlen($res, $fieldname)." characters\n";
        echo "storage length: ".pg_field_size($res, $j)." bytes\n";
        echo "field type: ".pg_field_type($res, $j)." \n\n";
}
?>

The above example would produce the following output:

column 0
fieldname: author
printed length: 6 characters
storage length: -1 bytes
field type: varchar

column 1
fieldname: year
printed length: 4 characters
storage length: 2 bytes
field type: int2

column 2
fieldname: title
printed length: 24 characters
storage length: -1 bytes
field type: varchar

Nota: This function used to be called pg_fieldname().

See also pg_field_num().

Anterior | Inicio | Siguiente
pg_field_is_null | Subir | pg_field_num


pg_field_num

(PHP 4 >= 4.2.0)

pg_field_num -- Returns the field number of the named field

Description

int pg_field_num ( resource result, string field_name)

pg_field_num() will return the number of the column (field) slot that corresponds to the field_name in the given PostgreSQL result resource. Field numbering starts at 0. This function will return -1 on error.

See the example given at the pg_field_name() page.

Nota: This function used to be called pg_fieldnum().

See also pg_field_name().

Anterior | Inicio | Siguiente
pg_field_name | Subir | pg_field_prtlen


pg_field_prtlen

(PHP 4 >= 4.2.0)

pg_field_prtlen -- Returns the printed length

Description

int pg_field_prtlen ( resource result, int row_number, string field_name)

pg_field_prtlen() returns the actual printed length (number of characters) of a specific value in a PostgreSQL result. Row numbering starts at 0. This function will return -1 on an error.

See the example given at the pg_field_name() page.

Nota: This function used to be called pg_fieldprtlen().

See also pg_field_size().

Anterior | Inicio | Siguiente
pg_field_num | Subir | pg_field_size


pg_field_size

(PHP 4 >= 4.2.0)

pg_field_size -- Returns the internal storage size of the named field

Description

int pg_field_size ( resource result, int field_number)

pg_field_size() returns the internal storage size (in bytes) of the field number in the given PostgreSQL result. Field numbering starts at 0. A field size of -1 indicates a variable length field. This function will return FALSE on error.

See the example given at the pg_field_name() page.

Nota: This function used to be called pg_fieldsize().

See also pg_field_prtlen() and pg_field_type().

Anterior | Inicio | Siguiente
pg_field_prtlen | Subir | pg_field_type


pg_field_type

(PHP 4 >= 4.2.0)

pg_field_type -- Returns the type name for the corresponding field number

Description

string pg_field_type ( resource result, int field_number)

pg_field_type() returns a string containing the type name of the given field_number in the given PostgreSQL result resource. Field numbering starts at 0.

See the example given at the pg_field_name() page.

Nota: This function used to be called pg_fieldtype().

See also pg_field_prtlen() and pg_field_name().

Anterior | Inicio | Siguiente
pg_field_size | Subir | pg_free_result


pg_free_result

(PHP 4 >= 4.2.0)

pg_free_result -- Free result memory

Description

bool pg_free_result ( resource result)

pg_free_result() only needs to be called if you are worried about using too much memory while your script is running. All result memory will automatically be freed when the script is finished. But, if you are sure you are not going to need the result data anymore in a script, you may call pg_free_result() with the result resource as an argument and the associated result memory will be freed. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Nota: This function used to be called pg_freeresult().

See also pg_query().

Anterior | Inicio | Siguiente
pg_field_type | Subir | pg_get_notify


pg_get_notify

(PHP 4 >= 4.3.0)

pg_get_notify -- Ping database connection

Description

array pg_get_notify ( resource connection [, int result_type])

pg_get_notify() gets notify message sent by NOTIFY SQL command. To receive notify messages, LISTEN SQL command must be issued. If there is notify message on the connection, array contains message name and backend PID is returned. If there is no message, FALSE is returned.

See also pg_get_pid()

Ejemplo 1. PostgreSQL NOTIFY message

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
    echo "An error occured.\n";
    exit;
}

// Listen 'author_updated' message from other processes
pg_query($conn, 'LISTEN author_updated;');
$notify = pg_get_notify($conn);
if (!$notify)
    echo "No messages\n";
else
    print_r($notify);
?>

Anterior | Inicio | Siguiente
pg_free_result | Subir | pg_get_pid


pg_get_pid

(PHP 4 >= 4.3.0)

pg_get_pid -- Ping database connection

Description

int pg_get_pid ( resource connection)

pg_get_pid() gets backend (database server process) PID. PID is useful to check if NOTIFY message is sent from other process or not.

Ejemplo 1. PostgreSQL backend PID

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
    echo "An error occured.\n";
    exit;
}

// Backend process PID. Use PID with pg_get_notify()
$pid = pg_get_pid($conn);
?>

See also pg_get_notify().

Anterior | Inicio | Siguiente
pg_get_notify | Subir | pg_get_result


pg_get_result

(PHP 4 >= 4.2.0)

pg_get_result -- Get asynchronous query result

Description

resource pg_get_result ( [resource connection])

pg_get_result() get result resource from async query executed by pg_send_query(). pg_send_query() can send multiple queries to PostgreSQL server and pg_get_result() is used to get query result one by one. It returns result resource. If there is no more results, it returns FALSE.

Anterior | Inicio | Siguiente
pg_get_pid | Subir | pg_Host


pg_Host

(PHP 3, PHP 4 )

pg_Host -- Devuelve el nombre del host

Descripción

string pg_host ( int connection_id)

pg_Host() devuelve el nombre del host al que identificador conexión PostgreSQL pasado está conectado.

Anterior | Inicio | Siguiente
pg_get_result | Subir | pg_insert


pg_insert

(PHP 4 >= 4.3.0)

pg_insert -- Insert array into table.

Description

bool pg_insert ( resource connection, string table_name, array assoc_array [, int options])

pg_insert() inserts the values of assoc_array into the table specified by table_name. table_name must at least have as many columns as assoc_array has elements. The fieldnames as well as the fieldvalues in table_name must match the indices and values of assoc_array. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo. If options is specified, pg_insert() is applied to assoc_array with specified option.

Ejemplo 1. pg_insert() example

<?php
    $dbconn = pg_connect('dbname=foo');
    // This is safe, since $_POST is converted automatically
    $res = pg_insert($dbconn, 'post_log', $_POST);
    if ($res) {
        echo "POST data is successfully logged\n";
    }
    else {
        echo "User must have sent wrong inputs\n";
    }
?>

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

See also pg_convert().

Anterior | Inicio | Siguiente
pg_Host | Subir | pg_last_error


pg_last_error

(PHP 4 >= 4.2.0)

pg_last_error -- Get the last error message string of a connection

Description

string pg_last_error ( [resource connection])

pg_last_error() returns the last error message for given connection.

Error messages may be overwritten by internal PostgreSQL(libpq) function calls. It may not return appropriate error message, if multiple errors are occured inside a PostgreSQL module function.

Use pg_result_error(),
pg_result_status() and
pg_connection_status() for better error handling.

Nota: This function used to be called pg_errormessage().

See also pg_result_error().

Anterior | Inicio | Siguiente
pg_insert | Subir | pg_last_notice


pg_last_notice

(PHP 4 >= 4.0.6)

pg_last_notice -- Returns the last notice message from PostgreSQL server

Description

string pg_last_notice ( resource connection)

pg_last_notice() returns the last notice message from the PostgreSQL server specified by connection. The PostgreSQL server sends notice messages in several cases, e.g. if the transactions can't be continued. With pg_last_notice(), you can avoid issuing useless queries, by checking whether the notice is related to the transaction or not.

Aviso

This function is EXPERIMENTAL and it is not fully implemented yet. pg_last_notice() was added in PHP 4.0.6. However, PHP 4.0.6 has problem with notice message handling. Use of the PostgreSQL module with PHP 4.0.6 is not recommended even if you are not using pg_last_notice().

This function is fully implemented in PHP 4.3.0. PHP earlier than PHP 4.3.0 ignores database connection parameter.

Notice message tracking can be set to optional by setting 1 for pgsql.ignore_notice in php.ini from PHP 4.3.0.

Notice message logging can be set to optional by setting 0 for pgsql.log_notice in php.ini from PHP 4.3.0. Unless pgsql.ignore_notice is set to 0, notice message cannot be logged.

See also pg_query() and pg_last_error().

Anterior | Inicio | Siguiente
pg_last_error | Subir | pg_last_oid


pg_last_oid

(PHP 4 >= 4.2.0)

pg_last_oid -- Returns the last object's oid

Description

int pg_last_oid ( resource result)

pg_last_oid() is used to retrieve the oid assigned to an inserted tuple (record) if the result resource is used from the last command sent via pg_query() and was an SQL INSERT. Returns a positive integer if there was a valid oid. It returns FALSE if an error occurs or the last command sent via pg_query() was not an INSERT or INSERT is failed.

OID field became an optional field from PostgreSQL 7.2. When OID field is not defined in a table, programmer must use pg_result_status() to check if record is is inserted successfully or not.

Nota: This function used to be called pg_getlastoid().

See also pg_query() and pg_result_status()

Anterior | Inicio | Siguiente
pg_last_notice | Subir | pg_lo_close


pg_lo_close

(PHP 4 >= 4.2.0)

pg_lo_close -- Close a large object

Description

bool pg_lo_close ( resource large_object)

pg_lo_close() closes a Large Object. large_object is a resource for the large object from pg_lo_open().

To use the large object (lo) interface, it is necessary to enclose it within a transaction block.

Nota: This function used to be called pg_loclose().

See also pg_lo_open(),
pg_lo_create() and
pg_lo_import().

Anterior | Inicio | Siguiente
pg_last_oid | Subir | pg_lo_create


pg_lo_create

(PHP 4 >= 4.2.0)

pg_lo_create -- Create a large object

Description

int pg_lo_create ( resource connection)

pg_lo_create() creates a Large Object and returns the oid of the large object. connection specifies a valid database connection opened by pg_connect() or pg_pconnect(). PostgreSQL access modes INV_READ, INV_WRITE, and INV_ARCHIVE are not supported, the object is created always with both read and write access. INV_ARCHIVE has been removed from PostgreSQL itself (version 6.3 and above). It returns large object oid, otherwise it returns FALSE if an error occurred.

To use the large object (lo) interface, it is necessary to enclose it within a transaction block.

Nota: This function used to be called pg_locreate().

Anterior | Inicio | Siguiente
pg_lo_close | Subir | pg_lo_export


pg_lo_export

(PHP 4 >= 4.2.0)

pg_lo_export -- Export a large object to file

Description

bool pg_lo_export ( int oid, string pathname [, resource connection])

The oid argument specifies oid of the large object to export and the pathname argument specifies the pathname of the file. It returns FALSE if an error occurred, TRUE otherwise.

To use the large object (lo) interface, it is necessary to enclose it within a transaction block.

Nota: This function used to be called pg_loexport().

See also pg_lo_import().

Anterior | Inicio | Siguiente
pg_lo_create | Subir | pg_lo_import


pg_lo_import

(PHP 4 >= 4.2.0)

pg_lo_import -- Import a large object from file

Description

int pg_lo_import ( [resource connection, string pathname])

In versions before PHP 4.2.0 the syntax of this function was different, see the following definition:

int pg_lo_import ( string pathname [, resource connection])

The pathname argument specifies the pathname of the file to be imported as a large object. It returns FALSE if an error occurred, oid of the just created large object otherwise.

To use the large object (lo) interface, it is necessary to enclose it within a transaction block.

Nota: Cuando safe-mode (modo-seguro) está activado, PHP comprueba si los archivos o directorios que va a utilizar tienen la misma UID que el script que está siendo ejecutado.

Nota: This function used to be called pg_loimport().

See also pg_lo_export() and pg_lo_open().

Anterior | Inicio | Siguiente
pg_lo_export | Subir | pg_lo_open


pg_lo_open

(PHP 4 >= 4.2.0)

pg_lo_open -- Open a large object

Description

resource pg_lo_open ( resource connection, int oid, string mode)

pg_lo_open() opens a Large Object and returns large object resource. The resource encapsulates information about the connection. oid specifies a valid large object oid and mode can be either "r", "w", or "rw". It returns FALSE if there is an error.

Aviso

Do not close the database connection before closing the large object resource.

To use the large object (lo) interface, it is necessary to enclose it within a transaction block.

Nota: This function used to be called pg_loopen().

See also pg_lo_close() and pg_lo_create().

Anterior | Inicio | Siguiente
pg_lo_import | Subir | pg_lo_read_all


pg_lo_read_all

(PHP 4 >= 4.2.0)

pg_lo_read_all -- Reads an entire large object and send straight to browser

Description

int pg_lo_read_all ( resource large_object)

pg_lo_read_all() reads a large object and passes it straight through to the browser after sending all pending headers. Mainly intended for sending binary data like images or sound. It returns number of bytes read. It returns FALSE, if an error occurred.

To use the large object (lo) interface, it is necessary to enclose it within a transaction block.

Nota: This function used to be called pg_loreadall().

See also pg_lo_read().

Anterior | Inicio | Siguiente
pg_lo_open | Subir | pg_lo_read


pg_lo_read

(PHP 4 >= 4.2.0)

pg_lo_read -- Read a large object

Description

string pg_lo_read ( resource large_object, int len)

pg_lo_read() reads at most len bytes from a large object and returns it as a string. large_object specifies a valid large object resource andlen specifies the maximum allowable size of the large object segment. It returns FALSE if there is an error.

To use the large object (lo) interface, it is necessary to enclose it within a transaction block.

Nota: This function used to be called pg_loread().

See also pg_lo_read_all().

Anterior | Inicio | Siguiente
pg_lo_read_all | Subir | pg_lo_seek


pg_lo_seek

(PHP 4 >= 4.2.0)

pg_lo_seek -- Seeks position of large object

Description

bool pg_lo_seek ( resource large_object, int offset [, int whence])

pg_lo_seek() seeks position of large object resource. whence is PGSQL_SEEK_SET, PGSQL_SEEK_CUR or PGSQL_SEEK_END.

See also pg_lo_tell().

Anterior | Inicio | Siguiente
pg_lo_read | Subir | pg_lo_tell


pg_lo_tell

(PHP 4 >= 4.2.0)

pg_lo_tell -- Returns current position of large object

Description

int pg_lo_tell ( resource large_object)

pg_lo_tell() returns current position (offset from the beginning of large object).

See also pg_lo_seek().

Anterior | Inicio | Siguiente
pg_lo_seek | Subir | pg_lo_unlink


pg_lo_unlink

(PHP 4 >= 4.2.0)

pg_lo_unlink -- Delete a large object

Description

bool pg_lo_unlink ( resource connection, int oid)

pg_lo_unlink() deletes a large object with the oid. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

To use the large object (lo) interface, it is necessary to enclose it within a transaction block.

Nota: This function used to be called pg_lo_unlink().

See also pg_lo_create() and pg_lo_import().

Anterior | Inicio | Siguiente
pg_lo_tell | Subir | pg_lo_write


pg_lo_write

(PHP 4 >= 4.2.0)

pg_lo_write -- Write a large object

Description

int pg_lo_write ( resource large_object, string data)

pg_lo_write() writes at most to a large object from a variable data and returns the number of bytes actually written, or FALSE in the case of an error. large_object is a large object resource from pg_lo_open().

To use the large object (lo) interface, it is necessary to enclose it within a transaction block.

Nota: This function used to be called pg_lowrite().

See also pg_lo_create() and pg_lo_open().

Anterior | Inicio | Siguiente
pg_lo_unlink | Subir | pg_meta_data


pg_meta_data

(PHP 4 >= 4.3.0)

pg_meta_data -- Get meta data for table.

Description

array pg_meta_data ( resource connection, string table_name)

pg_meta_data() returns table definition for table_name as an array. If there is error, it returns FALSE

Ejemplo 1. Getting table metadata

<?php
    $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

    $meta = pg_meta_data($dbconn,'authors');
    if (is_array ($meta)) {
        echo '<pre>';
        var_dump ($meta);
        echo '</pre>';
    }
?>

The above example would produce the following output:

array(3) {
  ["author"]=>
  array(5) {
    ["num"]=>
    int(1)
    ["type"]=>
    string(7) "varchar"
    ["len"]=>
    int(-1)
    ["not null"]=>
    bool(false)
    ["has default"]=>
    bool(false)
  }
  ["year"]=>
  array(5) {
    ["num"]=>
    int(2)
    ["type"]=>
    string(4) "int2"
    ["len"]=>
    int(2)
    ["not null"]=>
    bool(false)
    ["has default"]=>
    bool(false)
  }
  ["title"]=>
  array(5) {
    ["num"]=>
    int(3)
    ["type"]=>
    string(7) "varchar"
    ["len"]=>
    int(-1)
    ["not null"]=>
    bool(false)
    ["has default"]=>
    bool(false)
  }
}

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

See also pg_convert().

Anterior | Inicio | Siguiente
pg_lo_write | Subir | pg_num_fields


pg_num_fields

(PHP 4 >= 4.2.0)

pg_num_fields -- Returns the number of fields

Description

int pg_num_fields ( resource result)

pg_num_fields() returns the number of fields (columns) in a PostgreSQL result. The argument is a result resource returned by pg_query(). This function will return -1 on error.

Nota: This function used to be called pg_numfields().

See also pg_num_rows() and pg_affected_rows().

Anterior | Inicio | Siguiente
pg_meta_data | Subir | pg_num_rows


pg_num_rows

(PHP 4 >= 4.2.0)

pg_num_rows -- Returns the number of rows

Description

int pg_num_rows ( resource result)

pg_num_rows() will return the number of rows in a PostgreSQL result resource. result is a query result resource returned by pg_query(). This function will return -1 on error.

Nota: Use pg_affected_rows() to get number of rows affected by INSERT, UPDATE and DELETE query.

Nota: This function used to be called pg_numrows().

See also pg_num_fields() and pg_affected_rows().

Anterior | Inicio | Siguiente
pg_num_fields | Subir | pg_Options


pg_Options

(PHP 3, PHP 4 )

pg_Options -- Devuelve opciones

Descripción

string pg_options ( int connection_id)

pg_Options() devuelve una cadena que contiene las opciones especificadas en el identificador de conexión con PostgreSQL dado.

Anterior | Inicio | Siguiente
pg_num_rows | Subir | pg_pConnect


pg_pConnect

(PHP 3, PHP 4 )

pg_pConnect -- Crea una conexión persistente con una base de datos

Descripción

int pg_pconnect ( string host, string port, string options, string tty, string dbname)

Devuelve un índice de conexión en caso de éxito, o FALSE si no es posible realizar la conexión. Abre una conexión persistente hacia una base de datos de PostgreSQL. Cada uno de los parámetros puede ser una cadena entrecomillada (quoted), incluyendo el número de puerto. Los parámetros options y tty son opcionales y pueden omitirse. Esta función devuelve un índice de conexión que luego será empleado al llamar a otras funciones PostgreSQL. Puedes tener multiples conexiones persistentes abiertas al mismo tiempo. Ver también pg_Connect().

Una conexión también se puede establecer con el comando siguiente: $conn = pg_pconnect("dbname=marliese port=5432"); Otros parámetros además de dbname y port son host, tty, options, user y password.

Anterior | Inicio | Siguiente
pg_Options | Subir | pg_ping


pg_ping

(PHP 4 >= 4.3.0)

pg_ping -- Ping database connection

Description

bool pg_ping ( resource connection)

pg_ping() ping database connection, try to reconnect if it is broken. It returns TRUE if connection is alive, otherwise FALSE.

Ejemplo 1. pg_ping() example

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
    echo "An error occured.\n";
    exit;
}

if (!pg_ping($conn))
    die("Connection is broken\n");
?>

See also pg_connection_status() and pg_connection_reset().

Anterior | Inicio | Siguiente
pg_pConnect | Subir | pg_Port


pg_Port

(PHP 3, PHP 4 )

pg_Port -- Devuelve el número de puerto

Descripción

int pg_port ( int connection_id)

pg_Port() devuelve el número del puerto al que el identificador de conexión con PostgreSQL está conectado.

Anterior | Inicio | Siguiente
pg_ping | Subir | pg_put_line


pg_put_line

(PHP 4 >= 4.0.3)

pg_put_line -- Send a NULL-terminated string to PostgreSQL backend

Description

bool pg_put_line ( [resource connection, string data])

pg_put_line() sends a NULL-terminated string to the PostgreSQL backend server. This is useful for example for very high-speed inserting of data into a table, initiated by starting a PostgreSQL copy-operation. That final NULL-character is added automatically. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Nota: The application must explicitly send the two characters "\." on the last line to indicate to the backend that it has finished sending its data.

Ejemplo 1. High-speed insertion of data into a table

<?php
    $conn = pg_pconnect("dbname=foo");
    pg_query($conn, "create table bar (a int4, b char(16), d float8)");
    pg_query($conn, "copy bar from stdin");
    pg_put_line($conn, "3\thello world\t4.5\n");
    pg_put_line($conn, "4\tgoodbye world\t7.11\n");
    pg_put_line($conn, "\\.\n");
    pg_end_copy($conn);
?>

See also pg_end_copy().

Anterior | Inicio | Siguiente
pg_Port | Subir | pg_query


pg_query

(PHP 4 >= 4.2.0)

pg_query -- Execute a query

Description

resource pg_query ( resource connection, string query)

pg_query() returns a query result resource if query could be executed. It returns FALSE on failure or if connection is not a valid connection. Details about the error can be retrieved using the pg_last_error() function if connection is valid. pg_query() sends an SQL statement to the PostgreSQL database specified by the connection resource. The connection must be a valid connection that was returned by pg_connect() or pg_pconnect(). The return value of this function is an query result resource to be used to access the results from other PostgreSQL functions such as pg_fetch_array().

Nota: connection is an optional parameter for pg_query(). If connection is not set, default connection is used. Default connection is the last connection made by pg_connect() or pg_pconnect().

Although connection can be omitted, it is not recommended, since it could be a cause of hard to find bug in script.

Nota: This function used to be called pg_exec(). pg_exec() is still available for compatibility reasons but users are encouraged to use the newer name.

See also pg_connect(),
pg_pconnect(),
pg_fetch_array(),
pg_fetch_object(),
pg_num_rows() and
pg_affected_rows().

Anterior | Inicio | Siguiente
pg_put_line | Subir | pg_result_error


pg_result_error

(PHP 4 >= 4.2.0)

pg_result_error -- Get error message associated with result

Description

string pg_result_error ( resource result)

pg_result_error() returns error message associated with result resource. Therefore, user has better chance to get better error message than pg_last_error().

See also pg_query(),
pg_send_query(),
pg_get_result(),
pg_last_error() and
pg_last_notice()

Anterior | Inicio | Siguiente
pg_query | Subir | pg_result_seek


pg_result_seek

(PHP 4 >= 4.3.0)

pg_result_seek -- Set internal row offset in result resource

Description

array pg_result_seek ( resource result, int offset)

pg_result_seek() set internal row offset in result resource. It returns FALSE, if there is error.

 See also pg_fetch_row(),
pg_fetch_assoc(),
pg_fetch_array(),
pg_fetch_object() and
pg_fetch_result().

Anterior | Inicio | Siguiente
pg_result_error | Subir | pg_result_status


pg_result_status

(PHP 4 >= 4.2.0)

pg_result_status -- Get status of query result

Description

int pg_result_status ( resource result)

pg_result_status() returns status of result resource. Possible return values are PGSQL_EMPTY_QUERY, PGSQL_COMMAND_OK, PGSQL_TUPLES_OK, PGSQL_COPY_TO, PGSQL_COPY_FROM, PGSQL_BAD_RESPONSE, PGSQL_NONFATAL_ERROR and PGSQL_FATAL_ERROR.

See also pg_connection_status().

Anterior | Inicio | Siguiente
pg_result_seek | Subir | pg_select


pg_select

(PHP 4 >= 4.3.0)

pg_select -- Select records.

Description

array pg_select ( resource connection, string table_name, array assoc_array [, int options])

pg_select() selects records specified by assoc_array which has field=>value. For successful query, it returns array contains all records and fields that match the condition specified by assoc_array. If options is specified, pg_convert() is applied to assoc_array with specified option.

Ejemplo 1. pg_select() example

<?php
    $db = pg_connect('dbname=foo');
    // This is safe, since $_POST is converted automatically
    $rec = pg_select($db, 'post_log', $_POST);
    if ($rec) {
        echo "Records selected\n";
        var_dump($rec);
    }
    else {
        echo "User must have sent wrong inputs\n";
    }
?>

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

See also pg_convert()

Anterior | Inicio | Siguiente
pg_result_status | Subir | pg_send_query


pg_send_query

(PHP 4 >= 4.2.0)

pg_send_query -- Sends asynchronous query

Description

bool pg_send_query ( resource connection, string query)

bool pg_send_query ( string query)

pg_send_query() send asynchronous query to the connection. Unlike pg_query(), it can send multiple query to PostgreSQL and get the result one by one using pg_get_result(). Script execution is not blocked while query is executing. Use pg_connection_busy() to check connection is busy (i.e. query is executing). Query may be cancelled by calling pg_cancel_query().

Although user can send multiple query at once, user cannot send multiple query over busy connection. If query is sent while connection is busy, it waits until last query is finished and discards all result.

Ejemplo 1. Asynchronous Queries

<?php
    $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

    if (!pg_connection_busy($dbconn)) {
        pg_send_query($dbconn,"select * from authors; select count(*) from authors;");
    }

    $res1 = pg_get_result($dbconn);
    echo "First call to pg_get_result(): $res1\n";
    $rows1 = pg_num_rows($res1);
    echo "$res1 has $rows1 records\n\n";

    $res2 = pg_get_result($dbconn);
    echo "second call to pg_get_result(): $res2\n";
    $rows2 = pg_num_rows($res2);
    echo "$res2 has $rows2 records\n";
?>

The above example would produce the following output:

first call to pg_get_result(): Resource id #3
Resource id #3 has 3 records

second call to pg_get_result(): Resource id #4
Resource id #4 has 1 records

See also pg_query(),
pg_cancel_query(),
pg_get_result() and
pg_connection_busy().

Anterior | Inicio | Siguiente
pg_select | Subir | pg_set_client_encoding


pg_set_client_encoding

(PHP 3 CVS only, PHP 4 >= 4.0.3)

pg_set_client_encoding -- Set the client encoding

Description

int pg_set_client_encoding ( [resource connection, string encoding])

pg_set_client_encoding() sets the client encoding and returns 0 if success or -1 if error.

encoding is the client encoding and can be either : SQL_ASCII, EUC_JP, EUC_CN, EUC_KR, EUC_TW, UNICODE, MULE_INTERNAL, LATINX (X=1...9), KOI8, WIN, ALT, SJIS, BIG5, WIN1250. Available encoding depends on your PostgreSQL and libpq version. Refer to PostgreSQL manual for supported encodings for your PostgreSQL.

Nota: This function requires PHP-4.0.3 or higher and PostgreSQL-7.0 or higher. Supported encoding depends on PostgreSQL version. Refer to PostgreSQL manual for details.

The function used to be called pg_setclientencoding().

See also pg_client_encoding().

Anterior | Inicio | Siguiente
pg_send_query | Subir | pg_trace


pg_trace

(PHP 4 >= 4.0.1)

pg_trace -- Enable tracing a PostgreSQL connection

Description

bool pg_trace ( string pathname [, string mode [, resource connection]])

pg_trace() enables tracing of the PostgreSQL frontend/backend communication to a debugging file specified as pathname. To fully understand the results, one needs to be familiar with the internals of PostgreSQL communication protocol. For those who are not, it can still be useful for tracing errors in queries sent to the server, you could do for example grep '^To backend' trace.log and see what query actually were sent to the PostgreSQL server. For more information, refer to PostgreSQL manual.

pathname and mode are the same as in fopen() (mode defaults to 'w'), connection specifies the connection to trace and defaults to the last one opened.

pg_trace() returns TRUE if pathname could be opened for logging, FALSE otherwise.

See also fopen() and pg_untrace().

Anterior | Inicio | Siguiente
pg_set_client_encoding | Subir | pg_tty


pg_tty

(PHP 3, PHP 4 )

pg_tty -- Devuelve el nombre del tty

Descripción

string pg_tty ( int connection_id)

pg_tty() devuelve el nombre del tty hacia el que se dirije la salida de depuración del lado del servidor en el identificador de conexión de PostgreSQL dado.

Anterior | Inicio | Siguiente
pg_trace | Subir | pg_unescape_bytea


pg_unescape_bytea

(PHP 4 >= 4.3.0)

pg_unescape_bytea -- Unescape binary for bytea type

Description

string pg_unescape_bytea ( string data)

pg_unescape_bytea() unescapes string from bytea datatype. It returns unescaped string (binary).

Nota: When you SELECT bytea type, PostgreSQL returns octal byte value prefixed by \ (e.g. \032). Users are supposed to convert back to binary format by yourself.

This function requires PostgreSQL 7.2 or later. With PostgreSQL 7.2.0 and 7.2.1, bytea type must be casted when you enable multi-byte support. i.e. INSERT INTO test_table (image) VALUES ('$image_escaped'::bytea); PostgreSQL 7.2.2 or later does not need cast. Exception is when client and backend character encoding does not match, there may be multi-byte stream error. User must cast to bytea to avoid this error.

See also pg_escape_bytea() and pg_escape_string()

Anterior | Inicio | Siguiente
pg_tty | Subir | pg_untrace


pg_untrace

(PHP 4 >= 4.0.1)

pg_untrace -- Disable tracing of a PostgreSQL connection

Description

bool pg_untrace ( [resource connection])

Stop tracing started by pg_trace(). connection specifies the connection that was traced and defaults to the last one opened.

Returns always TRUE.

See also pg_trace().

Anterior | Inicio | Siguiente
pg_unescape_bytea | Subir | pg_update


pg_update

(PHP 4 >= 4.3.0)

pg_update -- Update table.

Description

mixed pg_update ( resource connection, string table_name, array data, array condition [, int options])

pg_update() updates records that matches condition with data. If options is specified, pg_convert() is applied to data with specified options.

Ejemplo 1. pg_update() example

<?php
    $db = pg_connect('dbname=foo');
    $data = array('field1'=>'AA', 'field2'=>'BB');

    // This is safe, since $_POST is converted automatically
    $res = pg_update($db, 'post_log', $_POST, $data);
    if ($res) {
        echo "Data is updated: $res\n";
    }
    else {
        echo "User must have sent wrong inputs\n";
    }
?>

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

See also pg_convert().

Anterior | Inicio | Siguiente
pg_untrace | Subir | Process Control Functions


Process Control Functions

Manual de PHP
Anterior Siguiente

LXXXIV. Process Control Functions

Introducción

Process Control support in PHP implements the Unix style of process creation, program execution, signal handling and process termination. Process Control should not be enabled within a webserver environment and unexpected results may happen if any Process Control functions are used within a webserver environment.

This documentation is intended to explain the general usage of each of the Process Control functions. For detailed information about Unix process control you are encouraged to consult your systems documentation including fork(2), waitpid(2) and signal(2) or a comprehensive reference such as Advanced Programming in the UNIX Environment by W. Richard Stevens (Addison-Wesley).

PCNTL now uses ticks as the signal handle callback mechanism, which is much faster than the previous mechanism. This change follows the same semantics as using "user ticks". You use the declare() statement to specify the locations in your program where callbacks are allowed to occur. This allows you to minimize the overhead of handling asynchronous events. In the past, compiling PHP with pcntl enabled would always incur this overhead, whether or not your script actually used pcntl.

There is one adjustment that all pcntl scripts prior to PHP 4.3.0 must make for them to work which is to either to use declare() on a section where you wish to allow callbacks or to just enable it across the entire script using the new global syntax of declare().

Nota: Esta extensión no está disponible en plataformas Windows

Requerimientos

No se necesitan bibliotecas externas para construir esta extensión

Instalación

Process Control support in PHP is not enabled by default. You have to compile the CGI or CLI version of PHP with --enable-pcntl configuration option when compiling PHP to enable Process Control support.

Nota: Currently, this module will not function on non-Unix platforms (Windows).

Configuración en tiempo de ejecución

Esta extensión no tiene directivas de configuración en php.ini.

Tipos de recursos

Esta extensión no tiene ningún tipo de recurso definido.

Constantes predefinidas

The following list of signals are supported by the Process Control functions. Please see your systems signal(7) man page for details of the default behavior of these signals.

WNOHANG (integer)

WUNTRACED (integer)

SIG_IGN (integer)

SIG_DFL (integer)

SIG_ERR (integer)

SIGHUP (integer)

SIGINT (integer)

SIGQUIT (integer)

SIGILL (integer)

SIGTRAP (integer)

SIGABRT (integer)

SIGIOT (integer)

SIGBUS (integer)

SIGFPE (integer)

SIGKILL (integer)

SIGUSR1 (integer)

SIGSEGV (integer)

SIGUSR2 (integer)

SIGPIPE (integer)

SIGALRM (integer)

SIGTERM (integer)

SIGSTKFLT (integer)

SIGCLD (integer)

SIGCHLD (integer)

SIGCONT (integer)

SIGSTOP (integer)

SIGTSTP (integer)

SIGTTIN (integer)

SIGTTOU (integer)

SIGURG (integer)

SIGXCPU (integer)

SIGXFSZ (integer)

SIGVTALRM (integer)

SIGPROF (integer)

SIGWINCH (integer)

SIGPOLL (integer)

SIGIO (integer)

SIGPWR (integer)

SIGSYS (integer)

SIGBABY (integer)

Ejemplos

This example forks off a daemon process with a signal handler.

Ejemplo 1. Process Control Example

<?php
declare(ticks=1);

$pid = pcntl_fork();
if ($pid == -1) {
     die("could not fork");
} else if ($pid) {
     exit(); // we are the parent
} else {
     // we are the child
}

// detatch from the controlling terminal
if (!posix_setsid()) {
    die("could not detach from terminal");
}

// setup signal handlers
pcntl_signal(SIGTERM, "sig_handler");
pcntl_signal(SIGHUP, "sig_handler");

// loop forever performing tasks
while(1) {

    // do something interesting here

}

function sig_handler($signo) {

     switch($signo) {
         case SIGTERM:
             // handle shutdown tasks
             exit;
             break;
         case SIGHUP:
             // handle restart tasks
             break;
         default:
             // handle all other signals
     }

}

?>

Ver también

A look at the section about POSIX functions may be useful.

Tabla de contenidos
pcntl_exec -- Executes specified program in current process space
pcntl_fork -- Forks the currently running process
pcntl_signal -- Installs a signal handler
pcntl_waitpid -- Waits on or returns the status of a forked child
pcntl_wexitstatus -- Returns the return code of a terminated child
pcntl_wifexited -- Returns TRUE if status code represents a successful exit
pcntl_wifsignaled -- Returns TRUE if status code represents a termination due to a signal
pcntl_wifstopped -- Returns TRUE if child process is currently stopped
pcntl_wstopsig -- Returns the signal which caused the child to stop
pcntl_wtermsig -- Returns the signal which caused the child to terminate

Anterior | Inicio | Siguiente
pg_update | Subir | pcntl_exec


pcntl_exec

(PHP 4 >= 4.2.0)

pcntl_exec -- Executes specified program in current process space

Description

bool pcntl_exec ( string path [, array args [, array envs]])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
Process Control Functions | Subir | pcntl_fork


pcntl_fork

(PHP 4 >= 4.1.0)

pcntl_fork -- Forks the currently running process

Description

int pcntl_fork ( void )

The pcntl_fork() function creates a child process that differs from the parent process only in it's PID and PPID. Please see your system's fork(2) man page for specific details as to how fork works on your system.

On success, the PID of the child process is returned in the parent's thread of execution, and a 0 is returned in the child's thread of execution. On failure, a -1 will be returned in the parent's context, no child process will be created, and a PHP error is raised.

Ejemplo 1. pcntl_fork() example

<?php

$pid = pcntl_fork();
if ($pid == -1) {
     die("could not fork");
} else if ($pid) {
     // we are the parent
} else {
     // we are the child
}

?>

See also pcntl_waitpid() and pcntl_signal().

Anterior | Inicio | Siguiente
pcntl_exec | Subir | pcntl_signal


pcntl_signal

(PHP 4 >= 4.1.0)

pcntl_signal -- Installs a signal handler

Description

bool pcntl_signal ( int signo, callback handle [, bool restart_syscalls])

The pcntl_signal() function installs a new signal handler for the signal indicated by signo. The signal handler is set to handler which may be the name of a user created function, or either of the two global constants SIG_IGN or SIG_DFL. The optional restart_syscalls specifies whether system call restarting should be used when this signal arrives and defaults to TRUE.

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Nota: The optional restart_syscalls parameter became available in PHP 4.3.0.

Nota: The ability to use an object method as a callback became available in PHP 4.3.0. Note that when you set a handler to an object method, that object's reference count is increased which makes it persist until you either change the handler to something else, or your script ends.

Ejemplo 1. pcntl_signal() example

<?php
// tick use required as of PHP 4.3.0
declare (ticks = 1);

// signal handler function
function sig_handler($signo) {

     switch($signo) {
         case SIGTERM:
             // handle shutdown tasks
             exit;
             break;
         case SIGHUP:
             // handle restart tasks
             break;
         case SIGUSR1:
             print "Caught SIGUSR1...\n";
             break;
         default:
             // handle all other signals
     }

}

print "Installing signal handler...\n";

// setup signal handlers
pcntl_signal(SIGTERM, "sig_handler");
pcntl_signal(SIGHUP,  "sig_handler");
pcntl_signal(SIGUSR1, "sig_handler");

// or use an object, available as of PHP 4.3.0
// pcntl_signal(SIGUSR1, array($obj, "do_something");

print "Generating signal SIGTERM to self...\n";

// send SIGUSR1 to current process id
posix_kill(posix_getpid(), SIGUSR1);

print "Done\n"

?>

See also pcntl_fork() and pcntl_waitpid().

Anterior | Inicio | Siguiente
pcntl_fork | Subir | pcntl_waitpid


pcntl_waitpid

(PHP 4 >= 4.1.0)

pcntl_waitpid -- Waits on or returns the status of a forked child

Description

int pcntl_waitpid ( int pid, int &status, int options)

The pcntl_waitpid() function suspends execution of the current process until a child as specified by the pid argument has exited, or until a signal is delivered whose action is to terminate the current process or to call a signal handling function. If a child as requested by pid has already exited by the time of the call (a so-called "zombie" process), the function returns immediately. Any system resources used by the child are freed. Please see your system's waitpid(2) man page for specific details as to how waitpid works on your system.

pcntl_waitpid() returns the process ID of the child which exited, -1 on error or zero if WNOHANG was used and no child was available

The value of pid can be one of the following:

Tabla 1. possible values for pid

< -1 | wait for any child process whose process group ID is equal to the absolute value of pid.
-1 | wait for any child process; this is the same behaviour that the wait function exhibits.
0 | wait for any child process whose process group ID is equal to that of the calling process.
> 0 | wait for the child whose process ID is equal to the value of pid.

pcntl_waitpid() will store status information
in the status parameter which can be
evaluated using the following functions:
pcntl_wifexited(),
pcntl_wifstopped(),
pcntl_wifsignaled(),
pcntl_wexitstatus(),
pcntl_wtermsig() and
pcntl_wstopsig().

The value of options is the value of zero or more of the following two global constants OR'ed together:

Tabla 2. possible values for options

WNOHANG | return immediately if no child has exited.
WUNTRACED | return for children which are stopped, and whose status has not been reported.

See also pcntl_fork(),
pcntl_signal(),
pcntl_wifexited(),
pcntl_wifstopped(),
pcntl_wifsignaled(),
pcntl_wexitstatus(),
pcntl_wtermsig() and
pcntl_wstopsig().

Anterior | Inicio | Siguiente
pcntl_signal | Subir | pcntl_wexitstatus


pcntl_wexitstatus

(PHP 4 >= 4.1.0)

pcntl_wexitstatus -- Returns the return code of a terminated child

Description

int pcntl_wexitstatus ( int status)

Returns the return code of a terminated child. This function is only useful if pcntl_wifexited() returned TRUE.

The parameter status is the status parameter supplied to a successfull call to pcntl_waitpid().

See also pcntl_waitpid() and pcntl_wifexited().

Anterior | Inicio | Siguiente
pcntl_waitpid | Subir | pcntl_wifexited


pcntl_wifexited

(PHP 4 >= 4.1.0)

pcntl_wifexited -- Returns TRUE if status code represents a successful exit

Description

int pcntl_wifexited ( int status)

Returns TRUE if the child status code represents a successful exit.

The parameter status is the status parameter supplied to a successfull call to pcntl_waitpid().

See also pcntl_waitpid() and pcntl_wexitstatus().

Anterior | Inicio | Siguiente
pcntl_wexitstatus | Subir | pcntl_wifsignaled


pcntl_wifsignaled

(PHP 4 >= 4.1.0)

pcntl_wifsignaled -- Returns TRUE if status code represents a termination due to a signal

Description

int pcntl_wifsignaled ( int status)

Returns TRUE if the child process exited because of a signal which was not caught.

The parameter status is the status parameter supplied to a successfull call to pcntl_waitpid().

See also pcntl_waitpid() and pcntl_signal().

Anterior | Inicio | Siguiente
pcntl_wifexited | Subir | pcntl_wifstopped


pcntl_wifstopped

(PHP 4 >= 4.1.0)

pcntl_wifstopped -- Returns TRUE if child process is currently stopped

Description

int pcntl_wifstopped ( int status)

Returns TRUE if the child process which caused the return is currently stopped; this is only possible if the call to pcntl_waitpid() was done using the option WUNTRACED.

The parameter status is the status parameter supplied to a successfull call to pcntl_waitpid().

See also pcntl_waitpid().

Anterior | Inicio | Siguiente
pcntl_wifsignaled | Subir | pcntl_wstopsig


pcntl_wstopsig

(PHP 4 >= 4.1.0)

pcntl_wstopsig -- Returns the signal which caused the child to stop

Description

int pcntl_wstopsig ( int status)

Returns the number of the signal which caused the child to stop. This function is only useful if pcntl_wifstopped() returned TRUE.

The parameter status is the status parameter supplied to a successfull call to pcntl_waitpid().

See also pcntl_waitpid() and pcntl_wifstopped().

Anterior | Inicio | Siguiente
pcntl_wifstopped | Subir | pcntl_wtermsig


pcntl_wtermsig

(PHP 4 >= 4.1.0)

pcntl_wtermsig -- Returns the signal which caused the child to terminate

Description

int pcntl_wtermsig ( int status)

Returns the number of the signal that caused the child process to terminate. This function is only useful if pcntl_wifsignaled() returned TRUE.

The parameter status is the status parameter supplied to a successfull call to pcntl_waitpid().

See also pcntl_waitpid(),
pcntl_signal() and
pcntl_wifsignaled().

Anterior | Inicio | Siguiente
pcntl_wstopsig | Subir | Funciones de Ejecución de Programas


Funciones de Ejecución de Programas

Manual de PHP
Anterior Siguiente

LXXXV. Funciones de Ejecución de Programas

Introducción

Estas funciones proveen medios para ejecutar comandos en el sistema mismo, y medios para proveer seguridad con tales comandos.

Requerimientos

No se necesitan bibliotecas externas para construir esta extensión

Instalación

No se necesita ninguna instalación para usar estas funciones, son parte del núcleo de PHP.

Configuración en tiempo de ejecución

Esta extensión no tiene directivas de configuración en php.ini.

Tipos de recursos

Esta extensión no tiene ningún tipo de recurso definido.

Constantes predefinidas

Esta extensión no tiene ninguna constante definida.

Ver también

Estas funciones se relacionan estrechamente también con el operador de comilla invertida. Asi mismo, cuando se encuentre bajo safe mode, debe considerar la directiva safe_mode_exec_dir.

Tabla de contenidos
escapeshellarg -- escapar una cadena a ser usada como argumento del intérprete de comandos
escapeshellcmd -- enmascara los metacaracteres del intérprete de ordenes
exec -- Ejecuta un programa externo
passthru -- Ejecuta un programa externo y muestra su salida literal
proc_close -- Cierra un proceso abierto por proc_open() y devuelve el código de salida del proceso.
proc_get_status -- Obtiene información sobre un proceso abierto por proc_open()
proc_nice -- Modificar la prioridad del proceso actual
proc_open -- Ejecutar un comando y abrir apuntadores de archivo para entrada/salida
proc_terminate -- mata un proceso abierto por proc_open
shell_exec -- Ejecutar un comando mediante el intérprete de comandos y devolver la salida completa como una cadena
system -- Ejecuta un programa externo y muestra su salida

Anterior | Inicio | Siguiente
pcntl_wtermsig | Subir | escapeshellarg


escapeshellarg

(PHP 4 >= 4.0.3)

escapeshellarg -- escapar una cadena a ser usada como argumento del intérprete de comandos

Descripción

string escapeshellarg ( string arg)

escapeshellarg() agrega comillas sencillas alrededor de una cadena y rodea de comillas/escapa cualquier comilla sencilla existente, permitiéndole pasar la cadena directamente a una función del intérprete de comandos, y logrando que sea tratada como un solo argumento seguro. Esta función debe ser usada para escapar argumentos individuales a funciones del intérprete de comandos que provienen de la entrada del usuario. Las funciones del intérprete de comandos incluyen exec(), system() y el operador de comilla invertida. Una forma regular de usar esta función sería:

<?php
system('ls '.escapeshellarg($dir));
?>

Vea también
escapeshellcmd(),
exec(),
popen(),
system(), y el operador de comillas
invertidas.

Anterior | Inicio | Siguiente
Funciones de Ejecución de Programas | Subir | escapeshellcmd


escapeshellcmd

(PHP 3, PHP 4 )

escapeshellcmd -- enmascara los metacaracteres del intérprete de ordenes

Descripción

string escapeshellcmd ( string command)

EscapeShellCmd() enmascara cualquier carácter en una cadena de caracteres que pueda usarse para introducir fraudulentamente una orden al intérprete de órdenes para que éste ejecute instrucciones arbitrarias. Esta función se debería usar para asegurarse que cualquier dato que venga del usuario se enmascare antes de que éste se le pase a las funciones exec() o system(), o al operador ` (apóstrofe invertido) . Un uso habitual podría ser:

system(EscapeShellCmd($cmd))

Véase también exec(), popen(), system(), y el operador ` (apóstrofe invertido).

Anterior | Inicio | Siguiente
escapeshellarg | Subir | exec


exec

(PHP 3, PHP 4 )

exec -- Ejecuta un programa externo

Descripción

string exec ( string command [, string array [, int return_var]])

exec() ejecuta la orden indicada en command, sin embargo no produce ninguna salida. Simplemente devuelve la última línea de la salida resultado de la orden. Si necesita ejecutar una orden y obtener directamente todos los datos devueltos por la orden sin ninguna interferencia, use la función PassThru().

Si el parámetro array existe, entonces el array especificado se rellenará con cada una de las líneas de la salida producida por la orden. Notar que si el array ya contiene algunos elementos, exec() los añadirá al final del array. Si no quiere que la función añada dichos elementos, haga un unset() sobre el array antes de pasárselo a exec().

Si el parámetro return_var existe a la vez que el parámetro array, entonces el valor de retorno de la orden ejecutada se guardará en dicha variable.

Destacar que si usted va a permitir que se pasen datos provenientes de usuarios a esta función, entonces debería usar EscapeShellCmd() para asegurarse de que los usuarios no pueden engañar al sistema para ejecutar instrucciones arbitrarias.

Véase también system(),
PassThru(), popen(),
EscapeShellCmd(), y el operador ` (apóstrofe
       invertido).

Anterior | Inicio | Siguiente
escapeshellcmd | Subir | passthru


passthru

(PHP 3, PHP 4 )

passthru -- Ejecuta un programa externo y muestra su salida literal

Descripción

string passthru ( string command [, int return_var])

La función passthru() es similar a la función exec() en que ejecuta una orden (command). Si existe el parámetro return_var, el valor de estado devuelto por la orden Unix se guardará ahí. Esta función debería usarse en lugar de exec() o system() cuando la salida de la orden Unix sean datos binarios que deban ser pasados directamente al navegador. Un uso típico de ello es ejecutar algo como las utilidades pbmplus las cuales pueden dar como resultado directamente el flujo de datos de una imagen. Poniendo el content-type a image/gif y llamando al programa pbmplus para mostrar un gif, usted puede crear archivos de órdenes PHP que generen directamente imágenes.

Véase también exec(),
system(), popen(),
EscapeShellCmd(), y el operador ` (apóstrofe
       invertido).

Anterior | Inicio | Siguiente
exec | Subir | proc_close


proc_close

(PHP 4 >= 4.3.0)

proc_close -- Cierra un proceso abierto por proc_open() y devuelve el código de salida del proceso.

Descripción

int proc_close ( resource proceso)

proc_close() es similar a pclose(), excepto que solo trabaja con procesos abiertos por proc_open(). proc_close() espera a que el proceso termine, y devuelve su código de salida. Si tiene pipes abiertos con ese proceso, debe usar fclose() sobre ellos antes de llamar esta función, con el propósito de evitar bloqueos muertos - puede que el proceso hijo no pueda salir mientras los pipes se encuentren abiertos.

Anterior | Inicio | Siguiente
passthru | Subir | proc_get_status


proc_get_status

(PHP 5 CVS only)

proc_get_status -- Obtiene información sobre un proceso abierto por proc_open()

Descripción

array proc_get_status ( resource proceso)

proc_get_status() recupera información sobre un proceso abierto mediante el uso de proc_open(). Los datos recolectados son devueltos en una matriz que contiene los siguientes elementos:

elemento | tipo | descripción
command | string | la cadena del comando que fue pasada a proc_open()
pid | int | id del proceso
running | bool | TRUE si el proceso aun está siendo ejecutado, FALSE si ha terminado
signaled | bool | TRUE si el proceso hijo ha sido terminado por una señal no atrapada. En windows, este valor siempre es FALSE.
stopped | bool | TRUE si el proceso hijo fue detenido por una señal. En windows, este valor siempre es FALSE.
exitcode | int | el código de salida devuelto por el proceso (el cual tiene sentido únicamente si running es FALSE)
termsig | int | el número de la señal que causó que el proceso hijo finalizara su ejecución (sólo tiene sentido si signaled es TRUE)
stopsig | int | el número de la señal que causó que el proceso hijo detuviera su ejecución (sólo tiene sentido si stopped es TRUE)

Vea también proc_open().

Anterior | Inicio | Siguiente
proc_close | Subir | proc_nice


proc_nice

(PHP 5 CVS only)

proc_nice -- Modificar la prioridad del proceso actual

Descripción

bool proc_nice ( int prioridad)

proc_nice() modifica la prioridad del proceso actual. Si un error ocurre, como que el usuario carezca de permisos para modificar la prioridad, un error de nivel E_WARNING es generado, y se devuelve FALSE. De otro modo, se devuelve TRUE.

Nota: proc_nice() existirá únicamente si su sistema tiene soporte para 'nice'. 'nice' está definido de acuerdo a los estándares: SVr4, SVID EXT, AT&T, X/OPEN, BSD 4.3. Esto quiere decir que proc_nice() no está disponible en windows.

La función proc_nice() no se encuentra relacionada con proc_open() ni sus funciones asociadas en ninguna forma.

Anterior | Inicio | Siguiente
proc_get_status | Subir | proc_open


proc_open

(PHP 4 >= 4.3.0)

proc_open -- Ejecutar un comando y abrir apuntadores de archivo para entrada/salida

Descripción

resource proc_open ( string cmd, array espec_descriptor, array pipes)

proc_open() es similar a popen() pero provee un grado de control mucho mayor sobre la ejecución del programa. cmd es el comando a ser ejecutado por el intérprete de comandos. espec_descriptor es una matriz indexada en donde la clave representa el número de descriptor y el valor representa el modo como PHP pasará ese descriptor al proceso hijo. pipes será definido como una matriz indexada de apuntadores a archivo que corresponden a los puntos de comunicación con PHP de todo pipe que sea creado. El valor de retorno es un recurso que representa el proceso; usted debe liberarlo usando proc_close() una vez haya terminado de usarlo.

<?php
$espec_descriptor = array(
   0 => array("pipe", "r"),  // stdin es un pipe usado por el hijo para lectura
   1 => array("pipe", "w"),  // stdout es un pipe usado por el hijo para escritura
   2 => array("file", "/tmp/error-output.txt", "a") // stderr es un archivo para escritura
);
$proceso = proc_open("php", $espec_descriptor, $pipes);
if (is_resource($proceso)) {
    // $pipes ahora luce de esta forma:
    // 0 => gestor de escritura conectado con la entrada estandar del hijo
    // 1 => gestor de lectura conectado con la salida estandar del hijo
    // Cualquier mensaje de salida de error sera adicionado a /tmp/error-output.txt

    fwrite($pipes[0], "<?php echo \"&iexcl;Hola mundo!\"; ?>");
    fclose($pipes[0]);

    while(!feof($pipes[1])) {
        echo fgets($pipes[1], 1024);
    }
    fclose($pipes[1]);
    // Es importante que cierre todos los pipes antes de llamar
    // proc_close para evitar un bloqueo muerto
    $retval = proc_close($proceso);

    echo "el comando ha devuelto $retval\n";
}
?>

Los números de descriptor de archivo en espec_descriptor no están limitados a 0, 1 y 2 - usted puede especificar cualquier número de descriptor de archivo válido y éste será pasado al proceso hijo. Esto le permite a su script interoperar con otros scripts que corran como "co-procesos". En particular, esto es útil para pasar contraseñas a programas como PGP, GPG y openssl en un modo más seguro. También es útil para la lectura de información de status entregada por aquellos programas en descriptores de archivo auxiliares.

Nota: Compatibilidad con windows: Los descriptores más allá de 2 (stderr) son entregados al proceso hijo como gestores heredables, pero ya que la arquitectura windows no asocia números de descriptor de archivo con gestores de bajo nivel, el proceso hijo no dispone (aun) de un medio para acceder a esos gestores. Stdin, stdout y stderr funcionan como es de esperar.

Nota: Si sólo necesita un pipe de proceso uni-direccional (una-vía), use popen() en su lugar, ya que es mucho más fácil de usar.

Vea también stream_select(),
exec(),
system(),
passthru(), popen(),
escapeshellcmd(), y el operador de comilla
invertida.

Anterior | Inicio | Siguiente
proc_nice | Subir | proc_terminate


proc_terminate

(PHP 5 CVS only)

proc_terminate -- mata un proceso abierto por proc_open

Descripción

int proc_terminate ( resource proceso [, int senyal])

Envía una señal al proceso (creado usando proc_open()) indicando que debería terminar. proc_terminate() retorna inmediatamente y no espera a que el proceso termine.

La senyal opcional es útil únicamente en sistemas operativos POSIX; puede especificar una señal a ser enviada al proceso usando la llamada del sistema kill(2). La señal predeterminada es SIGTERM.

proc_terminate() le permite terminar el proceso y continuar con otras tareas. Puede consultar el estado del proceso (para ver si ya se ha detenido) usando la función proc_get_status().

Vea también proc_open(),
proc_close(),
y proc_get_status().

Anterior | Inicio | Siguiente
proc_open | Subir | shell_exec


shell_exec

(PHP 4 )

shell_exec -- Ejecutar un comando mediante el intérprete de comandos y devolver la salida completa como una cadena

Descripción

string shell_exec ( string cmd)

Esta función es idéntica al operador de comillas invertidas.

Anterior | Inicio | Siguiente
proc_terminate | Subir | system


system

(PHP 3, PHP 4 )

system -- Ejecuta un programa externo y muestra su salida

Description

string system ( string command [, int return_var])

system() se parece a la versión C de la función de mismo nombre en que ejecuta la orden indicada en command y muestra el resultado. Si se indica una variable como segundo parámetro, el código de estado devuelto por la orden ejecutada se guardará en esta variable.

Destacar que si usted va a permitir que se pasen datos provenientes de usuarios a esta función, entonces debería usar EscapeShellCmd() para asegurarse de que los usuarios no pueden engañar al sistema para ejecutar instrucciones arbitrarias.

La llamada a system() también intenta vaciar automáticamente el buffer de salida del servidor web después de cada línea de salida si PHP está funcionando como un módulo del servidor.

Devuelve la última línea de la orden en caso de éxito, y falso en caso de fallo.

Si necesita ejecutar una orden y obtener de vuelta todo los datos del mismo sin interferencias, use la función PassThru().

Véase también exec(),
PassThru(), popen(),
EscapeShellCmd(), y el operador ` (apóstrofe
       invertido).

Anterior | Inicio | Siguiente
shell_exec | Subir | Printer functions


Printer functions

Manual de PHP
Anterior Siguiente

LXXXVI. Printer functions

Introducción

These functions are only available under Windows 9.x, ME, NT4 and 2000. They have been added in PHP 4.0.4.

Instalación

Add the line extension=php_printer.dll to your php.ini file.

Configuración en tiempo de ejecución

El comportamiento de estas funciones está afectado por los valores definidos en php.ini.

Tabla 1. Printer configuration options

Name | Default | Changeable
printer.default_printer | "" | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Tabla de contenidos
printer_abort -- Deletes the printer's spool file
printer_close -- Close an open printer connection
printer_create_brush -- Create a new brush
printer_create_dc -- Create a new device context
printer_create_font -- Create a new font
printer_create_pen -- Create a new pen
printer_delete_brush -- Delete a brush
printer_delete_dc -- Delete a device context
printer_delete_font -- Delete a font
printer_delete_pen -- Delete a pen
printer_draw_bmp -- Draw a bmp
printer_draw_chord -- Draw a chord
printer_draw_elipse -- Draw an ellipse
printer_draw_line -- Draw a line
printer_draw_pie -- Draw a pie
printer_draw_rectangle -- Draw a rectangle
printer_draw_roundrect -- Draw a rectangle with rounded corners
printer_draw_text -- Draw text
printer_end_doc -- Close document
printer_end_page -- Close active page
printer_get_option -- Retrieve printer configuration data
printer_list -- Return an array of printers attached to the server
printer_logical_fontheight -- Get logical font height
printer_open -- Open connection to a printer
printer_select_brush -- Select a brush
printer_select_font -- Select a font
printer_select_pen -- Select a pen
printer_set_option -- Configure the printer connection
printer_start_doc -- Start a new document
printer_start_page -- Start a new page
printer_write -- Write data to the printer

Anterior | Inicio | Siguiente
system | Subir | printer_abort


printer_abort

(no version information, might be only in CVS)

printer_abort -- Deletes the printer's spool file

Description

void printer_abort ( resource handle)

This function deletes the printers spool file.

handle must be a valid handle to a printer.

Ejemplo 1. printer_abort() example

<?php
$handle = printer_open();
printer_abort($handle);
printer_close($handle);
?>

Anterior | Inicio | Siguiente
Printer functions | Subir | printer_close


printer_close

(no version information, might be only in CVS)

printer_close -- Close an open printer connection

Description

void printer_close ( resource handle)

This function closes the printer connection. printer_close() also closes the active device context.

handle must be a valid handle to a printer.

Ejemplo 1. printer_close() example

<?php
$handle = printer_open();
printer_close($handle);
?>

Anterior | Inicio | Siguiente
printer_abort | Subir | printer_create_brush


printer_create_brush

(no version information, might be only in CVS)

printer_create_brush -- Create a new brush

Description

mixed printer_create_brush ( int style, string color)

The function creates a new brush and returns a handle to it. A brush is used to fill shapes. For an example see printer_select_brush(). color must be a color in RGB hex format, i.e. "000000" for black, style must be one of the following constants:

  • PRINTER_BRUSH_SOLID: creates a brush with a solid color.

  • PRINTER_BRUSH_DIAGONAL: creates a brush with a 45-degree upward left-to-right hatch ( / ).

  • PRINTER_BRUSH_CROSS: creates a brush with a cross hatch ( + ).

  • PRINTER_BRUSH_DIAGCROSS: creates a brush with a 45 cross hatch ( x ).

  • PRINTER_BRUSH_FDIAGONAL: creates a brush with a 45-degree downward left-to-right hatch ( \ ).

  • PRINTER_BRUSH_HORIZONTAL: creates a brush with a horizontal hatch ( - ).

  • PRINTER_BRUSH_VERTICAL: creates a brush with a vertical hatch ( | ).

  • PRINTER_BRUSH_CUSTOM: creates a custom brush from an BMP file. The second parameter is used to specify the BMP instead of the RGB color code.

Anterior | Inicio | Siguiente
printer_close | Subir | printer_create_dc


printer_create_dc

(no version information, might be only in CVS)

printer_create_dc -- Create a new device context

Description

void printer_create_dc ( resource handle)

The function creates a new device context. A device context is used to customize the graphic objects of the document. handle must be a valid handle to a printer.

Ejemplo 1. printer_create_dc() example

<?php
$handle = printer_open();
printer_start_doc($handle);
printer_start_page($handle);

printer_create_dc($handle);
/* do some stuff with the dc */
printer_set_option($handle, PRINTER_TEXT_COLOR, "333333");
printer_draw_text($handle, 1, 1, "text");
printer_delete_dc($handle);

/* create another dc */
printer_create_dc($handle);
printer_set_option($handle, PRINTER_TEXT_COLOR, "000000");
printer_draw_text($handle, 1, 1, "text");
/* do some stuff with the dc */

printer_delete_dc($handle);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Anterior | Inicio | Siguiente
printer_create_brush | Subir | printer_create_font


printer_create_font

(no version information, might be only in CVS)

printer_create_font -- Create a new font

Description

mixed printer_create_font ( string face, int height, int width, int font_weight, bool italic, bool underline, bool strikeout, int orientaton)

The function creates a new font and returns a handle to it. A font is used to draw text. For an example see printer_select_font(). face must be a string specifying the font face. height specifies the font height, and width the font width. The font_weight specifies the font weight (400 is normal), and can be one of the following predefined constants.

  • PRINTER_FW_THIN: sets the font weight to thin (100).

  • PRINTER_FW_ULTRALIGHT: sets the font weight to ultra light (200).

  • PRINTER_FW_LIGHT: sets the font weight to light (300).

  • PRINTER_FW_NORMAL: sets the font weight to normal (400).

  • PRINTER_FW_MEDIUM: sets the font weight to medium (500).

  • PRINTER_FW_BOLD: sets the font weight to bold (700).

  • PRINTER_FW_ULTRABOLD: sets the font weight to ultra bold (800).

  • PRINTER_FW_HEAVY: sets the font weight to heavy (900).

italic can be TRUE or FALSE, and sets whether the font should be italic.

underline can be TRUE or FALSE, and sets whether the font should be underlined.

strikeout can be TRUE or FALSE, and sets whether the font should be striked out.

orientation specifies a rotation. For an example see printer_select_font().

Anterior | Inicio | Siguiente
printer_create_dc | Subir | printer_create_pen


printer_create_pen

(no version information, might be only in CVS)

printer_create_pen -- Create a new pen

Description

mixed printer_create_pen ( int style, int width, string color)

The function creates a new pen and returns a handle to it. A pen is used to draw lines and curves. For an example see printer_select_pen(). color must be a color in RGB hex format, i.e. "000000" for black, width specifies the width of the pen whereas style must be one of the following constants:

  • PRINTER_PEN_SOLID: creates a solid pen.

  • PRINTER_PEN_DASH: creates a dashed pen.

  • PRINTER_PEN_DOT: creates a dotted pen.

  • PRINTER_PEN_DASHDOT: creates a pen with dashes and dots.

  • PRINTER_PEN_DASHDOTDOT: creates a pen with dashes and double dots.

  • PRINTER_PEN_INVISIBLE: creates an invisible pen.

Anterior | Inicio | Siguiente
printer_create_font | Subir | printer_delete_brush


printer_delete_brush

(no version information, might be only in CVS)

printer_delete_brush -- Delete a brush

Description

bool printer_delete_brush ( resource handle)

The function deletes the selected brush. For an example see printer_select_brush(). Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo. handle must be a valid handle to a brush.

Anterior | Inicio | Siguiente
printer_create_pen | Subir | printer_delete_dc


printer_delete_dc

(no version information, might be only in CVS)

printer_delete_dc -- Delete a device context

Description

bool printer_delete_dc ( resource handle)

The function deletes the device context. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo. For an example see printer_create_dc(). handle must be a valid handle to a printer.

Anterior | Inicio | Siguiente
printer_delete_brush | Subir | printer_delete_font


printer_delete_font

(no version information, might be only in CVS)

printer_delete_font -- Delete a font

Description

bool printer_delete_font ( resource handle)

The function deletes the selected font. For an example see printer_select_font(). Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo. handle must be a valid handle to a font.

Anterior | Inicio | Siguiente
printer_delete_dc | Subir | printer_delete_pen


printer_delete_pen

(no version information, might be only in CVS)

printer_delete_pen -- Delete a pen

Description

bool printer_delete_pen ( resource handle)

The function deletes the selected pen. For an example see printer_select_pen(). Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo. handle must be a valid handle to a pen.

Anterior | Inicio | Siguiente
printer_delete_font | Subir | printer_draw_bmp


printer_draw_bmp

(no version information, might be only in CVS)

printer_draw_bmp -- Draw a bmp

Description

void printer_draw_bmp ( resource handle, string filename, int x, int y)

The function simply draws an bmp the bitmap filename at position x, y. handle must be a valid handle to a printer.

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Ejemplo 1. printer_draw_bmp() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

printer_draw_bmp($handle, "c:\\image.bmp", 1, 1);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Anterior | Inicio | Siguiente
printer_delete_pen | Subir | printer_draw_chord


printer_draw_chord

(no version information, might be only in CVS)

printer_draw_chord -- Draw a chord

Description

void printer_draw_chord ( resource handle, int rec_x, int rec_y, int rec_x1, int rec_y1, int rad_x, int rad_y, int rad_x1, int rad_y1)

The function simply draws an chord. handle must be a valid handle to a printer.

rec_x is the upper left x coordinate of the bounding rectangle.

rec_y is the upper left y coordinate of the bounding rectangle.

rec_x1 is the lower right x coordinate of the bounding rectangle.

rec_y1 is the lower right y coordinate of the bounding rectangle.

rad_x is x coordinate of the radial defining the beginning of the chord.

rad_y is y coordinate of the radial defining the beginning of the chord.

rad_x1 is x coordinate of the radial defining the end of the chord.

rad_y1 is y coordinate of the radial defining the end of the chord.

Ejemplo 1. printer_draw_chord() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 2, "000000");
printer_select_pen($handle, $pen);

$brush = printer_create_brush(PRINTER_BRUSH_SOLID, "2222FF");
printer_select_brush($handle, $brush);

printer_draw_chord($handle, 1, 1, 500, 500, 1, 1, 500, 1);

printer_delete_brush($brush);
printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Anterior | Inicio | Siguiente
printer_draw_bmp | Subir | printer_draw_elipse


printer_draw_elipse

(no version information, might be only in CVS)

printer_draw_elipse -- Draw an ellipse

Description

void printer_draw_elipse ( resource handle, int ul_x, int ul_y, int lr_x, int lr_y)

The function simply draws an ellipse. handle must be a valid handle to a printer.

ul_x is the upper left x coordinate of the ellipse.

ul_y is the upper left y coordinate of the ellipse.

lr_x is the lower right x coordinate of the ellipse.

lr_y is the lower right y coordinate of the ellipse.

Ejemplo 1. printer_draw_elipse() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 2, "000000");
printer_select_pen($handle, $pen);

$brush = printer_create_brush(PRINTER_BRUSH_SOLID, "2222FF");
printer_select_brush($handle, $brush);

printer_draw_elipse($handle, 1, 1, 500, 500);

printer_delete_brush($brush);
printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Anterior | Inicio | Siguiente
printer_draw_chord | Subir | printer_draw_line


printer_draw_line

(no version information, might be only in CVS)

printer_draw_line -- Draw a line

Description

void printer_draw_line ( resource printer_handle, int from_x, int from_y, int to_x, int to_y)

The function simply draws a line from position from_x, from_y to position to_x, to_y using the selected pen. printer_handle must be a valid handle to a printer.

Ejemplo 1. printer_draw_line() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 30, "000000");
printer_select_pen($handle, $pen);

printer_draw_line($handle, 1, 10, 1000, 10);
printer_draw_line($handle, 1, 60, 500, 60);

printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Anterior | Inicio | Siguiente
printer_draw_elipse | Subir | printer_draw_pie


printer_draw_pie

(no version information, might be only in CVS)

printer_draw_pie -- Draw a pie

Description

void printer_draw_pie ( resource handle, int rec_x, int rec_y, int rec_x1, int rec_y1, int rad1_x, int rad1_y, int rad2_x, int rad2_y)

The function simply draws an pie. handle must be a valid handle to a printer.

rec_x is the upper left x coordinate of the bounding rectangle.

rec_y is the upper left y coordinate of the bounding rectangle.

rec_x1 is the lower right x coordinate of the bounding rectangle.

rec_y1 is the lower right y coordinate of the bounding rectangle.

rad1_x is x coordinate of the first radial's ending.

rad1_y is y coordinate of the first radial's ending.

rad2_x is x coordinate of the second radial's ending.

rad2_y is y coordinate of the second radial's ending.

Ejemplo 1. printer_draw_pie() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 2, "000000");
printer_select_pen($handle, $pen);

$brush = printer_create_brush(PRINTER_BRUSH_SOLID, "2222FF");
printer_select_brush($handle, $brush);

printer_draw_pie($handle, 1, 1, 500, 500, 1, 1, 500, 1);

printer_delete_brush($brush);
printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Anterior | Inicio | Siguiente
printer_draw_line | Subir | printer_draw_rectangle


printer_draw_rectangle

(no version information, might be only in CVS)

printer_draw_rectangle -- Draw a rectangle

Description

void printer_draw_rectangle ( resource handle, int ul_x, int ul_y, int lr_x, int lr_y)

The function simply draws a rectangle.

handle must be a valid handle to a printer.

ul_x is the upper left x coordinate of the rectangle.

ul_y is the upper left y coordinate of the rectangle.

lr_x is the lower right x coordinate of the rectangle.

lr_y is the lower right y coordinate of the rectangle.

Ejemplo 1. printer_draw_rectangle() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 2, "000000");
printer_select_pen($handle, $pen);

$brush = printer_create_brush(PRINTER_BRUSH_SOLID, "2222FF");
printer_select_brush($handle, $brush);

printer_draw_rectangle($handle, 1, 1, 500, 500);

printer_delete_brush($brush);
printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Anterior | Inicio | Siguiente
printer_draw_pie | Subir | printer_draw_roundrect


printer_draw_roundrect

(no version information, might be only in CVS)

printer_draw_roundrect -- Draw a rectangle with rounded corners

Description

void printer_draw_roundrect ( resource handle, int ul_x, int ul_y, int lr_x, int lr_y, int width, int height)

The function simply draws a rectangle with rounded corners.

handle must be a valid handle to a printer.

ul_x is the upper left x coordinate of the rectangle.

ul_y is the upper left y coordinate of the rectangle.

lr_x is the lower right x coordinate of the rectangle.

lr_y is the lower right y coordinate of the rectangle.

width is the width of the ellipse.

height is the height of the ellipse.

Ejemplo 1. printer_draw_roundrect() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 2, "000000");
printer_select_pen($handle, $pen);

$brush = printer_create_brush(PRINTER_BRUSH_SOLID, "2222FF");
printer_select_brush($handle, $brush);

printer_draw_roundrect($handle, 1, 1, 500, 500, 200, 200);

printer_delete_brush($brush);
printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Anterior | Inicio | Siguiente
printer_draw_rectangle | Subir | printer_draw_text


printer_draw_text

(no version information, might be only in CVS)

printer_draw_text -- Draw text

Description

void printer_draw_text ( resource printer_handle, string text, int x, int y)

The function simply draws text at position x, y using the selected font. printer_handle must be a valid handle to a printer.

Ejemplo 1. printer_draw_text() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$font = printer_create_font("Arial",72,48,400,false,false,false,0);
printer_select_font($handle, $font);
printer_draw_text($handle, "test", 10, 10);
printer_delete_font($font);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Anterior | Inicio | Siguiente
printer_draw_roundrect | Subir | printer_end_doc


printer_end_doc

(no version information, might be only in CVS)

printer_end_doc -- Close document

Description

bool printer_end_doc ( resource handle)

Closes a new document in the printer spooler. The document is now ready for printing. For an example see printer_start_doc(). handle must be a valid handle to a printer.

Anterior | Inicio | Siguiente
printer_draw_text | Subir | printer_end_page


printer_end_page

(no version information, might be only in CVS)

printer_end_page -- Close active page

Description

bool printer_end_page ( resource handle)

The function closes the active page in the active document. For an example see printer_start_doc(). handle must be a valid handle to a printer.

Anterior | Inicio | Siguiente
printer_end_doc | Subir | printer_get_option


printer_get_option

(no version information, might be only in CVS)

printer_get_option -- Retrieve printer configuration data

Description

mixed printer_get_option ( resource handle, string option)

The function retrieves the configuration setting of option. handle must be a valid handle to a printer. Take a look at printer_set_option() for the settings that can be retrieved, additionally the following settings can be retrieved:

  • PRINTER_DEVICENAME returns the devicename of the printer.

  • PRINTER_DRIVERVERSION returns the printer driver version.

Ejemplo 1. printer_get_option() example

<?php
$handle = printer_open();
print printer_get_option($handle, PRINTER_DRIVERVERSION);
printer_close($handle);
?>

Anterior | Inicio | Siguiente
printer_end_page | Subir | printer_list


printer_list

(no version information, might be only in CVS)

printer_list -- Return an array of printers attached to the server

Description

array printer_list ( int enumtype [, string name [, int level]])

The function enumerates available printers and their capabilities. level sets the level of information request. Can be 1,2,4 or 5. enumtype must be one of the following predefined constants:

  • PRINTER_ENUM_LOCAL: enumerates the locally installed printers.

  • PRINTER_ENUM_NAME: enumerates the printer of name, can be a server, domain or print provider.

  • PRINTER_ENUM_SHARED: this parameter can't be used alone, it has to be OR'ed with other parameters, i.e. PRINTER_ENUM_LOCAL to detect the locally shared printers.

  • PRINTER_ENUM_DEFAULT: (Win9.x only) enumerates the default printer.

  • PRINTER_ENUM_CONNECTIONS: (WinNT/2000 only) enumerates the printers to which the user has made connections.

  • PRINTER_ENUM_NETWORK: (WinNT/2000 only) enumerates network printers in the computer's domain. Only valid if level is 1.

  • PRINTER_ENUM_REMOTE: (WinNT/2000 only) enumerates network printers and print servers in the computer's domain. Only valid if level is 1.

Ejemplo 1. printer_list() example

<?php
/* detect locally shared printer */
var_dump( printer_list(PRINTER_ENUM_LOCAL | PRINTER_ENUM_SHARED) );
?>

Anterior | Inicio | Siguiente
printer_get_option | Subir | printer_logical_fontheight


printer_logical_fontheight

(no version information, might be only in CVS)

printer_logical_fontheight -- Get logical font height

Description

int printer_logical_fontheight ( resource handle, int height)

The function calculates the logical font height of height. handle must be a valid handle to a printer.

Ejemplo 1. printer_logical_fontheight() example

<?php
$handle = printer_open();
print printer_logical_fontheight($handle, 72);
printer_close($handle);
?>

Anterior | Inicio | Siguiente
printer_list | Subir | printer_open


printer_open

(no version information, might be only in CVS)

printer_open -- Open connection to a printer

Description

mixed printer_open ( [string devicename])

This function tries to open a connection to the printer devicename, and returns a handle on success or FALSE on failure.

If no parameter was given it tries to open a connection to the default printer (if not specified in php.ini as printer.default_printer, php tries to detect it).

printer_open() also starts a device context.

Ejemplo 1. printer_open() example

<?php
$handle = printer_open("HP Deskjet 930c");
$handle = printer_open();
?>

Anterior | Inicio | Siguiente
printer_logical_fontheight | Subir | printer_select_brush


printer_select_brush

(no version information, might be only in CVS)

printer_select_brush -- Select a brush

Description

void printer_select_brush ( resource printer_handle, resource brush_handle)

The function selects a brush as the active drawing object of the actual device context. A brush is used to fill shapes. If you draw an rectangle the brush is used to draw the shapes, while the pen is used to draw the border. If you haven't selected a brush before drawing shapes, the shape won't be filled. printer_handle must be a valid handle to a printer. brush_handle must be a valid handle to a brush.

Ejemplo 1. printer_select_brush() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 2, "000000");
printer_select_pen($handle, $pen);
$brush = printer_create_brush(PRINTER_BRUSH_CUSTOM, "c:\\brush.bmp");
printer_select_brush($handle, $brush);

printer_draw_rectangle($handle, 1,1,500,500);

printer_delete_brush($brush);

$brush = printer_create_brush(PRINTER_BRUSH_SOLID, "000000");
printer_select_brush($handle, $brush);
printer_draw_rectangle($handle, 1,501,500,1001);
printer_delete_brush($brush);

printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Anterior | Inicio | Siguiente
printer_open | Subir | printer_select_font


printer_select_font

(no version information, might be only in CVS)

printer_select_font -- Select a font

Description

void printer_select_font ( resource printer_handle, resource font_handle)

The function selects a font to draw text. printer_handle must be a valid handle to a printer. font_handle must be a valid handle to a font.

Ejemplo 1. printer_select_font() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$font = printer_create_font("Arial", 148, 76, PRINTER_FW_MEDIUM, false, false, false, -50);
printer_select_font($handle, $font);
printer_draw_text($handle, "PHP is simply cool", 40, 40);
printer_delete_font($font);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Anterior | Inicio | Siguiente
printer_select_brush | Subir | printer_select_pen


printer_select_pen

(no version information, might be only in CVS)

printer_select_pen -- Select a pen

Description

void printer_select_pen ( resource printer_handle, resource pen_handle)

The function selects a pen as the active drawing object of the actual device context. A pen is used to draw lines and curves. I.e. if you draw a single line the pen is used. If you draw an rectangle the pen is used to draw the borders, while the brush is used to fill the shape. If you haven't selected a pen before drawing shapes, the shape won't be outlined. printer_handle must be a valid handle to a printer. pen_handle must be a valid handle to a pen.

Ejemplo 1. printer_select_pen() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 30, "2222FF");
printer_select_pen($handle, $pen);

printer_draw_line($handle, 1, 60, 500, 60);

printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Anterior | Inicio | Siguiente
printer_select_font | Subir | printer_set_option


printer_set_option

(no version information, might be only in CVS)

printer_set_option -- Configure the printer connection

Description

bool printer_set_option ( resource handle, int option, mixed value)

The function sets the following options for the current connection. handle must be a valid handle to a printer. For option can be one of the following constants:

  • PRINTER_COPIES: sets how many copies should be printed, value must be an integer.

  • PRINTER_MODE: specifies the type of data (text, raw or emf), value must be a string.

  • PRINTER_TITLE: specifies the name of the document, value must be a string.

  • PRINTER_ORIENTATION: specifies the orientation of the paper, value can be either PRINTER_ORIENTATION_PORTRAIT or PRINTER_ORIENTATION_LANDSCAPE

  • PRINTER_RESOLUTION_Y: specifies the y-resolution in DPI, value must be an integer.

  • PRINTER_RESOLUTION_X: specifies the x-resolution in DPI, value must be an integer.

  • PRINTER_PAPER_FORMAT: specifies the a predefined paper format, set value to PRINTER_FORMAT_CUSTOM if you want to specify a custom format with PRINTER_PAPER_WIDTH and PRINTER_PAPER_LENGTH. value can be one of the following constants.

    • PRINTER_FORMAT_CUSTOM: let's you specify a custom paper format.

    • PRINTER_FORMAT_LETTER: specifies standard letter format (8 1/2- by 11-inches).

    • PRINTER_FORMAT_LETTER: specifies standard legal format (8 1/2- by 14-inches).

    • PRINTER_FORMAT_A3: specifies standard A3 format (297- by 420-millimeters).

    • PRINTER_FORMAT_A4: specifies standard A4 format (210- by 297-millimeters).

    • PRINTER_FORMAT_A5: specifies standard A5 format (148- by 210-millimeters).

    • PRINTER_FORMAT_B4: specifies standard B4 format (250- by 354-millimeters).

    • PRINTER_FORMAT_B5: specifies standard B5 format (182- by 257-millimeter).

    • PRINTER_FORMAT_FOLIO: specifies standard FOLIO format (8 1/2- by 13-inch).

  • PRINTER_PAPER_LENGTH: if PRINTER_PAPER_FORMAT is set to PRINTER_FORMAT_CUSTOM, PRINTER_PAPER_LENGTH specifies a custom paper length in mm, value must be an integer.

  • PRINTER_PAPER_WIDTH: if PRINTER_PAPER_FORMAT is set to PRINTER_FORMAT_CUSTOM, PRINTER_PAPER_WIDTH specifies a custom paper width in mm, value must be an integer.

  • PRINTER_SCALE: specifies the factor by which the printed output is to be scaled. the page size is scaled from the physical page size by a factor of scale/100. for example if you set the scale to 50, the output would be half of it's original size. value must be an integer.

  • PRINTER_BACKGROUND_COLOR: specifies the background color for the actual device context, value must be a string containing the rgb information in hex format i.e. "005533".

  • PRINTER_TEXT_COLOR: specifies the text color for the actual device context, value must be a string containing the rgb information in hex format i.e. "005533".

  • PRINTER_TEXT_ALIGN: specifies the text alignment for the actual device context, value can be combined through OR'ing the following constants:

    • PRINTER_TA_BASELINE: text will be aligned at the base line.

    • PRINTER_TA_BOTTOM: text will be aligned at the bottom.

    • PRINTER_TA_TOP: text will be aligned at the top.

    • PRINTER_TA_CENTER: text will be aligned at the center.

    • PRINTER_TA_LEFT: text will be aligned at the left.

    • PRINTER_TA_RIGHT: text will be aligned at the right.

Ejemplo 1. printer_set_option() example

<?php
$handle = printer_open();
printer_set_option($handle, PRINTER_SCALE, 75);
printer_set_option($handle, PRINTER_TEXT_ALIGN, PRINTER_TA_LEFT);
printer_close($handle);
?>

Anterior | Inicio | Siguiente
printer_select_pen | Subir | printer_start_doc


printer_start_doc

(no version information, might be only in CVS)

printer_start_doc -- Start a new document

Description

bool printer_start_doc ( resource handle [, string document])

The function creates a new document in the printer spooler. A document can contain multiple pages, it's used to schedule the print job in the spooler. handle must be a valid handle to a printer. The optional parameter document can be used to set an alternative document name.

Ejemplo 1. printer_start_doc() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Anterior | Inicio | Siguiente
printer_set_option | Subir | printer_start_page


printer_start_page

(no version information, might be only in CVS)

printer_start_page -- Start a new page

Description

bool printer_start_page ( resource handle)

The function creates a new page in the active document. For an example see printer_start_doc(). handle must be a valid handle to a printer.

Anterior | Inicio | Siguiente
printer_start_doc | Subir | printer_write


printer_write

(no version information, might be only in CVS)

printer_write -- Write data to the printer

Description

bool printer_write ( resource handle, string content)

Writes content directly to the printer. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

handle must be a valid handle to a printer.

Ejemplo 1. printer_write() example

<?php
$handle = printer_open();
printer_write($handle, "Text to print");
printer_close($handle);
?>

Anterior | Inicio | Siguiente
printer_start_page | Subir | Pspell Functions


Pspell Functions

Manual de PHP
Anterior Siguiente

LXXXVII. Pspell Functions

The pspell() functions allow you to check the spelling of a word and offer suggestions.

You need the aspell and pspell libraries, available from http://aspell.sourceforge.net/ and http://aspell.net/ respectively, and add the --with-pspell[=dir] option when compiling php.

Tabla de contenidos
pspell_add_to_personal -- Agrega la palabra a la lista personal de palabras
pspell_add_to_session -- Agrega la palabra a la lista de palabras en la sesión actual
pspell_check -- Check a word
pspell_clear_session -- Limpia la sesión actual
pspell_config_create -- Create a config used to open a dictionary
pspell_config_ignore -- Ignore words less than N characters long
pspell_config_mode -- Change the mode number of suggestions returned
pspell_config_personal -- Set a file that contains personal wordlist
pspell_config_repl -- Set a file that contains replacement pairs
pspell_config_runtogether -- Consider run-together words as valid compounds
pspell_config_save_repl -- Determine whether to save a replacement pairs list along with the wordlist
pspell_new_config -- Load a new dictionary with settings based on a given config
pspell_new_personal -- Load a new dictionary with personal wordlist
pspell_new -- Load a new dictionary
pspell_save_wordlist -- Save the personal wordlist to a file
pspell_store_replacement -- Store a replacement pair for a word
pspell_suggest -- Suggest spellings of a word

Anterior | Inicio | Siguiente
printer_write | Subir | pspell_add_to_personal


pspell_add_to_personal

(PHP 4 >= 4.0.2)

pspell_add_to_personal -- Agrega la palabra a la lista personal de palabras

Descripción

int pspell_add_to_personal ( int dictionary_link, cadena palabra)

pspell_add_to_personal() agrega una palabra a la lista personal de palabras. Si usas pspell_new_config() con pspell_config_personal() para abrir el diccionario, puedes salvar la lista de palabras luego, con pspell_save_wordlist(). Nota: Esta función no funcionará hasta que tengas pspell .11.2 y aspell .32.5 o superior.

Ejemplo 1. pspell_add_to_personal()

$pspell_config = pspell_config_create ("en");
pspell_config_personal ($pspell_config, "/var/dictionaries/custom.pws");
$pspell_link = pspell_new_config ($pspell_config);

pspell_add_to_personal ($pspell_link, "Vlad");
pspell_save_wordlist ($pspell_link);

Anterior | Inicio | Siguiente
Pspell Functions | Subir | pspell_add_to_session


pspell_add_to_session

(PHP 4 >= 4.0.2)

pspell_add_to_session -- Agrega la palabra a la lista de palabras en la sesión actual

Descripción

int pspell_add_to_session ( int dictionary_link, cadena palabra)

pspell_add_to_session() agrega la palabra a la lista de palabras asociada con la sesión actual. Esto es muy similar a pspell_add_to_personal()

Anterior | Inicio | Siguiente
pspell_add_to_personal | Subir | pspell_check


pspell_check

(PHP 4 >= 4.0.2)

pspell_check -- Check a word

Description

bool pspell_check ( int dictionary_link, string word)

pspell_check() checks the spelling of a word and returns TRUE if the spelling is correct, FALSE if not.

Ejemplo 1. pspell_check()

<?php
$pspell_link = pspell_new ("en");

if (pspell_check ($pspell_link, "testt")) {
    echo "This is a valid spelling";
} else {
    echo "Sorry, wrong spelling";
}
?>

Anterior | Inicio | Siguiente
pspell_add_to_session | Subir | pspell_clear_session


pspell_clear_session

(PHP 4 >= 4.0.2)

pspell_clear_session -- Limpia la sesión actual

Descripción

int pspell_clear_session ( int dictionary_link)

pspell_clear_session() limpia la sesión actual. La lista de palabras actual queda vacía, y, por ejemplo, si intentas salvarla con pspell_save_wordlist(), nada ocurre.

Ejemplo 1. pspell_add_to_personal()

$pspell_config = pspell_config_create ("en");
pspell_config_personal ($pspell_config, "/var/dictionaries/custom.pws");
$pspell_link = pspell_new_config ($pspell_config);

pspell_add_to_personal ($pspell_link, "Vlad");
pspell_clear_session ($pspell_link);
pspell_save_wordlist ($pspell_link);    //"Vlad" will not be saved

Anterior | Inicio | Siguiente
pspell_check | Subir | pspell_config_create


pspell_config_create

(PHP 4 >= 4.0.2)

pspell_config_create -- Create a config used to open a dictionary

Description

int pspell_config_create ( string language [, string spelling [, string jargon [, string encoding]]])

pspell_config_create() has a very similar syntax to pspell_new(). In fact, using pspell_config_create() immediatelly followed by pspell_new_config() will produce the exact same result. However, after creating a new config, you can also use pspell_config_*() functions before calling pspell_new_config() to take advantage of some advanced functionality.

The language parameter is the language code which consists of the two letter ISO 639 language code and an optional two letter ISO 3166 country code after a dash or underscore.

The spelling parameter is the requested spelling for languages with more than one spelling such as English. Known values are 'american', 'british', and 'canadian'.

The jargon parameter contains extra information to distinguish two different words lists that have the same language and spelling parameters.

The encoding parameter is the encoding that words are expected to be in. Valid values are 'utf-8', 'iso8859-*', 'koi8-r', 'viscii', 'cp1252', 'machine unsigned 16', 'machine unsigned 32'. This parameter is largely untested, so be careful when using.

The mode parameter is the mode in which spellchecker will work. There are several modes available:

  • PSPELL_FAST - Fast mode (least number of suggestions)

  • PSPELL_NORMAL - Normal mode (more suggestions)

  • PSPELL_BAD_SPELLERS - Slow mode (a lot of suggestions)

For more information and examples, check out inline manual pspell website:http://aspell.net/.

Ejemplo 1. pspell_config_create()

<?php
$pspell_config = pspell_config_create ("en");
pspell_config_personal ($pspell_config, "/var/dictionaries/custom.pws");
pspell_config_repl ($pspell_config, "/var/dictionaries/custom.repl");
$pspell_link = pspell_new_personal ($pspell_config, "en");
?>

Anterior | Inicio | Siguiente
pspell_clear_session | Subir | pspell_config_ignore


pspell_config_ignore

(PHP 4 >= 4.0.2)

pspell_config_ignore -- Ignore words less than N characters long

Description

int pspell_config_ignore ( int dictionary_link, int n)

pspell_config_ignore() should be used on a config before calling pspell_new_config(). This function allows short words to be skipped by the spellchecker. Words less then n characters will be skipped.

Ejemplo 1. pspell_config_ignore()

<?php
$pspell_config = pspell_config_create ("en");
pspell_config_ignore($pspell_config, 5);
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "abcd");    //will not result in an error
?>

Anterior | Inicio | Siguiente
pspell_config_create | Subir | pspell_config_mode


pspell_config_mode

(PHP 4 >= 4.0.2)

pspell_config_mode -- Change the mode number of suggestions returned

Description

int pspell_config_mode ( int dictionary_link, int mode)

pspell_config_mode() should be used on a config before calling pspell_new_config(). This function determines how many suggestions will be returned by pspell_suggest().

The mode parameter is the mode in which spellchecker will work. There are several modes available:

  • PSPELL_FAST - Fast mode (least number of suggestions)

  • PSPELL_NORMAL - Normal mode (more suggestions)

  • PSPELL_BAD_SPELLERS - Slow mode (a lot of suggestions)

Ejemplo 1. pspell_config_mode()

<?php
$pspell_config = pspell_config_create ("en");
pspell_config_mode($pspell_config, PSPELL_FAST);
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "thecat");
?>

Anterior | Inicio | Siguiente
pspell_config_ignore | Subir | pspell_config_personal


pspell_config_personal

(PHP 4 >= 4.0.2)

pspell_config_personal -- Set a file that contains personal wordlist

Description

int pspell_config_personal ( int dictionary_link, string file)

pspell_config_personal() should be used on a config before calling pspell_new_config(). The personal wordlist will be loaded and used in addition to the standard one after you call pspell_new_config(). If the file does not exist, it will be created. The file is also the file where pspell_save_wordlist() will save personal wordlist to. The file should be writable by whoever php runs as (e.g. nobody). Please, note that this function will not work unless you have pspell .11.2 and aspell .32.5 or later.

Ejemplo 1. pspell_config_personal()

<?php
$pspell_config = pspell_config_create ("en");
pspell_config_personal ($pspell_config, "/var/dictionaries/custom.pws");
$pspell_link = pspell_new_config ($pspell_config);
pspell_check ($pspell_link, "thecat");
?>

Anterior | Inicio | Siguiente
pspell_config_mode | Subir | pspell_config_repl


pspell_config_repl

(PHP 4 >= 4.0.2)

pspell_config_repl -- Set a file that contains replacement pairs

Description

int pspell_config_repl ( int dictionary_link, string file)

pspell_config_repl() should be used on a config before calling pspell_new_config(). The replacement pairs improve the quality of the spellchecker. When a word is misspelled, and a proper suggestion was not found in the list, pspell_store_replacement() can be used to store a replacement pair and then pspell_save_wordlist() to save the wordlist along with the replacement pairs. The file should be writable by whoever php runs as (e.g. nobody). Please, note that this function will not work unless you have pspell .11.2 and aspell .32.5 or later.

Ejemplo 1. pspell_config_repl()

<?php
$pspell_config = pspell_config_create ("en");
pspell_config_personal ($pspell_config, "/var/dictionaries/custom.pws");
pspell_config_repl ($pspell_config, "/var/dictionaries/custom.repl");
$pspell_link = pspell_new_config ($pspell_config);
pspell_check ($pspell_link, "thecat");
?>

Anterior | Inicio | Siguiente
pspell_config_personal | Subir | pspell_config_runtogether


pspell_config_runtogether

(PHP 4 >= 4.0.2)

pspell_config_runtogether -- Consider run-together words as valid compounds

Description

int pspell_config_runtogether ( int dictionary_link, bool flag)

pspell_config_runtogether() should be used on a config before calling pspell_new_config(). This function determines whether run-together words will be treated as legal compounds. That is, "thecat" will be a legal compound, athough there should be a space between the two words. Changing this setting only affects the results returned by pspell_check(); pspell_suggest() will still return suggestions.

Ejemplo 1. pspell_config_runtogether()

<?php
$pspell_config = pspell_config_create ("en");
pspell_config_runtogether ($pspell_config, true);
$pspell_link = pspell_new_config ($pspell_config);
pspell_check ($pspell_link, "thecat");
?>

Anterior | Inicio | Siguiente
pspell_config_repl | Subir | pspell_config_save_repl


pspell_config_save_repl

(PHP 4 >= 4.0.2)

pspell_config_save_repl -- Determine whether to save a replacement pairs list along with the wordlist

Description

int pspell_config_save_repl ( int dictionary_link, bool flag)

pspell_config_save_repl() should be used on a config before calling pspell_new_config(). It determines whether pspell_save_wordlist() will save the replacement pairs along with the wordlist. Usually there is no need to use this function because if pspell_config_repl() is used, the replacement pairs will be saved by pspell_save_wordlist() anyway, and if it is not, the replacement pairs will not be saved. Please, note that this function will not work unless you have pspell .11.2 and aspell .32.5 or later.

Anterior | Inicio | Siguiente
pspell_config_runtogether | Subir | pspell_new_config


pspell_new_config

(PHP 4 >= 4.0.2)

pspell_new_config -- Load a new dictionary with settings based on a given config

Description

int pspell_new_config ( int config)

pspell_new_config() opens up a new dictionary with settings specified in a config, created with with pspell_config_create() and modified with pspell_config_*() functions. This method provides you with the most flexibility and has all the functionality provided by pspell_new() and pspell_new_personal().

The config parameter is the one returned by pspell_config_create() when the config was created.

Ejemplo 1. pspell_new_config()

<?php
$pspell_config = pspell_config_create ("en");
pspell_config_personal ($pspell_config, "/var/dictionaries/custom.pws");
pspell_config_repl ($pspell_config, "/var/dictionaries/custom.repl");
$pspell_link = pspell_new_config ($pspell_config);
?>

Anterior | Inicio | Siguiente
pspell_config_save_repl | Subir | pspell_new_personal


pspell_new_personal

(PHP 4 >= 4.0.2)

pspell_new_personal -- Load a new dictionary with personal wordlist

Description

int pspell_new_personal ( string personal, string language [, string spelling [, string jargon [, string encoding [, int mode]]]])

pspell_new_personal() opens up a new dictionary with a personal wordlist and returns the dictionary link identifier for use in other pspell functions. The wordlist can be modified and saved with pspell_save_wordlist(), if desired. However, the replacement pairs are not saved. In order to save replacement pairs, you should create a config using pspell_config_create(), set the personal wordlist file with pspell_config_personal(), set the file for replacement pairs with pspell_config_repl(), and open a new dictionary with pspell_new_config().

The personal parameter specifies the file where words added to the personal list will be stored. It should be an absolute filename beginning with '/' because otherwise it will be relative to $HOME, which is "/root" for most systems, and is probably not what you want.

The language parameter is the language code which consists of the two letter ISO 639 language code and an optional two letter ISO 3166 country code after a dash or underscore.

The spelling parameter is the requested spelling for languages with more than one spelling such as English. Known values are 'american', 'british', and 'canadian'.

The jargon parameter contains extra information to distinguish two different words lists that have the same language and spelling parameters.

The encoding parameter is the encoding that words are expected to be in. Valid values are 'utf-8', 'iso8859-*', 'koi8-r', 'viscii', 'cp1252', 'machine unsigned 16', 'machine unsigned 32'. This parameter is largely untested, so be careful when using.

The mode parameter is the mode in which spellchecker will work. There are several modes available:

  • PSPELL_FAST - Fast mode (least number of suggestions)

  • PSPELL_NORMAL - Normal mode (more suggestions)

  • PSPELL_BAD_SPELLERS - Slow mode (a lot of suggestions)

  • PSPELL_RUN_TOGETHER - Consider run-together words as legal compounds. That is, "thecat" will be a legal compound, athough there should be a space between the two words. Changing this setting only affects the results returned by pspell_check(); pspell_suggest() will still return suggestions.

Mode is a bitmask constructed from different constants listed above. However, PSPELL_FAST, PSPELL_NORMAL and PSPELL_BAD_SPELLERS are mutually exclusive, so you should select only one of them.

For more information and examples, check out inline manual pspell website:http://aspell.net/.

Ejemplo 1. pspell_new_personal()

<?php
$pspell_link = pspell_new_personal ("/var/dictionaries/custom.pws",
        "en", "", "", "", PSPELL_FAST|PSPELL_RUN_TOGETHER);
?>

Anterior | Inicio | Siguiente
pspell_new_config | Subir | pspell_new


pspell_new

(PHP 4 >= 4.0.2)

pspell_new -- Load a new dictionary

Description

int pspell_new ( string language [, string spelling [, string jargon [, string encoding [, int mode]]]])

pspell_new() opens up a new dictionary and returns the dictionary link identifier for use in other pspell functions.

The language parameter is the language code which consists of the two letter ISO 639 language code and an optional two letter ISO 3166 country code after a dash or underscore.

The spelling parameter is the requested spelling for languages with more than one spelling such as English. Known values are 'american', 'british', and 'canadian'.

The jargon parameter contains extra information to distinguish two different words lists that have the same language and spelling parameters.

The encoding parameter is the encoding that words are expected to be in. Valid values are 'utf-8', 'iso8859-*', 'koi8-r', 'viscii', 'cp1252', 'machine unsigned 16', 'machine unsigned 32'. This parameter is largely untested, so be careful when using.

The mode parameter is the mode in which spellchecker will work. There are several modes available:

  • PSPELL_FAST - Fast mode (least number of suggestions)

  • PSPELL_NORMAL - Normal mode (more suggestions)

  • PSPELL_BAD_SPELLERS - Slow mode (a lot of suggestions)

  • PSPELL_RUN_TOGETHER - Consider run-together words as legal compounds. That is, "thecat" will be a legal compound, athough there should be a space between the two words. Changing this setting only affects the results returned by pspell_check(); pspell_suggest() will still return suggestions.

Mode is a bitmask constructed from different constants listed above. However, PSPELL_FAST, PSPELL_NORMAL and PSPELL_BAD_SPELLERS are mutually exclusive, so you should select only one of them.

For more information and examples, check out inline manual pspell website:http://aspell.net/.

Ejemplo 1. pspell_new()

<?php
$pspell_link = pspell_new ("en", "", "", "",
                           (PSPELL_FAST|PSPELL_RUN_TOGETHER));
?>

Anterior | Inicio | Siguiente
pspell_new_personal | Subir | pspell_save_wordlist


pspell_save_wordlist

(PHP 4 >= 4.0.2)

pspell_save_wordlist -- Save the personal wordlist to a file

Description

int pspell_save_wordlist ( int dictionary_link)

pspell_save_wordlist() saves the personal wordlist from the current session. The dictionary has to be open with pspell_new_personal(), and the location of files to be saved specified with pspell_config_personal() and (optionally) pspell_config_repl(). Please, note that this function will not work unless you have pspell .11.2 and aspell .32.5 or later.

Ejemplo 1. pspell_add_to_personal()

<?php
$pspell_config = pspell_config_create ("en");
pspell_config_personal ($pspell_config, "/tmp/dicts/newdict");
$pspell_link = pspell_new_config ($pspell_config);

pspell_add_to_personal ($pspell_link, "Vlad");
pspell_save_wordlist ($pspell_link);
?>

Anterior | Inicio | Siguiente
pspell_new | Subir | pspell_store_replacement


pspell_store_replacement

(PHP 4 >= 4.0.2)

pspell_store_replacement -- Store a replacement pair for a word

Description

int pspell_store_replacement ( int dictionary_link, string misspelled, string correct)

pspell_store_replacement() stores a replacement pair for a word, so that replacement can be returned by pspell_suggest() later. In order to be able to take advantage of this function, you have to use pspell_new_personal() to open the dictionary. In order to permanently save the replacement pair, you have to use pspell_config_personal() and pspell_config_repl() to set the path where to save your custom wordlists, and then use pspell_save_wordlist() for the changes to be written to disk. Please, note that this function will not work unless you have pspell .11.2 and aspell .32.5 or later.

Ejemplo 1. pspell_store_replacement()

<?php
$pspell_config = pspell_config_create ("en");
pspell_config_personal ($pspell_config, "/var/dictionaries/custom.pws");
pspell_config_repl ($pspell_config, "/var/dictionaries/custom.repl");
$pspell_link = pspell_new_config ($pspell_config);

pspell_store_replacement ($pspell_link, $misspelled, $correct);
pspell_save_wordlist ($pspell_link);
?>

Anterior | Inicio | Siguiente
pspell_save_wordlist | Subir | pspell_suggest


pspell_suggest

(PHP 4 >= 4.0.2)

pspell_suggest -- Suggest spellings of a word

Description

array pspell_suggest ( int dictionary_link, string word)

pspell_suggest() returns an array of possible spellings for the given word.

Ejemplo 1. pspell_suggest()

<?php
$pspell_link = pspell_new ("en");

if (!pspell_check ($pspell_link, "testt")) {
    $suggestions = pspell_suggest ($pspell_link, "testt");

    foreach ($suggestions as $suggestion) {
        echo "Possible spelling: $suggestion<br>";
    }
}
?>

Anterior | Inicio | Siguiente
pspell_store_replacement | Subir | GNU Readline


GNU Readline

Manual de PHP
Anterior Siguiente

LXXXVIII. GNU Readline

Las funciones readline() implementan una interfaz con la librería GNU Readline. Un ejemplo de la manera de funcionar podría ser la forma en que el Bash permite usar las flechas de dirección para insertar carácteres o desplazarse a través del historial de comandos. Debido a la naturaleza interactiva de esta libreria, tendrá un uso muy reducido en la escritura de aplicaciones Web, aunque puede ser útil para scripts que han de ser ejecutados desde la consola.

La página principal del proyecto GNU Readline es http://cnswww.cns.cwru.edu/~chet/readline/rltop.html. Está actualizada por Chet Ramey, quien además es el autor de Bash.

Tabla de contenidos
readline_add_history -- Añade una línea al historial
readline_clear_history -- Borra el historial
readline_completion_function -- Registra una función de completitud
readline_info -- Establece/Obtiene diversas variables internas de readline
readline_list_history -- Lista el historial
readline_read_history -- Lee un historial
readline_write_history -- Escribe el historial
readline -- Lee una línea

Anterior | Inicio | Siguiente
pspell_suggest | Subir | readline_add_history


readline_add_history

(PHP 4 )

readline_add_history -- Añade una línea al historial

Descripción

void readline_add_history ( string line)

Esta función añade una línea al historial de líneas de comandos.

Anterior | Inicio | Siguiente
GNU Readline | Subir | readline_clear_history


readline_clear_history

(PHP 4 )

readline_clear_history -- Borra el historial

Descripción

boolean readline_clear_history ( void )

Esta función borra por completo el historial de la línea de comandos.

Anterior | Inicio | Siguiente
readline_add_history | Subir | readline_completion_function


readline_completion_function

(PHP 4 )

readline_completion_function -- Registra una función de completitud

Descripción

boolean readline_completion_function ( string line)

Esta función registra una función de completitud. Debe proporcionar el nombre de una función existente que acepte una línea de comandos parcial y devuelva una array con posibles coincidencias. Es el mismo tipo de funcionalidad que se obtiene al pulsar la tecla de tabulación cuando se está usando el Bash.

Anterior | Inicio | Siguiente
readline_clear_history | Subir | readline_info


readline_info

(PHP 4 )

readline_info -- Establece/Obtiene diversas variables internas de readline

Descripción

mixed readline_info ( [string varname [, string newvalue]])

Si es llamada sin parámetros, esta función devuelve un array con los valores de todas las opciones que readline usa. Los elementos vendrán indexados por los siguientes valores: done, end, erase_empty_line, library_version, line_buffer, mark, pending_input, point, prompt, readline_name, y terminal_name.

Si es llamada con un parámetros, devuelve el valor de esa opción. Si es llamada con dos parámetros, el valor de la opción será cambiado al parámetro dado.

Anterior | Inicio | Siguiente
readline_completion_function | Subir | readline_list_history


readline_list_history

(PHP 4 )

readline_list_history -- Lista el historial

Descripción

array readline_list_history ( void )

Esta función devuelve un array con el historial de líneas de comandos completo. Los elementos están indexados por enteros comenzando por el cero.

Anterior | Inicio | Siguiente
readline_info | Subir | readline_read_history


readline_read_history

(PHP 4 )

readline_read_history -- Lee un historial

Descripción

boolean readline_read_history ( string filename)

Esta función lee un historial de comandos desde un fichero.

Anterior | Inicio | Siguiente
readline_list_history | Subir | readline_write_history


readline_write_history

(PHP 4 )

readline_write_history -- Escribe el historial

Descripción

boolean readline_write_history ( string filename)

Esta función escribe el historial de comandos en un archivo.

Anterior | Inicio | Siguiente
readline_read_history | Subir | readline


readline

(PHP 4 )

readline -- Lee una línea

Descripción

string readline ( [string prompt])

Esta función devuelve una única cadena del usuario. Puede especificar una cadena que se mostrará al usuario. La línea devuelta tiene el indicador final de nueva línea eliminado. Necesita añadir esta línea al historial usando la función readline_add_history().

Ejemplo 1. readline()

<?php
//obtiene 3 comandos del usuario
for ($i=0; $i < 3; $i++) {
        $line = readline ("Comando: ");
        readline_add_history ($line);
}

//Vuelca el historial
print_r (readline_list_history());

//Vuelca las variables
print_r (readline_info());
?>

Anterior | Inicio | Siguiente
readline_write_history | Subir | Funciones GNU Recode


Funciones GNU Recode

Manual de PHP
Anterior Siguiente

LXXXIX. Funciones GNU Recode

Este modulo contiene un interfaz para la biblioteca GNU Recode version 3.5. Para poder usar las funciones definidas en este modulo, debereis de compilar el interprete PHP con la opcion --with-recode. Para poder hacer esto debereis tener instalado en vuestro sistema GNU Recode 3.5 o superior.

La biblioteca GNU Recode convierte entre ficheros con diferentes codigos de caracteres y codificacion. Cuando esto no puede realizarse exactamente, puede desahacerse de los caracteres problematicos o crear una aproximacion. La biblioteca reconoce o produce alrededor de 150 codigos de caracteres y puede convertir ficheros entre casi todos los pares posibles. La gran mayoria de de codigos de caracteres RFC 1345 estan soportados.

Tabla de contenidos
recode_file -- Recodifica de fichero a fichero segun una peticion de recodificacion.
recode_string -- Recodifica una cadena literal segun una peticion de recodificacion.
recode -- Alias for recode_string()

Anterior | Inicio | Siguiente
readline | Subir | recode_file


recode_file

(PHP 3>= 3.0.13, PHP 4 )

recode_file -- Recodifica de fichero a fichero segun una peticion de recodificacion.

Description

bool recode_file ( int input, int output)

Recodifica el fichero definido por input a el fichero definido por output, segun la peticion de recodificacion request. Devuelve FALSE si no puede realizar la recodificacion, TRUE si todo va bien.

Esta funcion no procesa ficheros remotos (URLs). Los dos ficheros deben de ser locales en el sistema.

Anterior | Inicio | Siguiente
Funciones GNU Recode | Subir | recode_string


recode_string

(PHP 3>= 3.0.13, PHP 4 )

recode_string -- Recodifica una cadena literal segun una peticion de recodificacion.

Description

string recode_string ( string request, string string)

Recodifica la cadena string segun una peticion de recodificacion request. Devuelve FALSE si no puede realizar la recodificacion, TRUE si todo va bien.

Una simple peticion "recode" podria ser "lat1..iso646-de". Ver tambien la documentacion de GNU Recode de tu instalacion para obtener instrucciones detalladas sobre peticiones de recodificacion.

Anterior | Inicio | Siguiente
recode_file | Subir | recode


recode

recode -- Alias for recode_string()

Description

This function is an alias of recode_string().

Anterior | Inicio | Siguiente
recode_string | Subir | Funciones de expresiones regulares compatibles con Perl


Funciones de expresiones regulares compatibles con Perl

Manual de PHP
Anterior Siguiente

XC. Funciones de expresiones regulares compatibles con Perl

La sintaxis, para los patrones usados en estas funciones, es muy semejante al Perl. Las expresiones estarán encerradas por delimitadores, por ejemplo una barra de dividir (/). Cualquier carácter puede ser usado para delimitar incluso los que no son caracteres alfanuméricos o la barra invertida (\). Si el carácter delimitador ha sido usado en la propia expresión, es necesario que sea precedido por una barra inversa.

El delimitador de fin puede ser seguido por varios modificadores que afectarán al resultado. Examina Modificadores de Patrones.

Ejemplo 1. Ejemplos de patrones válidos

  • /<\/\w+>/

  • |(\d{3})-\d+|Sm

  • /^(?i)php[34]/

Ejemplo 2. Ejemplos de patrones no válidos

  • /href='(.*)' - falta el delimitador de fin

  • /\w+\s*\w+/J - el modificador 'J' es desconocido

  • 1-\d3-\d3-\d4| - falta el delimitador de inicio

Nota: Para las funciones de expresiones compatibles con Perl se necesita PHP 4 o PHP 3.0.9 o superior.

Tabla de contenidos
Modificadores de Patrones -- describe los modificadores posibles en los patrones de expresiones regulares (regex)
Sintaxis de los Patrones -- describe la sintaxis de PCRE regex
preg_grep -- Devuelve un array con los elementos que casen con el patrón
preg_match_all -- Realiza un completo emparejamiento de expresiones
preg_match -- Realiza un emparejamiento dada una expresión
preg_quote -- Prepara los caracteres de expresiones
preg_replace_callback -- Realizar una búsqueda con expresiones regulares y generar reemplazos usando una llamada de retorno
preg_replace -- Lleva a cabo la búsqueda de una expresión y su sustitución
preg_split -- Divide una cadena dada una expresión

Anterior | Inicio | Siguiente
recode | Subir | Modificadores de Patrones


Modificadores de Patrones

Modificadores de Patrones -- describe los modificadores posibles en los patrones de expresiones regulares (regex)

Descripción

Los posibles modificadores PRCE (Funciones de Expresiones Compatibles con Perl), en este momento, son mostrados a continuación. Los nombres entre paréntesis se refieren a nombres internos PCRE para dichos modificadores.

i (PCRE_CASELESS)

Si es usado, no se distinguirá entre mayúsculas y minúsculas.

m (PCRE_MULTILINE)

Por defecto, PCRE trata la cadena de entrada como si fuera una sola línea de caracteres (aun cuando tenga varias). El carácter especial de "inicio de línea" (^) empareja sólo al principio de la cadena, mientras el carácter especial de "fin de línea" ($) casa sólo el fin de la entrada, o antes un carácter de nueva línea (a menos que el modificador E sea definido). Esto es lo mismo que en Perl.

Cuando este modificador es utilizado, los constructores de "inicio de línea" y "fin de línea" son emparejados con el carácter de nueva línea. Esto es equivalente al modificador /m del Perl. Si no hay caracteres "\n" en la cadena de entrada, o no existen ^ o $ en el patrón, entonces este modificador no alterará el resultado.

s (PCRE_DOTALL)

Si se usa, el carácter especial de un punto en el patrón emparejará todos los caracteres, incluyendo el de nueva línea. Sin él, el carácter de nueva línea es excluido. Este modificador equivale a /s en Perl. Una cláusula como [^a] siempre casa con un carácter de nueva línea, independientemente de la utilización de este modificador.

x (PCRE_EXTENDED)

Si es definido, los caracteres de información con espacios en blanco en el patrón son ignorados excepto cuando son precedidos por una barra invertida o dentro de una clase carácter, y los caracteres entre un # fuera de una clase carácter y los siguientes caracteres de nueva línea, incluidos, son ignorados también. Esto es equivalente al /x en Perl y hace posible incluir comentarios dentro de patrones complejos. Sin embargo, esto es sólo aplicable a caracteres de información. Los caracteres de espacio en blanco nunca pueden aparecer en la secuencia de caracteres especiales de un patrón, por ejemplo en la secuencia (?( la cual introduce un subpatrón condicional.

e

Si es usado, preg_replace() hace las sustituciones \\ de forma habitual, evalúa el código PHP y usa el resultado para realizar una sustitución en la cadena de búsqueda.

Sólo preg_replace() hace uso de este modificador y es ignorado por las otras funciones PCRE.

Nota: Este modificador fue añadido en PHP 4.0.

A (PCRE_ANCHORED)

Si es definido, el patrón es forzado a ser "anclado", esto es, es obligado a emparejar sólo desde el inicio de la cadena (el "subject string"). Esta característica también puede realizarse con el apropiado patrón, y esta es la única manera de hacerlo en Perl.

E (PCRE_DOLLAR_ENDONLY)

Si es usado, el carácter del dólar en el patrón casará sólo con fin de la cadena de entrada (subject).Sin este modificador, un dólar es también emparejado con el carácter inmediatamente antes del de una nueva línea (pero no antes de cualquier otra nueva línea). Este modificador es ignorado si m es definido. No hay equivalente en Perl para este modificador.

S

Cuando un patrón va a ser usado varias veces, es mejor dedicar más tiempo a analizarlo para acelerar el proceso de casamientos. Si es definido entonces se realizar un análisis adicional. Estudiar a un patrón es sólo útil para los no anclados, esto es, no tienen un carácter de inicio fijado.

U (PCRE_UNGREEDY)

Este modificador invierte la "codicia" de los cuantificadores aunque no son ansiosos por defecto, se vuelven codiciosos si son seguidos por un "?". No es compatible con Perl. también puede usarse dentro del patrón.

X (PCRE_EXTRA)

Este modificador activa características adicionales del PCRE que no son compatible con Perl. Cualquier barra invertida en el patrón que sea seguida por una letra que no tenga una interpretación especial provocará un error, estas combinaciones están reservado para futuras ampliaciones. Por defecto, como en Perl, una barra invertida seguida por una letra sin un significado especial es tratada literalmente. No hay otras características controladas por este modificador a la fecha de hoy.

Anterior | Inicio | Siguiente
Funciones de expresiones regulares compatibles con Perl | Subir | Sintaxis de los Patrones


Sintaxis de los Patrones

Sintaxis de los Patrones -- describe la sintaxis de PCRE regex

Descripción

La librería PCRE es un conjunto de funciones que implementan emparejamientos
dados patrones de expresiones regulares usando la misma sintaxis y semántica que
Perl 5, con unas pocas diferencias (ver más adelante). La actual versión
corresponde a Perl 5.005.

Diferencias frente a Perl

Las diferencias descritas aquí son con respecto a Perl 5.005.

1. Por defecto, un carácter de espacio en blanco es cualquier carácter
que la función isspace() de la librería C reconozca, así es posible
compilar PCRE con tablas alternativas de tipos de caracteres. Normalmente
isspace() casa con el espacio, salto de pagina, nueva línea, retorno de carro,
tabulador horizontal y vertical. Perl 5 ya no incluye el tabulador vertical
en su conjunto de caracteres de espacio en blanco. La secuencia de
escape \n que estuvo durante mucho tiempo en la documentación de Perl nunca
fue reconocida. Sin embargo, el carácter fue tratado como espacio en blanco
hasta la 5.002. En 5.004 y 5.005 no casa \s.

2. PCRE no permite repetir cuantificadores sobre sentencias hacia adelante.
Perl las permite, pero no de la forma que puedas pensar.
Por ejemplo, (?!a){3} no dice que los próximos tres caracteres no son "a".
En realidad significa que los siguientes caracteres no son "a" tres veces.

3. Los subpatrones encontrados dentro de sentencias de más adelante
negativas son contados, pero sus entradas en el vector de desplazamientos
no son definidas. Perl define sus variables numéricas desde cualquiera de
tales patrones que son casados antes de que la sentencia falle emparejar
algo, pero solo si las sentencies de más adelante negativas contienen una
opción sola.

4. Aunque los caracteres de cero binario son soportados en la cadena de
entrada, no son permitidos en un patrón porque son pasados como un cadena
típica de C, terminada por cero. La secuencia de escape "\0" puede ser
usada en el patrón para representar el cero binario.

5. Las siguientes secuencias de Perl no son soportadas:
\l, \u, \L, \U, \E, \Q. En efecto, estas son implementadas por
manipuladores de cadenas típicos de Perl y no son parte de los patrones del
motor de búsqueda.

6. La secuencia \G de Perl no es soportada ya que no es relevante para
emparejamientos de patrones sencillos.

7. Obviamente, PCRE no soporta el constructor (?{code})

8. Hay algunas diferencias en Perl 5.005_02 respecto a las definiciones
de las cadenas de captura cuando parte de un patrón es repetido. Por
ejemplo, casando "aba" con el patrón /^(a(b)?)+$/ define $2 al valor "b",
pero emparejando "aabbaa" con /^(aa(bb)?)+$/ deja $2 sin definir. Sin
embargo, si el patrón es cambiado a /^(aa(b(b))?)+$/ entones $2 (y $3) son
definidos.

En Perl 5.004 $2 es definido en ambos casos, y también es cierto en PCRE.
Si en el futuro Perl cambia a una regla diferente, PCRE puede cambiar para
seguirla.

9. Otra discrepancia aún no resuelta es que en Perl 5.005_02 el patrón
/^(a)?(?(1)a|b)+$/ casa la cadena "a", pero en PCRE eso no es así. Sin
embargo, en ambos Perl y PCRE /^(a)?a/ empareja "a" dejando $1 sin definir.

10. PCRE da algunas extensiones para facilitar las expresiones de PERL:

(a) Aunque las sentencias de más adelante deben emparejar cadenas de longitud fija,
cada opción de una sentencia de punto actual puede casar con una cadena de
longitud diferente. Perl 5.005 requiere que todas ellas tengan la misma
longitud.

(b) Si es definido PCRE_DOLLAR_ENDONLY y PCRE_MULTILINE no lo es, el
carácter especial $ sólo casa con el final de la cadena.

(c) Si se define PCRE_EXTRA, una barra invertida seguida de una letra sin
un significado especial provoca un error.

(d) Si defines PCRE_UNGREEDY, la voracidad de los cuantificadores de
repetición es invertida, esto es, por defecto son no codiciosos, pero
seguidos por una interrogación si lo son.

Detalles de las expresiones

La sintaxis y la semántica de las expresiones soportadas por PCRE es
descrita a continuación. Las expresiones son descritas en la documentación
del Perl y en numerosos libros, algunos de los cuales tienen mucho
ejemplares, Jeffrey Friedl's "Mastering Regular Expressions", publicado
por O'Reilly (ISBN 1-56592-257-3), las cubre con gran detalle. La presente
descripción es propuesta como documentación de referencia.

Una expresión es un patrón que es emparejada repetidamente, dada una cadena
de entrada, de izquierda a derecha. Muchos caracteres se representan a ellos
mismos en el patrón. Como un ejemplo trivial, el patrón

The quick brown fox

casa una parte de una cadena de entrada que es idéntica a ella. El poder
de las expresiones proviene de la posibilidad de incluir alternativas y
repeticiones en el patrón. Éstos son codificados en el patrón usando
meta-characters (caracteres
especiales también llamados meta caracteres), los cuales no se representan
a ellos mismos, en vez de eso, son interpretados de una manera especial.

Hay dos diferentes conjuntos de caracteres especiales: aquellos que son
reconocidos en cualquier parte en el patrón excepto dentro corchetes ('[' y ']'),
y aquellos que son reconocidos dentro. Fuera de los corchetes, los caracteres
especiales son:

\ carácter de escape genérico con diferentes usos
^ secuencia de inicio de la cadena de entrada (o línea, en modo multilínea)
$ secuencia de fin de la cadena de entrada (o línea, en modo multilínea)
. empareja cualquier carácter excepto el de nueva línea (por defecto)
[ inicia definición de clase de caracteres
| inicio de opción alternativa
( inicio de subpatrón
) fin de subpatrón
? amplia el significado de (
también es el cuantificador 0 ó 1
también es el cuantificador minimizado
* cero o más cuantificadores
+ uno o más cuantificadores
{ inicia el cuantificador min/max

Parte de un patrón dentro de corchetes ([]) es llamado un "character class"
(clase de caracteres). En una clase de caracteres los únicos caracteres
especiales son:

\ carácter de escape genérico
^ niega la clase, pero sólo si el primer carácter
- indica un rango de caracteres
] finaliza la clase de caracteres

Las secciones siguientes describen el uso de cada uno de los caracteres
especiales (meta caracteres).

BARRA INVERTIDA

El carácter de barra invertida tiene varios usos. Primero, si es seguido
por un carácter que no sea alfanumérico, toma el significado que el
carácter pueda tener. Este uso de la barra invertida, como un carácter de
escape, se aplica tanto dentro como fuera de las clases de caracteres.

Por ejemplo, si quieres casar un carácter "*", debes escribir "\*" en el patrón.
Esto es aplicable ya sea o no el carácter siguiente interpretado como un
carácter especial, por eso siempre es aconsejable preceder un carácter
no alfanumérico con "\" para especificar que se representa a él mismo. En
particular, si quieres casar una barra invertida, escribe "\\".

Si el patrón es compilado con la opción PCRE_EXTENDED , los espacios en
blanco en el patrón (fuera de una clase de caracteres) y los caracteres entre
un "#" fuera de una clase de caracteres y el carácter de nueva línea
son ignorado. Una barra invertida de escape puede usarse para
incluir un espacio en blanco o el carácter "#" como parte del patrón.

Un segundo uso de la barra invertida sirve para codificar caracteres no
imprimibles en los patrones de una manera visible. No hay restricciones
sobre la apariencia de los caracteres no imprimibles, quitando el cero
binario de terminación de un patrón, pero cuando un patrón es preparado
con un editor de texto, normalmente es fácil utilizar una de las siguientes
secuencias de escape que representan sus caracteres binarios:

\a alarma, esto es, el carácter BEL (07 en hexadecimal)
\cx "control-x", donde x es cualquier carácter
\e escape (1B en hexadecimal)
\f nueva página (0C en hexadecimal)
\n nueva línea (0A en hexadecimal)
\r retorno de carro (0D en hexadecimal)
\t tabulador (09 en hexadecimal)
\xhh carácter con código hh en hexadecimal
\ddd carácter con código ddd en octal

El efecto de "\cx" es como sigue: si "x" es una letra minúscula,
es convertida a mayúscula. Entonces el sexto bit del carácter (40 en
hexadecimal) es invertido. Esto es, "\cz" es 1A en hexadecimal, pero "\c{"
es 3B en hexadecimal, mientras "\c;" es 7B en hexadecimal.

Después de "\x", hasta dos dígitos hexadecimales son leídos (las letras
pueden ser mayúsculas o minúsculas).

Después de "\0" son leídos dos dígitos octales más. En ambos casos, si hay
menos de dos dígitos, se usrará lo que haya. Esto es, la secuencia "\0\x\07"
indica dos ceros binarios seguidos por un carácter BEL. Asegúrate dar dos
dígitos después del inicial cero si el carácter que sigue es un dígito octal.

El uso de una barra invertida seguido por otro dígito que no sea el cero
es complejo. Fuera de una clase carácter, PCRE interpreta cualquier dígito
como un número decimal. Si el número es menor que diez, o si ha habido
al menos tantos paréntesis capturados a la izquierda en la expresión,
entonces la secuencia entera es tomada como una back
reference (referencia atrás). Una descripción
de como trabaja esto es dada después, siguiendo la discusión de subpatrones
con paréntesis.

Dentro de una clase carácter, o si el número decimal es mayor que nueve y
no ha habido tantos subpatrones capturados PCRE relee los tres dígitos
octales siguientes a la barra invertida y genera un byte desde los ocho
bits menos significativos del valor. Cualquier dígito a continuación se
representa a él mismo. Por ejemplo:

\040 es otro modo de escribir un espacio
\40 es lo mismo, siempre que haya menos de cuarenta subpatrones abiertos
\7 siempre es una referencia atrás
\11 puede ser una referencia atrás o un tabulador
\011 siempre es un tabulador
\0113 es el carácter con código octal 113 (ya que no puede haber más de
noventa y nueve referencias atrás)
\377 es un byte con todos sus bits a uno
\81 puede ser una referencia atrás o un cero binario seguido por
dos caracteres "8" y "1"

Ten en cuenta que el valor octal de un número mayor o igual a cien no debe
ser precedido por un cero ya que no son leídos más de tres dígitos octales.

Todas las secuencias que definen el valor de un byte pueden ser usadas
tanto dentro como fuera de la clase carácter. Además, la secuencia
"\b" es interpretada como el carácter backspace (hex 08) dentro. Fuera es
definido de otra manera (ver más adelante).

El tercer uso de la barra invertida es para especificar los tipos de
caracteres genéricos:

\d cualquier un dígito decimal
\D cualquier carácter que no sea un dígito decimal
\s cualquier carácter de espacio en blanco (whitespace)
\S cualquier carácter que no sea un espacio en blanco
\w cualquier carácter de "palabra"
\W cualquier carácter que no se de "palabra"

Cada pareja de secuencia de escape divide el conjunto global de caracteres
en dos. Cualquier carácter dado empareja en uno y sólo uno de cada pareja.

Un carácter de "palabra" es cualquier letra o dígito o el carácter subrayado,
esto es, cualquier carácter puede ser parte de una "palabra" en Perl. La
definición de letras y dígitos es controlada por la tabla de caracteres de
PERL, y puede ser variada si las especificaciones regionales son tomadas en
cuenta (ver "Soporte regional más adelante"). Por ejemplo, en Francia algunos
caracteres tienen un código superior a 128, para representar las letras
acentuadas, y son emparejados por \w.

Estas secuencias de tipos de caracteres pueden aparecer tanto dentro como
fuera de las clases carácter. Cada una casa un carácter del tipo apropiado.
Si el punto de casamiento actual es el final de la cadena, todo ello falla,
ya que no hay más caracteres que casar.

El cuarto uso de la barra invertida es para ciertas sentencias (assertions).
Una sentencia especifica una condición que tiene que ser encontrada en
un punto particular de un emparejamiento, sin utilizar ningún carácter de la
cadena de entrada. El uso de subpatrones para sentencias más complicadas
es descrito después. Las sentencias de barra invertida son

\b limites de palabra
\B no sean limites de palabra
\A inicio de la cadena de entrada (independiente del modo multilínea)
\Z fin de la cadena de entrada o de una nueva línea delante del final
(independiente del modo multilínea)
\z fin de la cadena de entrada (independiente de modo multilínea)

Estas sentencias no pueden aparecer dentro de una clase carácter (pero ten
en cuenta que "\b" tiene un significado diferente, quiere decir el carácter
backspace dentro de una clase carácter)

Un límite de palabra es una posición en la cadena de entrada donde un
carácter y el anterior no emparejan con \w o \W (por ejemplo, uno casa con
\w y el otro con \W), o el principio o el final de la cadena si el primero
o el último carácter emparejan con \w, respectivamente.

Las sentencias \A, \Z y \z se diferencian de los tradicionales circunflejo
y dólar (ver más adelante) en que sólo emparejan el inicio y fin de la
cadena de entrada sin tener en cuenta las opciones definidas. No les afectan
las opciones PCRE_NOTBOL o PCRE_NOTEOL. La diferencia entre \Z y \z es que
\Z casa antes una nueva línea que es el último carácter de la cadena como
también el final de la cadena, sin embargo \z sólo casa el final.

CIRCUNFLEJO Y DOLAR

Fuera de una clase carácter, en el modo de emparejamiento por defecto, el
carácter circunflejo es una sentencia la cual es verdadera sólo si el punto
de casamiento actual es el inicio de la cadena de entrada. Dentro de una
clase carácter, el circunflejo tiene significado completamente distinto
(ver más adelante).

El circunflejo no necesita ser el primer carácter del patrón si son posibles
un número de alternativas, pero será la primera cosa en cada alternativa
en la cual aparezca si el patrón casa esa opción.
Si todas las alternativas posibles empiezan con un circunflejo, esto es,
si el patrón es obligado a casar sólo con en el inicio de la cadena de entrada,
se dice que es un patrón "anclado". También hay otros constructores que
pueden hacer que un patrón sea anclado.

Un carácter de dólar es una sentencia que es verdadera sólo si el
punto de emparejamiento actual es el final de la cadena de entrada, o
inmediatamente antes de un carácter de nueva línea, el cual es el último
carácter en la cadena, por defecto. El dólar no necesita ser el último
carácter del patrón si hay varias alternativas, pero será el último elemento
en cualquier alternativa en el que aparezca. El dólar no tiene
un significado especial en una clase carácter.

El significado del dólar puede ser cambiado para que sólo empareje el
final de la cadena de entrada definiendo la opción PCRE_DOLLAR_ENDONLY a la
hora de compilar o tiempo de ejecución. Esto no afecta a la sentencia \Z.

El significado de los caracteres circunflejo y dólar cambia si la opción
PCRE_MULTILINE es definida. Cuando éste es el caso, casan, respectivamente,
inmediatamente antes y después de un carácter "\n" interno,
además de emparejar con el inicio y el final de la cadena. Por ejemplo, el
patrón /^abc$/ casa con la cadena de entrada "def\nabc" en modo multilínea,
pero en otro modo no. Consecuentemente, los patrones anclados son en modo
línea ya que todas las opciones que empiezan con "^" no son ancladas en modo
multilínea. La opción PCRE_DOLLAR_ENDONLY es ignorada si PCRE_MULTILINE es
definido.

Ten en cuenta que las secuencias \A, \Z y \z pueden ser usadas para casar
el inicio y el final de la cadena en ambos modos, y si todas las opciones
de un patrón empiezan con \A siempre es anclado, independientemente de si
PCRE_MULTILINE es definido o no.

FINAL (PUNTO)
Fuera de una clase carácter, un punto en el patrón casa con un carácter
cualquiera en la cadena de entrada, incluyendo un carácter no imprimible,
exceptuando el de nueva línea (por defecto). Si la opción PCRE_DOTALL es
definida, entonces los puntos casan con los de nueva línea también. El
manejo de puntos es completamente independiente del uso del circunflejo y el
dólar, la única relación entre ellos son los caracteres de nueva línea. Los
puntos no tienen un significado especial dentro de una clase carácter.

CORCHETES

Un corchete de apertura crea una clase carácter, terminada por uno de cierre.
Un corchete de cierre no tiene un significado especial. Si un corchete de
cierre es necesitado como un miembro de la clase, será el primer carácter
de datos en la clase (después de un circunflejo inicial, si está presente)
o con una barra invertida antes.

Si una clase carácter casa con un carácter único en la cadena; el carácter
debe estar en el conjunto de los caracteres definidos por la clase, a menos
que el primero sea un circunflejo, en cuyo caso el carácter de la cadena de
entrada no debe estar en el conjunto definido por la clase. Si un circunflejo
es necesitado como un miembro de la clase, asegúrate que no es el primero o
es precedido por una barra invertida.

Por ejemplo, la clase carácter [aeiou] empareja cualquier vocal minúscula,
mientras [^aeiou] casa cualquier carácter que no sea una vocal minúscula.
Ten en cuenta que un circunflejo es una notación convenida para especificar
los caracteres que están en la clase enumerando los que no lo están. No es
una sentencia: consume un carácter de la cadena de entrada y falla si
el punto actual es final.

Cuando se define el emparejamiento sin tener en cuenta mayúsculas y minúsculas
(caseless), cualquier letra en una clase representa ambas, por ejemplo,
un patrón caseless [aeiou] empareja tanto "A" como "a" y un caseless
[^aeiou] no casa con "A"

El carácter de nueva línea nunca es tratado de un modo especial en una
clase carácter, aunque se hallan definido cualquiera de las opciones
PCRE_DOTALL o PCRE_MULTILINE. Una clase como [^a] siempre casa con una
nueva línea.

El carácter de menos puede ser usado para especificar un rango de caracteres
en una clase miembro. Por ejemplo, [d-m] casa con cualquier letra entre d
y m ambas incluidas. Si un carácter de menos es necesitado en una clase,
debe ser precedido por una barra invertida o aparecer en una posición donde
no pueda ser interpretado como indicador de una rango, normalmente al inicio
o al final de la clase.

No es posible tener el carácter literal "]" como el de final de un rango.
Un patrón como [W-]46] es interpretado como una clase de dos caracteres
("W" y "-") seguido por la cadena literal "46]", por lo que emparejaría con
"W46]" o "-46]". Sin embargo, si el carácter "]" es precedido con una barra
invertida es tomado por el final del rango, así [W-\]46] es interpretado
como una clase conteniendo un rango seguido por dos caracteres. La
representación octal o hexadecimal de "]" puede ser usada para finalizar
un rango.

Los rangos trabajan en la secuencia ASCII. Se pueden especificar mediante
la representación numérica de los mismos, por ejemplo [\000-\037]. Si
un rango que incluye letras es usado cuando es definida la opción de no
tener en cuenta mayúsculas y minúsculas casan ambas. Por ejemplo, [W-c]
es equivalente a [][\^_`wxyzabc], teniendo en cuenta mayúsculas y
minúsculas, y si la tabla de caracteres para la región "fr" es usada,
entonces [\xc8-\xcb] empareja los caracteres E acentuados en ambos casos.

Los tipos de caracteres \d, \D, \s, \S, \w, y \W también pueden aparecer
en una clase carácter y añaden los caracteres que ellos casen para la clase.
Por ejemplo, [\dABCDEF] casa cualquier dígito hexadecimal. Un circunflejo
puede ser usado convenientemente con el tipo de carácter mayúsculo para
especificar un conjunto más restrictivo de caracteres que el de un casamiento
con tipo de carácter minúsculo. Por ejemplo, la clase [^\W_] empareja
cualquier letra o digito pero no el subrayado.

Todos los caracteres no alfanuméricos y los diferentes a \, -, ^ (al
principio) y ] no tienen un significado especial en una clase, y éstos
tampoco si son definidos convenientemente.

BARRA VERTICAL

Los caracteres de barra vertical son usados para separar patrones
alternativos. Por ejemplo, el patrón

gilbert|sullivan

casa con "gilbert" o "sullivan". Cualquier cantidad de opciones pueden ser
implementadas, y una alternativa vacía se permite (emparejando la
cadena vacía). El proceso de casamiento intenta cada una de izquierda a
derecha, y la primera que valga es usada. Si las alternativas están dentro
de un subpatrón, "valga" significa que casa el resto del patrón principal
como también la alternativa en el subpatrón.

DEFINIENDO LAS OPCIONES INTERNAS

Las definiciones de PCRE_CASELESS, PCRE_MULTILINE, PCRE_DOTALL,
y PCRE_EXTENDED pueden ser cambiadas desde dentro del patrón mediante
una secuencia de letras de opciones de Perl encerradas entre "(?" y ")".
Las letras de opciones son

i para PCRE_CASELESS
m para PCRE_MULTILINE
s para PCRE_DOTALL
x para PCRE_EXTENDED

Por ejemplo, (?im) define sin tener en cuenta mayúsculas y minúsculas y modo
multilínea. También es posible eliminar estas opciones precediendo las
letras con un menos y una combinación de definiciones y eliminaciones tal
como (?im-sx), la cual define PCRE_CASELESS y PCRE_MULTILINE mientras
elimina PCRE_DOTALL y PCRE_EXTENDED, también se permite. Si una letra
aparece antes y después del menos, la opción es eliminada.

El ámbito de estas opciones cambia dependiendo dónde ocurra la definición.
Las definiciones que son hechas fuera de subpatrones (como antes), el efecto es
el mismo que si la opción se define o elimina al inicio del casamiento. Los
siguientes patrones se comportan todos de la misma manera:

(?i)abc
a(?i)bc
ab(?i)c
abc(?i)

el cual tiene el mismo efecto que compilar el patrón abc con la opción
PCRE_CASELESS. En otras palabras, tales definiciones de "nivel superior"
se aplican a todo el patrón (a menos que haya otro cambio dentro del
subpatrón). Si hay más de una definición de la misma opción en el mismo
nivel superior, la definición más a la derecha se usa.

Si un cambio de opción sucede dentro de un subpatrón, el efecto es diferente.
Esto es un cambio respecto de la conducta de Perl 5.005. Un cambio de opción
dentro de un subpatrón afecta sólo a la parte del subpatrón que lo sigue,
por eso

(a(?i)b)c

empareja abc y aBc y ninguna otra cadena (asumiendo que no es usado
PCRE_CASELESS). De este modo, las opciones pueden ser hechas para
tener diferente significado en diferente partes del patrón. Cualquier
cambio realizado en una alternativa provoca que todo el subpatrón la use.
Por ejemplo,

(a(?i)b|c)

empareja "ab", "aB", "c", y "C", siempre y cuando case "C" la primera
opción es abandonada antes de definir la opción. Esto es porque los efectos
de definiciones de opción ocurren en tiempo de compilación. De otro modo,
éstos sería una conducta muy rara.

Las opciones específicas PCRE PCRE_UNGREEDY y PCRE_EXTRA pueden ser
cambiadas del mismo modo que las opciones compatibles con Perl usando
los caracteres U y X respectivamente. La bandera (?X) es especial ya que
siempre debe aparecer antes que cualquier otra en el patrón, incluso cuando
es definida a nivel superior. Es mejor ponerla en el inicio.

SUBPATRONES

Los subpatrones son delimitados por paréntesis y pueden estar anidados.
Marcando parte de un patrón como un subpatrón permite dos cosas:

1. Define un conjunto de opciones. Por ejemplo, el patrón

cat(aract|erpillar|)

empareja con "cat", "cataract", or "caterpillar". Sin los paréntesis,
casaría "cataract", "erpillar" o la cadena vacía.

2. Define el subpatrón como un subpatrón capturado. Cuando el patrón sea
emparejado por completo, esa porción de la cadena de entrada que casa con
el subpatrón es devuelta mediante el argumento ovector
de pcre_exec(). Los paréntesis abiertos son contados de
izquierda a derecha (empezando por uno) para definir los números de
subpatrones capturados.

Por ejemplo, si la cadena "the red king" es casada con el patrón

the ((red|white) (king|queen))

las subcadenas capturadas son "red king", "red", y "king" y los números
son 1,2 y 3

El hecho de que los paréntesis realicen dos funciones no siempre es útil.
A menudo, hay veces que un subpatrón agrupado es necesitado sin una
querer una captura. Si un paréntesis abierto le sigue "?:", el
subpatrón no hace ninguna captura, y no es contado cuando compute el
número de subpatrones capturados. Por ejemplo, si la cadena "the white
queen" es casada con el patrón

the ((?:red|white) (king|queen))

las subcadenas capturadas son "white queen" y "queen" y son numeradas como
1 y 2. El número máximo de subcadenas es de 99 y el número máximo de
subpatrones, capturados o no, es de 200.

Como un atajo, si cualquier definición de opción es necesitada al inicio
de un subpatrón no capturado, las letras de opciones pueden aparecer entre
"?" y ":". Así los dos patrones

(?i:saturday|sunday)
(?:(?i)saturday|sunday)

emparejan como el mismo conjunto de cadena de entrada exactamente. Ya que
las alternativas son intentadas de izquierda a derecha, y las opciones
no son dejadas de tener en cuenta hasta que el final de subpatrón se
alcanza, una definición de opción en una alternativa afecta al resto, por
eso el patrón anterior empareja tanto con "SUNDAY" como con "Saturday".

REPETICION

La repetición es especificada por cuantificadores, la cual puede utilizarla
cualquiera de los siguientes elementos:

un carácter, posiblemente precedido por el meta carácter .
una clase carácter
una referencia atrás (ver la próxima sección)
un subpatrón con paréntesis (a menos que sea una sentencia, ver más adelante)

El cuantificador de repetición general indica un número mínimo y un máximo
de casamientos permitidos, dando los dos números entre llaves, separados
por coma. El número debe ser menor que 65536, y el primero debe ser menor
o igual que el segundo. Por ejemplo:

z{2,4}

casa con "zz", "zzz", o "zzzz". Una llave de cierre por si misma no es un
carácter especial. Si el segundo número es omitido, pero aparece la coma,
entonces no hay límite superior; si el segundo número y la coma son
omitidos, el cuantificador indica el número exacto de repeticiones. Así

[aeiou]{3,}

empareja al menos tres vocales seguidas, pero pueden ser muchas más, mientras

\d{8}

casa exactamente ocho dígitos. Una llave abierta en una posición donde un
cuantificador no es permitido o una que no empareje con la sintaxis de un
cuantificador es tomada como un carácter literal. Por ejemplo, {,6} no es
un cuantificador, pero sí una cadena literal de cuatro caracteres.

Se permite el cuantificado {0}, provocando que la expresión se comporte
como si el elemento anterior y el cuantificador no estuvieran presentes.

Por conveniencia (y compatibilidad histórica) los cuantificadores más comunes
tienen abreviaciones de un solo carácter.

* es equivalente a {0,}
+ es equivalente a {1,}
? es equivalente a {0,1}

Es posible construir bucles infinitos mediante un subpatrón que pueda
casar ningún carácter con un cuantificador que no tenga límite superior,
por ejemplo:

(a?)*

Las primeras versiones de Perl y PCRE dan un error en tiempo de compilación
para tales patrones. Sin embargo, ya que existen casos donde esto puede ser
útil, esto patrones son aceptados ahora, pero si cualquier repetición del
subpatrón no casa ningún carácter, el bucle es roto.

Por defecto, los cuantificadores son "codiciosos", esto es, casan tantas
veces como les es posible (hasta el número máximo de veces permitido), sin
provocar que el resto del patrón falle. El ejemplo clásico de donde viene
este problema es en intentar casar comentarios en los programas en C.
Estos aparecen entre las secuencias /* y */ y dentro de la secuencia los
caracteres * y / pueden aparecer individualmente. Un modo de casar
comentarios en C es aplicando el patrón

/\*.*\*/

para la cadena

/* first command */ not comment /* second comment */

falla, porque casa la cadena entera debido a la voracidad del elemento .*

Sin embargo, si un cuantificador le siguw un signo de interrogación
entonces cesa la voracidad y empareja el mínimo número de veces posibles,
así el patrón

/\*.*?\*/

hace las cosas correctamente con los comentarios en C. El significado de
los cuantificadores variables no es cambiado en otro modo, justo el número
preferido de casamientos. No confundas el uso de las interrogaciones con
su uso como un cuantificador mas. Ya que tiene dos usos, a veces puede
parecer doble, como en

\d??\d

el cual empareja un dígito normalmente, pero puede casar dos si ese el
único modo de casar el resto del patrón.

Si se define la opción PCRE_UNGREEDY (la cual no es posible en Perl)
entonces los cuantificadores no son voraces por defecto, pero uno puede
serlo seguido por una interrogación. En otras palabras, invierte la conducta
por defecto.

Cuando un subpatrón entre paréntesis es cuantificado con un número mínimo
de repeticiones superior a uno o con un límite máximo, se necesita más
almacenamiento para compilar el patrón, en proporción al tamaño del mínimo
o del máximo.

Si un patrón empieza con .* o .{0,} y la opción PCRE_DOTALL (equivalente
a /s del Perl) es definida, esta permitiendo el . para casar nuevas líneas,
entonces el patrón es anclado implícitamente. PCRE trata tales patrones
como si estuvieran precedidos por \A. En los casos donde se conoce que la
cadena de entrada no contiene nuevas líneas, es conveniente definir
PCRE_DOTALL cuando el patrón empieza con .* para obtener esta optimización
o usar ^ para indicar explícitamente anclamiento.

Cuando un subpatrón capturado es repetido, el valor capturado es la
subcadena que empareja la iteración final. Por ejemplo, el patrón

(tweedle[dume]{3}\s*)+

con la cadena de entrada "tweedledum tweedledee" el valor de la subcadena
capturada es "tweedledee". Sin embargo, si hay subpatrones capturados
anidadamente, los valores capturados correspondientes pueden haber sido
definidos en las iteraciones anteriores. Por ejemplo, después de casar
"aba" con

/(a|(b))+/

el valor de la segunda subcadena capturada es "b".

REFERENCIAS ATRAS

Fuera de una clase carácter, una barra invertida seguida por un digito
mayor que cero (y posiblemente más dígitos) es una referencia atrás a un
subpatrón capturado antes (a su izquierda) en el patrón, siempre que haya
habido tantos paréntesis a la izquierda capturados.

Sin embargo, si el número decimal seguido por la barra invertida es menor
que diez, siempre es tomado como una referencia atrás, y da error sólo si
no hay los suficientes subpatrones capturados en todo el patrón. En otras
palabras, los paréntesis que son referidos no necesitan estar a la
izquierda de la referencia para un número menor de diez. Examina la sección
anterior titulada "Barra invertida" para más detalles del manejo de los
dígitos con la barra invertida.

Una referencia atrás empareja si casa el subpatrón capturado en el actual
punto de la cadena de entrada, mejor que casar cualquier subpatrón de la
misma. Así el patrón

(sens|respons)e and \1ibility

casa con "sense and sensibility" y "response and responsi bility", pero
no "sense and responsibility". Si el casamiento con la distinción entre
minúsculas y mayúsculas está activado en el momento de la referencia atrás,
entonces la distinción de las letras es relevante. Por ejemplo,

((?i)rah)\s+\1

casa con "rah rah" y "RAH RAH", pero no "RAH rah", pero el subpatrón
capturado originalmente es emparejado sin la distinción.

Puede haber más de una referencia atrás en el mismo subpatrón. Si un
subpatrón no ha sido usado en un emparejamiento particular, entonces
cualquier referencia atrás siempre fallara. Por ejemplo, el patrón

(a|(bc))\2

fallará siempre si inicia a casar con "a" mejor que con "bc". Ya que puede
haber hasta 99 referencias atrás, todos los dígitos seguidos por una barra
invertida son tomados como parte de número potencial de referencias atrás.
Si el patrón continua con un carácter de dígito, entonces algún delimitador
debe ser usado para terminar la referencia atrás. Si la opción PCRE_EXTENDED
es definida, este puede ser el espacio en blanco. De otro modo un comentario
vació puede ser usado.

Una referencia atrás ocurre dentro del paréntesis al cual refiere, falla
cuando el subpatrón es usado por primera vez, así por ejemplo, (a\1) nunca
emparejará. Sin embargo, tal referencia puede ser útil dentro de los
subpatrones repetidos. Por ejemplo, el patrón

(a|b\1)+

casa con cualquier número de "a"s y también con "aba", "ababaa" etc. Para
cada iteración del subpatrón, la referencia atrás casa la cadena de
caracteres correspondiente a la iteración anterior. Para que esto trabaje,
el patrón debe ser tal que la primera iteración no necesite casar la referencia
atrás. Esto puede hacerse usando alternativas, como en el ejemplo anterior,
o por medio de cuantificadores con un número mínimo de cero.

SENTENCIAS

Una sentencia es un test sobre los caracteres siguiendo o precediendo el
punto actual de emparejamiento que no consume caracteres. Las sentencias
codificadas como \b, \B, \A, \Z, \z, ^ y $ son descritas después. Las
sentencias más complejas son codificadas como subpatrones. Hay dos clases:
aquellas que condicionan más adelante de la posición actual en la cadena
de entrada (lookahead)y las que lo hacen en este punto (lookbehind).

Un subpatrón de sentencia es emparejado del modo típico, excepto que no
hace que el punto actual de emparejamiento cambie. Sentencias que condicionan
más adelante empiezan con (?= para sentencias afirmativas y (?! para las
negativas

\w+(?=;)

empareja una palabra seguida por un punto y coma. pero no incluye el
punto y coma en el casamiento, y

foo(?!bar)

casa cualquier ocurrencia de "foo" que no es seguida por "bar". Ten en cuenta
que el patrón similar

(?!foo)bar

no encuentra una ocurrencia de "bar" que es precedida por algo que no sea "foo";
encuentra cualquier ocurrencia de "bar", ya que la sentencia (?!foo) es siempre
verdadera cuando los tres primeros caracteres son "bar". Una sentencia en el
punto actual es necesaria para realizar este efecto. Las sentencias de punto
actual empiezan con (?<= para sentencias afirmativas y (?<! para las
negativas. Por ejemplo,

(?<!foo)bar

encuentra una ocurrencia de "bar" que no es precedida por "foo".
Los contenidos de un sentencia de punto actual están limitados para que todas
las cadenas que emparejen deban tener una longitud fijada. Sin embargo, si
hay varias alternativas, no todas tienen que tener la misma longitud. Así

(?<=bullock|donkey)

es permitido, pero

(?<!dogs?|cats?)

da error en tiempo de compilación. Opciones que emparejen diferentes
longitudes de cadenas son permitidas sólo a nivel superior de la sentencia
de punto actual. Ésta es una extensión comparada con Perl 5.005, la cual
requiere que todas las opciones a casar tengan la misma longitud. Una
sentencia como

(?<=ab(c|de))

no es permitida, ya que sus opciones a nivel superior pueden casar dos
longitudes diferentes, pero es aceptable si se rescribe para usar dos
opciones a nivel superior:

(?<=abc|abde)

La implementación de sentencias de punto actual es, para cada alternativa,
mover temporalmente la posición actual hacia atrás por la longitud fijada
e intentar casar. Si no hay suficientes caracteres antes de la posición
actual, fallará. Las sentencias de punto actual en unión con subpatrones de
sólo una vez pueden ser particularmente útiles para emparejamientos de finales
de cadenas; un ejemplo es dado al final de la sección sobre subpatrones
de una sola vez.

Varias sentencias (de cualquier tipo) pueden suceder consecutivamente.
Por ejemplo,

(?<=\d{3})(?<!999)foo

empareja "foo" precedido por tres dígitos que no sean "999".
Además, las sentencias puede ser anidadas en cualquier combinación. Por
ejemplo,

(?<=(?<!foo)bar)baz

empareja una ocurrencia de "baz" que es precedida por "bar" la cual no sea
precedida por "foo".

Los subpatrones de sentencias no son subpatrones capturados, y no pueden
ser repetidos, ya que no tiene sentido la misma cosa varias veces. Si una
sentencia contiene subpatrones capturados dentro de ella, éstos son siempre
contados para el propósito de la numeración de los subpatrones capturados
en todo el patrón. Las subcadenas capturadas son tenidas en cuenta para
las sentencias afirmativas, pero no para las negativas (no tiene sentido).

El contador de sentencias llega hasta un máximo de doscientos subpatrones
con paréntesis.

SUBPATRONES DE UNA SOLA VEZ

Maximizando y minimizando las repeticiones para ver si un número diferente
de éstas permite al resto del patrón emparejar, causa múltiples evaluaciones
de la cadena de entrada. A veces es útil prevenir esto, cambiando el patrón
o provocando que la repetición falle pronto, cuando el creador del patrón
conoce que no hay puntos en común.

Considera, por ejemplo, el patrón \d+foo cuando se aplica a esta cadena de
entrada

123456bar

Después de emparejar los seis dígitos falla al emparejar "foo", la acción
normal del casamiento es intentar otra vez con sólo cinco dígitos que
emparejen con el elemento \d+, y entonces con cuatro, y así, antes de fallar.
Subpatrones de una sola vez dan el modo de especificar que una parte del
patrón tiene que emparejar, no es re-evaluado de esta manera, así el
casamiento fallará al emparejar "foo" la primera vez. La notación es otra
clase de paréntesis especial, iniciado con (?gt; como en este ejemplo:

(?>\d+)bar

Esta clase de paréntesis "bloquean" la parte del patrón que tiene que
ser emparejada una vez y un fallo impide que la re-evalue.

Una descripción alternativa es que un subpatrón de este tipo case los
caracteres de la cadena que un patrón fijo emparejaría, si estuviera anclado
en el punto actual de la cadena de entrada.

Subpatrones de una sola vez no son subpatrones capturados. Estos casos tal
como el ejemplo anterior pueden ser interpretado como de una repetición
maximizada que debe tragar todo lo que pueda.
Por esto, mientras ambos \d+ y \d? están preparados para ajustar el número
de dígitos que emparejan para hacer que el resto del patrón case, (?>\d+)
sólo puede emparejar un secuencia de dígitos entera.

Esta construcción, por supuesto, puede contener subpatrones arbitriamente
complicados y pueden estar anidados.

Subpatrones de una sola vez pueden usarse con sentencias de punto actual
para especificar eficientes emparejamientos al final de la cadena de entrada.
Consideremos un patrón sencillo como este

abcd$

cuando se aplica a una cadena larga con la cual no empareja. Ya que el
casamiento va de izquierda a derecha, PCRE buscará cada "a" en la cadena
y entonces verá si lo que sigue casa con el resto del patrón. Si el patrón
se escribe así

^.*abcd$

entonces el .* inicial casará primero la cadena entera, pero cuando esto
falle, volverá atrás para emparejar todo menos el último carácter, entonces
los dos últimos y así sucesivamente. Otra vez la búsqueda de "a" cubre la
cadena completa, de derecha a izquierda, de esta manera no se mejora. Sin
embargo, si el patrón fuese este

^(?>.*)(?<=abcd)

entonces no hay vuelta atrás para el elemento .*; sólo puede casar la cadena
entera. La sentencia de punto actual subsiguiente hace un test sencillo
sobre los últimos cuatro caracteres. Si falla, el casamiento inmediatamente
da un resultado negativo. Para cadena largas, este acercamiento da una
diferencia significativa en tiempo de ejecución.

SUBPATRONES CONDICIONALES

Es posible hacer que el casamiento procese un subpatrón condicionalmente
o elegir entre dos subpatrones alternativos, dependiendo del resultado
de una sentencia o si un subpatrón capturado previamente casó o no.

Las dos formas posibles de subpatrones condicionales son

(?(condition)yes-pattern)
(?(condition)yes-pattern|no-pattern)

Si la condición es satisfecha, el yes-pattern es usado; sino el no-pattern
es utilizado si existe. Si hay más de dos alternativas en el subpatrón, se
produce un error en tiempo de compilación.

Hay dos clases de condiciones. Si el texto entre los paréntesis consiste
de una secuencia de dígitos, entonces la condición es verdadera si el
subpatrón capturado de ese número ha sido casado previamente. Consideremos
el siguiente patrón, contiene espacios en blanco para hacerlo más leíble
(asumimos la opción PCRE_EXTENDED) y lo dividimos en tres partes para
facilitar la discusión:

( \( )? [^()]+ (?(1) \) )

La primera parte empareja un paréntesis opcional abierto, y si el carácter
esta presente, lo define como la primera subcadena capturada. La segunda
parte casa uno o más caracteres que no están entre paréntesis. La tercera
parte es un subpatrón condicional que examina si el primer conjunto de
paréntesis casa o no. Si fuera así, esto es, si la cadena de entrada
empieza por un paréntesis abierto, la condición es cierta, y el yes-pattern
es ejecutado y un paréntesis de cierre es requerido. De otro modo, ya que
no-pattern no esta presente, el subpatrón no casa con nada. En otras
palabras, este patrón casa una secuencia de datos sin paréntesis
opcionalmente limitada por ellos.

Si la condición no es una secuencia de dígitos, debe ser una sentencia.
Esto puede ser una sentencia de más adelante positiva o negativa o una
de punto actual. Consideremos este patrón, otra vez conteniendo espacios
en blanco sin significado y con la segunda alternativa en la siguiente línea:

(?(?=[^a-z]*[a-z])
\d{2}[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} )

La condición es una sentencia de más adelante positiva que empareja una
secuencia opcional de cualquier cosas menos letras seguido por una letra.
En otras palabras, examina la presencia de al menos una letra en la cadena
de entrada. Si una letra es encontrada, la cadena es casada con la primera
alternativa; sino lo es con la segunda. Este patrón casa cadenas de una de
estas dos formas dd-aaa-dd o dd-dd-dd, donde aaa son letra y dd son dígitos.

COMENTARIOS

La secuencia (?# marca el inicio de un comentario el cual continua hasta
el primer paréntesis. Los paréntesis anidados no son permitidos. Los
caracteres que forman un comentario no forman parte del patrón de
emparejamiento.

Si la opción PCRE_EXTENDED es definida, un carácter # fuera de una clase
carácter crea un comentario que continua hasta la próxima línea del patrón.

RENDIMIENTO

Ciertos elementos que pueden aparecer en los patrones son más eficientes
que otros. Es más eficiente usar una clase carácter como [aeiou] que un
conjunto de alternativas tal como (a|e|i|o|u). En general, los constructores
más sencillos que dan la conducta requerida son, normalmente, más eficientes.
El libro de Jeffrey Friedl contiene un montón de discusiones sobre la
optimización de expresiones regulares para un rendimiento eficiente.

Cuando un patrón empieza con .* y la opción PCRE_DOTALL está definida, el
patrón es anclado implícitamente por PCRE, ya que sólo puede casar el inicio
de la cadena de entrada. Sin embargo, si PCRE_DOTALL no es definido, PCRE
no puede hacer esta optimización, ya que el meta carácter . no tiene porque
casar con una nueva línea y si la cadena de entrada contiene varias nuevas
líneas, el patrón puede emparejar desde el carácter inmediatamente siguiente
a uno de ellos en vez del inicio. Por ejemplo, el patrón

(.*) second

casa la cadena de entrada "first\nand second" (donde \n representa un carácter
de nueva línea) con la primera subcadena capturada empezando con "and".
En otras palabras, PCRE tiene que intentar los casamientos iniciándolos
después de cada nueva línea en la cadena de entrada.

Si estas usando un patrón con cadenas de entrada que no contienen nuevas
líneas, el mejor rendimiento se obtiene definiendo PCRE_DOTALL o iniciando
el patrón con ^.* para indicar anclamiento explícito. Esto previene a PCRE
tener que examinar toda la cadena de entrada buscando nuevas líneas para
empezar de nuevo.

Anterior | Inicio | Siguiente
Modificadores de Patrones | Subir | preg_grep


preg_grep

(PHP 4 )

preg_grep -- Devuelve un array con los elementos que casen con el patrón

Descripción

array preg_grep ( string pattern, array input)

preg_grep() devuelve un array conteniendo los elementos del array input que emparejen con el patrón (pattern) dado.

Ejemplo 1. Ejemplo de la función preg_grep()

preg_grep("/^(\d+)?\.\d+$/", $array); // encuentra todos los números reales en el array

Nota: Esta función fue añadida en PHP 4.0.

Anterior | Inicio | Siguiente
Sintaxis de los Patrones | Subir | preg_match_all


preg_match_all

(PHP 3>= 3.0.9, PHP 4 )

preg_match_all -- Realiza un completo emparejamiento de expresiones

Descripción

int preg_match_all ( string pattern, string subject, array matches [, int order])

Busca en subject todos los emparejamientos de la expresión pattern y los pone en matches de la forma indicada por order.

Después de encontrar el primer emparejamiento, las subsiguientes búsquedas empiezan desde el punto del último casamiento.

order puede tener los siguientes valores:

PREG_PATTERN_ORDER

Los resultados serán devueltos de manera que $matches[0] es un array con el patrón de búsqueda completo, $matches[1] es una array de las cadenas casadas por el primer subpatrón que esté entre paréntesis y así sucesivamente.

preg_match_all("|<[^>]+>(.*)</[^>]+>|U", "<b>example: </b><div align=left>this is a test</div>", $out, PREG_PATTERN_ORDER);
print $out[0][0].", ".$out[0][1]."\n";
print $out[1][0].", ".$out[1][1]."\n"

Esta ejemplo dará como resultado:

<b>example: </b>, <div align=left>this is a test</div>
example: , this is a test

Así, $out[0] contiene el array con las cadena que casan completamente con el patrón y $out[1] con las cadenas que se encuentran entre los tags.

PREG_SET_ORDER

Los resultados son dados de manera que $matches[0] es una array del primer conjunto de emparejamientos, $matches[1] es un array de los segundos conjuntos de casamientos y así sucesivamente.

preg_match_all("|<[^>]+>(.*)</[^>]+>|U", "<b>example: </b><div align=left>this is a test</div>", $out, PREG_SET_ORDER);
print $out[0][0].", ".$out[0][1]."\n";
print $out[1][0].", ".$out[1][1]."\n"

Este ejemplo dará como resultado:

<b>example: </b>, example:
<div align=left>this is a test</div>, this is a test

En este caso, $matches[0] es el primer conjunto de emparejamientos y $matches[0][0] tiene el casamiento completo, $matches[0][1] el del primer subpatrón y así sucesivamente. Similarmente, $matches[1] es el segundo conjunto de emparejamientos, etc.

Si order no es dado, se asume PREG_PATTERN_ORDER.

Devuelve el número de casamientos completos, FALSE si no hubo o se produjo error.

Ejemplo 1. Obtener los número de teléfonos de un texto.

preg_match_all("/\(?  (\d{3})?  \)?  (?(1)  [\-\s] ) \d{3}-\d{4}/x",
               "Call 555-1212 or 1-800-555-1212", $phones);

Examina también preg_match(), preg_replace() y preg_split().

Anterior | Inicio | Siguiente
preg_grep | Subir | preg_match


preg_match

(PHP 3>= 3.0.9, PHP 4 )

preg_match -- Realiza un emparejamiento dada una expresión

Descripción

int preg_match ( string pattern, string subject [, array matches])

Busca en subject para un emparejamiento, dada la expresión pattern.

Si matches es dado, entonces será definido con el resultado de la búsqueda. $matches[0] contendrá el texto que empareja con el patrón en su totalidad. $matches[1] tendrá la cadena que empareje con el primer subpatrón que esté entre paréntesis y así sucesivamente.

Devuelve TRUE si se encontró en la cadena un emparejamiento dado el patrón pattern, FALSE si no se produjo o hubo un error.

Ejemplo 1. Obtener el número de la siguiente página dada una cadena

if (preg_match("/page\s+#(\d+)/i", "Go to page #9.", $parts))
    print "Next page is $parts[1]";             // La siguiente página es $parts[1]
else
    print "Page not found.";                    // Página no encontrada
Examinar también preg_match_all(), preg_replace(), y preg_split().

Anterior | Inicio | Siguiente
preg_match_all | Subir | preg_quote


preg_quote

(PHP 3>= 3.0.9, PHP 4 )

preg_quote -- Prepara los caracteres de expresiones

Descripción

string preg_quote ( string str)

preg_quote() toma str y pone una barra invertida (\) delante de todo carácter que sea parte de la sintaxis de las expresiones. Es útil si tienes una cadena en tiempo de ejecución y puede contener caracteres especiales.

Los caracteres especiales de las expresiones son:
. \\ + * ? [ ^ ] $ ( ) { } = ! < > | :

Nota: Esta función fue añadida en PHP 3.0.9.

Anterior | Inicio | Siguiente
preg_match | Subir | preg_replace_callback


preg_replace_callback

(PHP 4 >= 4.0.5)

preg_replace_callback -- Realizar una búsqueda con expresiones regulares y generar reemplazos usando una llamada de retorno

Descripción

mixed preg_replace_callback ( mixed patron, callback llamada_de_retorno, mixed fuente [, int limite])

El comportamiento de esta función es casi idéntico al de preg_replace(), con la excepción de que en lugar del parámetro reemplazo, uno debe especificar una llamada_de_retorno que será usada pasándole una matriz de los elementos coincidentes en la cadena fuente. La llamada de retorno debería devolver la cadena de reemplazo.

Ejemplo 1. Ejemplo de preg_replace_callback()

<?php
  // este texto fue usado en 2002
  // queremos actualizarlo para 2003

  $texto = "El d&iacute;a de los inocentes es 04/01/2002\n";
  $texto.= "La &uacute;ltima navidad fue 12/24/2001\n";

  // la llamada de retorno

  function siguiente_anyo($coincidencias) {
    // como es usual: $coincidencias[0] es la coincidencia completa
    // $coincidencias[1] la coincidencia para el primer subpatron
    // ubicado entre '(...)' y asi sucesivamente

    return $coincidencias[1].($coincidencias[2]+1);
  }

  echo preg_replace_callback(
              "|(\d{2}/\d{2}/)(\d{4})|",
              "siguiente_anyo",
              $texto);

  // el resultado es:
  // El d&iacute;a de los inocentes es 04/01/2003
  // La &uacute;ltima navidad fue 12/24/2002
?>

Con frecuencia necesitará la función de llamada de retorno cuando use preg_replace_callback() únicamente en un lugar. En este caso, usted puede usar create_function() para declarar una función anónima como llamada de retorno dentro del llamado a preg_replace_callback(). Al hacerlo de este modo, usted tendrá toda la información necesaria para el llamado en un solo lugar y no abarrota su espacio de nombres de funciones con nombres de llamadas de retorno que no son usadas en ninguna otra parte.

Ejemplo 2. preg_replace_callback() y create_function()

<?php
  /* un filtro de linea de comandos tipo Unix para convertir letras
   * mayusculas al comienzo de los paragrafos a minusculas */

$da = fopen("php://stdin", "r") or die("no se puede leer stdin");

while (!feof($da)) {
    $linea = fgets($da);
    $linea = preg_replace_callback(
        '|<p>\s*\w|',
        create_function(
            // las comillas sencillas son cruciales aqui,
            // o alternativamente escapar todos los signos $ como \$
            '$coincidencias',
            'return strtolower($coincidencias[0]);'
            ),
        $linea
        );
    echo $linea;
}
fclose($da);

?>

Vea también preg_replace() y create_function().

Anterior | Inicio | Siguiente
preg_quote | Subir | preg_replace


preg_replace

(PHP 3>= 3.0.9, PHP 4 )

preg_replace -- Lleva a cabo la búsqueda de una expresión y su sustitución

Descripción

mixed preg_replace ( mixed pattern, mixed replacement, mixed subject)

Busca en subject los emparejamientos con pattern y los sustituye por replacement.

replacement puede contener referencias de la forma \\n. Éstas serán sustituidas por el texto obtenido por el patrón del paréntesis nésimo. n puede tener un valor de cero a noventa y nueve, y \\0 se refiere al texto casado por el patrón completo. Para obtener el número del subpatrón de búsqueda, los paréntesis abiertos son contados de izquierda derecha tomando el primero como uno.

Si el patrón no es encontrado en subject, entonces no se realizarán cambios.

Todos los parámetros de la función preg_replace() pueden ser un array.

Si subject es un array, entonces la búsqueda y sustitución es realizada para todos los elementos de subject, y el valor devuelto es también un array.

Si pattern y replacement son arrays, entonces preg_replace() toma un valor desde cada array y los usas para buscar y sustituir sobre subject. Si replacement tiene menos valores que pattern, entonces la cadena vacía es usada como valor para el resto de sustituciones. Si pattern es una array y replacement es una cadena, entonces esta cadena de sustitución es usada para todos los valores de pattern. Sin embargo, lo contrario no tiene sentido.

El modificador /e hace que la función preg_replace() trate el parámetro replacement como código PHP después de que la apropiada sustitución sea hecha. Atención, asegúrate que replacement es un código PHP correcto, de otro modo PHP dará un error de parse en la línea que contenga preg_replace().

Nota: Este modificador fue añadido en PHP 4.0.

Ejemplo 1. Sustituir varios valores

<?php
$patterns = array("/(19|20\d{2})-(\d{1,2})-(\d{1,2})/", "/^\s*{(\w+)}\s*=/");
$replace = array("\\3/\\4/\\1", "$\\1 =");
print preg_replace($patterns, $replace, "{startDate} = 1999-5-27");
?>
Esta ejemplo dará como resultado:
$startDate = 5/27/1999

Ejemplo 2. Usar el modificador /e

<?php
preg_replace("/(<\/?)(\w+)([^>]*>)/e", "'\\1'.strtoupper('\\2').'\\3'", $html_body);
?>

Pondrá en mayúscula todos los tags HTML del texto de entrada.

Examina también preg_match(),
preg_match_all(), y
preg_split().

Anterior | Inicio | Siguiente
preg_replace_callback | Subir | preg_split


preg_split

(PHP 3>= 3.0.9, PHP 4 )

preg_split -- Divide una cadena dada una expresión

Descripción

array preg_split ( string pattern, string subject [, int limit [, int flags]])

Nota: El parámetro flags fue añadido en la Beta 3 de PHP

Devuelve un array conteniendo las subcadenas de subject divididas mediante los emparejamientos limitados por pattern.

Si limit es proporcionado, entonces sólo limit subcadenas son devueltas.

Si el flags es PREG_SPLIT_NO_EMPTY entonces las cadenas vacías no serán devueltas por preg_split().

Ejemplo 1. Obtener las partes de una cadena de búsqueda

$keywords = preg_split("/[\s,]+/", "hypertext language, programming");
Examinar también preg_match(), preg_match_all(), y preg_replace().

Anterior | Inicio | Siguiente
preg_replace | Subir | qtdom functions


qtdom functions

Manual de PHP
Anterior Siguiente

XCI. qtdom functions

Aviso

Esta extensión es EXPERIMENTAL. Esto significa que el comportamiento de esta extensión, los nombre de sus funciones y en definitiva TODO lo documentado sobre esta extensión, puede cambiar en una futura versión de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Nota: Esta extensión no está disponible en plataformas Windows

Requerimientos

You need the Qt-library >=2.2.0

Instalación

Configure PHP --with-qtdom to use these functions.

Tabla de contenidos
qdom_error -- Returns the error string from the last QDOM operation or FALSE if no errors occured
qdom_tree -- creates a tree of an xml string

Anterior | Inicio | Siguiente
preg_split | Subir | qdom_error


qdom_error

(PHP 4 >= 4.0.5)

qdom_error -- Returns the error string from the last QDOM operation or FALSE if no errors occured

Description

string qdom_error ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
qtdom functions | Subir | qdom_tree


qdom_tree

(PHP 4 >= 4.0.4)

qdom_tree -- creates a tree of an xml string

Description

object qdom_tree ( string )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
qdom_error | Subir | Funciones para expresiones regulares


Funciones para expresiones regulares

Manual de PHP
Anterior Siguiente

XCII. Funciones para expresiones regulares

Las expresiones regulares se usan en PHP para manipular cadenas complejas. Las funciones que soportan expresiones regulares son:

  • ereg()

  • ereg_replace()

  • eregi()

  • eregi_replace()

  • split()

En todas estas funciones, el primer argumento es una expresión regular. PHP utiliza las expresiones regulares extendidas de POSIX, definidas en POSIX 1003.2. Para una descripción completa de las expresiones regulares POSIX, ver las páginas de manual de regex incluidas en el directorio regex de la distribución de PHP. Están en formato de página de manual, por lo que se deben leer con una orden como man /usr/local/src/regex/regex.7.

Ejemplo 1. Ejemplos de expresiones regulares

ereg("abc",$string);
/* Devuelve true si "abc"
   se encuentra en $string. */

ereg("^abc",$string);
/* Devuelve true si "abc"
   se encuentra al comienzo de $string. */

ereg("abc$",$string);
/* Devuelve true si "abc"
   se encuentra al final de $string. */

eregi("(ozilla.[23]|MSIE.3)",$HTTP_USER_AGENT);
/* Devuelve true si el navegador cliente
   es Netscape 2, 3 o MSIE 3. */

ereg("([[:alnum:]]+) ([[:alnum:]]+) ([[:alnum:]]+)",
     $string,$regs);
/* Pone tres palabras separadas por espacios
   en $regs[1], $regs[2] y $regs[3]. */

$string = ereg_replace("^","<BR>",$string);
/* Coloca la etiqueta <BR> al comienzo de $string. */

$string = ereg_replace("$","<BR>",$string);
/* Coloca la etiqueta <BR> al final de $string. */

$string = ereg_replace("\n","",$string);
/* Elimina los caracteres fin-de-línea de $string. */

Tabla de contenidos
ereg_replace -- reemplaza expresiones regulares
ereg -- Coincidencia de expresiones regulares
eregi_replace -- reemplaza expresiones regularse sin diferenciar mayúsculas y minúsculas
eregi -- coincidencia de expresiones regulares sin diferenciar mayúsculas y minúsculas
split -- divide la cadena en elementos de un array según una expresión regular
spliti -- Separar una cadena en una matriz mediante una expresión regular, no sensible a mayúsculas ni minúsculas
sql_regcase -- construye una expresión regular para buscar coincidencias sin diferenciar mayúsculas y minúsculas

Anterior | Inicio | Siguiente
qdom_tree | Subir | ereg_replace


ereg_replace

(PHP 3, PHP 4 )

ereg_replace -- reemplaza expresiones regulares

Descripción

string ereg_replace ( string pattern, string replacement, string string)

Esta función examina string buscando coincidencias de pattern, y reemplaza el texto encontrado con replacement.

Devuelve la cadena modificada. Si no hay coincidencias que reemplazar, devuelve la cadena original.

Si pattern contiene subcadenas entre paréntesis, replacement puede contener subcadenas de la forma \\cifra, que serán reemplazadas por el texto que coincide con la subcadena entre paréntesis que ocupa el lugar indicado por la cifra; \\0 produce el contenido total de la cadena. Se pueden usar hasta nueve subcadenas. Los paréntesis pueden anidarse; en este caso se cuentan los paréntesis de apertura.

Si no se encuentran coincidencias en string, se devuelve string sin cambios.

Por ejemplo, el siguiente fragmento de código imprime "This was a test" tres veces:

Ejemplo 1. ereg_replace() example

$string = "This is a test";
echo ereg_replace( " is", " was", $string );
echo ereg_replace( "( )is", "\\1was", $string );
echo ereg_replace( "(( )is)", "\\2was", $string );

Ver también ereg(), eregi(), y eregi_replace().

Anterior | Inicio | Siguiente
Funciones para expresiones regulares | Subir | ereg


ereg

(PHP 3, PHP 4 )

ereg -- Coincidencia de expresiones regulares

Descripción

int ereg ( string pattern, string string [, array regs])

Busca en string las coincidencias con la expresión regular pattern.

Si se encuentran coincidencias con subcadenas entre paréntesis de pattern y la función se ha llamado con el tercer argumento regs, las coincidencias se almacenarán en los elementos de regs. $regs[1] contendrá la subcadena que empieza en el primer paréntesis izquierdo; $regs[2] la que comienza en el segundo, etc. $regs[0] contendrá una copia de string.

La búsqueda diferencia mayúsculas y minúsculas.

Devuelve un valor verdadero si se encontró alguna coincidencia, o falso in no se encontraron coincidencias u ocurrió algún error.

El siguiente fragmento de código toma una fecha en formato ISO (AAAA-MM-DD) y la imprime en formato DD.MM.AAAA:

Ejemplo 1. ereg() example

if ( ereg( "([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $date, $regs ) ) {
    echo "$regs[3].$regs[2].$regs[1]";
} else {
    echo "Invalid date format: $date";
}

Ver también eregi(),
ereg_replace(), y
eregi_replace().

Anterior | Inicio | Siguiente
ereg_replace | Subir | eregi_replace


eregi_replace

(PHP 3, PHP 4 )

eregi_replace -- reemplaza expresiones regularse sin diferenciar mayúsculas y minúsculas

Descripción

string eregi_replace ( string pattern, string replacement, string string)

Esta función es idéntica a ereg_replace(), excepto en que ignora la distinción entre mayúsculas y minúsculas.

Ver también ereg(),
eregi(), y
ereg_replace().

Anterior | Inicio | Siguiente
ereg | Subir | eregi


eregi

(PHP 3, PHP 4 )

eregi -- coincidencia de expresiones regulares sin diferenciar mayúsculas y minúsculas

Descripción

int eregi ( string pattern, string string [, array regs])

Esta función es idéntica a ereg(), excepto en que ignora la distinción entre mayúsculas y minúsculas.

Ver también ereg(),
ereg_replace(), y
eregi_replace().

Anterior | Inicio | Siguiente
eregi_replace | Subir | split


split

(PHP 3, PHP 4 )

split -- divide la cadena en elementos de un array según una expresión regular

Descripción

array split ( string pattern, string string [, int limit])

Devuelve un array de cadenas, cada una de las cuales es una subcadena de string formada al dividir esta en los límites formados por la expresión regular pattern. Si ocurre un error, devuelve un valor falso.

Para obtener los cinco primeros campos de una línea de /etc/passwd:

Ejemplo 1. split() example

$passwd_list = split( ":", $passwd_line, 5 );

Para examinar una fecha que puede estar delimitada por barras, puntos o guiones:

Ejemplo 2. split() example

$date = "04/30/1973";  // Los delimitadores pueden ser barras, puntos o guiones
list( $month, $day, $year ) = split( '[/.-]', $date );
echo "Month: $month; Day: $day; Year: $year<br>\n";

Observar que pattern distingue entre mayúsculas y minúsculas.

Observar que si no se necesita la potencia de las expresiones regulares, es más rápido utilizar explode(), que no carga el motor de expresiones regulares.

Por favor, observar que pattern es una expresión regular. Si se quiere dividir con alguno de los caracteres especiales de las expresiones regulares, se necesita protegerlo antes. Si pareciera que split() (o cualquier otra función de regex) está haciendo algo irregular, léase el archivo regex.7, incluido en el subdirectorio regex de la distribución de PHP. Está en formato de página de manual, por lo que para leerlo es necesaria una orden como man /usr/local/src/regex/regex.7.

Ver también: explode() e implode().

Anterior | Inicio | Siguiente
eregi | Subir | spliti


spliti

(PHP 4 >= 4.0.1)

spliti -- Separar una cadena en una matriz mediante una expresión regular, no sensible a mayúsculas ni minúsculas

Descripción

array spliti ( string patron, string cadena [, int limite])

Esta función es idéntica a split(), excepto que ignora la distinción entre mayúsculas y minúsculas cuando realiza coincidencias sobre caracteres alfabéticos.

Vea también preg_spliti(), split(), explode(), e implode().

Anterior | Inicio | Siguiente
split | Subir | sql_regcase


sql_regcase

(PHP 3, PHP 4 )

sql_regcase -- construye una expresión regular para buscar coincidencias sin diferenciar mayúsculas y minúsculas

Descripción

string sql_regcase ( string string)

Devuelve una expresión regular válida que coincide con string sin distinguir mayúsculas y minúsculas. Esta expresión es string con cada carácter convertido a una expresión entre corchetes que contiene el carácter en mayúscula y minúscula, si es posible; en caso contrario, contiene el carácter original dos veces.

Ejemplo 1. sql_regcase() example

echo sql_regcase( "Foo bar" );
imprime
[Ff][Oo][Oo][  ][Bb][Aa][Rr]
.

Se puede utilizar para lograr coincidencias que no diferencien mayúsculas de minúsculas en productos que sólo soportan expresiones regulares que sí distinguen.

Anterior | Inicio | Siguiente
spliti | Subir | Funciones Semáforo y de memoria compartida


Funciones Semáforo y de memoria compartida

Manual de PHP
Anterior Siguiente

XCIII. Funciones Semáforo y de memoria compartida

Este módulo provee funciones semáforo utilizando los semaforos de System V. Los semáforos pueden usarse para obtener acceso exclusivo a algun recurso del ordenador en cuestión, o para limitar el número de procesos que pueden usar un recurso simultaneamente.

Este módulo provee tambien funciones de memoria compartida, usando el compartimiento de memoria de System V. La memoria compartida puede usarse para proveer acceso a variables globales. Los diferentes demonios http e incluso otros programas, (como Perl, C, ...) son capaces de utilizar estos datos, para intercambiarlos de modo global. Recuerde que, la memoria compartida NO es segura para los accesos simultáneos. Use los semáforos para obtener sincronismo.

Tabla 1. Limites de la memoria compartida del SO Unix

SHMMAX | máximo tamaño de memoria compartida, normalmente 131072 bytes
SHMMIN | minimo tamaño de memoria compartida, por lo general 1 byte
SHMMNI | máxima cantidad de segmentos de memoria compartida, normalmente 100
SHMSEG | máximo de memoria compartida por proceso, normalmente 6

Tabla de contenidos
ftok -- Convert a pathname and a project identifier to a System V IPC key
msg_get_queue -- Create or attach to a message queue
msg_receive -- Receive a message from a message queue
msg_remove_queue -- Destroy a message queue
msg_send -- Send a message to a message queue
msg_set_queue -- Set information in the message queue data structure
msg_stat_queue -- Returns information from the message queue data structure
sem_acquire -- adquiere un semáforo, lo toma para sí
sem_get -- obtiene la identificacion de un semáforo (semaphore id)
sem_release -- release a semaphore
sem_remove -- Remove a semaphore
shm_attach -- Crea o abre un segmento de memoria compartida
shm_detach -- Finaliza conexión con un segmento de memoria compartida
shm_get_var -- Devuelve una variable de la memoria compartida
shm_put_var -- Inserta o actualiza una variable en la memoria compartida
shm_remove_var -- Elimina una variable de la memoria compartida
shm_remove -- Elimina memoria compartida del sistma Unix

Anterior | Inicio | Siguiente
sql_regcase | Subir | ftok


ftok

(PHP 4 >= 4.2.0)

ftok -- Convert a pathname and a project identifier to a System V IPC key

Description

int ftok ( string pathname, string proj)

The function converts the pathname of an existing accessible file and a project identifier (proj) into a integer for use with for example shmop_open() and other System V IPC keys. The proj parameter should be a one character string.

On success the return value will be the created key value, otherwise -1 is returned.

See also shmop_open() and sem_get().

Anterior | Inicio | Siguiente
Funciones Semáforo y de memoria compartida | Subir | msg_get_queue


msg_get_queue

(PHP 4 >= 4.3.0)

msg_get_queue -- Create or attach to a message queue

Description

int msg_get_queue ( int key [, int perms])

msg_get_queue() returns an id that can be used to access the System V message queue with the given key. The first call creates the message queue with the optional perms (default: 0666). A second call to msg_get_queue() for the same key will return a different message queue identifier, but both identifiers access the same underlying message queue. If the message queue already exists, the perms will be ignored.

See also: msg_remove_queue(),
msg_receive(), msg_send(),
msg_stat_queue() and
msg_set_queue().

Anterior | Inicio | Siguiente
ftok | Subir | msg_receive


msg_receive

(PHP 4 >= 4.3.0)

msg_receive -- Receive a message from a message queue

Description

bool msg_receive ( int queue, int desiredmsgtype, int msgtype, int maxsize, mixed message [, bool unserialize [, int flags [, int errorcode]]])

msg_receive() will receive the first message from the specified queue of the type specified by desiredmsgtype. The type of the message that was received will be stored in msgtype. The maximum size of message to be accepted is specified by the maxsize; if the message in the queue is larger than this size the function will fail (unless you set flags as described below). The received message will be stored in message, unless there were errors receiving the message, in which case the optional errorcode will be set to the value of the system errno variable to help you identify the cause.

If desiredmsgtype is 0, the message from the front of the queue is returned. If desiredmsgtype is greater than 0, then the first message of that type is returned. If desiredmsgtype is less than 0, the first message on the queue with the lowest type less than or equal to the absolute value of desiredmsgtype will be read. If no messages match the criteria, your script will wait until a suitable message arrives on the queue. You can prevent the script from blocking by specifying MSG_IPC_NOWAIT in the flags parameter.

unserialize defaults to TRUE; if it is set to TRUE, the message is treated as though it was serialized using the same mechanism as the session module. The message will be unserialized and then returned to your script. This allows you to easily receive arrays or complex object structures from other PHP scripts, or if you are using the WDDX serializer, from any WDDX compatible source. If unserialize is FALSE, the message will be returned as a binary-safe string.

The optional flags allows you to pass flags to the low-level msgrcv system call. It defaults to 0, but you may specify one or more of the following values (by adding or ORing them together).

Tabla 1. Flag values for msg_receive

MSG_IPC_NOWAIT | If there are no messages of the desiredmsgtype, return immediately and do not wait. The function will fail and return an integer value corresponding to ENOMSG.
MSG_EXCEPT | Using this flag in combination with a desiredmsgtype greater than 0 will cause the function to receive the first message that is not equal to desiredmsgtype.
MSG_NOERROR | If the message is longer than maxsize, setting this flag will truncate the message to maxsize and will not signal an error.

Upon successful completion the message queue data structure is updated as follows: msg_lrpid is set to the process-ID of the calling process, msg_qnum is decremented by 1 and msg_rtime is set to the current time.

msg_receive() returns TRUE on success or FALSE on failure. If the function fails, the optional errorcode will be set to the value of the system errno variable.

See also: msg_remove_queue(),
msg_send(),
msg_stat_queue() and
msg_set_queue().

Anterior | Inicio | Siguiente
msg_get_queue | Subir | msg_remove_queue


msg_remove_queue

(PHP 4 >= 4.3.0)

msg_remove_queue -- Destroy a message queue

Description

bool msg_remove_queue ( int queue)

msg_remove_queue() destroys the message queue specified by the queue. Only use this function when all processes have finished working with the message queue and you need to release the system resources held by it.

See also: msg_remove_queue(),
msg_receive(),
msg_stat_queue() and
msg_set_queue().

Anterior | Inicio | Siguiente
msg_receive | Subir | msg_send


msg_send

(PHP 4 >= 4.3.0)

msg_send -- Send a message to a message queue

Description

bool msg_send ( int queue, int msgtype, mixed message [, bool serialize [, bool blocking [, int errorcode]]])

msg_send() sends a message of type msgtype (which MUST be greater than 0) to a the message queue specified by queue.

If the message is too large to fit in the queue, your script will wait until another process reads messages from the queue and frees enough space for your message to be sent. This is called blocking; you can prevent blocking by setting the optional blocking parameter to FALSE, in which case msg_send() will immediately return FALSE if the message is too big for the queue, and set the optional errorcode to EAGAIN, indicating that you should try to send your message again a little later on.

The optional serialize controls how the message is sent. serialize defaults to TRUE which means that the message is serialized using the same mechanism as the session module before being sent to the queue. This allows complex arrays and objects to be sent to other PHP scripts, or if you are using the WDDX serializer, to any WDDX compatible client.

Upon successful completion the message queue data structure is updated as follows: msg_lspid is set to the process-ID of the calling process, msg_qnum is incremented by 1 and msg_stime is set to the current time.

See also: msg_remove_queue(),
msg_receive(),
msg_stat_queue() and
msg_set_queue().

Anterior | Inicio | Siguiente
msg_remove_queue | Subir | msg_set_queue


msg_set_queue

(PHP 4 >= 4.3.0)

msg_set_queue -- Set information in the message queue data structure

Description

bool msg_set_queue ( int queue, array data)

msg_set_queue() allows you to change the values of the msg_perm.uid, msg_perm.gid, msg_perm.mode and msg_qbytes fields of the underlying message queue data structure. You specify the values you require by setting the value of the keys that you require in the data array.

Changing the data structure will require that PHP be running as the same user that created the the queue, owns the queue (as determined by the existing msg_perm.xxx fields), or be running with root privileges. root privileges are required to raise the msg_qbytes values above the system defined limit.

See also: msg_remove_queue(),
msg_receive(),
msg_stat_queue() and
msg_set_queue().

Anterior | Inicio | Siguiente
msg_send | Subir | msg_stat_queue


msg_stat_queue

(PHP 4 >= 4.3.0)

msg_stat_queue -- Returns information from the message queue data structure

Description

array msg_stat_queue ( int queue)

msg_stat_queue() returns the message queue meta data for the message queue specified by the queue. This is useful, for example, to determine which process sent the message that was just received.

The return value is an array whose keys and values have the following meanings:

Tabla 1. Array structure for msg_stat_queue

msg_perm.uid | The uid of the owner of the queue.
msg_perm.gid | The gid of the owner of the queue.
msg_perm.mode | The file access mode of the queue.
msg_stime | The time that the last message was sent to the queue.
msg_rtime | The time that the last message was received from the queue.
msg_ctime | The time that the queue was last changed.
msg_qnum | The number of messages waiting to be read from the queue.
msg_qbytes | The number of bytes of space currently available in the queue to hold sent messages until they are received.
msg_lspid | The pid of the process that sent the last message to the queue.
msg_lrpid | The pid of the process that received the last message from the queue.

See also: msg_remove_queue(),
msg_receive(),
msg_stat_queue() and
msg_set_queue().

Anterior | Inicio | Siguiente
msg_set_queue | Subir | sem_acquire


sem_acquire

(PHP 3>= 3.0.6, PHP 4 )

sem_acquire -- adquiere un semáforo, lo toma para sí

Descripción

int sem_acquire ( int sem_identifier)

Devuelve: Verdadero si hay éxito, falso si hay errores

sem_acquire() Produce un bloqueo (de ser necesario) hasta que el semáforo puede adquirirse. Un proceso intentando adquirir un semáforo ya adquirido, se bloqueará permanentemente si adquiriendo el semáforo, excede su valor de max_acquire.

Despues de procesar una petición, cualquier semáforo adquirido por un proceso, que no sea explícitamente liberado, será liberado automñaticamente, generando un mensaje de alerta.

Véase tambien: sem_get() and sem_release().

Anterior | Inicio | Siguiente
msg_stat_queue | Subir | sem_get


sem_get

(PHP 3>= 3.0.6, PHP 4 )

sem_get -- obtiene la identificacion de un semáforo (semaphore id)

Descripción

int sem_get ( int key [, int max_acquire [, int perm]])

Devuelve: Un identificador positivo de semáforo en caso de éxito, o falso en caso de error.

sem_get() Devuelve un id que puede usarse para acceder al semáforo de System V con la llave dada. El semáforo se usa si es necesario usando los bits de permisos especificados en perm (por defecto 0666). El número de procesos que pueden adquirir el semáforo simultáneamente, se define en max_acquire (por defecto es 1). Actualmente este valor se fija sólo si el proceso determina que es el único relacionado actualmente al semáforo.

Una segunda llamada a sem_get() para la misma llave, devolverá un id de semáforo diferente, pero con ambos identificadoes, se accederá al mismo semáforo.

Véase también: sem_acquire() y sem_release().

Anterior | Inicio | Siguiente
sem_acquire | Subir | sem_release


sem_release

(PHP 3>= 3.0.6, PHP 4 )

sem_release -- release a semaphore

Descripción

int sem_release ( int sem_identifier)

Returns: TRUE on success, FALSE on error

sem_release() releases the semaphore if it is currently acquired by the calling process, otherwise a warning is generated.

After releasing the semaphore, sem_acquire() may be called to re-acquire it.

Véase tambien: sem_get() y sem_acquire().

Anterior | Inicio | Siguiente
sem_get | Subir | sem_remove


sem_remove

(PHP 4 >= 4.1.0)

sem_remove -- Remove a semaphore

Description

bool sem_remove ( int sem_identifier)

sem_remove() removes the semaphore sem_identifier if it has been created by sem_get(), otherwise generates a warning.

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

After removing the semaphore, it is no more accessible.

See also: sem_get(),
sem_release() and
sem_acquire().

Nota: This function does not work on Windows systems. It was added on PHP 4.1.0.

Anterior | Inicio | Siguiente
sem_release | Subir | shm_attach


shm_attach

(PHP 3>= 3.0.6, PHP 4 )

shm_attach -- Crea o abre un segmento de memoria compartida

Descripción

int shm_attach ( int key [, int memsize [, int perm]])

shm_attach() devuelve un identificador que puede usarse para acceder a la memoria compartida de SystemV, con la llave dada, la primera llamada creará el segmento de memoria compartida con mem_size de tamaño (por defecto: sysvshm.init_mem en el archivo de configuración, o bien de 10000 bytes) y los bits de permiso mas apropiados (por defecto: 0666).

Una segunda llamada a shm_attach() con la misma llave devolvera un id diferente de memoria compartida, pero ambos identificadores acceden a la misma porción de memoria compartida. memsize y perm serán ignorados.

Anterior | Inicio | Siguiente
sem_remove | Subir | shm_detach


shm_detach

(PHP 3>= 3.0.6, PHP 4 )

shm_detach -- Finaliza conexión con un segmento de memoria compartida

Descripción

int shm_detach ( int shm_identifier)

shm_detach() finaliza la conexión con la memoria compartida, especificada por el identificador shm_identifier creado con shm_attach(). Hay que recordar que la memoria compartida aún existe en el sistema Unix, y los datos aún están presentes.

Anterior | Inicio | Siguiente
shm_attach | Subir | shm_get_var


shm_get_var

(PHP 3>= 3.0.6, PHP 4 )

shm_get_var -- Devuelve una variable de la memoria compartida

Descripción

mixed shm_get_var ( int id, int variable_key)

shm_get_var() devuelve la variable con la llave variable_key dada. La variable, queda presente en la memoria compartida.

Anterior | Inicio | Siguiente
shm_detach | Subir | shm_put_var


shm_put_var

(PHP 3>= 3.0.6, PHP 4 )

shm_put_var -- Inserta o actualiza una variable en la memoria compartida

Descripción

int shm_put_var ( int shm_identifier, int variable_key, mixed variable)

Inserta o actualiza una variable con una llave variable_key. Son válidos todos los tipos de variable (doble, entera, cadena, arreglo).

Anterior | Inicio | Siguiente
shm_get_var | Subir | shm_remove_var


shm_remove_var

(PHP 3>= 3.0.6, PHP 4 )

shm_remove_var -- Elimina una variable de la memoria compartida

Descripción

int shm_remove_var ( int id, int variable_key)

Elimina la varible que se corresponde con la llave variable_key dada, liberando la memoria que ocupaba aquella.

Anterior | Inicio | Siguiente
shm_put_var | Subir | shm_remove


shm_remove

(PHP 3>= 3.0.6, PHP 4 )

shm_remove -- Elimina memoria compartida del sistma Unix

Descripción

int shm_remove ( int shm_identifier)

Elimina la memoria compartida de un sistema Unix, Todos los datos serán destruídos.

Anterior | Inicio | Siguiente
shm_remove_var | Subir | SESAM database functions


SESAM database functions

Manual de PHP
Anterior Siguiente

XCIV. SESAM database functions

SESAM/SQL-Server is a mainframe database system, developed by Fujitsu Siemens Computers, Germany. It runs on high-end mainframe servers using the operating system BS2000/OSD.

In numerous productive BS2000 installations, SESAM/SQL-Server has proven ...

  • the ease of use of Java-, Web- and client/server connectivity,

  • the capability to work with an availability of more than 99.99%,

  • the ability to manage tens and even hundreds of thousands of users.

Now there is a PHP3 SESAM interface available which allows database operations via PHP-scripts.

Configuration notes: There is no standalone support for the PHP SESAM interface, it works only as an integrated Apache module. In the Apache PHP module, this SESAM interface is configured using Apache directives.

Tabla 1. SESAM Configuration directives

Directive Meaning
php3_sesam_oml Name of BS2000 PLAM library containing the loadable SESAM driver modules. Required for using SESAM functions.

Example:

php3_sesam_oml $.SYSLNK.SESAM-SQL.030

php3_sesam_configfile Name of SESAM application configuration file. Required for using SESAM functions.

Example:

php3_sesam_configfile $SESAM.SESAM.CONF.AW

It will usually contain a configuration like (see SESAM reference manual):

CNF=B
NAM=K
NOTYPE

php3_sesam_messagecatalog Name of SESAM message catalog file. In most cases, this directive is not neccessary. Only if the SESAM message file is not installed in the system's BS2000 message file table, it can be set with this directive.

Example:

php3_sesam_messagecatalog $.SYSMES.SESAM-SQL.030

In addition to the configuration of the PHP/SESAM interface, you have to configure the SESAM-Database server itself on your mainframe as usual. That means:

  • starting the SESAM database handler (DBH), and

  • connecting the databases with the SESAM database handler

To get a connection between a PHP script and the database handler, the CNF and NAM parameters of the selected SESAM configuration file must match the id of the started database handler.

In case of distributed databases you have to start a SESAM/SQL-DCN agent with the distribution table including the host and database names.

The communication between PHP (running in the POSIX subsystem) and the database handler (running outside the POSIX subsystem) is realized by a special driver module called SQLSCI and SESAM connection modules using common memory. Because of the common memory access, and because PHP is a static part of the web server, database accesses are very fast, as they do not require remote accesses via ODBC, JDBC or UTM.

Only a small stub loader (SESMOD) is linked with PHP, and the SESAM connection modules are pulled in from SESAM's OML PLAM library. In the configuration, you must tell PHP the name of this PLAM library, and the file link to use for the SESAM configuration file (As of SESAM V3.0, SQLSCI is available in the SESAM Tool Library, which is part of the standard distribution).

Because the SQL command quoting for single quotes uses duplicated single quotes (as opposed to a single quote preceded by a backslash, used in some other databases), it is advisable to set the PHP configuration directives php3_magic_quotes_gpc and php3_magic_quotes_sybase to On for all PHP scripts using the SESAM interface.

Runtime considerations: Because of limitations of the BS2000 process model, the driver can be loaded only after the Apache server has forked off its server child processes. This will slightly slow down the initial SESAM request of each child, but subsequent accesses will respond at full speed.

When explicitly defining a Message Catalog for SESAM, that catalog will be loaded each time the driver is loaded (i.e., at the initial SESAM request). The BS2000 operating system prints a message after successful load of the message catalog, which will be sent to Apache's error_log file. BS2000 currently does not allow suppression of this message, it will slowly fill up the log.

Make sure that the SESAM OML PLAM library and SESAM configuration file are readable by the user id running the web server. Otherwise, the server will be unable to load the driver, and will not allow to call any SESAM functions. Also, access to the database must be granted to the user id under which the Apache server is running. Otherwise, connections to the SESAM database handler will fail.

Cursor Types: The result cursors which are allocated for SQL "select type" queries can be either "sequential" or "scrollable". Because of the larger memory overhead needed by "scrollable" cursors, the default is "sequential".

When using "scrollable" cursors, the cursor can be freely positioned on the result set. For each "scrollable" query, there are global default values for the scrolling type (initialized to: SESAM_SEEK_NEXT) and the scrolling offset which can either be set once by sesam_seek_row() or each time when fetching a row using sesam_fetch_row(). When fetching a row using a "scrollable" cursor, the following post-processing is done for the global default values for the scrolling type and scrolling offset:

Tabla 2. Scrolled Cursor Post-Processing

Scroll Type | Action
SESAM_SEEK_NEXT | none
SESAM_SEEK_PRIOR | none
SESAM_SEEK_FIRST | set scroll type to SESAM_SEEK_NEXT
SESAM_SEEK_LAST | set scroll type to SESAM_SEEK_PRIOR
SESAM_SEEK_ABSOLUTE | Auto-Increment internal offset value
SESAM_SEEK_RELATIVE | none. (maintain global default offset value, which allows for, e.g., fetching each 10th row backwards)

Porting note: Because in the PHP world it is natural to start indexes at zero (rather than 1), some adaptions have been made to the SESAM interface: whenever an indexed array is starting with index 1 in the native SESAM interface, the PHP interface uses index 0 as a starting point. E.g., when retrieving columns with sesam_fetch_row(), the first column has the index 0, and the subsequent columns have indexes up to (but not including) the column count ($array["count"]). When porting SESAM applications from other high level languages to PHP, be aware of this changed interface. Where appropriate, the description of the respective php sesam functions include a note that the index is zero based.

Security concerns: When allowing access to the SESAM databases, the web server user should only have as little privileges as possible. For most databases, only read access privilege should be granted. Depending on your usage scenario, add more access rights as you see fit. Never allow full control to any database for any user from the 'net! Restrict access to php scripts which must administer the database by using password control and/or SSL security.

Migration from other SQL databases: No two SQL dialects are ever 100% compatible. When porting SQL applications from other database interfaces to SESAM, some adaption may be required. The following typical differences should be noted:

  • Vendor specific data types

    Some vendor specific data types may have to be replaced by standard SQL data types (e.g., TEXT could be replaced by VARCHAR(max. size)).

  • Keywords as SQL identifiers

    In SESAM (as in standard SQL), such identifiers must be enclosed in double quotes (or renamed).

  • Display length in data types

    SESAM data types have a precision, not a display length. Instead of int(4) (intended use: integers up to '9999'), SESAM requires simply int for an implied size of 31 bits. Also, the only datetime data types available in SESAM are: DATE, TIME(3) and TIMESTAMP(3).

  • SQL types with vendor-specific unsigned, zerofill, or auto_increment attributes

    Unsigned and zerofill are not supported. Auto_increment is automatic (use "INSERT ... VALUES(*, ...)" instead of "... VALUES(0, ...)" to take advantage of SESAM-implied auto-increment.

  • int ... DEFAULT '0000'

    Numeric variables must not be initialized with string constants. Use DEFAULT 0 instead. To initialize variables of the datetime SQL data types, the initialization string must be prefixed with the respective type keyword, as in: CREATE TABLE exmpl ( xtime timestamp(3) DEFAULT TIMESTAMP '1970-01-01 00:00:00.000' NOT NULL );

  • $count = xxxx_num_rows();

    Some databases promise to guess/estimate the number of the rows in a query result, even though the returned value is grossly incorrect. SESAM does not know the number of rows in a query result before actually fetching them. If you REALLY need the count, try SELECT COUNT(...) WHERE ..., it will tell you the number of hits. A second query will (hopefully) return the results.

  • DROP TABLE thename;

    In SESAM, in the DROP TABLE command, the table name must be either followed by the keyword RESTRICT or CASCADE. When specifying RESTRICT, an error is returned if there are dependent objects (e.g., VIEWs), while with CASCADE, dependent objects will be deleted along with the specified table.

Notes on the use of various SQL types: SESAM does not currently support the BLOB type. A future version of SESAM will have support for BLOB.

At the PHP interface, the following type conversions are automatically applied when retrieving SQL fields:

Tabla 3. SQL to PHP Type Conversions

SQL Type | PHP Type
SMALLINT, INTEGER | "integer"
NUMERIC, DECIMAL, FLOAT, REAL, DOUBLE | "double"
DATE, TIME, TIMESTAMP | "string"
VARCHAR, CHARACTER | "string"
When retrieving a complete row, the result is returned as an array. Empty fields are not filled in, so you will have to check for the existence of the individual fields yourself (use isset() or empty() to test for empty fields). That allows more user control over the appearance of empty fields (than in the case of an empty string as the representation of an empty field).

Support of SESAM's "multiple fields" feature: The special "multiple fields" feature of SESAM allows a column to consist of an array of fields. Such a "multiple field" column can be created like this:

Ejemplo 1. Creating a "multiple field" column

CREATE TABLE multi_field_test (
    pkey CHAR(20) PRIMARY KEY,
    multi(3) CHAR(12)
)
and can be filled in using:

Ejemplo 2. Filling a "multiple field" column

INSERT INTO multi_field_test (pkey, multi(2..3) )
    VALUES ('Second', <'first_val', 'second_val'>)
Note that (like in this case) leading empty sub-fields are ignored, and the filled-in values are collapsed, so that in the above example the result will appear as multi(1..2) instead of multi(2..3).

When retrieving a result row, "multiple columns" are accessed like "inlined" additional columns. In the example above, "pkey" will have the index 0, and the three "multi(1..3)" columns will be accessible as indices 1 through 3.

For specific SESAM details, please refer to the SESAM/SQL-Server documentation (english) or the SESAM/SQL-Server documentation (german), both available online, or use the respective manuals.

Tabla de contenidos
sesam_affected_rows -- Get number of rows affected by an immediate query
sesam_commit -- Commit pending updates to the SESAM database
sesam_connect -- Open SESAM database connection
sesam_diagnostic -- Return status information for last SESAM call
sesam_disconnect -- Detach from SESAM connection
sesam_errormsg -- Returns error message of last SESAM call
sesam_execimm -- Execute an "immediate" SQL-statement
sesam_fetch_array -- Fetch one row as an associative array
sesam_fetch_result -- Return all or part of a query result
sesam_fetch_row -- Fetch one row as an array
sesam_field_array -- Return meta information about individual columns in a result
sesam_field_name -- Return one column name of the result set
sesam_free_result -- Releases resources for the query
sesam_num_fields -- Return the number of fields/columns in a result set
sesam_query -- Perform a SESAM SQL query and prepare the result
sesam_rollback -- Discard any pending updates to the SESAM database
sesam_seek_row -- Set scrollable cursor mode for subsequent fetches
sesam_settransaction -- Set SESAM transaction parameters

Anterior | Inicio | Siguiente
shm_remove | Subir | sesam_affected_rows


sesam_affected_rows

(PHP 3 CVS only)

sesam_affected_rows -- Get number of rows affected by an immediate query

Description

int sesam_affected_rows ( string result_id)

result_id is a valid result id returned by sesam_query().

Returns the number of rows affected by a query associated with result_id.

The sesam_affected_rows() function can only return useful values when used in combination with "immediate" SQL statements (updating operations like INSERT, UPDATE and DELETE) because SESAM does not deliver any "affected rows" information for "select type" queries. The number returned is the number of affected rows.

See also: sesam_query() and sesam_execimm()

$result = sesam_execimm ("DELETE FROM PHONE WHERE LASTNAME = '".strtoupper ($name)."'");
if (!$result) {
    ... error ...
}
print sesam_affected_rows ($result).
    " entries with last name ".$name." deleted.\n"

Anterior | Inicio | Siguiente
SESAM database functions | Subir | sesam_commit


sesam_commit

(PHP 3 CVS only)

sesam_commit -- Commit pending updates to the SESAM database

Description

bool sesam_commit ( void )

Returns: TRUE on success, FALSE on errors

sesam_commit() commits any pending updates to the database.

Note that there is no "auto-commit" feature as in other databases, as it could lead to accidental data loss. Uncommitted data at the end of the current script (or when calling sesam_disconnect()) will be discarded by an implied sesam_rollback() call.

See also: sesam_rollback().

Ejemplo 1. Committing an update to the SESAM database

<?php
if (sesam_connect ("mycatalog", "myschema", "otto")) {
    if (!sesam_execimm ("INSERT INTO mytable VALUES (*, 'Small Test', <0, 8, 15>)"))
        die("insert failed");
    if (!sesam_commit())
        die("commit failed");
}
?>

Anterior | Inicio | Siguiente
sesam_affected_rows | Subir | sesam_connect


sesam_connect

(PHP 3 CVS only)

sesam_connect -- Open SESAM database connection

Description

bool sesam_connect ( string catalog, string schema, string user)

Returns TRUE if a connection to the SESAM database was made, or FALSE on error.

sesam_connect() establishes a connection to an SESAM database handler task. The connection is always "persistant" in the sense that only the very first invocation will actually load the driver from the configured SESAM OML PLAM library. Subsequent calls will reuse the driver and will immediately use the given catalog, schema, and user.

When creating a database, the "catalog" name is specified in the SESAM configuration directive //ADD-SQL-DATABASE-CATALOG-LIST ENTRY-1 = *CATALOG(CATALOG-NAME = catalogname,...)

The "schema" references the desired database schema (see SESAM handbook).

The "user" argument references one of the users which are allowed to access this "catalog" / "schema" combination. Note that "user" is completely independent from both the system's user id's and from HTTP user/password protection. It appears in the SESAM configuration only.

See also sesam_disconnect().

Ejemplo 1. Connect to a SESAM database

<?php
if (!sesam_connect ("mycatalog", "myschema", "otto")
    die("Unable to connect to SESAM";
?>

Anterior | Inicio | Siguiente
sesam_commit | Subir | sesam_diagnostic


sesam_diagnostic

(PHP 3 CVS only)

sesam_diagnostic -- Return status information for last SESAM call

Description

array sesam_diagnostic ( void )

Returns an associative array of status and return codes for the last SQL query/statement/command. Elements of the array are:

Tabla 1. Status information returned by sesam_diagnostic()

Element | Contents
$array["sqlstate"] | 5 digit SQL return code (see the SESAM manual for the description of the possible values of SQLSTATE)
$array["rowcount"] | number of affected rows in last update/insert/delete (set after "immediate" statements only)
$array["errmsg"] | "human readable" error message string (set after errors only)
$array["errcol"] | error column number of previous error (0-based; or -1 if undefined. Set after errors only)
$array["errlin"] | error line number of previous error (0-based; or -1 if undefined. Set after errors only)

In the following example, a syntax error (E SEW42AE ILLEGAL CHARACTER) is displayed by including the offending SQL statement and pointing to the error location:

Ejemplo 1. Displaying SESAM error messages with error position

<?php
// Function which prints a formatted error message,
// displaying a pointer to the syntax error in the
// SQL statement
function PrintReturncode ($exec_str) {
    $err = Sesam_Diagnostic();
    $colspan=4; // 4 cols for: sqlstate, errlin, errcol, rowcount
    if ($err["errlin"] == -1)
        --$colspan;
    if ($err["errcol"] == -1)
        --$colspan;
    if ($err["rowcount"] == 0)
        --$colspan;
    echo "<TABLE BORDER>\n";
    echo "<TR><TH COLSPAN=".$colspan."><FONT COLOR=red>ERROR:</FONT> ".
          htmlspecialchars($err["errmsg"])."</TH></TR>\n";
    if ($err["errcol"] >= 0) {
        echo "<TR><TD COLSPAN=".$colspan."><PRE>\n";
        $errstmt = $exec_str."\n";
        for ($lin=0; $errstmt != ""; ++$lin) {
            if ($lin != $err["errlin"]) { // $lin is less or greater than errlin
                if (!($i = strchr ($errstmt, "\n")))
                    $i = "";
                $line = substr ($errstmt, 0, strlen($errstmt)-strlen($i)+1);
                $errstmt = substr($i, 1);
                if ($line != "\n")
                    print htmlspecialchars ($line);
            } else {
                if (! ($i = strchr ($errstmt, "\n")))
                    $i = "";
                $line = substr ($errstmt, 0, strlen ($errstmt)-strlen($i)+1);
                $errstmt = substr($i, 1);
                for ($col=0; $col < $err["errcol"]; ++$col)
                    echo (substr($line, $col, 1) == "\t") ? "\t" : ".";
                echo "<FONT COLOR=RED><BLINK>\\</BLINK></FONT>\n";
                print "<FONT COLOR=\"#880000\">".htmlspecialchars($line)."</FONT>";
                for ($col=0; $col < $err["errcol"]; ++$col)
                    echo (substr ($line, $col, 1) == "\t") ? "\t" : ".";
                echo "<FONT COLOR=RED><BLINK>/</BLINK></FONT>\n";
            }
        }
        echo "</PRE></TD></TR>\n";
    }
    echo "<TR>\n";
    echo " <TD>sqlstate=" . $err["sqlstate"] . "</TD>\n";
    if ($err["errlin"] != -1)
        echo " <TD>errlin=" . $err["errlin"] . "</TD>\n";
    if ($err["errcol"] != -1)
        echo " <TD>errcol=" . $err["errcol"] . "</TD>\n";
    if ($err["rowcount"] != 0)
         echo " <TD>rowcount=" . $err["rowcount"] . "</TD>\n";
    echo "</TR>\n";
    echo "</TABLE>\n";
}

if (!sesam_connect ("mycatalog", "phoneno", "otto"))
  die ("cannot connect");

$stmt = "SELECT * FROM phone\n".
        " WHERE@ LASTNAME='KRAEMER'\n".
        " ORDER BY FIRSTNAME";
if (!($result = sesam_query ($stmt)))
    PrintReturncode ($stmt);
?>

See also: sesam_errormsg() for simple access to the error string only

Anterior | Inicio | Siguiente
sesam_connect | Subir | sesam_disconnect


sesam_disconnect

(PHP 3 CVS only)

sesam_disconnect -- Detach from SESAM connection

Description

bool sesam_disconnect ( void )

Returns: always TRUE.

sesam_disconnect() closes the logical link to a SESAM database (without actually disconnecting and unloading the driver).

Note that this isn't usually necessary, as the open connection is automatically closed at the end of the script's execution. Uncommitted data will be discarded, because an implicit sesam_rollback() is executed.

sesam_disconnect() will not close the persistent link, it will only invalidate the currently defined "catalog", "schema" and "user" triple, so that any sesam function called after sesam_disconnect() will fail.

See also: sesam_connect().

Ejemplo 1. Closing a SESAM connection

if (sesam_connect ("mycatalog", "myschema", "otto")) {
    ... some queries and stuff ...
    sesam_disconnect();
}

Anterior | Inicio | Siguiente
sesam_diagnostic | Subir | sesam_errormsg


sesam_errormsg

(PHP 3 CVS only)

sesam_errormsg -- Returns error message of last SESAM call

Description

string sesam_errormsg ( void )

Returns the SESAM error message associated with the most recent SESAM error.

if (!sesam_execimm ($stmt))
  printf ("%s<br>\n", sesam_errormsg());

See also: sesam_diagnostic() for the full set of SESAM SQL status information

Anterior | Inicio | Siguiente
sesam_disconnect | Subir | sesam_execimm


sesam_execimm

(PHP 3 CVS only)

sesam_execimm -- Execute an "immediate" SQL-statement

Description

string sesam_execimm ( string query)

Returns: A SESAM "result identifier" on success, or FALSE on error.

sesam_execimm() executes an "immediate" statement (i.e., a statement like UPDATE, INSERT or DELETE which returns no result, and has no INPUT or OUTPUT variables). "select type" queries can not be used with sesam_execimm(). Sets the affected_rows value for retrieval by the sesam_affected_rows() function.

Note that sesam_query() can handle both "immediate" and "select-type" queries. Use sesam_execimm() only if you know beforehand what type of statement will be executed. An attempt to use SELECT type queries with sesam_execimm() will return $err["sqlstate"] == "42SBW".

The returned "result identifier" can not be used for retrieving anything but the sesam_affected_rows(); it is only returned for symmetry with the sesam_query() function.

$stmt = "INSERT INTO mytable VALUES ('one', 'two')";
$result = sesam_execimm ($stmt);
$err = sesam_diagnostic();
print ("sqlstate = ".$err["sqlstate"]."\n".
       "Affected rows = ".$err["rowcount"]." == ".
       sesam_affected_rows($result)."\n");

See also: sesam_query() and sesam_affected_rows().

Anterior | Inicio | Siguiente
sesam_errormsg | Subir | sesam_fetch_array


sesam_fetch_array

(PHP 3 CVS only)

sesam_fetch_array -- Fetch one row as an associative array

Description

array sesam_fetch_array ( string result_id [, int whence [, int offset]])

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

sesam_fetch_array() is an alternative version of sesam_fetch_row(). Instead of storing the data in the numeric indices of the result array, it stores the data in associative indices, using the field names as keys.

result_id is a valid result id returned by sesam_query() (select type queries only!).

For the valid values of the optional whenceand offset parameters, see the sesam_fetch_row() function for details.

sesam_fetch_array() fetches one row of data from the result associated with the specified result identifier. The row is returned as an associative array. Each result column is stored with an associative index equal to its column (aka. field) name. The column names are converted to lower case.

Columns without a field name (e.g., results of arithmetic operations) and empty fields are not stored in the array. Also, if two or more columns of the result have the same column names, the later column will take precedence. In this situation, either call sesam_fetch_row() or make an alias for the column.

SELECT TBL1.COL AS FOO, TBL2.COL AS BAR FROM TBL1, TBL2

A special handling allows fetching "multiple field" columns (which would otherwise all have the same column names). For each column of a "multiple field", the index name is constructed by appending the string "(n)" where n is the sub-index of the multiple field column, ranging from 1 to its declared repetition factor. The indices are NOT zero based, in order to match the nomenclature used in the respective query syntax. For a column declared as:

CREATE TABLE ... ( ... MULTI(3) INT )

the associative indices used for the individual "multiple field" columns would be "multi(1)", "multi(2)", and "multi(3)" respectively.

Subsequent calls to sesam_fetch_array() would return the next (or prior, or n'th next/prior, depending on the scroll attributes) row in the result set, or FALSE if there are no more rows.

Ejemplo 1. SESAM fetch array

<?php
$result = sesam_query ("SELECT * FROM phone\n".
                       "  WHERE LASTNAME='".strtoupper($name)."'\n".
                       "  ORDER BY FIRSTNAME", 1);
if (!$result) {
    ... error ...
}
// print the table:
print "<TABLE BORDER>\n";
while (($row = sesam_fetch_array ($result)) && count ($row) > 0) {
    print " <TR>\n";
    print " <TD>".htmlspecialchars ($row["firstname"])."</TD>\n";
    print " <TD>".htmlspecialchars ($row["lastname"])."</TD>\n";
    print " <TD>".htmlspecialchars ($row["phoneno"])."</TD>\n";
    print " </TR>\n";
}
print "</TABLE>\n";
sesam_free_result ($result);
?>

See also: sesam_fetch_row() which returns an indexed array.

Anterior | Inicio | Siguiente
sesam_execimm | Subir | sesam_fetch_result


sesam_fetch_result

(PHP 3 CVS only)

sesam_fetch_result -- Return all or part of a query result

Description

mixed sesam_fetch_result ( string result_id [, int max_rows])

Returns a mixed array with the query result entries, optionally limited to a maximum of max_rows rows. Note that both row and column indexes are zero-based.

Tabla 1. Mixed result set returned by sesam_fetch_result()

Array Element | Contents
int $arr["count"] | number of columns in result set (or zero if this was an "immediate" query)
int $arr["rows"] | number of rows in result set (between zero and max_rows)
bool $arr["truncated"] | TRUE if the number of rows was at least max_rows, FALSE otherwise. Note that even when this is TRUE, the next sesam_fetch_result() call may return zero rows because there are no more result entries.
mixed $arr[col][row] | result data for all the fields at row(row) and column(col), (where the integer index row is between 0 and $arr["rows"]-1, and col is between 0 and $arr["count"]-1). Fields may be empty, so you must check for the existence of a field by using the php isset() function. The type of the returned fields depend on the respective SQL type declared for its column (see SESAM overview for the conversions applied). SESAM "multiple fields" are "inlined" and treated like a sequence of columns.
Note that the amount of memory used up by a large query may be gigantic. Use the max_rows parameter to limit the maximum number of rows returned, unless you are absolutely sure that your result will not use up all available memory.

See also: sesam_fetch_row(), and sesam_field_array() to check for "multiple fields". See the description of the sesam_query() function for a complete example using sesam_fetch_result().

Anterior | Inicio | Siguiente
sesam_fetch_array | Subir | sesam_fetch_row


sesam_fetch_row

(PHP 3 CVS only)

sesam_fetch_row -- Fetch one row as an array

Description

array sesam_fetch_row ( string result_id [, int whence [, int offset]])

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

The number of columns in the result set is returned in an associative array element $array["count"]. Because some of the result columns may be empty, the count() function can not be used on the result row returned by sesam_fetch_row().

result_id is a valid result id returned by sesam_query() (select type queries only!).

whence is an optional parameter for a fetch operation on "scrollable" cursors, which can be set to the following predefined constants:

Tabla 1. Valid values for "whence" parameter

Value | Constant | Meaning
0 | SESAM_SEEK_NEXT | read sequentially (after fetch, the internal default is set to SESAM_SEEK_NEXT)
1 | SESAM_SEEK_PRIOR | read sequentially backwards (after fetch, the internal default is set to SESAM_SEEK_PRIOR)
2 | SESAM_SEEK_FIRST | rewind to first row (after fetch, the default is set to SESAM_SEEK_NEXT)
3 | SESAM_SEEK_LAST | seek to last row (after fetch, the default is set to SESAM_SEEK_PRIOR)
4 | SESAM_SEEK_ABSOLUTE | seek to absolute row number given as offset (Zero-based. After fetch, the internal default is set to SESAM_SEEK_ABSOLUTE, and the internal offset value is auto-incremented)
5 | SESAM_SEEK_RELATIVE | seek relative to current scroll position, where offset can be a positive or negative offset value.
This parameter is only valid for "scrollable" cursors.

When using "scrollable" cursors, the cursor can be freely positioned on the result set. If the whence parameter is omitted, the global default values for the scrolling type (initialized to: SESAM_SEEK_NEXT, and settable by sesam_seek_row()) are used. If whence is supplied, its value replaces the global default.

offset is an optional parameter which is only evaluated (and required) if whence is either SESAM_SEEK_RELATIVE or SESAM_SEEK_ABSOLUTE. This parameter is only valid for "scrollable" cursors.

sesam_fetch_row() fetches one row of data from the result associated with the specified result identifier. The row is returned as an array (indexed by values between 0 and $array["count"]-1). Fields may be empty, so you must check for the existence of a field by using the php isset() function. The type of the returned fields depend on the respective SQL type declared for its column (see SESAM overview for the conversions applied). SESAM "multiple fields" are "inlined" and treated like a sequence of columns.

Subsequent calls to sesam_fetch_row() would return the next (or prior, or n'th next/prior, depending on the scroll attributes) row in the result set, or FALSE if there are no more rows.

Ejemplo 1. SESAM fetch rows

<?php
$result = sesam_query ("SELECT * FROM phone\n".
                       "  WHERE LASTNAME='".strtoupper($name)."'\n".
                       "  ORDER BY FIRSTNAME", 1);
if (!$result) {
    ... error ...
}
// print the table in backward order
print "<TABLE BORDER>\n";
$row = sesam_fetch_row ($result, SESAM_SEEK_LAST);
while (is_array ($row)) {
    print " <TR>\n";
    for ($col = 0; $col < $row["count"]; ++$col) {
        print "  <TD>".htmlspecialchars ($row[$col])."</TD>\n";
    }
    print " </TR>\n";
    // use implied SESAM_SEEK_PRIOR
    $row = sesam_fetch_row ($result);
}
print "</TABLE>\n";
sesam_free_result ($result);
?>

See also: sesam_fetch_array() which returns an associative array, and sesam_fetch_result() which returns many rows per invocation.

Anterior | Inicio | Siguiente
sesam_fetch_result | Subir | sesam_field_array


sesam_field_array

(PHP 3 CVS only)

sesam_field_array -- Return meta information about individual columns in a result

Description

array sesam_field_array ( string result_id)

result_id is a valid result id returned by sesam_query().

Returns a mixed associative/indexed array with meta information (column name, type, precision, ...) about individual columns of the result after the query associated with result_id.

Tabla 1. Mixed result set returned by sesam_field_array()

Array Element | Contents
int $arr["count"] | Total number of columns in result set (or zero if this was an "immediate" query). SESAM "multiple fields" are "inlined" and treated like the respective number of columns.
string $arr[col]["name"] | column name for column(col), where col is between 0 and $arr["count"]-1. The returned value can be the empty string (for dynamically computed columns). SESAM "multiple fields" are "inlined" and treated like the respective number of columns, each with the same column name.
string $arr[col]["count"] | The "count" attribute describes the repetition factor when the column has been declared as a "multiple field". Usually, the "count" attribute is 1. The first column of a "multiple field" column however contains the number of repetitions (the second and following column of the "multiple field" contain a "count" attribute of 1). This can be used to detect "multiple fields" in the result set. See the example shown in the sesam_query() description for a sample use of the "count" attribute.
string $arr[col]["type"] php variable type of the data for column(col), where col is between 0 and $arr["count"]-1. The returned value can be one of

  • "integer"

  • "double"

  • "string"

depending on the SQL type of the result. SESAM "multiple fields" are "inlined" and treated like the respective number of columns, each with the same php type.
string $arr[col]["sqltype"] SQL variable type of the column data for column(col), where col is between 0 and $arr["count"]-1. The returned value can be one of

  • "CHARACTER"

  • "VARCHAR"

  • "NUMERIC"

  • "DECIMAL"

  • "INTEGER"

  • "SMALLINT"

  • "FLOAT"

  • "REAL"

  • "DOUBLE"

  • "DATE"

  • "TIME"

  • "TIMESTAMP"

describing the SQL type of the result. SESAM "multiple fields" are "inlined" and treated like the respective number of columns, each with the same SQL type.
string $arr[col]["length"] | The SQL "length" attribute of the SQL variable in column(col), where col is between 0 and $arr["count"]-1. The "length" attribute is used with "CHARACTER" and "VARCHAR" SQL types to specify the (maximum) length of the string variable. SESAM "multiple fields" are "inlined" and treated like the respective number of columns, each with the same length attribute.
string $arr[col]["precision"] | The "precision" attribute of the SQL variable in column(col), where col is between 0 and $arr["count"]-1. The "precision" attribute is used with numeric and time data types. SESAM "multiple fields" are "inlined" and treated like the respective number of columns, each with the same precision attribute.
string $arr[col]["scale"] | The "scale" attribute of the SQL variable in column(col), where col is between 0 and $arr["count"]-1. The "scale" attribute is used with numeric data types. SESAM "multiple fields" are "inlined" and treated like the respective number of columns, each with the same scale attribute.

See the sesam_query() function for an example of the sesam_field_array() use.

Anterior | Inicio | Siguiente
sesam_fetch_row | Subir | sesam_field_name


sesam_field_name

(PHP 3 CVS only)

sesam_field_name -- Return one column name of the result set

Description

int sesam_field_name ( string result_id, int index)

Returns the name of a field (i.e., the column name) in the result set, or FALSE on error.

For "immediate" queries, or for dynamic columns, an empty string is returned.

Nota: The column index is zero-based, not one-based as in SESAM.

See also: sesam_field_array(). It provides an easier interface to access the column names and types, and allows for detection of "multiple fields".

Anterior | Inicio | Siguiente
sesam_field_array | Subir | sesam_free_result


sesam_free_result

(PHP 3 CVS only)

sesam_free_result -- Releases resources for the query

Description

int sesam_free_result ( string result_id)

Releases resources for the query associated with result_id. Returns FALSE on error.

Anterior | Inicio | Siguiente
sesam_field_name | Subir | sesam_num_fields


sesam_num_fields

(PHP 3 CVS only)

sesam_num_fields -- Return the number of fields/columns in a result set

Description

int sesam_num_fields ( string result_id)

After calling sesam_query() with a "select type" query, this function gives you the number of columns in the result. Returns an integer describing the total number of columns (aka. fields) in the current result_id result set or FALSE on error.

For "immediate" statements, the value zero is returned. The SESAM "multiple field" columns count as their respective dimension, i.e., a three-column "multiple field" counts as three columns.

See also: sesam_query() and sesam_field_array() for a way to distinguish between "multiple field" columns and regular columns.

Anterior | Inicio | Siguiente
sesam_free_result | Subir | sesam_query


sesam_query

(PHP 3 CVS only)

sesam_query -- Perform a SESAM SQL query and prepare the result

Description

string sesam_query ( string query [, bool scrollable])

Returns: A SESAM "result identifier" on success, or FALSE on error.

A "result_id" resource is used by other functions to retrieve the query results.

sesam_query() sends a query to the currently active database on the server. It can execute both "immediate" SQL statements and "select type" queries. If an "immediate" statement is executed, then no cursor is allocated, and any subsequent sesam_fetch_row() or sesam_fetch_result() call will return an empty result (zero columns, indicating end-of-result). For "select type" statements, a result descriptor and a (scrollable or sequential, depending on the optional boolean scrollable parameter) cursor will be allocated. If scrollable is omitted, the cursor will be sequential.

When using "scrollable" cursors, the cursor can be freely positioned on the result set. For each "scrollable" query, there are global default values for the scrolling type (initialized to: SESAM_SEEK_NEXT) and the scrolling offset which can either be set once by sesam_seek_row() or each time when fetching a row using sesam_fetch_row().

For "immediate" statements, the number of affected rows is saved for retrieval by the sesam_affected_rows() function.

See also: sesam_fetch_row() and sesam_fetch_result().

Ejemplo 1. Show all rows of the "phone" table as a html table

<?php
if (!sesam_connect ("phonedb", "demo", "otto"))
    die ("cannot connect");
$result = sesam_query ("select * from phone");
if (!$result) {
    $err = sesam_diagnostic();
    die ($err["errmsg"]);
}
echo "<TABLE BORDER>\n";
// Add title header with column names above the result:
if ($cols = sesam_field_array ($result)) {
    echo " <TR><TH COLSPAN=".$cols["count"].">Result:</TH></TR>\n";
    echo " <TR>\n";
    for ($col = 0; $col < $cols["count"]; ++$col) {
        $colattr = $cols[$col];
        /* Span the table head over SESAM's "Multiple Fields": */
        if ($colattr["count"] > 1) {
            echo "  <TH COLSPAN=".$colattr["count"].">".$colattr["name"].
                "(1..".$colattr["count"].")</TH>\n";
            $col += $colattr["count"] - 1;
        } else
            echo "  <TH>" . $colattr["name"] . "</TH>\n";
    }
    echo " </TR>\n";
}

do {
    // Fetch the result in chunks of 100 rows max.
    $ok = sesam_fetch_result ($result, 100);
    for ($row=0; $row < $ok["rows"]; ++$row) {
        echo " <TR>\n";
        for ($col = 0; $col < $ok["cols"]; ++$col) {
            if (isset($ok[$col][$row]))
                echo "  <TD>" . $ok[$col][$row] . "</TD>\n";
            } else {
                echo "  <TD>-empty-</TD>\n";
            }
        }
        echo " </TR>\n";
    }
}
while ($ok["truncated"]) { // while there may be more data
    echo "</TABLE>\n";
}
// free result id
sesam_free_result($result);
?>

Anterior | Inicio | Siguiente
sesam_num_fields | Subir | sesam_rollback


sesam_rollback

(PHP 3 CVS only)

sesam_rollback -- Discard any pending updates to the SESAM database

Description

bool sesam_rollback ( void )

Returns: TRUE on success, FALSE on errors

sesam_rollback() discards any pending updates to the database. Also affected are result cursors and result descriptors.

At the end of each script, and as part of the sesam_disconnect() function, an implied sesam_rollback() is executed, discarding any pending changes to the database.

See also: sesam_commit().

Ejemplo 1. Discarding an update to the SESAM database

<?php
if (sesam_connect ("mycatalog", "myschema", "otto")) {
    if (sesam_execimm ("INSERT INTO mytable VALUES (*, 'Small Test', <0, 8, 15>)")
        && sesam_execimm ("INSERT INTO othertable VALUES (*, 'Another Test', 1)"))
        sesam_commit();
    else
        sesam_rollback();
}
?>

Anterior | Inicio | Siguiente
sesam_query | Subir | sesam_seek_row


sesam_seek_row

(PHP 3 CVS only)

sesam_seek_row -- Set scrollable cursor mode for subsequent fetches

Description

bool sesam_seek_row ( string result_id, int whence [, int offset])

result_id is a valid result id (select type queries only, and only if a "scrollable" cursor was requested when calling sesam_query()).

whence sets the global default value for the scrolling type, it specifies the scroll type to use in subsequent fetch operations on "scrollable" cursors, which can be set to the following predefined constants:

Tabla 1. Valid values for "whence" parameter

Value | Constant | Meaning
0 | SESAM_SEEK_NEXT | read sequentially
1 | SESAM_SEEK_PRIOR | read sequentially backwards
2 | SESAM_SEEK_FIRST | fetch first row (after fetch, the default is set to SESAM_SEEK_NEXT)
3 | SESAM_SEEK_LAST | fetch last row (after fetch, the default is set to SESAM_SEEK_PRIOR)
4 | SESAM_SEEK_ABSOLUTE | fetch absolute row number given as offset (Zero-based. After fetch, the default is set to SESAM_SEEK_ABSOLUTE, and the offset value is auto-incremented)
5 | SESAM_SEEK_RELATIVE | fetch relative to current scroll position, where offset can be a positive or negative offset value (this also sets the default "offset" value for subsequent fetches).

offset is an optional parameter which is only evaluated (and required) if whence is either SESAM_SEEK_RELATIVE or SESAM_SEEK_ABSOLUTE.

Anterior | Inicio | Siguiente
sesam_rollback | Subir | sesam_settransaction


sesam_settransaction

(PHP 3 CVS only)

sesam_settransaction -- Set SESAM transaction parameters

Description

bool sesam_settransaction ( int isolation_level, int read_only)

Returns: TRUE if the values are valid, and the settransaction() operation was successful, FALSE otherwise.

sesam_settransaction() overrides the default values for the "isolation level" and "read-only" transaction parameters (which are set in the SESAM configuration file), in order to optimize subsequent queries and guarantee database consistency. The overridden values are used for the next transaction only.

sesam_settransaction() can only be called before starting a transaction, not after the transaction has been started already.

To simplify the use in php scripts, the following constants have been predefined in php (see SESAM handbook for detailed explanation of the semantics):

Tabla 1. Valid values for "Isolation_Level" parameter

Value | Constant | Meaning
1 | SESAM_TXISOL_READ_UNCOMMITTED | Read Uncommitted
2 | SESAM_TXISOL_READ_COMMITTED | Read Committed
3 | SESAM_TXISOL_REPEATABLE_READ | Repeatable Read
4 | SESAM_TXISOL_SERIALIZABLE | Serializable

Tabla 2. Valid values for "Read_Only" parameter

Value | Constant | Meaning
0 | SESAM_TXREAD_READWRITE | Read/Write
1 | SESAM_TXREAD_READONLY | Read-Only

The values set by sesam_settransaction() will override the default setting specified in the SESAM configuration file.

Ejemplo 1. Setting SESAM transaction parameters

<?php
sesam_settransaction (SESAM_TXISOL_REPEATABLE_READ,
                     SESAM_TXREAD_READONLY);
?>

Anterior | Inicio | Siguiente
sesam_seek_row | Subir | Funciones para el manejo de sesiones


Funciones para el manejo de sesiones

Manual de PHP
Anterior Siguiente

XCV. Funciones para el manejo de sesiones

El apoyo que PHP proporciona para las sesiones consiste en una forma de conservar ciertos datos a lo largo de los subsiguientes accesos, lo cual le permite construir aplicaciones más personalizadas e incrementar el atractivo de su sitio web.

Si ya está familiarizado con el tratamiento de sesiones de PHPLIB, notará que algunos conceptos son similares al soporte de las sesiones de PHP.

A cada visitante que accede a su web se le asigna un identificador único, llamado "session id" (identificador de sesión). Éste se almacena en una cookie por parte del usuario o se propaga en la URL.

El soporte de las sesiones le permite registrar un número arbitrario de variables que se conservarán en las siguientes peticiones. Cuando un visitante acceda a su web, PHP comprobará automáticamente (si session.auto_start está puesto a 1) o cuando usted lo especifique (de forma explícita mendiante session_start() o implícita a través de session_register()) si se le ha enviado un "session id" específico con su petición, en cuyo caso se recrean las variables que se habían guardado anteriormente.

Todas las variables registradas son almacenadas tras finalizar la petición. Las variables que están indefinidas se marcan como no definidas. En los subsiguientes accesos, no estarán definidas por el módulo de sesiones a menos que el usuario las defina más tarde.

Las opciones de configuración track_vars y register_globals influyen notablemente en la forma en que las variables de la sesión se almacenan y restauran.

Nota: A partir de PHP 4.0.3, track_vars siempre está activado.

Nota: A partir de PHP 4.1.0, $_SESSION está disponible como variable global, al igual que $_POST, $_GET, $_REQUEST y demás. Al contrario que $HTTP_SESSION_VARS, $_SESSION siempre es global. Por tanto, no se debe usar global para $_SESSION.

Si track_vars está activado y register_globals está desactivado, sólo los miembros del vector asociativo global $HTTP_SESSION_VARS pueden ser registrados como variables de la sesión. Las variables restauradas de la sesión sólo estarán disponibles en el vector $HTTP_SESSION_VARS.

Ejemplo 1. Registrar una variable con track_vars activado

<?php
session_start();
if (isset($HTTP_SESSION_VARS['count'])) {
   $HTTP_SESSION_VARS['count']++;
}
else {
   $HTTP_SESSION_VARS['count'] = 0;
}
?>

Se recomienda usar $_SESSION (o $HTTP_SESSION_VARS con PHP 4.0.6 o inferior) por seguridad y para hacer el código más legible. Con $_SESSION o $HTTP_SESSION_VARS, no es necesario usar las funciones session_register() / session_unregister() / session_is_registered(). Los usuarios pueden acceder a una variable de la sesión como si se tratase de una variable normal.

Ejemplo 2. Registrar una variable con $_SESSION.

<?php
session_start();
// Use $HTTP_SESSION_VARS con PHP 4.0.6 o inferior
if (!isset($_SESSION['count'])) {
    $_SESSION['count'] = 0;
} else {
    $_SESSION['count']++;
}
?>

Ejemplo 3. Borrar una variable con $_SESSION.

<?php
session_start();
// Use $HTTP_SESSION_VARS con PHP 4.0.6 o inferior
unset($_SESSION['count']);
?>

Si register_globals está activado, todas las variables globales pueden ser registradas como variables de la sesión, y las variables de la sesión serán restauradas a sus correspondientes variables globales. Como PHP debe saber qué variables globles están registradas como variables de la sesión, los usuarios deben registrar las variables con la función session_register(), mientras que con $HTTP_SESSION_VARS/$_SESSION no es necesario usar session_register().

Atención

Si está usando $HTTP_SESSION_VARS/$_SESSION y desactiva register_globals, no use session_register(), session_is_registered() ni session_unregister().

Si activa register_globals, session_unregister() debería ser usado a partir de que las variables de la sesión sean registradas como variables globales cuando los datos de la sesión se guardan. Se recomienda desactivar register_globals por motivos de seguridad y rendimiendo.

Ejemplo 4. Registrar una variable con register_globals activado

<?php
if (!session_is_registered('count')) {
    session_register("count");
    $count = 0;
}
else {
    $count++;
}
?>

Si track_vars y register_globals están activados, las variables globales y las entradas de $HTTP_SESSION_VARS/$_SESSION harán referencia al mismo valor para variables ya registradas.

Si el usuario utiliza session_register() para registrar una variable, el vector $HTTP_SESSION_VARS/$_SESSION no contendrá esa variable hasta que se cargue de los datos de la sesión. (p.ej. hasta la próxima petición).

Hay dos formas de propagar un "session id":

  • Cookies

  • Parámetro en la URL

El módulo de sesiones admite ambas formas. Las Cookies son la mejor opción, pero como no son fiables (los clientes no están obligados a aceptarlas), no podemos confiar en ellas. El segundo método incrusta el "session id" directamente en las URLs.

PHP es capaz de hacerlo de forma transparente al usuario cuando se compila con --enable-trans-sid. Si activa esta opción, las URIs relativas serán modificadas de forma que contengan el session id automáticamente. Alternativamente, puede usar la constante SID que está definida, si el cliente no envía la cookie adecuada. El SID puede tener la forma de nombre_de_sesion=session_id o ser una cadena vacía.

El ejemplo siguiente demuestra cómo registrar una variable, y cómo colocar correctamente un enlace a otra página usando la constante SID.

Ejemplo 5. Contar el número de impresiones de un usuario

<?php
if (!session_is_registered('count')) {
    session_register('count');
    $count = 1;
}
else {
    $count++;
}
?>

Hola, visitante. Has visto esta p&aacute;gina <?php echo $count; ?> veces.

<?php
# el <?php echo SID?> (Se puede usar <?=SID?> si short tag est&aacute; activado)
# es necesario para conservar el session id
# en caso de que el usuario haya desactivado las cookies
?>

Para continuar, haga click <A HREF="nextpage.php?<?php echo SID?>">aqu&iacute;</A>.

El <?=SID?> no es necesario si se ha usado --enable-trans-sid al compilar PHP.

Nota: Se asume que las URLs no relativas apuntan a sitios web externos, y por tanto no se añade el SID, ya que pasar el SID a un servidor diferente podría ocasionar un agujero de seguridad.

Para implementar el almacenamiento en bases de datos o en otro tipo de almacenamiento, necesitará usar session_set_save_handler()() para crear una colección de funciones de almacenamiento a nivel de usuario.

El sistema de control de sesiones soporta varias opciones de configuración que puede colocar en su archivo php.ini. Les daremos un pequeño repaso.

  • session.save_handler define el nombre del controlador que se usa para almacenar y recuperar los datos asociados a la sesión. Su valor por defecto es files.

  • session.save_path define el argumento que se pasa al controlador de almacenamiento. Si elige el controlador de archivos por defecto, esta es la ruta donde los archivos se crean. Por defecto es /tmp. Si la profundidad de la ruta de session.save_path es mayor que 2, no se llevará a cabo la recolección de basura.

    Aviso

    Si lo deja apuntando a un directorio con permiso de lectura por el resto de usuarios, como /tmp (la opción por defecto), los demás usuarios del servidor pueden conseguir robar las sesiones obteniéndolas de la lista de archivos de ese directorio.

  • session.name especifica el nombre de la sesión que se usa como nombre de la cookie. Sólo debería contener caracteres alfanuméricos. Por defecto vale PHPSESSID.

  • session.auto_start especifica si el módulo de las sesión inicia una sesión automáticamente al comenzar la petición. Por defecto está 0 (desactivado).

  • session.cookie_lifetime especifica la duración de la cookie en segundos que se manda al navegador. El valor 0 significa "hasta que se cierra el navegador", y es el que se encuentra por defecto.

  • session.serialize_handler define el nombre del controlador que se utiliza para guardar y restaurar los datos. Actualmente se soportan un formato interno de PHP (cuyo nombre es php) y WDDX (cuyo nombre es wddx). WDDX sólo está disponible si PHP está compilado con Soporte para WDDX. Por defecto es php.

  • session.gc_probability especifica la probabilidad de que se inicie la rutina gc (garbage collection - recoleción de basura) en cada petición en porcentaje. Por defecto es 1.

  • session.gc_maxlifetime especifica el número de segundos tras los cuales los datos se considerarán como 'basura' y serán eliminados.

  • session.referer_check contiene la subcadena que usted quiera que se compruebe en cada "HTTP Referer" (N.T.: Página desde donde proviene el enlace a la página actual). Si el "Referer" fue enviado por el cliente y la subcadena no se ha encontrado, el session id incrustado será marcado como inválido. Por defecto es una cadena vacía.

  • session.entropy_file indica la ruta a un recurso externo (un archivo) que se usará como fuente adicional de entropía en el proceso de creación de session id's. Por ejemplo /dev/random o /dev/urandom, que están disponibles en muchos sistemas Unix.

  • session.entropy_length especifica el número de bytes que serán leidos del archivo indicado más arriba. Por defecto es 0 (desactivado).

  • session.use_cookies indica si el módulo puede usar cookies para guardar el session id en el lado del cliente. Por defecto está a 1 (activado).

  • session.cookie_path especifica la ruta a colocar en session_cookie. Por defecto es /.

  • session.cookie_domain especifica el dominio a establecer en session_cookie. Por defecto no se especifica ninguno en ningún caso.

  • session.cache_limiter especifica el método de control del caché a usar en las páginas de la sesión (none/nocache/private/private_no_expire/public). Por defecto es nocache (no guardar las páginas en el caché).

  • session.cache_expire especifica el tiempo-de-vida de las páginas de la sesión que se encuentran en el caché en minutos. No tiene efecto para el limitador nocache. Por defecto vale 180.

  • session.use_trans_sid indica si la inclusión del sid transparente está activada o no, si fue activada compilando con --enable-trans-sid. Por defecto está a 1 (activado).

  • url_rewriter.tags especifica qué etiquetas html serán reescritas para incluir el session id si la inclusión del sid transparente está activada. Las etiquetas por defecto son a=href,area=href,frame=src,input=src,form=fakeentry

Nota: El manejo de sesiones fue añadido en PHP 4.0.

Tabla de contenidos
session_cache_expire -- Devuelve la caducidad actual del caché
session_cache_limiter -- Lee y/o cambia el limitador del caché actual
session_decode -- Decodifica los datos de una sesión a partir de una cadena
session_destroy -- Destruye todos los datos guardados en una sesión
session_encode -- Codifica los datos de la sesión actual en una cadena
session_get_cookie_params -- Obtiene los parámetros de la cookie de la sesión
session_id -- Lee y/o cambia el session id actual
session_is_registered -- Comprueba si una variable está registrada en la sesión
session_module_name -- Lee y/o cambia el módulo de la sesión actual
session_name -- Lee y/o cambia el nombre de la sesión actual
session_regenerate_id -- Actualizar la id de sesión actual con una recién generada
session_register -- Registrar una o más variables globales con la sesión actual
session_save_path -- Lee y/o cambia la ruta donde se guardan los datos de la sesión actual
session_set_cookie_params -- Cambia los parámetros de la cookie de la sesión
session_set_save_handler -- Establece unas funciones para el almacenamiento de los datos de la sesión a nivel de usuario
session_start -- Inicializar los datos de una sesión
session_unregister -- Desregistrar una variable de la sesión actual
session_unset -- Elimina todas las variables de la sesión
session_write_close -- Escribe los datos de la sesión y la finaliza

Anterior | Inicio | Siguiente
sesam_settransaction | Subir | session_cache_expire


session_cache_expire

(PHP 4 >= 4.2.0)

session_cache_expire -- Devuelve la caducidad actual del caché

Descripción

int session_cache_expire ( [int nueva_caducidad_cache])

session_cache_expire() devuelve la caducidad actual del caché. Si se proporciona nueva_caducidad_cache, se reemplazará la caducidad actual con nueva_caducidad_cache.

Anterior | Inicio | Siguiente
Funciones para el manejo de sesiones | Subir | session_cache_limiter


session_cache_limiter

(PHP 4 >= 4.0.3)

session_cache_limiter -- Lee y/o cambia el limitador del caché actual

Descripción

string session_cache_limiter ( [string limitador_del_cache])

session_cache_limiter() devuelve el nombre del limitador de caché actual. Si se especifica limitador_del_cache, el nombre del limitador de caché actual se cambia al nuevo valor.

El limitador de caché controla las cabeceras HTTP de control del caché enviadas al cliente. Estas cabeceras determinan las reglas por las que el contenido de la página puede ser guardado en el caché local del cliente. Cambiando el limitador de caché a nocache, por ejemplo, impedirá cualquier tipo de almacenamiento en el caché por parte del cliente. Un valor de public, en cambio, permitiría el almacenamiento en el caché. Tambié se puede cambiar a private, que es un poco más restrictivo que el public.

En el modo private, la cabecera Expire (caducidad) enviada al cliente puede confundir a algunos navegadores incluyendo Mozilla. Puede evitar este problema con el modo private_no_expire. La cabecera Expire nunca se envía al cliente en este modo.

Nota: private_no_expire fue añadida en PHP 4.2.0dev.

Al comenzar la ejecución del script, el limitador de caché se reestablece al valor por defecto guardado en session.cache_limiter. De este modo, es necesario llamar a session_cache_limiter() en cada petición (y antes de llamar a session_start()).

Ejemplo 1. Ejemplos con session_cache_limiter()

<?php

# cambia el limitador del cach&eacute; a 'private'

session_cache_limiter('private');
$cache_limiter = session_cache_limiter();

echo "El limitador de cach&eacute; est&aacute; puesto ahora en $cache_limiter<p>";
?>

Anterior | Inicio | Siguiente
session_cache_expire | Subir | session_decode


session_decode

(PHP 4 )

session_decode -- Decodifica los datos de una sesión a partir de una cadena

Descripción

bool session_decode ( string datos)

session_decode() decodifica los datos de una sesión que se encuentran en datos, creando las variables guardadas en la sesión.

Anterior | Inicio | Siguiente
session_cache_limiter | Subir | session_destroy


session_destroy

(PHP 4 )

session_destroy -- Destruye todos los datos guardados en una sesión

Descripción

bool session_destroy ( void )

session_destroy() destruye todos los datos asociados con la sesión actual. No destruye ninguna de las variables globales asociadas a la sesión ni la cookie.

Esta función devuelve TRUE si se ha destruido la sesión correctamente y FALSE si ha habido algún problema al intentarlo.

Ejemplo 1. Destrucción de una sesión

<?php

// Inicializa de la sesi&oacute;n.
// Si est&aacute; usando session_name("algo"), &iexcl;no lo olvide ahora!
session_start();
// Destruye todas las variables de la sesi&oacute;n
session_unset();
// Finalmente, destruye la sesi&oacute;n
session_destroy();

?>

Ejemplo 2. Destrucción de una sesión con $_SESSION

<?php

// Inicializa la sesi&oacute;n.
// Si est&aacute; usando session_name("algo"), &iexcl;no lo olvide ahora!
session_start();
// Destruye todas las variables de la sesi&oacute;n
$_SESSION = array();
// Finalmente, destruye la sesi&oacute;n
session_destroy();

?>

Anterior | Inicio | Siguiente
session_decode | Subir | session_encode


session_encode

(PHP 4 )

session_encode -- Codifica los datos de la sesión actual en una cadena

Descripción

string session_encode ( void )

session_encode() devuelve una cadena con el contenido de la sesión actual en su interior.

Anterior | Inicio | Siguiente
session_destroy | Subir | session_get_cookie_params


session_get_cookie_params

(PHP 4 )

session_get_cookie_params -- Obtiene los parámetros de la cookie de la sesión

Descripción

array session_get_cookie_params ( void )

La función session_get_cookie_params() devuelve un vector con información sobre la cookie de la sesión actual, conteniendo los siguientes elementos:

  • "lifetime" - La duración de la cookie.

  • "path" - La ruta donde se guarda la información.

  • "domain" - El dominio de la cookie.

  • "secure" - La cookie debe ser enviada sólo bajo conexiones seguras. (Este elemento fue añadido en PHP 4.0.4.)

Anterior | Inicio | Siguiente
session_encode | Subir | session_id


session_id

(PHP 4 )

session_id -- Lee y/o cambia el session id actual

Descripción

string session_id ( [string id])

session_id() devuelve el session id de la sesión actual. Si se especifica un id, reemplazará el session id actual.

También se puede utilizar la constante SID para recuperar el nombre y el session id de la sesión actual como una cadena adecuada para añadir a las URLs.

Anterior | Inicio | Siguiente
session_get_cookie_params | Subir | session_is_registered


session_is_registered

(PHP 4 )

session_is_registered -- Comprueba si una variable está registrada en la sesión

Descripción

bool session_is_registered ( string nombre)

session_is_registered() devuelve TRUE si hay una variable registrada en la sesión actual cuyo nombre es nombre.

Nota: Si utiliza $_SESSION (o $HTTP_SESSION_VARS con PHP 4.0.6 o inferior), use isset() para comprobar si una variable está registrada en $_SESSION.

Atención

Si utiliza $HTTP_SESSION_VARS/$_SESSION, no use session_register(), session_is_registered() ni session_unregister().

Anterior | Inicio | Siguiente
session_id | Subir | session_module_name


session_module_name

(PHP 4 )

session_module_name -- Lee y/o cambia el módulo de la sesión actual

Descripción

string session_module_name ( [string módulo])

session_module_name() devuelve el nombre del módulo de la sesión actual. Si se especifica módulo, se usará ese módulo en su lugar.

Anterior | Inicio | Siguiente
session_is_registered | Subir | session_name


session_name

(PHP 4 )

session_name -- Lee y/o cambia el nombre de la sesión actual

Descripción

string session_name ( [string nombre])

session_name() devuelve el nombre de la sesión actual. Si se especifica un nombre, el nombre de de la sesión actual se cambia a este valor.

El nombre de la sesión hace referencia al session id utilizado en las cookies y en las URLs. Debería contener únicamente caracteres alfanuméricos; también debería ser corto y descriptivo (p.ej. para usuarios con los avisos de las cookies activados). El nombre de la sesión se restaura al valor guardado por defecto en session.name al comenzar la petición. Así, pues, es necesario llamar a session_name() en cada petición (y antes de llamar a session_start() o a session_register()).

Ejemplo 1. Ejemplos de session_name()

<?php

// Cambiar el nombre de la sesi&oacute;n a WebsiteID

$nombre_anterior = session_name("WebsiteID");

echo "El anterior nombre de la sesi&oacute;n era $nombre_anterior<p>";
?>

Anterior | Inicio | Siguiente
session_module_name | Subir | session_regenerate_id


session_regenerate_id

(PHP 4 >= 4.3.2)

session_regenerate_id -- Actualizar la id de sesión actual con una recién generada

Descripción

bool session_regenerate_id ( void )

session_regenerate_id() reemplazará la id de sesión actual con una nueva, y conservará la información de sesión actual.

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Ejemplo 1. Un ejemplo de session_regenerate_id()

<?php
session_start();

$id_sesion_antigua = session_id();

session_regenerate_id();

$id_sesion_nueva = session_id();

print "Sesi&oacute;n Vieja: $id_sesion_antigua<br>";
print "Sesi&oacute;n Nueva: $id_sesion_nueva<br>";

print_r($_SESSION);
?>

Nota: A partir de PHP 4.3.3, si están habilitadas las cookies de sesión, el uso de session_regenerate_id() también enviará una nueva cookie de sesión con la nueva id de sesión.

Vea también
session_id(),
session_start(), y
session_name().

Anterior | Inicio | Siguiente
session_name | Subir | session_register


session_register

(PHP 4 )

session_register -- Registrar una o más variables globales con la sesión actual

Descripción

bool session_register ( mixed nombre [, mixed ...])

session_register() acepta un número variable de argumentos, cualquiera de los cuales puede ser o una cadena que contiene el nombre de una variable, o una matriz que consista de nombres de variables u otras matrices. Para cada nombre, session_register() registra la variable global con ese nombre en la sesión actual.

Atención

Si desea que su script funcione independientemente de register_globals, necesita usar en su lugar la matriz $_SESSION, dado que las entradas de $_SESSION son registradas automáticamente. Si su script usa session_register(), no funcionará en entornos en donde la directiva PHP register_globals esté deshabilitada.

register_globals: Nota importante: Desde PHP 4.2.0 el valor por defecto de la directiva register_globals es off. La comunidad PHP anima a todos a no confiar en esta directiva y usar en su lugar superglobals.

Atención

Esto registra una variable global. Si desea registrar una variable de sesión desde el interior de una función, necesita asegurarse de hacerla global usando la palabra clave global o la matriz $GLOBALS[], o usar las matrices de sesión especiales, como se anota a continuación.

Atención

Si está usando $_SESSION (o $HTTP_SESSION_VARS), no use session_register(), session_is_registered(), ni session_unregister().

Esta función devuelve TRUE cuando todas las variables son registradas satisfactoriamente en la sesión.

Si session_start() no fue llamada antes de que ésta función sea llamada, se realizará un llamado implícito a session_start() sin parámetro alguno. $_SESSION no imita este comportamiento y requiere session_start() antes de su uso.

Puede crear también una variable de sesión, simplemente definiendo el miembro apropiado de $_SESSION o la matriz $HTTP_SESSION_VARS (PHP < 4.1.0).

<?php
// El uso de session_register() es considerado obsoleto
$barney = "Un dinosaurio grande y violeta.";
session_register("barney");

// Se prefiere el uso de $_SESSION, a partir de PHP 4.1.0
$_SESSION["zim"] = "Un invasor de otro planeta.";

// El modo antiguo era usar $HTTP_SESSION_VARS
$HTTP_SESSION_VARS["bob_esponja"] = "&Eacute;l tiene pantalones cuadrados.";
?>

Nota: Actualmente es imposible registrar variables de recurso en una sesión. Por ejemplo, no puede crear una conexión a una base de datos y almacenar la id de conexión como una variable de sesión y esperar que la conexión aun sea válida la próxima vez que la sesión sea restaurada. Las funciones PHP que devuelven un recurso se identifican por tener un tipo de retorno de resource en su definicón de función. Una lista de funciones que devuelven recursos está disponible en el apéndice tipos de recurso.

Si $_SESSION (o $HTTP_SESSION_VARS para PHP 4.0.6 o versiones anteriores) es usado, asigne valores a $_SESSION. Por ejemplo: $_SESSION['var'] = 'ABC';

Vea también session_is_registered(), session_unregister(), y $_SESSION.

Anterior | Inicio | Siguiente
session_regenerate_id | Subir | session_save_path


session_save_path

(PHP 4 )

session_save_path -- Lee y/o cambia la ruta donde se guardan los datos de la sesión actual

Descripción

string session_save_path ( [string path])

session_save_path() devuelve la ruta del directorio usado actualmente para guardar los datos de la sesión. Si se especifica path, se cambiará la ruta donde se guardan los datos.

Nota: En algunos sistemas operativos, puede que quiera especificar una ruta en un sistema de ficheros que maneja muchos ficheros pequeños de forma eficiente. Por ejemplo, en Linux, reiserfs puede dar un rendimiento mejor que ext2fs.

Anterior | Inicio | Siguiente
session_register | Subir | session_set_cookie_params


session_set_cookie_params

(PHP 4 )

session_set_cookie_params -- Cambia los parámetros de la cookie de la sesión

Descripción

void session_set_cookie_params ( int duración [, string path [, string dominio [, bool segura]]])

Cambia los parámetros de la cookie definidos en el archivo php.ini. El efecto de esta función sólo dura hasta que termina el script.

Nota: El parámetro segura fue añadido en PHP 4.0.4.

Anterior | Inicio | Siguiente
session_save_path | Subir | session_set_save_handler


session_set_save_handler

(PHP 4 )

session_set_save_handler -- Establece unas funciones para el almacenamiento de los datos de la sesión a nivel de usuario

Descripción

bool session_set_save_handler ( string abrir, string cerrar, string leer, string escribir, string destruir, string gc)

session_set_save_handler() establece las funciones que se utilizan a nivel de usuario para el almacenamiento y recuperación de los datos asociados a una sesión. Es lo más útil cuando se prefiere utilizar otro método de almacenamiento distinto del proporcionaddo por las sesiones de PHP. p.ej. Almacenar los datos de la sesión en una base de datos local. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Nota: Debe cambiar la opción session.save_handler en la configuración a user en su archivo php.ini para que session_set_save_handler() tenga efecto.

Nota: El manejador "escribir" no se ejecuta hasta que se cierra la salida. Por ello, la salida de las sentencias que coloquemos en el manejador "escribir" para el depurado nunca será enviadas al navegador. Si se necesita producir una salida para el depurado, se sugiere que la salida se produzca en un archivo.

El siguiente ejemplo proporciona almacenamiento de las sesiones basado en archivos de forma similar al manejador de sesiones por defecto de PHP files. Este ejemplo puede ser extendido fácilmente para cubrir el almacenamiento en bases de datos usando su motor de soporte de bases de datos de PHP favorito.

La función de lectura debe devolver siempre una cadena para que el manejador de escritura funcione como se espera. Devuelva una cadena vacía si no hay ningún dato a leer. Los valores devueltos de otros manejadores son convertidos a una expresión booleana. TRUE si todo ha ido correctamente, FALSE si ha habido algún problema.

Ejemplo 1. Ejemplo de session_set_save_handler()

<?php
function abrir ($save_path, $session_name) {
  global $sess_save_path, $sess_session_name;

  $sess_save_path = $save_path;
  $sess_session_name = $session_name;
  return(true);
}

function cerrar() {
  return(true);
}

function leer ($id) {
  global $sess_save_path, $sess_session_name;

  $sess_file = "$sess_save_path/sess_$id";
  if ($fp = @fopen($sess_file, "r")) {
    $sess_data = fread($fp, filesize($sess_file));
    return($sess_data);
  } else {
    return(""); // Debe devolver "" aqu&iacute;.
  }

}

function escribir ($id, $sess_data) {
  global $sess_save_path, $sess_session_name;

  $sess_file = "$sess_save_path/sess_$id";
  if ($fp = @fopen($sess_file, "w")) {
    return(fwrite($fp, $sess_data));
  } else {
    return(false);
  }

}

function destruir ($id) {
  global $sess_save_path, $sess_session_name;

  $sess_file = "$sess_save_path/sess_$id";
  return(@unlink($sess_file));
}

/***********************************************
 * ATENCI&Oacute;N - Necesitar&aacute; implementar alg&uacute;n     *
 * tipo de rutinas recolectoras de basura aqu&iacute; *
 ***********************************************/
function rb ($maxlifetime) {
  return true;
}

session_set_save_handler ("abrir", "cerrar", "leer", "escribir", "destruir", "rb");

session_start();

// proceed to use sessions normally

?>

Anterior | Inicio | Siguiente
session_set_cookie_params | Subir | session_start


session_start

(PHP 4 )

session_start -- Inicializar los datos de una sesión

Descripción

bool session_start ( void )

session_start() crea una sesió (o la continúa basandose en el session id pasado por GET o mediante una cookie).

Si desea usar una sesión con un nombre en concreto, debe llamar a session_name() antes de llamar a session_start().

Esta función siempre devuelve TRUE.

Nota: Si está usando sesiones basadas en las cookies, debe llamar a session_start() antes de que haya ninguna salida al navegador.

session_start() registrará un manejador de salida interno para la reescritura de las URL's si trans-sid está activado. Si un usuario utiliza ob_gzhandler o algo como ob_start(), el orden del manejador de salida es importante para que la salida sea la adecuada. Por ejemplo, el usuario debe registrar ob_gzhandler antes de iniciar la sesión.

Nota: Se recomienda utilizar zlib.output_compression en lugar de ob_gzhandler

Anterior | Inicio | Siguiente
session_set_save_handler | Subir | session_unregister


session_unregister

(PHP 4 )

session_unregister -- Desregistrar una variable de la sesión actual

Descripción

bool session_unregister ( string nombre)

session_unregister() desregistra (olvida) la variable global llamada nombre de la sesión actual.

Esta función devuelve TRUE cuando la variable es eliminada de la sesión correctamente.

Nota: Si utiliza $_SESSION (o $HTTP_SESSION_VARS con PHP 4.0.6 o inferior), use unset() para eliminar una variable de la sesión actual.

Atención

Esta función no borra la variable global correspondiente a nombre, sólo evita que la variable sea guardada como parte de la sesión. Debe llamar a unset() para eliminar la variable global correspondiente.

Atención

Si está trabajando con $HTTP_SESSION_VARS/$_SESSION, no utilice session_register(), session_is_registered() ni session_unregister().

Anterior | Inicio | Siguiente
session_start | Subir | session_unset


session_unset

(PHP 4 )

session_unset -- Elimina todas las variables de la sesión

Descripción

void session_unset ( void )

La función session_unset() elimina y libera el espacio ocupado por todas las variables de la sesión actual registradas.

Nota: Si utiliza $_SESSION (o $HTTP_SESSION_VARS con PHP 4.0.6 o inferior), use unset() en su lugar para desregistrar una variable de la sesión. p.ej. $_SESSION = array();

Anterior | Inicio | Siguiente
session_unregister | Subir | session_write_close


session_write_close

(PHP 4 >= 4.0.4)

session_write_close -- Escribe los datos de la sesión y la finaliza

Descripción

void session_write_close ( void )

Finaliza la sesión actual y guarda sus datos

Los datos de la sesió se suelen guardar tras finalizar la ejecución de su script sin necesidad de llamar a session_write_close(), pero como los datos de la sesió están bloqueados para evitar escrituras concurrentes, sólo un script puede trabajar con una sesión a la vez. Cuando se usan framesets junto con sesiones, podrá comprobar que los frames se cargan uno a uno debido a este bloqueo. Puede reducir el tiempo necesario para cargar los frames finalizando la sesión tan pronto como haya terminado los cambios a las variables de la sesión.

Anterior | Inicio | Siguiente
session_unset | Subir | Funciones de Memoria Compartida


Funciones de Memoria Compartida

Manual de PHP
Anterior Siguiente

XCVI. Funciones de Memoria Compartida

Introducción

Shmop es un conjunto de funciones que permiten a PHP leer, escribir, crear y borrar de forma sencilla segmentos de memoria compartida de tipo UNIX. Se debe tener en cuenta que las versiones de Windows anteriores a Windows 2000 no soportan el uso de memoria compartida.

Nota: En PHP 4.0.3, el nombre de todas estas funciones estaba precedido por el prefijo shm y actualmente lo están por el prefijo shmop.

Requerimientos

No se necesitan bibliotecas externas para construir esta extensión

Instalación

Para usar las funciones de memoria compartida, se debe añadir el parámetro --enable-shmop a las opciones de configuración de PHP.

Configuración en tiempo de ejecución

Esta extensión no tiene directivas de configuración en php.ini.

Tipos de recursos

Constantes predefinidas

Esta extensión no tiene ninguna constante definida.

Ejemplos

Ejemplo 1. Resumen de las operaciones con Memoria Compartida

<?php

// Creacion de un segmento de memoria compartida de 100 bytes y con un
// identificador igual a 0xff3
$shm_id = shmop_open(0xff3, "c", 0644, 100);
if(!$shm_id) {
    echo "No se pudo crear el segmento de memoria compartida\n";
}

// Obtencion del tama&ntilde;o del segmento de memoria compartida
$shm_size = shmop_size($shm_id);
echo "Segmento de memoria: se han reservado ".$shm_size. " bytes.\n";

// Escritura de una cadena de texto de prueba en la memoria compartida
$shm_bytes_written = shmop_write($shm_id, "mi segmento de memoria compartida",
0);
if($shm_bytes_written != strlen("mi segmento de memoria compartida")) {
    echo "No se pudo escribir todos los datos indicados\n";
}

// Lectura de la cadena de texto de prueba
$my_string = shmop_read($shm_id, 0, $shm_size);
if(!$my_string) {
    echo "No se pudo leer el segmento de memoria compartida\n";
}
echo "Los datos que contenia el segmento de memoria compartida son los
siguientes:".$my_string."\n";

// Borrado y eliminacion del segmento de memoria compartida
if(!shmop_delete($shm_id)) {
    echo "No se pudo borrar el segmento de memoria compartida.";
}
shmop_close($shm_id);

?>

Tabla de contenidos
shmop_close -- Cierra un segmento de memoria compartida
shmop_delete -- Borra un segmento de memoria compartida
shmop_open -- Crea o abre un segmento de memoria compartida
shmop_read -- Lee un segmento de memoria compartida
shmop_size -- Obtiene el tamaño de un segmento de memoria compartida
shmop_write -- Escribe datos en un segmento de memoria compartida

Anterior | Inicio | Siguiente
session_write_close | Subir | shmop_close


shmop_close

(PHP 4 >= 4.0.4)

shmop_close -- Cierra un segmento de memoria compartida

Descripción

int shmop_close ( int shmid)

shmop_close() se utiliza para cerrar un segmento de memoria compartida.

shmop_close() utiliza como parámetro el identificador del segmento de memoria compartida devuelto por la función shmop_open().

Ejemplo 1. Cierre de un segmento de memoria compartida

<?php
shmop_close($shm_id);
?>

En el ejemplo anterior se cierra un segmento de memoria compartida cuyo identificador es$shm_id.

Anterior | Inicio | Siguiente
Funciones de Memoria Compartida | Subir | shmop_delete


shmop_delete

(PHP 4 >= 4.0.4)

shmop_delete -- Borra un segmento de memoria compartida

Descripción

int shmop_delete ( int shmid)

shmop_delete() se utiliza para borrar un segmento de memoria compartida.

shmop_delete() utiliza como parámetro el identificador del segmento de memoria compartida devuelto por la función shmop_open(). Si la función tiene éxito, devolverá un 1 (uno) y si no lo tiene devolverá un 0 (cero).

Ejemplo 1. Borrado de un segmento de memoria compartida

<?php
shmop_delete($shm_id);
?>

En el ejemplo anterior se borra un segmento de memoria compartida cuyo identificador es $shm_id.

Anterior | Inicio | Siguiente
shmop_close | Subir | shmop_open


shmop_open

(PHP 4 >= 4.0.4)

shmop_open -- Crea o abre un segmento de memoria compartida

Descripción

int shmop_open ( int clave, string opciones, int modo, int tamanio)

shmop_open() se utiliza para crear o abrir un segmento de memoria compartida.

shmop_open() utiliza 4 parametros: clave, que es el identificador que el sistema utilizará para ese segmento de memoria compartida y que puede ser indicado tanto en formato decimal como hexadecimal. El segundo parámetro son las opciones que se pueden utilizar:

  • "a" para acceder (se activa SHM_RDONLY en el shmat) se utiliza esta opción para abrir un segmento de memoria compartida que ya existe en modo de solo lectura.

  • "c" para crear (se activa IPC_CREATE) se utiliza esta opción para crear un nuevo segmento de memoria compartida o para intentar abrir en modo de lectura y escritura un segmento que ya existe.

  • "w" para acceder en modo de lectura y escritura. Se utiliza esta opción para poder leer un segmento de memoria compartida y además poder escribir en el. Se trata de la opción más habitual en la mayoría de los casos.

  • "n" para crear un nuevo segmento de memoria compartida (se activan IPC_CREATE|IPC_EXCL) se utiliza esta opción para crear un nuevo segmento de memoria compartida a no ser que ya exista otro segmento de memoria compartida con la misma clave. Esta opción es útil por motivos de seguridad para evitar por ejemplo "condiciones de carrera" (en inglés "race conditions").

El tercer parámetro es el modo, que son los permisos que se van a asignar al segmento de memoria compartida. Estos permisos son similares a los que se asignan a los archivos. La forma de indicar los permisos es identica a la que se utiliza en sistemas UNIX para indicar los permisos de los archivos, como por ejemplo "0644". El último parámetro es el tamaño en bytes del segmento de memoria compartida que se va a crear.

Nota: Nota: el tercer y cuarto parámetro deben ser igual a 0 (cero) si se está abriendo un segmento de memoria compartida existente. Si la función shmop_open() tiene éxito, devolverá un identificador que se puede utilizar posteriormente para acceder al segmento de memoria compartida que se ha creado.

Ejemplo 1. Creación de un nuevo segmento de memoria compartida

<?php
$shm_key = ftok(__FILE__,'t');
$shm_id = shmop_open($shm_key, "c", 0644, 100);
?>

En el ejemplo anterior se crea un nuevo segmento de memoria compartida cuya clave se ha generado con ayuda de la función ftok().

Anterior | Inicio | Siguiente
shmop_delete | Subir | shmop_read


shmop_read

(PHP 4 >= 4.0.4)

shmop_read -- Lee un segmento de memoria compartida

Descripción

string shmop_read ( int shmid, int comienzo, int posiciones)

shmop_read() se utiliza para leer datos almacenados en un segmento de memoria compartida.

shmop_read() utiliza 3 parámetros: shmid, que es el identificador del segmento de memoria compartida devuelto por la función shmop_open(); comienzo, que es la posición desde la que se empezarán a leer los datos del segmento de memoria y posiciones, que indica el número de bytes que se leerán a partir del comienzo indicado anteriormente.

Ejemplo 1. Lectura de un segmento de memoria compartida

<?php
$shm_data = shmop_read($shm_id, 0, 50);
?>

En el ejemplo anterior se leen los 50 primeros bytes del segmento de memoria y se almacenan los datos en la variable $shm_data.

Anterior | Inicio | Siguiente
shmop_open | Subir | shmop_size


shmop_size

(PHP 4 >= 4.0.4)

shmop_size -- Obtiene el tamaño de un segmento de memoria compartida

Descripción

int shmop_size ( int shmid)

shmop_size() se utiliza para obtener el tamaño en bytes de un segmento de memoria compartida.

shmop_size() utiliza como parámetro el identificador del segmento de memoria compartida devuelto por la función shmop_open(). La función devuelve un dato de tipo int que contiene el tamaño en bytes del segmento de memoria compartida.

Ejemplo 1. Obtención del tamaño de un segmento de memoria compartida

<?php
$shm_size = shmop_size($shm_id);
?>

En el ejemplo anterior se almacena en la variable $shm_size el tamaño en bytes del segmento de memoria compartida cuyo identificador es $shm_id.

Anterior | Inicio | Siguiente
shmop_read | Subir | shmop_write


shmop_write

(PHP 4 >= 4.0.4)

shmop_write -- Escribe datos en un segmento de memoria compartida

Descriptión

int shmop_write ( int shmid, string datos, int comienzo)

shmop_write() se utiliza para escribir datos en un segmento de memoria compartida.

shmop_write() utiliza 3 parámetros: shmid, que es el identificador del segmento de memoria compartida devuelto por la función shmop_open(); datos, que es una cadena que contiene los datos que se quieren escribir en el segmento de memoria compartida y comienzo, que indica la posición desde la que se empezarán a escribir los datos.

Ejemplo 1. Escritura en un segmento de memoria compartida

<?php
$shm_bytes_written = shmop_write($shm_id, $my_string, 0);
?>

En el anterior ejemplo se escriben en el segmento de memoria compartida los datos contenidos en la variable $my_string. La variable $shm_bytes_written contendrá el número de bytes escritos.

Anterior | Inicio | Siguiente
shmop_size | Subir | SQLite


SQLite

Manual de PHP
Anterior Siguiente

XCVII. SQLite

Introducción

This is an extension for the SQLite Embeddable SQL Database Engine. SQLite is a C library that implements an embeddable SQL database engine. Programs that link with the SQLite library can have SQL database access without running a separate RDBMS process.

SQLite is not a client library used to connect to a big database server. SQLite is the server. The SQLite library reads and writes directly to and from the database files on disk.

Nota: For further information see the SQLite Website (http://sqlite.org/).

Installation

Read the INSTALL file, which comes with the package. Or just use the PEAR installer with "pear install sqlite". SQLite itself is already included, You do not need to install any additional software.

Windows users may download the DLL version of the SQLite extension here: (php_sqlite.dll).

Contact Information

Any questions about the extension should be asked on one of the PHP Mailing lists.

Requerimientos

In order to have these functions available, you must compile PHP with SQLite support, or load the SQLite extension dynamically from your php.ini.

Tipos de recursos

There are two resources used in the SQLite Interface. The first one is the database connection, the second one the result set.

Predefined Constants

The functions sqlite_fetch_array() and sqlite_current() use a constant for the different types of result arrays. The following constants are defined:

Tabla 1. SQLite fetch constants

constant | meaning
SQLITE_ASSOC | Columns are returned into the array having the fieldname as the array index.
SQLITE_BOTH | Columns are returned into the array having both a numerical index and the fieldname as the array index.
SQLITE_NUM | Columns are returned into the array having a numerical index to the fields. This index starts with 0, the first field in the result.

Configuración en tiempo de ejecución

El comportamiento de estas funciones está afectado por los valores definidos en php.ini.

Tabla 2. SQLite Configuration Options

Name | Default | Changeable
sqlite.assoc_case | 0 | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

A continuación se presenta una corta explicación de las directivas de configuración

sqlite.assoc_case int

Whether to use mixed case (0), upper case (1) or lower case (2) hash indexes.

This option is primarily useful when you need compatibility with other database systems, where the names of the columns are always returned as uppercase or lowercase, regardless of the case of the actual field names in the database schema.

The SQLite library returns the column names in their natural case (that matches the case you used in your schema). When sqlite.assoc_case is set to 0 the natural case will be preserved. When it is set to 1 or 2, PHP will apply case folding on the hash keys to upper- or lower-case the keys, respectively.

Use of this option incurrs a slight performance penalty, but is MUCH faster than performing the case folding yourself using PHP script.

Tabla de contenidos
sqlite_array_query -- Execute a query against a given database and returns an array.
sqlite_busy_timeout -- Set busy timeout duration, or disable busy handlers.
sqlite_changes -- Returns the number of rows that were changed by the most recent SQL statement.
sqlite_close -- Closes an open SQLite database.
sqlite_column -- Fetches a column from the current row of a result set.
sqlite_create_aggregate -- Register an aggregating UDF for use in SQL statements.
sqlite_create_function -- Registers a "regular" User Defined Function for use in SQL statements.
sqlite_current -- Fetches the current row from a result set as an array.
sqlite_error_string -- Returns the textual description of an error code.
sqlite_escape_string -- Escapes a string for use as a query parameter
sqlite_fetch_array -- Fetches the next row from a result set as an array.
sqlite_fetch_single -- Fetches the first column of a result set as a string.
sqlite_fetch_string -- Alias of sqlite_fetch_single()
sqlite_field_name -- Returns the name of a particular field.
sqlite_has_more -- Returns whether or not more rows are available.
sqlite_last_error -- Returns the error code of the last error for a database.
sqlite_last_insert_rowid -- Returns the rowid of the most recently inserted row.
sqlite_libencoding -- Returns the encoding of the linked SQLite library.
sqlite_libversion -- Returns the version of the linked SQLite library.
sqlite_next -- Seek to the next row number.
sqlite_num_fields -- Returns the number of fields in a result set.
sqlite_num_rows -- Returns the number of rows in a buffered result set.
sqlite_open -- Opens a SQLite database. Will create the database if it does not exist
sqlite_popen -- Opens a persistent handle to an SQLite database. Will create the database if it does not exist.
sqlite_query -- Executes a query against a given database and returns a result handle.
sqlite_rewind -- Seek to the first row number.
sqlite_seek -- Seek to a particular row number of a buffered result set.
sqlite_udf_decode_binary -- Decode binary data passed as parameters to an UDF.
sqlite_udf_encode_binary -- Encode binary data before returning it from an UDF.
sqlite_unbuffered_query -- Execute a query that does not prefetch and buffer all data

Anterior | Inicio | Siguiente
shmop_write | Subir | sqlite_array_query


sqlite_array_query

(no version information, might be only in CVS)

sqlite_array_query -- Execute a query against a given database and returns an array.

Description

array sqlite_array_query ( resource dbhandle, string query [, int result_type [, bool decode_binary]])

array sqlite_array_query ( string query, resource dbhandle [, int result_type [, bool decode_binary]])

sqlite_array_query() is similar to calling sqlite_query() and then sqlite_fetch_array() for each row of the result set and storing it into an array, as shown in the example below. Calling sqlite_array_query() is significantly faster than using such a script.

Ejemplo 1. sqlite_array_query() implemented yourself

<?php
$q = sqlite_query($dbhandle, "SELECT * from foo LIMIT 100");
$rows = array();
while ($r = sqlite_fetch_array($q)) {
    $rows[] = $r;
}
?>

Sugerencia: sqlite_array_query() is best suited to queries returning 45 rows or less. If you have more data than that, it is recommended that you write your scripts to use sqlite_unbuffered_query() instead for more optimal performance.

See also sqlite_query(),
sqlite_fetch_array(), and
sqlite_fetch_string().

Anterior | Inicio | Siguiente
SQLite | Subir | sqlite_busy_timeout


sqlite_busy_timeout

(no version information, might be only in CVS)

sqlite_busy_timeout -- Set busy timeout duration, or disable busy handlers.

Description

void sqlite_busy_timeout ( resource dbhandle, int milliseconds)

Set the maximum time that sqlite will wait for a dbhandle to become ready for use to milliseconds. If milliseconds is 0, busy handlers will be disabled and sqlite will return immediately with a SQLITE_BUSY status code if another process/thread has the database locked for an update.

PHP sets the default busy timeout to be 60 seconds when the database is opened.

Nota: There are one thousand (1000) milliseconds in one second.

See also sqlite_open().

Anterior | Inicio | Siguiente
sqlite_array_query | Subir | sqlite_changes


sqlite_changes

(no version information, might be only in CVS)

sqlite_changes -- Returns the number of rows that were changed by the most recent SQL statement.

Description

int sqlite_changes ( resource dbhandle)

Returns the numbers of rows that were changed by the most recent SQL statement executed against the dbhandle database handle.

See also sqlite_num_rows().

Anterior | Inicio | Siguiente
sqlite_busy_timeout | Subir | sqlite_close


sqlite_close

(no version information, might be only in CVS)

sqlite_close -- Closes an open SQLite database.

Description

void sqlite_close ( resource dbhandle)

Closes the given database handle. If the database was persistent, it will be closed and removed from the persistent list.

See also sqlite_open() and sqlite_popen().

Anterior | Inicio | Siguiente
sqlite_changes | Subir | sqlite_column


sqlite_column

(no version information, might be only in CVS)

sqlite_column -- Fetches a column from the current row of a result set.

Description

mixed sqlite_column ( resource result, mixed index_or_name [, bool decode_binary])

Fetches the value of a column named index_or_name (if it is a string), or of the ordinal column numbered index_or_name (if it is an integer) from the current row of the query result handle result. The decode binary flag operates in the same way as described under sqlite_fetch_array().

Use this function when you are iterating a large result set with many columns, or with columns that contain large amounts of data.

See also sqlite_fetch_string().

Anterior | Inicio | Siguiente
sqlite_close | Subir | sqlite_create_aggregate


sqlite_create_aggregate

(no version information, might be only in CVS)

sqlite_create_aggregate -- Register an aggregating UDF for use in SQL statements.

Description

bool sqlite_create_aggregate ( resource dbhandle, string function_name, mixed step_func, mixed finalize_func [, int num_args])

sqlite_create_aggregate() is similar to sqlite_create_function() except that it registers functions that can be used to calculate a result aggregated across all the rows of a query.

The key difference between this function and sqlite_create_function() is that two functions are required to manage the aggregate; step_func is called for each row of the result set. Your PHP function should accumulate the result and store it into the aggregation context. Once all the rows have been processed, finalize_func will be called and it should then take the data from the aggregation context and return the result.

Ejemplo 1. max_length aggregation function example

<?php
$data = array(
   'one',
   'two',
   'three',
   'four',
   'five',
   'six',
   'seven',
   'eight',
   'nine',
   'ten',
   );
$dbhandle = sqlite_open(':memory:');
sqlite_query($dbhandle, "CREATE TABLE strings(a)");
foreach ($data as $str) {
    $str = sqlite_escape_string($str);
    sqlite_query($dbhandle, "INSERT INTO strings VALUES ('$str')");
}

function max_len_step(&$context, $string) {
    if (strlen($string) > $context) {
        $context = strlen($string);
    }
}

function max_len_finalize(&$context) {
    return $context;
}

sqlite_create_aggregate($dbhandle, 'max_len', 'max_len_step', 'max_len_finalize');

var_dump(sqlite_array_query($dbhandle, 'SELECT max_len(a) from strings'));

?>

In this example, we are creating an aggregating function that will calculate the length of the longest string in one of the columns of the table. For each row, the max_len_step function is called and passed a context parameter. The context parameter is just like any other PHP variable and be set to hold an array or even an object value. In this example, we are simply using it to hold the maximum length we have seen so far; if the string has a length longer than the current maximum, we update the the context to hold this new maximum length.

After all of the rows have been processed, SQLite calls the max_len_finalize function to determine the aggregate result. Here, we could perform some kind of calculation based on the data found in the context. In our simple example though, we have been calculating the result as the query progressed, so we simply need to return the context value.

Nota: The example above will not work correctly if the column contains binary data. Take a look at the manual page for sqlite_udf_decode_binary() for an explanation of why this is so, and an example of how to make it respect the binary encoding.

Sugerencia: It is NOT recommended for you to store a copy of the values in the context and then process them at the end, as you would cause SQLite to use a lot of memory to process the query - just think of how much memory you would need if a million rows were stored in memory, each containing a string 32 bytes in length.

Sugerencia: You can use sqlite_create_function() and sqlite_create_aggregate() to override SQLite native SQL functions.

See also sqlite_create_function(),
sqlite_udf_encode_binary() and
sqlite_udf_decode_binary().

Anterior | Inicio | Siguiente
sqlite_column | Subir | sqlite_create_function


sqlite_create_function

(no version information, might be only in CVS)

sqlite_create_function -- Registers a "regular" User Defined Function for use in SQL statements.

Description

bool sqlite_create_function ( resource dbhandle, string function_name, mixed callback [, int num_args])

sqlite_create_function() allows you to register a PHP function with SQLite as an UDF (User Defined Function), so that it can be called from within your SQL statements.

dbhandle specifies the database handle that you wish to extend, function_name specifies the name of the function that you will use in your SQL statements, callback is any valid PHP callback to specify a PHP function that should be called to handle the SQL function. The optional parameter num_args is used as a hint by the SQLite expression parser/evaluator. It is recommended that you specifiy a value if your function will only ever accept a fixed number of parameters.

The UDF can be used in any SQL statement that can call functions, such as SELECT and UPDATE statements and also in triggers.

Ejemplo 1. sqlite_create_function() example

<?php
function md5_and_reverse($string) {
    return strrev(md5($string));
}

if ($dbhandle = sqlite_open('mysqlitedb', 0666, $sqliteerror)) {

    sqlite_create_function($dbhandle, 'md5rev', 'md5_and_reverse', 1);

    $sql  = 'SELECT md5rev(filename) FROM files';
    $rows = sqlite_array_query($dbhandle, $sql);
} else {
    echo 'Error opening sqlite db: ' . $sqliteerror;
    exit;
}
?>

In this example, we have a function that calculates the md5 sum of a string, and then reverses it. When the SQL statement executes, it returns the value of the filename transformed by our function. The data returned in $rows contains the processed result.

The beauty of this technique is that you do not need to process the result using a foreach() loop after you have queried for the data.

PHP registers a special function named php when the database is first opened. The php function can be used to call any PHP function without having to register it first.

Ejemplo 2. Example of using the PHP function

<?php
$rows = sqlite_array_query($dbhandle, "SELECT php('md5', filename) from files");
?>

This example will call the md5() on each filename column in the database and return the result into $rows

Nota: For performance reasons, PHP will not automatically encode/decode binary data passed to and from your UDF's. You need to manually encode/decode the parameters and return values if you need to process binary data in this way. Take a look at sqlite_udf_encode_binary() and sqlite_udf_decode_binary() for more details.

Sugerencia: It is not recommended to use UDF's to handle processesing of binary data, unless high performance is not a key requirement of your application.

Sugerencia: You can use sqlite_create_function() and sqlite_create_aggregate() to override SQLite native SQL functions.

See also sqlite_create_aggregate().

Anterior | Inicio | Siguiente
sqlite_create_aggregate | Subir | sqlite_current


sqlite_current

(no version information, might be only in CVS)

sqlite_current -- Fetches the current row from a result set as an array.

Description

array sqlite_current ( resource result [, int result_type [, bool decode_binary]])

sqlite_current() is identical to sqlite_fetch_array() except that it does not advance to the next row prior to returning the data; it returns the data from the current position only.

If the current position is beyond the final row, this function returns FALSE

Nota: This function will not work on unbuffered result handles.

See also sqlite_seek(),
sqlite_next(), and
sqlite_fetch_array().

Anterior | Inicio | Siguiente
sqlite_create_function | Subir | sqlite_error_string


sqlite_error_string

(no version information, might be only in CVS)

sqlite_error_string -- Returns the textual description of an error code.

Description

string sqlite_error_string ( int error_code)

Returns a human readable description of the error_code returned from sqlite_last_error().

See also sqlite_last_error().

Anterior | Inicio | Siguiente
sqlite_current | Subir | sqlite_escape_string


sqlite_escape_string

(no version information, might be only in CVS)

sqlite_escape_string -- Escapes a string for use as a query parameter

Description

string sqlite_escape_string ( string item)

sqlite_escape_string() will correctly quote the string specified by item for use in an SQLite SQL statement. This includes doubling up single-quote characters (') and checking for binary-unsafe characters in the query string.

If the item contains a NUL character, or if it begins with a character whose ordinal value is 0x01, PHP will apply a binary encoding scheme so that you can safely store and retrieve binary data.

Although the encoding makes it safe to insert the data, it will render simple text comparisons and LIKE clauses in your queries unusable for the columns that contain the binary data. In practice, this shouldn't be a problem, as your schema should be such that you don't use such things on binary columns (in fact, it might be better to store binary data using other means, such as in files).

Aviso

addslashes() should NOT be used to quote your strings for SQLite queries; it will lead to strange results when retrieving your data.

Nota:
    Do not use this function to encode the return values from UDF's created
    using sqlite_create_function() or
    sqlite_create_aggregate() - use
    sqlite_udf_encode_binary() instead.

See also sqlite_udf_encode_binary().

Anterior | Inicio | Siguiente
sqlite_error_string | Subir | sqlite_fetch_array


sqlite_fetch_array

(no version information, might be only in CVS)

sqlite_fetch_array -- Fetches the next row from a result set as an array.

Description

array sqlite_fetch_array ( resource result [, int result_type [, bool decode_binary]])

Fetches the next row from the given result handle. If there are no more rows, returns FALSE, otherwise returns an associative array representing the row data.

result_type can be used to specify how you want the results to be returned. The default value is SQLITE_BOTH which returns columns indexed by their ordinal column number and by column name. SQLITE_ASSOC causes the array to be indexed only by column names, and SQLITE_NUM to be indexed only by ordinal column numbers.

The column names returned by SQLITE_ASSOC and SQLITE_BOTH will be case-folded according to the value of the sqlite.assoc_case configuration option.

When decode_binary is set to TRUE (the default), PHP will decode the binary encoding it applied to the data if it was encoded using the sqlite_escape_string(). You will usually always leave this value at its default, unless you are interoperating with databases created by other sqlite capable applications.

See also sqlite_array_query() and sqlite_fetch_string().

Anterior | Inicio | Siguiente
sqlite_escape_string | Subir | sqlite_fetch_single


sqlite_fetch_single

(no version information, might be only in CVS)

sqlite_fetch_single -- Fetches the first column of a result set as a string.

Description

string sqlite_fetch_single ( resource result [, int result_type [, bool decode_binary]])

sqlite_fetch_single() is identical to sqlite_fetch_array() except that it returns the value of the first column of the rowset.

This is the most optimial way to retrieve data when you are only interested in the values from a single column of data.

Ejemplo 1. A sqlite_fetch_single() example

<?php
if ($dbhandle = sqlite_open('mysqlitedb', 0666, $sqliteerror)) {

    $sql = "SELECT id FROM sometable WHERE id = 42";
    $res = sqlite_query($dbhandle, $sql);

    if (sqlite_num_rows($res) > 0) {
        echo sqlite_fetch_single($res); // 42
    }

    sqlite_close($dbhandle);
}
?>

See also sqlite_fetch_array().

Anterior | Inicio | Siguiente
sqlite_fetch_array | Subir | sqlite_fetch_string


sqlite_fetch_string

sqlite_fetch_string -- Alias of sqlite_fetch_single()

Description

This function is an alias of sqlite_fetch_single().

Anterior | Inicio | Siguiente
sqlite_fetch_single | Subir | sqlite_field_name


sqlite_field_name

(no version information, might be only in CVS)

sqlite_field_name -- Returns the name of a particular field.

Description

string sqlite_field_name ( resource result, int field_index)

Given the ordinal column number, field_index, returns the name of that field in the result handle result.

Anterior | Inicio | Siguiente
sqlite_fetch_string | Subir | sqlite_has_more


sqlite_has_more

(no version information, might be only in CVS)

sqlite_has_more -- Returns whether or not more rows are available.

Description

bool sqlite_has_more ( resource result)

sqlite_has_more() returns TRUE if there are more rows available from the result handle, or FALSE otherwise.

See also sqlite_num_rows() and sqlite_changes().

Anterior | Inicio | Siguiente
sqlite_field_name | Subir | sqlite_last_error


sqlite_last_error

(no version information, might be only in CVS)

sqlite_last_error -- Returns the error code of the last error for a database.

Description

int sqlite_last_error ( resource dbhandle)

Returns the error code from the last operation performed on dbhandle, the database handle. A human readable description of the error code can be retrieved using sqlite_error_string().

See also sqlite_error_string().

Anterior | Inicio | Siguiente
sqlite_has_more | Subir | sqlite_last_insert_rowid


sqlite_last_insert_rowid

(no version information, might be only in CVS)

sqlite_last_insert_rowid -- Returns the rowid of the most recently inserted row.

Description

int sqlite_last_insert_rowid ( resource dbhandle)

Returns the rowid of the row that was most recently inserted into the database dbhandle, if it was created as an auto-increment field.

Sugerencia: You can create auto-increment fields in SQLite by declaring them as INTEGER PRIMARY KEY in your table schema.

Anterior | Inicio | Siguiente
sqlite_last_error | Subir | sqlite_libencoding


sqlite_libencoding

(no version information, might be only in CVS)

sqlite_libencoding -- Returns the encoding of the linked SQLite library.

Description

string sqlite_libencoding ( void )

The SQLite library may be compiled in either ISO-8859-1 or UTF-8 compatible modes. This function allows you to determine which encoding scheme is used by your version of the library.

Aviso

The default PHP distribution builds libsqlite in ISO-8859-1 encoding mode. However, this is a misnomer; rather than handling ISO-8859-1, it operates according to your current locale settings for string comparisons and sort ordering. So, rather than ISO-8859-1, you should think of it as being '8-bit' instead.

When compiled with UTF-8 support, sqlite handles encoding and decoding of UTF-8 multi-byte character sequences, but does not yet do a complete job when working with the data (no normalization is performed for example), and some comparison operations may still not be carried out correctly.

Aviso

It is not recommended that you use PHP in a web-server configuration with a version of the SQLite library compiled with UTF-8 support, since libsqlite will abort the process if it detects a problem with the UTF-8 encoding.

See also sqlite_libversion().

Anterior | Inicio | Siguiente
sqlite_last_insert_rowid | Subir | sqlite_libversion


sqlite_libversion

(no version information, might be only in CVS)

sqlite_libversion -- Returns the version of the linked SQLite library.

Description

string sqlite_libversion ( void )

Returns the version of the linked SQLite library as a string.

See also sqlite_libencoding().

Anterior | Inicio | Siguiente
sqlite_libencoding | Subir | sqlite_next


sqlite_next

(no version information, might be only in CVS)

sqlite_next -- Seek to the next row number.

Description

bool sqlite_next ( resource result)

sqlite_next() advances the result handle result to the next row. Returns FALSE if there are no more rows, TRUE otherwise.

Nota: This function cannot be used with unbuffered result handles.

See also sqlite_seek(),
sqlite_current() and
sqlite_rewind().

Anterior | Inicio | Siguiente
sqlite_libversion | Subir | sqlite_num_fields


sqlite_num_fields

(no version information, might be only in CVS)

sqlite_num_fields -- Returns the number of fields in a result set.

Description

int sqlite_num_fields ( resource result)

Returns the number of fields in the result set.

See also sqlite_column() and sqlite_num_rows().

Anterior | Inicio | Siguiente
sqlite_next | Subir | sqlite_num_rows


sqlite_num_rows

(no version information, might be only in CVS)

sqlite_num_rows -- Returns the number of rows in a buffered result set.

Description

int sqlite_num_rows ( resource result)

Returns the number of rows in the buffered result set.

Nota: This function cannot be used with unbuffered result sets.

See also sqlite_changes() and sqlite_query().

Anterior | Inicio | Siguiente
sqlite_num_fields | Subir | sqlite_open


sqlite_open

(no version information, might be only in CVS)

sqlite_open -- Opens a SQLite database. Will create the database if it does not exist

Description

resource sqlite_open ( string filename [, int mode [, string &error_message]])

Returns a resource (database handle) on success, FALSE on error.

The filename parameter is the name of the database. It can be a relative or absolute path to the file that sqlite will use to store your data. If the file does not exist, sqlite will attempt to create it. You MUST have write permissions to the file if you want to insert data or modify the database schema.

The mode parameter specifies the mode of the file and is intended to be used to open the database in read-only mode. Presently, this parameter is ignored by the sqlite library. The default value for mode is the octal value 0666 and this is the recommended value to use if you need access to the errmessage parameter.

errmessage is passed by reference and is set to hold a descriptive error message explaining why the database could not be opened if there was an error.

Ejemplo 1. sqlite_open() example

<?php
if ($db = sqlite_open('mysqlitedb', 0666, $sqliteerror)) {
    sqlite_query($db,'CREATE TABLE foo (bar varchar(10))');
    sqlite_query($db,"INSERT INTO foo VALUES ('fnord')");
    $result = sqlite_query($db,'select bar from foo');
    var_dump(sqlite_fetch_array($result));
} else {
    die ($sqliteerror);
}
?>

Sugerencia: On Unix platforms, SQLite is sensitive to scripts that use the fork() system call. If you do have such a script, it is recommended that you close the handle prior to forking and then re-open it in the child and/or parent. For more information on this issue, see The C language interface to the SQLite library in the section entitled Multi-Threading And SQLite.

Sugerencia: It is not recommended to work with SQLite databases mounted on NFS partitions. Since NFS is notoriously bad when it comes to locking you may find that you cannot even open the database at all, and if it succeeds, the locking behaviour may be undefined.

Nota: Starting with SQLite library version 2.8.2, you can specify :memory: as the filename to create a database that lives only in the memory of the computer. This is useful mostly for temporary processing, as the in-memory database will be destroyed when the process ends. It can also be useful when coupled with the ATTACH DATABASE SQL statement to load other databases and move and query data betweem them.

Nota: SQLite is safe mode and open_basedir aware.

See also sqlite_popen(),
sqlite_close() and
sqlite_query().

Anterior | Inicio | Siguiente
sqlite_num_rows | Subir | sqlite_popen


sqlite_popen

(no version information, might be only in CVS)

sqlite_popen -- Opens a persistent handle to an SQLite database. Will create the database if it does not exist.

Description

resource sqlite_popen ( string filename [, int mode [, string &error_message]])

This function behaves identically to sqlite_open() except that is uses the persistent resource mechanism of PHP. For information about the meaning of the parameters, read the sqlite_open() manual page.

sqlite_popen() will first check to see if a persistent handle has already been opened for the given filename. If it finds one, it returns that handle to your script, otherwise it opens a fresh handle to the database.

The benefit of this approach is that you don't incurr the performance cost of re-reading the database and index schema on each page hit served by persistent web server SAPI's (any SAPI except for regular CGI or CLI).

Nota: If you use persistent handles and have the database updated by a background process (perhaps via a crontab), and that process re-creates the database by overwriting it (either by unlinking and rebuilding, or moving the updated version to replace the current version), you may experience undefined behaviour when a persistent handle on the old version of the database is recycled.

To avoid this situation, have your background processes open the same database file and perform their updates in a transaction.

See also sqlite_open(),
sqlite_close() and
sqlite_query().

Anterior | Inicio | Siguiente
sqlite_open | Subir | sqlite_query


sqlite_query

(no version information, might be only in CVS)

sqlite_query -- Executes a query against a given database and returns a result handle.

Description

resource sqlite_query ( resource dbhandle, string query)

resource sqlite_query ( string query, resource dbhandle)

Executes an SQL statement given by the query against a given database handle (specified by the dbhandle parameter).

For queries that return rows, this function will return a result handle which can then be used with functions such as sqlite_fetch_array() and sqlite_seek().

For other kinds of queries, this function will return a boolean result; TRUE for success or FALSE for failure.

Regardless of the query type, this function will return FALSE if the query failed.

sqlite_query() returns a buffered, seekable result handle. This is useful for reasonably small queries where you need to be able to randomly access the rows. Buffered result handles will allocate memory to hold the entire result and will not return until it has been fetched. If you only need sequential access to the data, it is recommended that you use the much higher performance sqlite_unbuffered_query() instead.

Nota: Two alternative syntaxes are supported for compatibility with other database extensions (such as MySQL). The preferred form is the first one, where the db parameter is the first parameter to the function.

Aviso

SQLite will execute multiple queries separated by semicolons, so you can use it to execute a batch of SQL that you have loaded from a file or have embedded in a script.

When executing multiple queries, the return value of this function will be FALSE if the was an error, but undefined otherwise (it might be TRUE for success or it might return a result handle).

See also sqlite_unbuffered_query() and sqlite_array_query().

Anterior | Inicio | Siguiente
sqlite_popen | Subir | sqlite_rewind


sqlite_rewind

(no version information, might be only in CVS)

sqlite_rewind -- Seek to the first row number.

Description

bool sqlite_rewind ( resource result)

sqlite_rewind() seeks back to the first row in the result set. Returns FALSE if there are no rows in the result set, TRUE otherwise.

Nota: This function cannot be used with unbuffered result sets.

See also sqlite_next(),
sqlite_current(), and
sqlite_seek().

Anterior | Inicio | Siguiente
sqlite_query | Subir | sqlite_seek


sqlite_seek

(no version information, might be only in CVS)

sqlite_seek -- Seek to a particular row number of a buffered result set.

Description

bool sqlite_seek ( resource result, int rownum)

sqlite_seek() seeks to the row given by the parameter rownum. The row number is zero-based (0 is the first row). Returns FALSE if the row does not exist, TRUE otherwise.

Nota: This function cannot be used with unbuffered result handles.

See also sqlite_next(),
sqlite_current() and
sqlite_rewind().

Anterior | Inicio | Siguiente
sqlite_rewind | Subir | sqlite_udf_decode_binary


sqlite_udf_decode_binary

(no version information, might be only in CVS)

sqlite_udf_decode_binary -- Decode binary data passed as parameters to an UDF.

Description

string sqlite_udf_decode_binary ( string data)

sqlite_udf_decode_binary() decodes the binary encoding that was applied to the parameter by either sqlite_udf_encode_binary() or sqlite_escape_string().

You must call this function on parameters passed to your UDF if you need them to handle binary data, as the binary encoding employed by PHP will obscure the content and of the parameter in its natural, non-coded form.

PHP does not perform this encode/decode operation automatically as it would severely impact performance if it did.

Ejemplo 1. binary-safe max_length aggregation function example

<?php
$data = array(
   'one',
   'two',
   'three',
   'four',
   'five',
   'six',
   'seven',
   'eight',
   'nine',
   'ten',
   );
$db = sqlite_open(':memory:');
sqlite_query($db, "CREATE TABLE strings(a)");
foreach ($data as $str) {
    $str = sqlite_escape_string($str);
    sqlite_query($db, "INSERT INTO strings VALUES ('$str')");
}

function max_len_step(&$context, $string) {
    $string = sqlite_udf_decode_binary($string);
    if (strlen($string) > $context) {
        $context = strlen($string);
    }
}

function max_len_finalize(&$context) {
    return $context;
}

sqlite_create_aggregate($db, 'max_len', 'max_len_step', 'max_len_finalize');

var_dump(sqlite_array_query($db, 'SELECT max_len(a) from strings'));

?>

See also sqlite_udf_encode_binary(),
sqlite_create_function() and
sqlite_create_aggregate().

Anterior | Inicio | Siguiente
sqlite_seek | Subir | sqlite_udf_encode_binary


sqlite_udf_encode_binary

(no version information, might be only in CVS)

sqlite_udf_encode_binary -- Encode binary data before returning it from an UDF.

Description

string sqlite_udf_encode_binary ( string data)

sqlite_udf_encode_binary() applies a binary encoding to the data so that it can be safely returned from queries (since the underlying libsqlite API is not binary safe).

If there is a chance that your data might be binary unsafe (eg: it contains a NUL byte in the middle rather than at the end, or if it has and 0x01 byte as the first character) then you must call this function to encode the return value from your UDF.

PHP does not perform this encode/decode operation automatically as it would severely impact performance if it did.

Nota: Do not use sqlite_escape_string() to quote strings returned from UDF's as it will lead to double-quoting of the data. Use sqlite_udf_encode_binary() instead!

See also sqlite_udf_decode_binary(),
sqlite_escape_string(),
sqlite_create_function() and
sqlite_create_aggregate().

Anterior | Inicio | Siguiente
sqlite_udf_decode_binary | Subir | sqlite_unbuffered_query


sqlite_unbuffered_query

(no version information, might be only in CVS)

sqlite_unbuffered_query -- Execute a query that does not prefetch and buffer all data

Description

resource sqlite_unbuffered_query ( resource dbhandle, string query)

resource sqlite_unbuffered_query ( string query, resource dbhandle)

sqlite_unbuffered_query() is identical to sqlite_query() except that the result that is returned is a sequential forward-only result set that can only be used to read each row, one after the other.

This function is ideal for generating things such as HTML tables where you only need to process one row at a time and don't need to randomly access the row data.

Nota:
    Functions such as sqlite_seek(),
    sqlite_rewind(), sqlite_next(),
    sqlite_current(), and
    sqlite_num_rows() do not work on result handles
    returned from sqlite_unbuffered_query().

See also sqlite_query().

Anterior | Inicio | Siguiente
sqlite_udf_encode_binary | Subir | Shockwave Flash functions


Shockwave Flash functions

Manual de PHP
Anterior Siguiente

XCVIII. Shockwave Flash functions

PHP offers the ability to create Shockwave Flash files via Paul Haeberli's libswf module. You can download libswf at ftp://ftp.sgi.com/sgi/graphics/grafica/flash/. Once you have libswf all you need to do is to configure --with-swf[=DIR] where DIR is a location containing the directories include and lib. The include directory has to contain the swf.h file and the lib directory has to contain the libswf.a file. If you unpack the libswf distribution the two files will be in one directory. Consequently you will have to copy the files to the proper location manually.

Once you've successfully installed PHP with Shockwave Flash support you can then go about creating Shockwave files from PHP. You would be surprised at what you can do, take the following code:

Ejemplo 1. SWF example

<?php
swf_openfile ("test.swf", 256, 256, 30, 1, 1, 1);
swf_ortho2 (-100, 100, -100, 100);
swf_defineline (1, -70, 0, 70, 0, .2);
swf_definerect (4, 60, -10, 70, 0, 0);
swf_definerect (5, -60, 0, -70, 10, 0);
swf_addcolor (0, 0, 0, 0);

swf_definefont (10, "Mod");
swf_fontsize (5);
swf_fontslant (10);
swf_definetext (11, "This be Flash wit PHP!", 1);

swf_pushmatrix ();
swf_translate (-50, 80, 0);
swf_placeobject (11, 60);
swf_popmatrix ();

for ($i = 0; $i < 30; $i++) {
    $p = $i/(30-1);
    swf_pushmatrix ();
    swf_scale (1-($p*.9), 1, 1);
    swf_rotate (60*$p,  'z');
    swf_translate (20+20*$p, $p/1.5, 0);
    swf_rotate (270*$p,  'z');
    swf_addcolor ($p, 0, $p/1.2, -$p);
    swf_placeobject (1, 50);
    swf_placeobject (4, 50);
    swf_placeobject (5, 50);
    swf_popmatrix ();
    swf_showframe ();
}

for ($i = 0; $i < 30; $i++) {
    swf_removeobject (50);
    if (($i%4) == 0) {
        swf_showframe ();
    }
}

swf_startdoaction ();
swf_actionstop ();
swf_enddoaction ();

swf_closefile ();
?>

Nota: SWF support was added in PHP4 RC2.

Tabla de contenidos
swf_actiongeturl -- Get a URL from a Shockwave Flash movie
swf_actiongotoframe -- Play a frame and then stop
swf_actiongotolabel -- Display a frame with the specified label
swf_actionnextframe -- Go foward one frame
swf_actionplay -- Start playing the flash movie from the current frame
swf_actionprevframe -- Go backwards one frame
swf_actionsettarget -- Set the context for actions
swf_actionstop -- Stop playing the flash movie at the current frame
swf_actiontogglequality -- Toggle between low and high quality
swf_actionwaitforframe -- Skip actions if a frame has not been loaded
swf_addbuttonrecord -- Controls location, appearance and active area of the current button
swf_addcolor -- Set the global add color to the rgba value specified
swf_closefile -- Close the current Shockwave Flash file
swf_definebitmap -- Define a bitmap
swf_definefont -- Defines a font
swf_defineline -- Define a line
swf_definepoly -- Define a polygon
swf_definerect -- Define a rectangle
swf_definetext -- Define a text string
swf_endbutton -- End the definition of the current button
swf_enddoaction -- End the current action
swf_endshape -- Completes the definition of the current shape
swf_endsymbol -- End the definition of a symbol
swf_fontsize -- Change the font size
swf_fontslant -- Set the font slant
swf_fonttracking -- Set the current font tracking
swf_getbitmapinfo -- Get information about a bitmap
swf_getfontinfo -- The height in pixels of a capital A and a lowercase x
swf_getframe -- Get the frame number of the current frame
swf_labelframe -- Label the current frame
swf_lookat -- Define a viewing transformation
swf_modifyobject -- Modify an object
swf_mulcolor -- Sets the global multiply color to the rgba value specified
swf_nextid -- Returns the next free object id
swf_oncondition -- Describe a transition used to trigger an action list
swf_openfile -- Open a new Shockwave Flash file
swf_ortho2 -- Defines 2D orthographic mapping of user coordinates onto the current viewport
swf_ortho -- Defines an orthographic mapping of user coordinates onto the current viewport
swf_perspective -- Define a perspective projection transformation
swf_placeobject -- Place an object onto the screen
swf_polarview -- Define the viewer's position with polar coordinates
swf_popmatrix -- Restore a previous transformation matrix
swf_posround -- Enables or Disables the rounding of the translation when objects are placed or moved
swf_pushmatrix -- Push the current transformation matrix back unto the stack
swf_removeobject -- Remove an object
swf_rotate -- Rotate the current transformation
swf_scale -- Scale the current transformation
swf_setfont -- Change the current font
swf_setframe -- Switch to a specified frame
swf_shapearc -- Draw a circular arc
swf_shapecurveto3 -- Draw a cubic bezier curve
swf_shapecurveto -- Draw a quadratic bezier curve between two points
swf_shapefillbitmapclip -- Set current fill mode to clipped bitmap
swf_shapefillbitmaptile -- Set current fill mode to tiled bitmap
swf_shapefilloff -- Turns off filling
swf_shapefillsolid -- Set the current fill style to the specified color
swf_shapelinesolid -- Set the current line style
swf_shapelineto -- Draw a line
swf_shapemoveto -- Move the current position
swf_showframe -- Display the current frame
swf_startbutton -- Start the definition of a button
swf_startdoaction -- Start a description of an action list for the current frame
swf_startshape -- Start a complex shape
swf_startsymbol -- Define a symbol
swf_textwidth -- Get the width of a string
swf_translate -- Translate the current transformations
swf_viewport -- Select an area for future drawing

Anterior | Inicio | Siguiente
sqlite_unbuffered_query | Subir | swf_actiongeturl


swf_actiongeturl

(PHP 4 <= 4.3.2)

swf_actiongeturl -- Get a URL from a Shockwave Flash movie

Description

void swf_actiongeturl ( string url, string target)

The swf_actionGetUrl() function gets the URL specified by the parameter url with the target target.

Anterior | Inicio | Siguiente
Shockwave Flash functions | Subir | swf_actiongotoframe


swf_actiongotoframe

(PHP 4 <= 4.3.2)

swf_actiongotoframe -- Play a frame and then stop

Description

void swf_actiongotoframe ( int framenumber)

The swf_actionGotoFrame() function will go to the frame specified by framenumber, play it, and then stop.

Anterior | Inicio | Siguiente
swf_actiongeturl | Subir | swf_actiongotolabel


swf_actiongotolabel

(PHP 4 <= 4.3.2)

swf_actiongotolabel -- Display a frame with the specified label

Description

void swf_actiongotolabel ( string label)

The swf_actionGotoLabel() function displays the frame with the label given by the label parameter and then stops.

Anterior | Inicio | Siguiente
swf_actiongotoframe | Subir | swf_actionnextframe


swf_actionnextframe

(PHP 4 <= 4.3.2)

swf_actionnextframe -- Go foward one frame

Description

void swf_actionnextframe ( void )

Go foward one frame.

Anterior | Inicio | Siguiente
swf_actiongotolabel | Subir | swf_actionplay


swf_actionplay

(PHP 4 <= 4.3.2)

swf_actionplay -- Start playing the flash movie from the current frame

Description

void swf_actionplay ( void )

Start playing the flash movie from the current frame.

Anterior | Inicio | Siguiente
swf_actionnextframe | Subir | swf_actionprevframe


swf_actionprevframe

(PHP 4 <= 4.3.2)

swf_actionprevframe -- Go backwards one frame

Description

void swf_actionprevframe ( void )

Anterior | Inicio | Siguiente
swf_actionplay | Subir | swf_actionsettarget


swf_actionsettarget

(PHP 4 <= 4.3.2)

swf_actionsettarget -- Set the context for actions

Description

void swf_actionsettarget ( string target)

The swf_actionSetTarget() function sets the context for all actions. You can use this to control other flash movies that are currently playing.

Anterior | Inicio | Siguiente
swf_actionprevframe | Subir | swf_actionstop


swf_actionstop

(PHP 4 <= 4.3.2)

swf_actionstop -- Stop playing the flash movie at the current frame

Description

void swf_actionstop ( void )

Stop playing the flash movie at the current frame.

Anterior | Inicio | Siguiente
swf_actionsettarget | Subir | swf_actiontogglequality


swf_actiontogglequality

(PHP 4 <= 4.3.2)

swf_actiontogglequality -- Toggle between low and high quality

Description

void swf_actiontogglequality ( void )

Toggle the flash movie between high and low quality.

Anterior | Inicio | Siguiente
swf_actionstop | Subir | swf_actionwaitforframe


swf_actionwaitforframe

(PHP 4 <= 4.3.2)

swf_actionwaitforframe -- Skip actions if a frame has not been loaded

Description

void swf_actionwaitforframe ( int framenumber, int skipcount)

The swf_actionWaitForFrame() function will check to see if the frame, specified by the framenumber parameter has been loaded, if not it will skip the number of actions specified by the skipcount parameter. This can be useful for "Loading..." type animations.

Anterior | Inicio | Siguiente
swf_actiontogglequality | Subir | swf_addbuttonrecord


swf_addbuttonrecord

(PHP 4 <= 4.3.2)

swf_addbuttonrecord -- Controls location, appearance and active area of the current button

Description

void swf_addbuttonrecord ( int states, int shapeid, int depth)

The swf_addbuttonrecord() function allows you to define the specifics of using a button. The first parameter, states, defines what states the button can have, these can be any or all of the following constants: BSHitTest, BSDown, BSOver or BSUp. The second parameter, the shapeid is the look of the button, this is usually the object id of the shape of the button. The depth parameter is the placement of the button in the current frame.

Ejemplo 1. swf_addbuttonrecord() function example

swf_startButton ($objid, TYPE_MENUBUTTON);
    swf_addButtonRecord (BSDown|BSOver, $buttonImageId, 340);
    swf_onCondition (MenuEnter);
        swf_actionGetUrl ("http://www.designmultimedia.com", "_level1");
    swf_onCondition (MenuExit);
        swf_actionGetUrl ("", "_level1");
swf_endButton ();

Anterior | Inicio | Siguiente
swf_actionwaitforframe | Subir | swf_addcolor


swf_addcolor

(PHP 4 <= 4.3.2)

swf_addcolor -- Set the global add color to the rgba value specified

Description

void swf_addcolor ( float r, float g, float b, float a)

The swf_addcolor() function sets the global add color to the rgba color specified. This color is then used (implicitly) by the swf_placeobject(), swf_modifyobject() and the swf_addbuttonrecord() functions. The color of the object will be add by the rgba values when the object is written to the screen.

Nota: The rgba values can be either positive or negative.

Anterior | Inicio | Siguiente
swf_addbuttonrecord | Subir | swf_closefile


swf_closefile

(PHP 4 <= 4.3.2)

swf_closefile -- Close the current Shockwave Flash file

Description

void swf_closefile ( void )

Close a file that was opened by the swf_openfile() function.

Anterior | Inicio | Siguiente
swf_addcolor | Subir | swf_definebitmap


swf_definebitmap

(PHP 4 <= 4.3.2)

swf_definebitmap -- Define a bitmap

Description

void swf_definebitmap ( int objid, string image_name)

The swf_definebitmap() function defines a bitmap given a GIF, JPEG, RGB or FI image. The image will be converted into a Flash JPEG or Flash color map format.

Anterior | Inicio | Siguiente
swf_closefile | Subir | swf_definefont


swf_definefont

(PHP 4 <= 4.3.2)

swf_definefont -- Defines a font

Description

void swf_definefont ( int fontid, string fontname)

The swf_definefont() function defines a font given by the fontname parameter and gives it the id specified by the fontid parameter. It then sets the font given by fontname to the current font.

Anterior | Inicio | Siguiente
swf_definebitmap | Subir | swf_defineline


swf_defineline

(PHP 4 <= 4.3.2)

swf_defineline -- Define a line

Description

void swf_defineline ( int objid, float x1, float y1, float x2, float y2, float width)

The swf_defineline() defines a line starting from the x coordinate given by x1 and the y coordinate given by y1 parameter. Up to the x coordinate given by the x2 parameter and the y coordinate given by the y2 parameter. It will have a width defined by the width parameter.

Anterior | Inicio | Siguiente
swf_definefont | Subir | swf_definepoly


swf_definepoly

(PHP 4 <= 4.3.2)

swf_definepoly -- Define a polygon

Description

void swf_definepoly ( int objid, array coords, int npoints, float width)

The swf_definepoly() function defines a polygon given an array of x, y coordinates (the coordinates are defined in the parameter coords). The parameter npoints is the number of overall points that are contained in the array given by coords. The width is the width of the polygon's border, if set to 0.0 the polygon is filled.

Anterior | Inicio | Siguiente
swf_defineline | Subir | swf_definerect


swf_definerect

(PHP 4 <= 4.3.2)

swf_definerect -- Define a rectangle

Description

void swf_definerect ( int objid, float x1, float y1, float x2, float y2, float width)

The swf_definerect() defines a rectangle with an upper left hand coordinate given by the x, x1, and the y, y1. And a lower right hand coordinate given by the x coordinate, x2, and the y coordinate, y2 . Width of the rectangles border is given by the width parameter, if the width is 0.0 then the rectangle is filled.

Anterior | Inicio | Siguiente
swf_definepoly | Subir | swf_definetext


swf_definetext

(PHP 4 <= 4.3.2)

swf_definetext -- Define a text string

Description

void swf_definetext ( int objid, string str, int docenter)

Define a text string (the str parameter) using the current font and font size. The docenter is where the word is centered, if docenter is 1, then the word is centered in x.

Anterior | Inicio | Siguiente
swf_definerect | Subir | swf_endbutton


swf_endbutton

(PHP 4 <= 4.3.2)

swf_endbutton -- End the definition of the current button

Description

void swf_endbutton ( void )

The swf_endButton() function ends the definition of the current button.

Anterior | Inicio | Siguiente
swf_definetext | Subir | swf_enddoaction


swf_enddoaction

(PHP 4 <= 4.3.2)

swf_enddoaction -- End the current action

Description

void swf_enddoaction ( void )

Ends the current action started by the swf_startdoaction() function.

Anterior | Inicio | Siguiente
swf_endbutton | Subir | swf_endshape


swf_endshape

(PHP 4 <= 4.3.2)

swf_endshape -- Completes the definition of the current shape

Description

void swf_endshape ( void )

The swf_endshape() completes the definition of the current shape.

Anterior | Inicio | Siguiente
swf_enddoaction | Subir | swf_endsymbol


swf_endsymbol

(PHP 4 <= 4.3.2)

swf_endsymbol -- End the definition of a symbol

Description

void swf_endsymbol ( void )

The swf_endsymbol() function ends the definition of a symbol that was started by the swf_startsymbol() function.

Anterior | Inicio | Siguiente
swf_endshape | Subir | swf_fontsize


swf_fontsize

(PHP 4 <= 4.3.2)

swf_fontsize -- Change the font size

Description

void swf_fontsize ( float size)

The swf_fontsize() function changes the font size to the value given by the size parameter.

Anterior | Inicio | Siguiente
swf_endsymbol | Subir | swf_fontslant


swf_fontslant

(PHP 4 <= 4.3.2)

swf_fontslant -- Set the font slant

Description

void swf_fontslant ( float slant)

Set the current font slant to the angle indicated by the slant parameter. Positive values create a foward slant, negative values create a negative slant.

Anterior | Inicio | Siguiente
swf_fontsize | Subir | swf_fonttracking


swf_fonttracking

(PHP 4 <= 4.3.2)

swf_fonttracking -- Set the current font tracking

Description

void swf_fonttracking ( float tracking)

Set the font tracking to the value specified by the tracking parameter. This function is used to increase the spacing between letters and text, positive values increase the space and negative values decrease the space between letters.

Anterior | Inicio | Siguiente
swf_fontslant | Subir | swf_getbitmapinfo


swf_getbitmapinfo

(PHP 4 <= 4.3.2)

swf_getbitmapinfo -- Get information about a bitmap

Description

array swf_getbitmapinfo ( int bitmapid)

The swf_getbitmapinfo() function returns an array of information about a bitmap given by the bitmapid parameter. The returned array has the following elements:

  • "size" - The size in bytes of the bitmap.

  • "width" - The width in pixels of the bitmap.

  • "height" - The height in pixels of the bitmap.

Anterior | Inicio | Siguiente
swf_fonttracking | Subir | swf_getfontinfo


swf_getfontinfo

(PHP 4 <= 4.3.2)

swf_getfontinfo -- The height in pixels of a capital A and a lowercase x

Description

array swf_getfontinfo ( void )

The swf_getfontinfo() function returns an associative array with the following parameters:

  • Aheight - The height in pixels of a capital A.

  • xheight - The height in pixels of a lowercase x.

Anterior | Inicio | Siguiente
swf_getbitmapinfo | Subir | swf_getframe


swf_getframe

(PHP 4 <= 4.3.2)

swf_getframe -- Get the frame number of the current frame

Description

int swf_getframe ( void )

The swf_getframe() function gets the number of the current frame.

Anterior | Inicio | Siguiente
swf_getfontinfo | Subir | swf_labelframe


swf_labelframe

(PHP 4 <= 4.3.2)

swf_labelframe -- Label the current frame

Description

void swf_labelframe ( string name)

Label the current frame with the name given by the name parameter.

Anterior | Inicio | Siguiente
swf_getframe | Subir | swf_lookat


swf_lookat

(PHP 4 <= 4.3.2)

swf_lookat -- Define a viewing transformation

Description

void swf_lookat ( double view_x, double view_y, double view_z, double reference_x, double reference_y, double reference_z, double twist)

The swf_lookat() function defines a viewing transformation by giving the viewing position (the parameters view_x, view_y, and view_z) and the coordinates of a reference point in the scene, the reference point is defined by the reference_x, reference_y , and reference_z parameters. The twist controls the rotation along with viewer's z axis.

Anterior | Inicio | Siguiente
swf_labelframe | Subir | swf_modifyobject


swf_modifyobject

(PHP 4 <= 4.3.2)

swf_modifyobject -- Modify an object

Description

void swf_modifyobject ( int depth, int how)

Updates the position and/or color of the object at the specified depth, depth. The parameter how determines what is updated. how can either be the constant MOD_MATRIX or MOD_COLOR or it can be a combination of both (MOD_MATRIX|MOD_COLOR).

MOD_COLOR uses the current mulcolor (specified by the function swf_mulcolor()) and addcolor (specified by the function swf_addcolor()) to color the object. MOD_MATRIX uses the current matrix to position the object.

Anterior | Inicio | Siguiente
swf_lookat | Subir | swf_mulcolor


swf_mulcolor

(PHP 4 <= 4.3.2)

swf_mulcolor -- Sets the global multiply color to the rgba value specified

Description

void swf_mulcolor ( float r, float g, float b, float a)

The swf_mulcolor() function sets the global multiply color to the rgba color specified. This color is then used (implicitly) by the swf_placeobject(), swf_modifyobject() and the swf_addbuttonrecord() functions. The color of the object will be multiplied by the rgba values when the object is written to the screen.

Nota: The rgba values can be either positive or negative.

Anterior | Inicio | Siguiente
swf_modifyobject | Subir | swf_nextid


swf_nextid

(PHP 4 <= 4.3.2)

swf_nextid -- Returns the next free object id

Description

int swf_nextid ( void )

The swf_nextid() function returns the next available object id.

Anterior | Inicio | Siguiente
swf_mulcolor | Subir | swf_oncondition


swf_oncondition

(PHP 4 <= 4.3.2)

swf_oncondition -- Describe a transition used to trigger an action list

Description

void swf_oncondition ( int transition)

The swf_onCondition() function describes a transition that will trigger an action list. There are several types of possible transitions, the following are for buttons defined as TYPE_MENUBUTTON:

  • IdletoOverUp

  • OverUptoIdle

  • OverUptoOverDown

  • OverDowntoOverUp

  • IdletoOverDown

  • OutDowntoIdle

  • MenuEnter (IdletoOverUp|IdletoOverDown)

  • MenuExit (OverUptoIdle|OverDowntoIdle)

For TYPE_PUSHBUTTON there are the following options:

  • IdletoOverUp

  • OverUptoIdle

  • OverUptoOverDown

  • OverDowntoOverUp

  • OverDowntoOutDown

  • OutDowntoOverDown

  • OutDowntoIdle

  • ButtonEnter (IdletoOverUp|OutDowntoOverDown)

  • ButtonExit (OverUptoIdle|OverDowntoOutDown)

Anterior | Inicio | Siguiente
swf_nextid | Subir | swf_openfile


swf_openfile

(PHP 4 <= 4.3.2)

swf_openfile -- Open a new Shockwave Flash file

Description

void swf_openfile ( string filename, float width, float height, float framerate, float r, float g, float b)

The swf_openfile() function opens a new file named filename with a width of width and a height of height a frame rate of framerate and background with a red color of r a green color of g and a blue color of b.

The swf_openfile() must be the first function you call, otherwise your script will cause a segfault. If you want to send your output to the screen make the filename: "php://stdout" (support for this is in 4.0.1 and up).

Anterior | Inicio | Siguiente
swf_oncondition | Subir | swf_ortho2


swf_ortho2

(PHP 4 <= 4.3.2)

swf_ortho2 -- Defines 2D orthographic mapping of user coordinates onto the current viewport

Description

void swf_ortho2 ( double xmin, double xmax, double ymin, double ymax)

The swf_ortho2() function defines a two dimensional orthographic mapping of user coordinates onto the current viewport, this defaults to one to one mapping of the area of the Flash movie. If a perspective transformation is desired, the swf_perspective () function can be used.

Anterior | Inicio | Siguiente
swf_openfile | Subir | swf_ortho


swf_ortho

(4.0.1 - 4.3.2 only)

swf_ortho -- Defines an orthographic mapping of user coordinates onto the current viewport

Description

void swf_ortho ( double xmin, double xmax, double ymin, double ymax, double zmin, double zmax)

The swf_ortho() funcion defines a orthographic mapping of user coordinates onto the current viewport.

Anterior | Inicio | Siguiente
swf_ortho2 | Subir | swf_perspective


swf_perspective

(PHP 4 <= 4.3.2)

swf_perspective -- Define a perspective projection transformation

Description

void swf_perspective ( double fovy, double aspect, double near, double far)

The swf_perspective() function defines a perspective projection transformation. The fovy parameter is field-of-view angle in the y direction. The aspect parameter should be set to the aspect ratio of the viewport that is being drawn onto. The near parameter is the near clipping plane and the far parameter is the far clipping plane.

Nota: Various distortion artifacts may appear when performing a perspective projection, this is because Flash players only have a two dimensional matrix. Some are not to pretty.

Anterior | Inicio | Siguiente
swf_ortho | Subir | swf_placeobject


swf_placeobject

(PHP 4 <= 4.3.2)

swf_placeobject -- Place an object onto the screen

Description

void swf_placeobject ( int objid, int depth)

Places the object specified by objid in the current frame at a depth of depth. The objid parameter and the depth must be between 1 and 65535.

This uses the current mulcolor (specified by swf_mulcolor()) and the current addcolor (specified by swf_addcolor()) to color the object and it uses the current matrix to position the object.

Nota: Full RGBA colors are supported.

Anterior | Inicio | Siguiente
swf_perspective | Subir | swf_polarview


swf_polarview

(PHP 4 <= 4.3.2)

swf_polarview -- Define the viewer's position with polar coordinates

Description

void swf_polarview ( double dist, double azimuth, double incidence, double twist)

The swf_polarview() function defines the viewer's position in polar coordinates. The dist parameter gives the distance between the viewpoint to the world space origin. The azimuth parameter defines the azimuthal angle in the x,y coordinate plane, measured in distance from the y axis. The incidence parameter defines the angle of incidence in the y,z plane, measured in distance from the z axis. The incidence angle is defined as the angle of the viewport relative to the z axis. Finally the twist specifies the amount that the viewpoint is to be rotated about the line of sight using the right hand rule.

Anterior | Inicio | Siguiente
swf_placeobject | Subir | swf_popmatrix


swf_popmatrix

(PHP 4 <= 4.3.2)

swf_popmatrix -- Restore a previous transformation matrix

Description

void swf_popmatrix ( void )

The swf_popmatrix() function pushes the current transformation matrix back onto the stack.

Anterior | Inicio | Siguiente
swf_polarview | Subir | swf_posround


swf_posround

(PHP 4 <= 4.3.2)

swf_posround -- Enables or Disables the rounding of the translation when objects are placed or moved

Description

void swf_posround ( int round)

The swf_posround() function enables or disables the rounding of the translation when objects are placed or moved, there are times when text becomes more readable because rounding has been enabled. The round is whether to enable rounding or not, if set to the value of 1, then rounding is enabled, if set to 0 then rounding is disabled.

Anterior | Inicio | Siguiente
swf_popmatrix | Subir | swf_pushmatrix


swf_pushmatrix

(PHP 4 <= 4.3.2)

swf_pushmatrix -- Push the current transformation matrix back unto the stack

Description

void swf_pushmatrix ( void )

The swf_pushmatrix() function pushes the current transformation matrix back onto the stack.

Anterior | Inicio | Siguiente
swf_posround | Subir | swf_removeobject


swf_removeobject

(PHP 4 <= 4.3.2)

swf_removeobject -- Remove an object

Description

void swf_removeobject ( int depth)

Removes the object at the depth specified by depth.

Anterior | Inicio | Siguiente
swf_pushmatrix | Subir | swf_rotate


swf_rotate

(PHP 4 <= 4.3.2)

swf_rotate -- Rotate the current transformation

Description

void swf_rotate ( double angle, string axis)

The swf_rotate() rotates the current transformation by the angle given by the angle parameter around the axis given by the axis parameter. Valid values for the axis are 'x' (the x axis), 'y' (the y axis) or 'z' (the z axis).

Anterior | Inicio | Siguiente
swf_removeobject | Subir | swf_scale


swf_scale

(PHP 4 <= 4.3.2)

swf_scale -- Scale the current transformation

Description

void swf_scale ( double x, double y, double z)

The swf_scale() scales the x coordinate of the curve by the value of the x parameter, the y coordinate of the curve by the value of the y parameter, and the z coordinate of the curve by the value of the z parameter.

Anterior | Inicio | Siguiente
swf_rotate | Subir | swf_setfont


swf_setfont

(PHP 4 <= 4.3.2)

swf_setfont -- Change the current font

Description

void swf_setfont ( int fontid)

The swf_setfont() sets the current font to the value given by the fontid parameter.

Anterior | Inicio | Siguiente
swf_scale | Subir | swf_setframe


swf_setframe

(PHP 4 <= 4.3.2)

swf_setframe -- Switch to a specified frame

Description

void swf_setframe ( int framenumber)

The swf_setframe() changes the active frame to the frame specified by framenumber.

Anterior | Inicio | Siguiente
swf_setfont | Subir | swf_shapearc


swf_shapearc

(PHP 4 <= 4.3.2)

swf_shapearc -- Draw a circular arc

Description

void swf_shapearc ( float x, float y, float r, float ang1, float ang2)

The swf_shapeArc() function draws a circular arc from angle A given by the ang1 parameter to angle B given by the ang2 parameter. The center of the circle has an x coordinate given by the x parameter and a y coordinate given by the y, the radius of the circle is given by the r parameter.

Anterior | Inicio | Siguiente
swf_setframe | Subir | swf_shapecurveto3


swf_shapecurveto3

(PHP 4 <= 4.3.2)

swf_shapecurveto3 -- Draw a cubic bezier curve

Description

void swf_shapecurveto3 ( float x1, float y1, float x2, float y2, float x3, float y3)

Draw a cubic bezier curve using the x,y coordinate pairs x1, y1 and x2,y2 as off curve control points and the x,y coordinate x3, y3 as an endpoint. The current position is then set to the x,y coordinate pair given by x3,y3.

Anterior | Inicio | Siguiente
swf_shapearc | Subir | swf_shapecurveto


swf_shapecurveto

(PHP 4 <= 4.3.2)

swf_shapecurveto -- Draw a quadratic bezier curve between two points

Description

void swf_shapecurveto ( float x1, float y1, float x2, float y2)

The swf_shapecurveto() function draws a quadratic bezier curve from the x coordinate given by x1 and the y coordinate given by y1 to the x coordinate given by x2 and the y coordinate given by y2. The current position is then set to the x,y coordinates given by the x2 and y2 parameters

Anterior | Inicio | Siguiente
swf_shapecurveto3 | Subir | swf_shapefillbitmapclip


swf_shapefillbitmapclip

(PHP 4 <= 4.3.2)

swf_shapefillbitmapclip -- Set current fill mode to clipped bitmap

Description

void swf_shapefillbitmapclip ( int bitmapid)

Sets the fill to bitmap clipped, empty spaces will be filled by the bitmap given by the bitmapid parameter.

Anterior | Inicio | Siguiente
swf_shapecurveto | Subir | swf_shapefillbitmaptile


swf_shapefillbitmaptile

(PHP 4 <= 4.3.2)

swf_shapefillbitmaptile -- Set current fill mode to tiled bitmap

Description

void swf_shapefillbitmaptile ( int bitmapid)

Sets the fill to bitmap tile, empty spaces will be filled by the bitmap given by the bitmapid parameter (tiled).

Anterior | Inicio | Siguiente
swf_shapefillbitmapclip | Subir | swf_shapefilloff


swf_shapefilloff

(PHP 4 <= 4.3.2)

swf_shapefilloff -- Turns off filling

Description

void swf_shapefilloff ( void )

The swf_shapeFillOff() function turns off filling for the current shape.

Anterior | Inicio | Siguiente
swf_shapefillbitmaptile | Subir | swf_shapefillsolid


swf_shapefillsolid

(PHP 4 <= 4.3.2)

swf_shapefillsolid -- Set the current fill style to the specified color

Description

void swf_shapefillsolid ( float r, float g, float b, float a)

The swf_shapeFillSolid() function sets the current fill style to solid, and then sets the fill color to the values of the rgba parameters.

Anterior | Inicio | Siguiente
swf_shapefilloff | Subir | swf_shapelinesolid


swf_shapelinesolid

(PHP 4 <= 4.3.2)

swf_shapelinesolid -- Set the current line style

Description

void swf_shapelinesolid ( float r, float g, float b, float a, float width)

The swf_shapelinesolid() function sets the current line style to the color of the rgba parameters and width to the width parameter. If 0.0 is given as a width then no lines are drawn.

Anterior | Inicio | Siguiente
swf_shapefillsolid | Subir | swf_shapelineto


swf_shapelineto

(PHP 4 <= 4.3.2)

swf_shapelineto -- Draw a line

Description

void swf_shapelineto ( float x, float y)

The swf_shapeLineTo() draws a line to the x,y coordinates given by the x parameter & the y parameter. The current position is then set to the x,y parameters.

Anterior | Inicio | Siguiente
swf_shapelinesolid | Subir | swf_shapemoveto


swf_shapemoveto

(PHP 4 <= 4.3.2)

swf_shapemoveto -- Move the current position

Description

void swf_shapemoveto ( float x, float y)

The swf_shapeMoveTo() function moves the current position to the x coordinate given by the x parameter and the y position given by the y parameter.

Anterior | Inicio | Siguiente
swf_shapelineto | Subir | swf_showframe


swf_showframe

(PHP 4 <= 4.3.2)

swf_showframe -- Display the current frame

Description

void swf_showframe ( void )

The swf_showframe function will output the current frame.

Anterior | Inicio | Siguiente
swf_shapemoveto | Subir | swf_startbutton


swf_startbutton

(PHP 4 <= 4.3.2)

swf_startbutton -- Start the definition of a button

Description

void swf_startbutton ( int objid, int type)

The swf_startbutton() function starts off the definition of a button. The type parameter can either be TYPE_MENUBUTTON or TYPE_PUSHBUTTON. The TYPE_MENUBUTTON constant allows the focus to travel from the button when the mouse is down, TYPE_PUSHBUTTON does not allow the focus to travel when the mouse is down.

Anterior | Inicio | Siguiente
swf_showframe | Subir | swf_startdoaction


swf_startdoaction

(PHP 4 <= 4.3.2)

swf_startdoaction -- Start a description of an action list for the current frame

Description

void swf_startdoaction ( void )

The swf_startdoaction() function starts the description of an action list for the current frame. This must be called before actions are defined for the current frame.

Anterior | Inicio | Siguiente
swf_startbutton | Subir | swf_startshape


swf_startshape

(PHP 4 <= 4.3.2)

swf_startshape -- Start a complex shape

Description

void swf_startshape ( int objid)

The swf_startshape() function starts a complex shape, with an object id given by the objid parameter.

Anterior | Inicio | Siguiente
swf_startdoaction | Subir | swf_startsymbol


swf_startsymbol

(PHP 4 <= 4.3.2)

swf_startsymbol -- Define a symbol

Description

void swf_startsymbol ( int objid)

Define an object id as a symbol. Symbols are tiny flash movies that can be played simultaneously. The objid parameter is the object id you want to define as a symbol.

Anterior | Inicio | Siguiente
swf_startshape | Subir | swf_textwidth


swf_textwidth

(PHP 4 <= 4.3.2)

swf_textwidth -- Get the width of a string

Description

float swf_textwidth ( string str)

The swf_textwidth() function gives the width of the string, str, in pixels, using the current font and font size.

Anterior | Inicio | Siguiente
swf_startsymbol | Subir | swf_translate


swf_translate

(PHP 4 <= 4.3.2)

swf_translate -- Translate the current transformations

Description

void swf_translate ( double x, double y, double z)

The swf_translate() function translates the current transformation by the x, y, and z values given.

Anterior | Inicio | Siguiente
swf_textwidth | Subir | swf_viewport


swf_viewport

(PHP 4 <= 4.3.2)

swf_viewport -- Select an area for future drawing

Description

void swf_viewport ( double xmin, double xmax, double ymin, double ymax)

The swf_viewport() function selects an area for future drawing for xmin to xmax and ymin to ymax, if this function is not called the area defaults to the size of the screen.

Anterior | Inicio | Siguiente
swf_translate | Subir | Funciones SNMP


Funciones SNMP

Manual de PHP
Anterior Siguiente

XCIX. Funciones SNMP

Para usar las funciones SNMP en Unix necesita instalar el paquete UCD SNMP. En Windows estas funciones están solamente disponibles en NT y no en Win95/98.

Importante: Para usar el paquete UCD SNMP, necesita definir NO_ZEROLENGTH_COMMUNITY a 1 antes de compilarlo. Despues de configurar UCD SNMP, edite config.h y busque NO_ZEROLENGTH_COMMUNITY. Descomente la línea #define. Debería de verse como sigue:

#define NO_ZEROLENGTH_COMMUNITY 1

Si ve faltas de segmentación desconocidas en combinación con los comandos SNMP, no siga las siguientes instrucciones. Si no desea recompilar UCD SNMP, puede compilar PHP con la opción --enable-ucd-snmp-hack la cual trabajará entorno a las mismas características.

Tabla de contenidos
snmp_get_quick_print -- Va a buscar el valor actual de la biblioteca UCD estableciendo quick_print
snmp_set_quick_print -- Establece el valor de quick_print con el de la biblioteca UCD SNMP.
snmpget -- Va a buscar un objeto SNMP
snmprealwalk -- Return all objects including their respective object ID within the specified one
snmpset -- Va a buscar un objeto SNMP
snmpwalk -- Busqueda por un arbol de información acerca de un entidad de red
snmpwalkoid -- Busqueda por un arbol de información acerca de un entidad de red

Anterior | Inicio | Siguiente
swf_viewport | Subir | snmp_get_quick_print


snmp_get_quick_print

(PHP 3>= 3.0.8, PHP 4 )

snmp_get_quick_print -- Va a buscar el valor actual de la biblioteca UCD estableciendo quick_print

Descripción

boolean snmp_get_quick_print ( void )

Delvuele el valor actual almacenado en la biblioteca UCD para quick_print. quick_print está desactivado por defecto.

$quickprint = snmp_get_quick_print();

La llamada a la función superior podría devolver FALSE si quick_print está activo, y TRUE si quick_print está activo.

snmp_get_quick_print() está solamente disponible cuando estemos usando la biblioteca UCD SNMP. Esta función no está disponible cuando estemos usando la biblioteca Windows SNMP.

Ver: snmp_get_quick_print() para una descripción completa de lo que hace quick_print.

Anterior | Inicio | Siguiente
Funciones SNMP | Subir | snmp_set_quick_print


snmp_set_quick_print

(PHP 3>= 3.0.8, PHP 4 )

snmp_set_quick_print -- Establece el valor de quick_print con el de la biblioteca UCD SNMP.

Descripción

void snmp_set_quick_print ( boolean quick_print)

Establece el valor de quick_print con la biblioteca UCD SNMP. Cuando esto está establecido (1), la biblioteca SNMP devolverá valores 'quick printed'. De esta manera sólo el valor será impreso. Cuando quick_print no está activada (por defecto) la biblioteca UCD SNMP imprime información extra incluyendo el tipo del valor (p. Ej. IPAddress o OID). Adicionalmente, si quick_print no está activado, la biblioteca imprime valores hexadecimales adicionales para todas las cadenas de 3 o menos caracteres.

El ajuste de quick_print es generalmente usado cuando usando la información devuelta con anterioridad se muestra.

snmp_set_quick_print(0);
$a = snmpget("127.0.0.1", "public", ".1.3.6.1.2.1.2.2.1.9.1");
echo "$a<BR>\n";
snmp_set_quick_print(1);
$a = snmpget("127.0.0.1", "public", ".1.3.6.1.2.1.2.2.1.9.1");
echo "$a<BR>\n";

El primer valor impreso debe de ser: 'Timeticks: (0) 0:00:00.00', donde qick_print se activa, solo se imprimira '0:00:00.00'.

Por defecto la biblioteca UCD SNMP devuelve valores detallados, quick_print es usado para devolver solamente el valor.

Las cadenas son mantenidas normalmente con comillas extra, esto será corregido en versiones posteriores.

snmp_get_quick_print() está sólo disponible cuando estemos usando la biblioteca UCD SNMP. Esta función no está disponible cuando estemos usando la biblioteca Windows SNMP.

Anterior | Inicio | Siguiente
snmp_get_quick_print | Subir | snmpget


snmpget

(PHP 3, PHP 4 )

snmpget -- Va a buscar un objeto SNMP

Descripción

string snmpget ( string hostname, string community, string object_id [, int timeout [, int retries]])

Devuelve el valor de un objeto SNMP en caso de exito y FALSE en caso de error.

La función snmpget() es usada para leer el valor de un objeto SNMP especificado por el object_id. El agente SNMP es especificado por el hostname y la comunidad lectora es especificada por el parametro community.

$syscontact = snmpget("127.0.0.1", "public", "system.SysContact.0")

Anterior | Inicio | Siguiente
snmp_set_quick_print | Subir | snmprealwalk


snmprealwalk

(PHP 3>= 3.0.8, PHP 4 )

snmprealwalk -- Return all objects including their respective object ID within the specified one

Description

array snmprealwalk ( string host, string community, string object_id [, int timeout [, int retries]])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
snmpget | Subir | snmpset


snmpset

(PHP 3>= 3.0.12, PHP 4 )

snmpset -- Va a buscar un objeto SNMP

Descripción

string snmpget ( string hostname, string community, string object_id, string type, mixed value [, int timeout [, int retries]])

Establece el valor especificado para el objeto SNMP, devolviendo TRUE en caso de exito o FALSE en caso de error.

La función snmpset() es usada para establecer el valor de un objeto SNMP especificado por el object_id. El agente SNMP es espcificado por el hostname y la comunidad lectora por el parametro community.

Anterior | Inicio | Siguiente
snmprealwalk | Subir | snmpwalk


snmpwalk

(PHP 3, PHP 4 )

snmpwalk -- Busqueda por un arbol de información acerca de un entidad de red

Descripción

array snmpwalk ( string hostname, string community, string object_id [, int timeout [, int retries]])

Devuelve una matriz de valores de objetos SMNP comenzando por el object_id() como raíz y FALSE en caso de error.

La función snmpwalk() es usada para leer todos los valores de un agente SNMP especificado por el hostname. Community especifica la comunidad lectora para el agente. Un object_id nulo se toma como la raíz del arbol de los objetos SNMP y todos los objetos por debajo de ese arbol son devueltos como una matriz. Si object_id es especificado, todos los objetos SNMP por debajo de object_id son devueltos.

$a = snmpwalk("127.0.0.1", "public", "");

Encima de una función de llamada podrían devolverse todos los objetos SNMP del agente SNMP en ejecución en el servidor local. Uno puede pasar por todos los valores con un bucle.

for ($i=0; $i<count($a); $i++) {
    echo $a[$i];
}

Anterior | Inicio | Siguiente
snmpset | Subir | snmpwalkoid


snmpwalkoid

(PHP 3>= 3.0.8, PHP 4 )

snmpwalkoid -- Busqueda por un arbol de información acerca de un entidad de red

Descripción

array snmpwalkoid ( string hostname, string community, string object_id [, int timeout [, int retries]])

Devuelve una matriz asociativa con los identificadores de los objetos y sus respectivos valores comenzando por el object_id como raíz y FALSE en caso de error.

La función snmpwalkoid() es usada para leer todos los identificadores de objetos y sus respectivos valores de un agente SNMP especificado por el nombre del servidor. La lectura de community especifica la comunidad para el agente. Un object_id nulo es tomado como la raíz del arbol de objetos SNMP y todos los objetos por debajo de este arbol son devueltos como una matriz. Si object_id es especificado, todos los objetos SNMP inferiores al object_id son devueltos.

La existencia de snmpwalkoid() y snmpwalk() tiene razones historicas. Ambas funciones son proporcionadas para compatibilidad hacia atrás.

$a = snmpwalkoid("127.0.0.1", "public", "");

La llamada a las funciones superiores devuelve todos los objetos SNMP del agente SNMP en ejecución en el servidor local. Uno puede pasar por todos los valores con un bucle.

for (reset($a); $i = key($a); next($a)) {
    echo "$i: $a[$i]<br>\n";
}

Anterior | Inicio | Siguiente
snmpwalk | Subir | Socket functions


Socket functions

Manual de PHP
Anterior Siguiente

C. Socket functions

Aviso

Esta extensión es EXPERIMENTAL. Esto significa que el comportamiento de esta extensión, los nombre de sus funciones y en definitiva TODO lo documentado sobre esta extensión, puede cambiar en una futura versión de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

The socket extension implements a low-level interface to the socket communication functions, providing the possibility to act as a socket server as well as a client.

For a more generic client-side socket interface, see fsockopen() and pfsockopen().

When using the socket functions described here, it is important to remember that while many of them have identical names to their C counterparts, they often have different declarations. Please be sure to read the descriptions to avoid confusion.

That said, those unfamiliar with socket programming can still find a lot of useful material in the appropriate Unix man pages, and there is a great deal of tutorial information on socket programming in C on the web, much of which can be applied, with slight modifications, to socket programming in PHP.

Ejemplo 1. Socket example: Simple TCP/IP server

This example shows a simple talkback server. Change the address and port variables to suit your setup and execute. You may then connect to the server with a command similar to: telnet 192.168.1.53 10000 (where the address and port match your setup). Anything you type will then be output on the server side, and echoed back to you. To disconnect, enter 'quit'.

<?php
error_reporting(E_ALL);

/* Allow the script to hang around waiting for connections. */
set_time_limit(0);

$address = '192.168.1.53';
$port = 10000;

if (($sock = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
    echo "socket() failed: reason: " . strerror($sock) . "\n";
}

if (($ret = bind($sock, $address, $port)) < 0) {
    echo "bind() failed: reason: " . strerror($ret) . "\n";
}

if (($ret = listen($sock, 5)) < 0) {
    echo "listen() failed: reason: " . strerror($ret) . "\n";
}

do {
    if (($msgsock = accept_connect($sock)) < 0) {
        echo "accept_connect() failed: reason: " . strerror($msgsock) . "\n";
        break;
    }
    do {
        $buf = '';
        $ret = read($msgsock, $buf, 2048);
        if ($ret < 0) {
            echo "read() failed: reason: " . strerror($ret) . "\n";
            break 2;
        }
        if ($ret == 0) {
            break 2;
        }
        $buf = trim($buf);
        if ($buf == 'quit') {
            close($msgsock);
            break 2;
        }
        $talkback = "PHP: You said '$buf'.\n";
        write($msgsock, $talkback, strlen($talkback));
        echo "$buf\n";
    } while (true);
    close($msgsock);
} while (true);

close($sock);
?>

Ejemplo 2. Socket example: Simple TCP/IP client

This example shows a simple, one-shot HTTP client. It simply connects to a page, submits a HEAD request, echoes the reply, and exits.

<?php
error_reporting(E_ALL);

echo "<h2>TCP/IP Connection</h2>\n";

/* Get the port for the WWW service. */
$service_port = getservbyname('www', 'tcp');

/* Get the IP address for the target host. */
$address = gethostbyname('www.php.net');

/* Create a TCP/IP socket. */
$socket = socket(AF_INET, SOCK_STREAM, 0);
if ($socket < 0) {
    echo "socket() failed: reason: " . strerror($socket) . "\n";
} else {
    "socket() successful: " . strerror($socket) . "\n";
}

echo "Attempting to connect to '$address' on port '$service_port'...";
$result = connect($socket, $address, $service_port);
if ($result < 0) {
    echo "connect() failed.\nReason: ($result) " . strerror($result) . "\n";
} else {
    echo "OK.\n";
}

$in = "HEAD / HTTP/1.0\r\n\r\n";
$out = '';

echo "Sending HTTP HEAD request...";
write($socket, $in, strlen($in));
echo "OK.\n";

echo "Reading response:\n\n";
while (read($socket, $out, 2048)) {
    echo $out;
}

echo "Closing socket...";
close($socket);
echo "OK.\n\n";
?>

Tabla de contenidos
socket_accept -- Accepts a connection on a socket
socket_bind -- Binds a name to a socket
socket_clear_error -- Clears the error on the socket or the last error code
socket_close -- Closes a socket resource
socket_connect -- Initiates a connection on a socket
socket_create_listen -- Opens a socket on port to accept connections
socket_create_pair -- Creates a pair of indistinguishable sockets and stores them in fds.
socket_create -- Create a socket (endpoint for communication)
socket_get_option -- Gets socket options for the socket
socket_getpeername -- Queries the remote side of the given socket which may either result in host/port or in a UNIX filesystem path, dependent on its type.
socket_getsockname -- Queries the local side of the given socket which may either result in host/port or in a UNIX filesystem path, dependent on its type.
socket_iovec_add -- Adds a new vector to the scatter/gather array
socket_iovec_alloc -- Builds a 'struct iovec' for use with sendmsg, recvmsg, writev, and readv
socket_iovec_delete -- Deletes a vector from an array of vectors
socket_iovec_fetch -- Returns the data held in the iovec specified by iovec_id[iovec_position]
socket_iovec_free -- Frees the iovec specified by iovec_id
socket_iovec_set -- Sets the data held in iovec_id[iovec_position] to new_val
socket_last_error -- Returns the last error on the socket
socket_listen -- Listens for a connection on a socket
socket_read -- Reads a maximum of length bytes from a socket
socket_readv -- Reads from an fd, using the scatter-gather array defined by iovec_id
socket_recv -- Receives data from a connected socket
socket_recvfrom -- Receives data from a socket, connected or not
socket_recvmsg -- Used to receive messages on a socket, whether connection-oriented or not
socket_select -- Runs the select() system call on the given arrays of sockets with a specified timeout
socket_send -- Sends data to a connected socket
socket_sendmsg -- Sends a message to a socket, regardless of whether it is connection-oriented or not
socket_sendto -- Sends a message to a socket, whether it is connected or not
socket_set_block -- Sets blocking mode on a socket resource
socket_set_nonblock -- Sets nonblocking mode for file descriptor fd
socket_set_option -- Sets socket options for the socket
socket_shutdown -- Shuts down a socket for receiving, sending, or both.
socket_strerror -- Return a string describing a socket error
socket_write -- Write to a socket
socket_writev -- Writes to a file descriptor, fd, using the scatter-gather array defined by iovec_id

Anterior | Inicio | Siguiente
snmpwalkoid | Subir | socket_accept


socket_accept

(PHP 4 >= 4.1.0)

socket_accept -- Accepts a connection on a socket

Description

resource socket_accept ( resource socket)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

After the socket socket has been created using socket_create(), bound to a name with socket_bind(), and told to listen for connections with socket_listen(), this function will accept incoming connections on that socket. Once a successful connection is made, a new socket resource is returned, which may be used for communication. If there are multiple connections queued on the socket, the first will be used. If there are no pending connections, socket_accept() will block until a connection becomes present. If socket has been made non-blocking using socket_set_blocking() or socket_set_nonblock(), FALSE will be returned.

The socket resource returned by socket_accept() may not be used to accept new connections. The original listening socket socket, however, remains open and may be reused.

Returns a new socket resource on success, or FALSE on error. The actual error code can be retrieved by calling socket_last_error(). This error code may be passed to socket_strerror() to get a textual explanation of the error.

See also
socket_bind(),
socket_connect(),
socket_listen(),
socket_create(), and
socket_strerror().

Anterior | Inicio | Siguiente
Socket functions | Subir | socket_bind


socket_bind

(PHP 4 >= 4.1.0)

socket_bind -- Binds a name to a socket

Description

bool socket_bind ( resource socket, string address [, int port])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

socket_bind() binds the name given in address to the socket described by socket, which must be a valid socket resource created with socket_create().

The address parameter is either an IP address in dotted-quad notation (e.g. 127.0.0.1), if the socket is of the AF_INET family; or the pathname of a Unix-domain socket, if the socket family is AF_UNIX.

The port parameter is only used when connecting to an AF_INET socket, and designates the port on the remote host to which a connection should be made.

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo. The error code can be retrieved with socket_last_error(). This code may be passed to socket_strerror() to get a textual explanation of the error. Note that socket_last_error() is reported to return an invalid error code in case you are trying to bind the socket to a wrong address that does not belong to your Windows 9x/ME machine.

See also
socket_connect(),
socket_listen(),
socket_create(),
socket_last_error() and
socket_strerror().

Anterior | Inicio | Siguiente
socket_accept | Subir | socket_clear_error


socket_clear_error

(PHP 4 >= 4.2.0)

socket_clear_error -- Clears the error on the socket or the last error code

Description

void socket_clear_error ( [resource socket])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

This function clears the error code on the given socket or the global last socket error.

This function allows explicitely resetting the error code value either of a socket or of the extension global last error code. This may be useful to detect within a part of the application if an error occured or not.

See also socket_last_error() and socket_strerror().

Anterior | Inicio | Siguiente
socket_bind | Subir | socket_close


socket_close

(PHP 4 >= 4.1.0)

socket_close -- Closes a socket resource

Description

void socket_close ( resource socket)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

socket_close() closes the socket resource given by socket.

Nota: socket_close() can't be used on PHP file resources created with fopen(), popen(), fsockopen(), or pfsockopen(); it is meant for sockets created with socket_create() or socket_accept().

See also socket_bind(), socket_listen(),
socket_create() and
socket_strerror().

Anterior | Inicio | Siguiente
socket_clear_error | Subir | socket_connect


socket_connect

(PHP 4 >= 4.1.0)

socket_connect -- Initiates a connection on a socket

Description

bool socket_connect ( resource socket, string address [, int port])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Initiates a connection using the socket resource socket, which must be a valid socket resource created with socket_create().

The address parameter is either an IP address in dotted-quad notation (e.g. 127.0.0.1), if the socket is of the AF_INET family; or the pathname of a Unix-domain socket, if the socket family is AF_UNIX.

The port parameter is only used when connecting to an AF_INET socket, and designates the port on the remote host to which a connection should be made.

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo. The error code can be retrieved with socket_last_error(). This code may be passed to socket_strerror() to get a textual explanation of the error.

See also
socket_bind(),
socket_listen(),
socket_create(),
socket_last_error() and
socket_strerror().

Anterior | Inicio | Siguiente
socket_close | Subir | socket_create_listen


socket_create_listen

(PHP 4 >= 4.1.0)

socket_create_listen -- Opens a socket on port to accept connections

Description

resource socket_create_listen ( int port [, int backlog])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

This function is meant to ease the task of creating a new socket which only listens to accept new connections.

socket_create_listen() create a new socket resource of type AF_INET listening on all local interfaces on the given port waiting for new connections.

The backlog parameter defines the maximum length the queue of pending connections may grow to. SOMAXCONN may be passed as backlog parameter, see socket_listen() for more information.

socket_create_listen() returns a new socket resource on success or FALSE on error. The error code can be retrieved with socket_last_error(). This code may be passed to socket_strerror() to get a textual explanation of the error.

Nota: If you want to create a socket which only listens on a certain interfaces you need to use socket_create(), socket_bind() and socket_listen().

See also
socket_create(),
socket_bind(),
socket_listen(),
socket_last_error() and
socket_strerror().

Anterior | Inicio | Siguiente
socket_connect | Subir | socket_create_pair


socket_create_pair

(PHP 4 >= 4.1.0)

socket_create_pair -- Creates a pair of indistinguishable sockets and stores them in fds.

Description

bool socket_create_pair ( int domain, int type, int protocol, array &fd)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
socket_create_listen | Subir | socket_create


socket_create

(PHP 4 >= 4.1.0)

socket_create -- Create a socket (endpoint for communication)

Description

resource socket_create ( int domain, int type, int protocol)

Creates and returns a socket resource, also referred to as an endpoint of communication. A typical network connection is made up of 2 sockets, one performing the role of the client, and another performing the role of the server.

The domain parameter specifies the protocol family to be used by the socket.

Tabla 1. Available address/protocol families

Domain | Description
AF_INET | IPv4 Internet based protocols. TCP and UDP are common protocols of this protocol family.
AF_INET6 | IPv6 Internet based protocols. TCP and UDP are common protocols of this protocol family. Support added in PHP 5.0.0.
AF_UNIX | Local communication protocol family. High efficiency and low overhead make it a great form of IPC (Interprocess Communication).

The type parameter selects the type of communication to be used by the socket.

Tabla 2. Available socket types

Type | Description
SOCK_STREAM | Provides sequenced, reliable, full-duplex, connection-based byte streams. An out-of-band data transmission mechanism may be supported. The TCP protocol is based on this socket type.
SOCK_DGRAM | Supports datagrams (connectionless, unreliable messages of a fixed maximum length). The UDP protocol is based on this socket type.
SOCK_SEQPACKET | Provides a sequenced, reliable, two-way connection-based data transmission path for datagrams of fixed maximum length; a consumer is required to read an entire packet with each read call.
SOCK_RAW | Provides raw network protocol access. This special type of socket can be used to manually construct any type of protocol. A common use for this socket type is to perform ICMP requests (like ping, traceroute, etc).
SOCK_RDM | Provides a reliable datagram layer that does not guarantee ordering. This is most likely not implemented on your operating system.

The protocol parameter sets the specific protocol within the specified domain to be used when communicating on the returned socket. The proper value can be retrieved by name by using getprotobyname(). If the desired protocol is TCP, or UDP the corresponding constants SOL_TCP, and SOL_UDP can also be used.

Tabla 3. Common protocols

Name | Description
icmp | The Internet Control Message Protocol is used primarily by gateways and hosts to report errors in datagram communication. The "ping" command (present in most modern operating systems) is an example application of ICMP.
udp | The User Datagram Protocol is a connectionless, unreliable, protocol with fixed record lengths. Due to these aspects, UDP requires a minimum amount of protocol overhead.
tcp | The Transmission Control Protocol is a reliable, connection based, stream oriented, full duplex protocol. TCP guarantees that all data packets will be received in the order in which they were sent. If any packet is somehow lost during communication, TCP will automatically retransmit the packet until the destination host acknowledges that packet. For reliability and performance reasons, the TCP implementation itself decides the appropriate octet boundaries of the underlying datagram communication layer. Therefore, TCP applications must allow for the possibility of partial record transmission.

socket_create() Returns a socket resource on success, or FALSE on error. The actual error code can be retrieved by calling socket_last_error(). This error code may be passed to socket_strerror() to get a textual explanation of the error.

Nota: If an invalid domain or type is given, socket_create() defaults to AF_INET and SOCK_STREAM respectively and additionally emits an E_WARNING message.

See also
socket_accept(),
socket_bind(),
socket_connect(),
socket_listen(),
socket_last_error(), and
socket_strerror().

Anterior | Inicio | Siguiente
socket_create_pair | Subir | socket_get_option


socket_get_option

(PHP 4 >= 4.3.0)

socket_get_option -- Gets socket options for the socket

Description

mixed socket_get_option ( resource socket, int level, int optname)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Nota: This function used to be called socket_getopt() prior to PHP 4.3.0

Anterior | Inicio | Siguiente
socket_create | Subir | socket_getpeername


socket_getpeername

(PHP 4 >= 4.1.0)

socket_getpeername -- Queries the remote side of the given socket which may either result in host/port or in a UNIX filesystem path, dependent on its type.

Description

bool socket_getpeername ( resource socket, string &addr [, int &port])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

If the given socket is of type AF_INET or AF_INET6, socket_getpeername() will return the peers (remote) IP address in appropriate notation (e.g. 127.0.0.1 or fe80::1) in the address parameter and, if the optional port parameter is present, also the associated port.

If the given socket is of type AF_UNIX, socket_getpeername() will return the UNIX filesystem path (e.g. /var/run/daemon.sock) in the address parameter.

Nota: socket_getpeername() should not be used with AF_UNIX sockets created with socket_accept(). Only sockets created with socket_connect() or a primary server socket following a call to socket_bind() will return meaningful values.

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo. socket_getpeername() may also return FALSE if the socket type is not any of AF_INET, AF_INET6, or AF_UNIX, in which case the last socket error code is not updated.

See also
socket_getsockname(),
socket_last_error() and
socket_strerror().

Anterior | Inicio | Siguiente
socket_get_option | Subir | socket_getsockname


socket_getsockname

(PHP 4 >= 4.1.0)

socket_getsockname -- Queries the local side of the given socket which may either result in host/port or in a UNIX filesystem path, dependent on its type.

Description

bool socket_getsockname ( resource socket, string &addr [, int &port])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

If the given socket is of type AF_INET or AF_INET6, socket_getsockname() will return the local IP address in appropriate notation (e.g. 127.0.0.1 or fe80::1) in the address parameter and, if the optional port parameter is present, also the associated port.

If the given socket is of type AF_UNIX, socket_getsockname() will return the UNIX filesystem path (e.g. /var/run/daemon.sock) in the address parameter.

Nota: socket_getsockname() should not be used with AF_UNIX sockets created with socket_connect(). Only sockets created with socket_accept() or a primary server socket following a call to socket_bind() will return meaningful values.

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo. socket_getsockname() may also return FALSE if the socket type is not any of AF_INET, AF_INET6, or AF_UNIX, in which case the last socket error code is not updated.

See also
socket_getpeername(),
socket_last_error() and
socket_strerror().

Anterior | Inicio | Siguiente
socket_getpeername | Subir | socket_iovec_add


socket_iovec_add

(PHP 4 >= 4.1.0)

socket_iovec_add -- Adds a new vector to the scatter/gather array

Description

bool socket_iovec_add ( resource iovec, int iov_len)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
socket_getsockname | Subir | socket_iovec_alloc


socket_iovec_alloc

(PHP 4 >= 4.1.0)

socket_iovec_alloc -- Builds a 'struct iovec' for use with sendmsg, recvmsg, writev, and readv

Description

resource socket_iovec_alloc ( int num_vectors [, int ])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
socket_iovec_add | Subir | socket_iovec_delete


socket_iovec_delete

(PHP 4 >= 4.1.0)

socket_iovec_delete -- Deletes a vector from an array of vectors

Description

bool socket_iovec_delete ( resource iovec, int iov_pos)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
socket_iovec_alloc | Subir | socket_iovec_fetch


socket_iovec_fetch

(PHP 4 >= 4.1.0)

socket_iovec_fetch -- Returns the data held in the iovec specified by iovec_id[iovec_position]

Description

string socket_iovec_fetch ( resource iovec, int iovec_position)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
socket_iovec_delete | Subir | socket_iovec_free


socket_iovec_free

(PHP 4 >= 4.1.0)

socket_iovec_free -- Frees the iovec specified by iovec_id

Description

bool socket_iovec_free ( resource iovec)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
socket_iovec_fetch | Subir | socket_iovec_set


socket_iovec_set

(PHP 4 >= 4.1.0)

socket_iovec_set -- Sets the data held in iovec_id[iovec_position] to new_val

Description

bool socket_iovec_set ( resource iovec, int iovec_position, string new_val)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
socket_iovec_free | Subir | socket_last_error


socket_last_error

(PHP 4 >= 4.1.0)

socket_last_error -- Returns the last error on the socket

Description

int socket_last_error ( [resource socket])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

This function returns a socket error code.

If a socket resource is passed to this function, the last error which occured on this particular socket is returned. If the socket resource is ommited, the error code of the last failed socket function is returned. The latter is in particular helpful for functions like socket_create() which don't return a socket on failure and socket_select() which can fail for reasons not directly tied to a particular socket. The error code is suitable to be fed to socket_strerror() which returns a string describing the given error code.
<?php
if (false == ($socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP))) {
    die("Couldn't create socket, error code is: " . socket_last_error() .
        ",error message is: " . socket_strerror(socket_last_error()));
}
?>

Nota: socket_last_error() does not clear the error code, use socket_clear_error() for this purpose.

Anterior | Inicio | Siguiente
socket_iovec_set | Subir | socket_listen


socket_listen

(PHP 4 >= 4.1.0)

socket_listen -- Listens for a connection on a socket

Description

bool socket_listen ( resource socket [, int backlog])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

After the socket socket has been created using socket_create() and bound to a name with socket_bind(), it may be told to listen for incoming connections on socket.

A maximum of backlog incoming connections will be queued for processing. If a connection request arrives with the queue full the client may receive an error with an indication of ECONNREFUSED, or, if the underlying protocol supports retransmission, the request may be ignored so that retries may succeed.

Nota: The maximum number passed to the backlog parameter highly depends on the underlying platform. On linux, it is silently truncated to SOMAXCONN. On win32, if passed SOMAXCONN, the underlying service provider responsible for the socket will set the backlog to a maximum reasonable value. There is no standard provision to find out the actual backlog value on this platform.

socket_listen() is applicable only to sockets of type SOCK_STREAM or SOCK_SEQPACKET.

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo. The error code can be retrieved with socket_last_error(). This code may be passed to socket_strerror() to get a textual explanation of the error.

See also
socket_accept(),
socket_bind(),
socket_connect(),
socket_create() and
socket_strerror().

Anterior | Inicio | Siguiente
socket_last_error | Subir | socket_read


socket_read

(PHP 4 >= 4.1.0)

socket_read -- Reads a maximum of length bytes from a socket

Description

string socket_read ( resource socket, int length [, int type])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

The function socket_read() reads from the socket resource socket created by the socket_create() or socket_accept() functions. The maximum number of bytes read is specified by the length parameter. Otherwise you can use \r, \n, or \0 to end reading (depending on the type parameter, see below).

socket_read() returns the data as a string on success, or FALSE on error. The error code can be retrieved with socket_last_error(). This code may be passed to socket_strerror() to get a textual representation of the error.

Nota: socket_read() may return a zero length string ("") indicating the end of communication (i.e. the remote end point has closed the connection).

Optional type parameter is a named constant:

  • PHP_BINARY_READ - use the system read() function. Safe for reading binary data. (Default in PHP >= 4.1.0)

  • PHP_NORMAL_READ - reading stops at \n or \r. (Default in PHP <= 4.0.6)

See also
socket_accept(),
socket_bind(),
socket_connect(),
socket_listen(),
socket_last_error(),
socket_strerror() and
socket_write().

Anterior | Inicio | Siguiente
socket_listen | Subir | socket_readv


socket_readv

(PHP 4 >= 4.1.0)

socket_readv -- Reads from an fd, using the scatter-gather array defined by iovec_id

Description

bool socket_readv ( resource socket, resource iovec_id)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
socket_read | Subir | socket_recv


socket_recv

(PHP 4 >= 4.1.0)

socket_recv -- Receives data from a connected socket

Description

int socket_recv ( resource socket, string &buf, int len, int flags)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
socket_readv | Subir | socket_recvfrom


socket_recvfrom

(PHP 4 >= 4.1.0)

socket_recvfrom -- Receives data from a socket, connected or not

Description

int socket_recvfrom ( resource socket, string &buf, int len, int flags, string &name [, int &port])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
socket_recv | Subir | socket_recvmsg


socket_recvmsg

(PHP 4 >= 4.1.0)

socket_recvmsg -- Used to receive messages on a socket, whether connection-oriented or not

Description

bool socket_recvmsg ( resource socket, resource iovec, array &control, int &controllen, int &flags, string &addr [, int &port])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
socket_recvfrom | Subir | socket_select


socket_select

(PHP 4 >= 4.1.0)

socket_select -- Runs the select() system call on the given arrays of sockets with a specified timeout

Description

int socket_select ( array &read, array &write, array &except, int tv_sec [, int tv_usec])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

socket_select() accepts arrays of sockets and waits for them to change status. Those coming with BSD sockets background will recognize that those socket resource arrays are in fact the so-called file descriptor sets. Three independent arrays of socket resources are watched.

The sockets listed in the read array will be watched to see if characters become available for reading (more precisely, to see if a read will not block - in particular, a socket resource is also ready on end-of-file, in which case a socket_read() will return a zero length string).

The sockets listed in the write array will be watched to see if a write will not block.

The sockets listed in the except array will be watched for exceptions.

Aviso

On exit, the arrays are modified to indicate which socket resource actually changed status.

You do not need to pass every array to socket_select(). You can leave it out and use an empty array or NULL instead. Also do not forget that those arrays are passed by reference and will be modified after socket_select() returns.

Ejemplo 1. socket_select() example

<?php
/* Prepare the read array */
$read = array($socket1, $socket2);

$num_changed_sockets = socket_select($read, $write = NULL, $except = NULL, 0);

if ($num_changed_sockets === false) {
    /* Error handling */
} else if ($num_changed_sockets > 0) {
    /* At least at one of the sockets something interesting happened */
}
?>

Nota: Due a limitation in the current Zend Engine it is not possible to pass a constant modifier like NULL directly as a parameter to a function which expects this parameter to be passed by reference. Instead use a temporary variable or an expression with the leftmost member being a temporary variable:

Ejemplo 2. Using NULL with socket_select()

<?php
socket_select($r, $w, $e = NULL, 0);
?>

The tv_sec and tv_usec together form the timeout parameter. The timeout is an upper bound on the amount of time elapsed before socket_select() return. tv_sec may be zero , causing socket_select() to return immediately. This is useful for polling. If tv_sec is NULL (no timeout), socket_select() can block indefinitely.

On success socket_select() returns the number of socket resorces contained in the modified arrays, which may be zero if the timeout expires before anything interesting happens. On error FALSE is returned. The error code can be retrieved with socket_last_error().

Nota: Be sure to use the === operator when checking for an error. Since the socket_select() may return 0 the comparison with == would evaluate to TRUE:

Ejemplo 3. Understanding socket_select()'s result

<?php
if (false === socket_select($r, $w, $e = NULL, 0)) {
    echo "socket_select() failed, reason: " .
        socket_strerror(socket_last_error()) . "\n";
}
?>

Nota: Be aware that some socket implementations need to be handled very carefully. A few basic rules:

  • You should always try to use socket_select() without timeout. Your program should have nothing to do if there is no data available. Code that depends on timeouts is not usually portable and difficult to debug.

  • No socket resource must be added to any set if you do not intend to check its result after the socket_select() call, and respond appropriately. After socket_select() returns, all socket resources in all arrays must be checked. Any socket resource that is available for writing must be written to, and any socket resource available for reading must be read from.

  • If you read/write to a socket returns in the arrays be aware that they do not necessarily read/write the full amount of data you have requested. Be prepared to even only be able to read/write a single byte.

  • It's common to most socket implementations that the only exception caught with the except array is out-of-bound data received on a socket.

See also
socket_read(),
socket_write(),
socket_last_error() and
socket_strerror().

Anterior | Inicio | Siguiente
socket_recvmsg | Subir | socket_send


socket_send

(PHP 4 >= 4.1.0)

socket_send -- Sends data to a connected socket

Description

int socket_send ( resource socket, string buf, int len, int flags)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

The function socket_send() sends len bytes to the socket socket from buf

The value of flags can be any ORed combination of the following:

Tabla 1. possible values for flags

0x1 | Process OOB (out-of-band) data
0x2 | Peek at incoming message
0x4 | Bypass routing, use direct interface
0x8 | Data completes record
0x100 | Data completes transaction

See also socket_sendmsg() and socket_sendto().

Anterior | Inicio | Siguiente
socket_select | Subir | socket_sendmsg


socket_sendmsg

(PHP 4 >= 4.1.0)

socket_sendmsg -- Sends a message to a socket, regardless of whether it is connection-oriented or not

Description

bool socket_sendmsg ( resource socket, resource iovec, int flags, string addr [, int port])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
socket_send | Subir | socket_sendto


socket_sendto

(PHP 4 >= 4.1.0)

socket_sendto -- Sends a message to a socket, whether it is connected or not

Description

int socket_sendto ( resource socket, string buf, int len, int flags, string addr [, int port])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

The function socket_sendto() sends len bytes from buf through the socket socket to the port at the address addr

The value of flags can be one of the following:

Tabla 1. possible values for flags

0x1 | Process OOB (out-of-band) data.
0x2 | Peek at incoming message.
0x4 | Bypass routing, use direct interface.
0x8 | Data completes record.
0x100 | Data completes transaction.

Ejemplo 1. socket_sendto() Example

<?php
    $sh = socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
    if (socket_bind($sh, '127.0.0.1', 4242)) {
        echo "Socket bound correctly";
    }
    $buf = 'Test Message';
    $len = strlen($buf);
    if (socket_sendto($sh, $buf, $len, 0x100, '192.168.0.2', 4242) !== FALSE) {
        echo "Message sent correctly";
    }
    socket_close($sh);
?>

See also socket_send() and socket_sendmsg().

Anterior | Inicio | Siguiente
socket_sendmsg | Subir | socket_set_block


socket_set_block

(PHP 4 >= 4.2.0)

socket_set_block -- Sets blocking mode on a socket resource

Description

bool socket_set_block ( resource socket)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

See also socket_set_nonblock() and socket_set_option()

Anterior | Inicio | Siguiente
socket_sendto | Subir | socket_set_nonblock


socket_set_nonblock

(PHP 4 >= 4.1.0)

socket_set_nonblock -- Sets nonblocking mode for file descriptor fd

Description

bool socket_set_nonblock ( resource socket)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
socket_set_block | Subir | socket_set_option


socket_set_option

(PHP 4 >= 4.3.0)

socket_set_option -- Sets socket options for the socket

Description

bool socket_set_option ( resource socket, int level, int optname, mixed optval)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Nota: This function used to be called socket_setopt() prior to PHP 4.3.0

Anterior | Inicio | Siguiente
socket_set_nonblock | Subir | socket_shutdown


socket_shutdown

(PHP 4 >= 4.1.0)

socket_shutdown -- Shuts down a socket for receiving, sending, or both.

Description

bool socket_shutdown ( resource socket [, int how])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

The socket_shutdown() function allows you to stop incoming, outgoing or all data (the default) from being sent through the socket

The value of how can be one of the following:

Tabla 1. possible values for how

0 | Shutdown socket reading
1 | Shutdown socket writing
2 | Shutdown socket reading and writing

Anterior | Inicio | Siguiente
socket_set_option | Subir | socket_strerror


socket_strerror

(PHP 4 >= 4.1.0)

socket_strerror -- Return a string describing a socket error

Description

string socket_strerror ( int errno)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

socket_strerror() takes as its errno parameter a socket error code as returned by socket_last_error() and returns the corresponding explanatory text. This makes it a bit more pleasant to figure out why something didn't work; for instance, instead of having to track down a system include file to find out what '-111' means, you just pass it to socket_strerror(), and it tells you what happened.

Ejemplo 1. socket_strerror() example

<?php
if (false == ($socket = @socket_create(AF_INET, SOCK_STREAM, 0))) {
   echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "\n";
}

if (false == (@socket_bind($socket, '127.0.0.1', 80))) {
   echo "socket_bind() failed: reason: " . socket_strerror(socket_last_error($socket)) . "\n";
}
?>

The expected output from the above example (assuming the script is not run with root privileges):
socket_bind() failed: reason: Permission denied

See also
socket_accept(),
socket_bind(),
socket_connect(),
socket_listen(), and
socket_create().

Anterior | Inicio | Siguiente
socket_shutdown | Subir | socket_write


socket_write

(PHP 4 >= 4.1.0)

socket_write -- Write to a socket

Description

int socket_write ( resource socket, string buffer [, int length])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

The function socket_write() writes to the socket socket from buffer.

The optional parameter length can specify an alternate length of bytes written to the socket. If this length is greater then the buffer length, it is silently truncated to the length of the buffer.

Returns the number of bytes successfully written to the socket or FALSE one error. The error code can be retrieved with socket_last_error(). This code may be passed to socket_strerror() to get a textual explanation of the error.

Nota: socket_write() does not necessarily write all bytes from the given buffer. It's valid that, depending on the network buffers etc., only a certain amount of data, even one byte, is written though your buffer is greater. You have to watch out so you don't unintentionally forget to transmit the rest of your data.

Nota: It is perfectly valid for socket_write() to return zero which means no bytes have been written. Be sure to use the === operator to check for FALSE in case of an error.

See also
socket_accept(),
socket_bind(),
socket_connect(),
socket_listen(),
socket_read() and
socket_strerror().

Anterior | Inicio | Siguiente
socket_strerror | Subir | socket_writev


socket_writev

(PHP 4 >= 4.1.0)

socket_writev -- Writes to a file descriptor, fd, using the scatter-gather array defined by iovec_id

Description

bool socket_writev ( resource socket, resource iovec_id)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
socket_write | Subir | Stream functions


Stream functions

Manual de PHP
Anterior Siguiente

CI. Stream functions

Introducción

Streams were introduced with PHP 4.3.0 as a way of generalizing file, network, data compression, and other operations which share a common set of functions and uses. In its simplest definition, a stream is a resource object which exhibits streamable behavior. That is, it can be read from or written to in a linear fashion, and may be able to fseek() to an arbitrary locations within the stream.

A wrapper is additional code which tells the stream how to handle specific protocols/encodings. For example, the http wrapper knows how to translate a URL into an HTTP/1.0 request for a file on a remote server. There are many wrappers built into PHP by default (See Apéndice I), and additional, custom wrappers may be added either within a PHP script using stream_wrapper_register(), or directly from an extension using the API Reference in Capítulo 43. Because any variety of wrapper may be added to PHP, there is no set limit on what can be done with them. To access the list of currently registered wrappers, use stream_get_wrappers().

A stream is referenced as: scheme://target

  • scheme(string) - The name of the wrapper to be used. Examples include: file, http, https, ftp, ftps, compress.zlib, compress.bz2, and php. See Apéndice I for a list of PHP builtin wrappers. If no wrapper is specified, the function default is used (typically file://).

  • target - Depends on the wrapper used. For filesystem related streams this is typically a path and filename of the desired file. For network related streams this is typically a hostname, often with a path appended. Again, see Apéndice I for a description of targets for builtin streams.

Stream Filters

A filter is a final piece of code which may perform operations on data as it is being read from or written to a stream. Any number of filters may be stacked onto a stream. Custom filters can be defined in a PHP script using stream_filter_register() or in an extension using the API Reference in Capítulo 43. To access the list of currently registered filters, use stream_get_filters().

Stream Contexts

A context is a set of parameters and wrapper specific options which modify or enhance the behavior of a stream. Contexts are created using stream_context_create() and can be passed to most filesystem related stream creation functions (i.e. fopen(), file(), file_get_contents(), etc...).

Options can be specified when calling stream_context_create(), or later using stream_context_set_option(). A list of wrapper specific options can be found with the list of built-in wrappers (See Apéndice I).

In addition, parameters may be set on a context using stream_context_set_params(). Currently the only context parameter supported by PHP is notification. The value of this parameter must be the name of a function to be called when an event occurs on a stream. The notification function called during an event should accept the following six parameters:

void my_notifier ( int notification_code, int severity, string message, int message_code, int bytes_transferred, int bytes_max)

notification_code and severity are numerical values which correspond to the STREAM_NOTIFY_* constants listed below. If a descriptive message is available from the stream, message and message_code will be populated with the appropriate values. The meaning of these values is dependent on the specific wrapper in use. bytes_transferred and bytes_max will be populated when applicable.

Instalación

Streams are an integral part of PHP as of version 4.3.0. No steps are required to enable them.

Stream Classes

User designed wrappers can be registered via stream_wrapper_register(), using the class definition shown on that manual page.

class php_user_filter is predefined and is an abstract baseclass for use with user defined filters. See the manual page for stream_filter_register() for details on implementing user defined filters.

Constantes predefinidas

Estas constantes están definidas por esta extensión y estarán disponibles solamente cuando la extensión ha sido o bien compilada dentro de PHP o grabada dinámicamente en tiempo de ejecución.

Constant | Description
STREAM_FILTER_READ | Used with stream_filter_append() and stream_filter_prepend() to indicate that the specified filter should only be applied when reading
STREAM_FILTER_WRITE | Used with stream_filter_append() and stream_filter_prepend() to indicate that the specified filter should only be applied when writing
STREAM_FILTER_ALL | This constant is equivalent to STREAM_FILTER_READ | STREAM_FILTER_WRITE
PSFS_PASS_ON | Return Code indicating that the userspace filter returned buckets in $out.
PSFS_FEED_ME | Return Code indicating that the userspace filter did not return buckets in $out (i.e. No data available).
PSFS_ERR_FATAL | Return Code indicating that the userspace filter encountered an unrecoverable error (i.e. Invalid data received).
STREAM_USE_PATH | Flag indicating if the stream used the include path.
STREAM_REPORT_ERRORS | Flag indicating if the wrapper is responsible for raising errors using trigger_error() during opening of the stream. If this flag is not set, you should not raise any errors.
STREAM_CLIENT_ASYNC_CONNECT | Open client socket asynchronously. Used with stream_socket_client().
STREAM_CLIENT_PERSISTENT | Client socket opened with stream_socket_client() should remain persistent between page loads.
STREAM_SERVER_BIND | Tells a stream created with stream_socket_server() to bind to the specified target. Server sockets should always include this flag.
STREAM_SERVER_LISTEN | Tells a stream created with stream_socket_server() and bound using the STREAM_SERVER_BIND flag to start listening on the socket. Server sockets should always include this flag.
STREAM_NOTIFY_RESOLVE | A remote address required for this stream has been resolved, or the resolution failed. See severity for an indication of which happened.
STREAM_NOTIFY_CONNECT | A connection with an external resource has been established.
STREAM_NOTIFY_AUTH_REQUIRED | Additional authorization is required to access the specified resource. Typical issued with severity level of STREAM_NOTIFY_SEVERITY_ERR.
STREAM_NOTIFY_MIME_TYPE_IS | The mime-type of resource has been identified, refer to message for a description of the discovered type.
STREAM_NOTIFY_FILE_SIZE_IS | The size of the resource has been discovered.
STREAM_NOTIFY_REDIRECTED | The external resource has redirected the stream to an alternate location. Refer to message.
STREAM_NOTIFY_PROGRESS | Indicates current progress of the stream transfer in bytes_transferred and possibly bytes_max as well.
STREAM_NOTIFY_COMPLETED | There is no more data available on the stream.
STREAM_NOTIFY_FAILURE | A generic error occured on the stream, consult message and message_code for details.
STREAM_NOTIFY_AUTH_RESULT | Authorization has been completed (with or without success).
STREAM_NOTIFY_SEVERITY_INFO | Normal, non-error related, notification.
STREAM_NOTIFY_SEVERITY_WARN | Non critical error condition. Processing may continue.
STREAM_NOTIFY_SEVERITY_ERR | A critical error occured. Processing cannot continue.

Stream Errors

As with any file or socket related function, an operation on a stream may fail for a variety of normal reasons (i.e.: Unable to connect to remote host, file not found, etc...). A stream related call may also fail because the desired stream is not registered on the running system. See the array returned by stream_get_wrappers() for a list of streams supported by your installation of PHP. As with most PHP internal functions if a failure occours an E_WARNING message will be generated describing the nature of the error.

Ejemplos

Ejemplo 1. Using file_get_contents() to retrieve data from multiple sources

<?php
/* Read local file from /home/bar */
$localfile = file_get_contents("/home/bar/foo.txt");

/* Identical to above, explicitly naming FILE scheme */
$localfile = file_get_contents("file:///home/bar/foo.txt");

/* Read remote file from www.example.com using HTTP */
$httpfile  = file_get_contents("http://www.example.com/foo.txt");

/* Read remote file from www.example.com using HTTPS */
$httpsfile = file_get_contents("https://www.example.com/foo.txt");

/* Read remote file from ftp.example.com using FTP */
$ftpfile   = file_get_contents("ftp://user:pass@ftp.example.com/foo.txt");

/* Read remote file from ftp.example.com using FTPS */
$ftpsfile  = file_get_contents("ftps://user:pass@ftp.example.com/foo.txt");
?>

Ejemplo 2. Making a POST request to an https server

<?php
/* Send POST request to https://secure.example.com/form_action.php
 * Include form elements named "foo" and "bar" with dummy values
 */

$sock = fsockopen("ssl://secure.example.com", 443, $errno, $errstr, 30);
if (!$sock) die("$errstr ($errno)\n");

$data = "foo=" . urlencode("Value for Foo") . "&bar=" . urlencode("Value for Bar");

fputs($sock, "POST /form_action.php HTTP/1.0\r\n");
fputs($sock, "Host: secure.example.com\r\n");
fputs($sock, "Content-type: application/x-www-form-urlencoded\r\n");
fputs($sock, "Content-length: " . strlen($data) . "\r\n");
fputs($sock, "Accept: */*\r\n");
fputs($sock, "\r\n");
fputs($sock, "$data\r\n");
fputs($sock, "\r\n");

$headers = "";
while ($str = trim(fgets($sock, 4096)))
  $headers .= "$str\n";

print "\n";

$body = "";
while (!feof($sock))
  $body .= fgets($sock, 4096);

fclose($sock);
?>

Ejemplo 3. Writing data to a compressed file

<?php
/* Create a compressed file containing an arbitrarty string
 * File can be read back using compress.zlib stream or just
 * decompressed from the command line using 'gzip -d foo-bar.txt.gz'
 */
$fp = fopen("compress.zlib://foo-bar.txt.gz","wb");
if (!$fp) die("Unable to create file.");

fwrite($fp, "This is a test.\n");

fclose($fp);
?>

Tabla de contenidos
stream_context_create -- Create a streams context
stream_context_get_options -- Retrieve options for a stream/wrapper/context
stream_context_set_option -- Sets an option for a stream/wrapper/context
stream_context_set_params -- Set parameters for a stream/wrapper/context
stream_copy_to_stream -- Copies data from one stream to another
stream_filter_append -- Attach a filter to a stream.
stream_filter_prepend -- Attach a filter to a stream.
stream_filter_register -- Register a stream filter implemented as a PHP class derived from php_user_filter
stream_get_contents -- Reads remainder of a stream into a string
stream_get_filters -- Retrieve list of registered filters
stream_get_line -- Gets line from stream resource up to a given delimiter
stream_get_meta_data -- Retrieves header/meta data from streams/file pointers
stream_get_transports -- Retrieve list of registered socket transports
stream_get_wrappers -- Retrieve list of registered streams
stream_register_wrapper -- Alias of stream_wrapper_register()
stream_select -- Runs the equivalent of the select() system call on the given arrays of streams with a timeout specified by tv_sec and tv_usec
stream_set_blocking -- Set blocking/non-blocking mode on a stream
stream_set_timeout -- Set timeout period on a stream
stream_set_write_buffer -- Sets file buffering on the given stream
stream_socket_accept -- Accept a connection on a socket created by stream_socket_server()
stream_socket_client -- Open Internet or Unix domain socket connection
stream_socket_get_name -- Retrieve the name of the local or remote sockets
stream_socket_recvfrom -- Receives data from a socket, connected or not
stream_socket_sendto -- Sends a message to a socket, whether it is connected or not
stream_socket_server -- Create an Internet or Unix domain server socket
stream_wrapper_register -- Register a URL wrapper implemented as a PHP class

Anterior | Inicio | Siguiente
socket_writev | Subir | stream_context_create


stream_context_create

(PHP 4 >= 4.3.0)

stream_context_create -- Create a streams context

Description

resource stream_context_create ( array options)

Creates and returns a stream context with any options supplied in options preset.

options must be an associative array of associative arrays in the format $arr['wrapper']['option'] = $value.

Ejemplo 1. Using stream_context_create()

<?php
$opts = array(
  'http'=>array(
    'method'=>"GET",
    'header'=>"Accept-language: en\r\n" .
              "Cookie: foo=bar\r\n"
  )
);

$context = stream_context_create($opts);

/* Sends an http request to www.example.com
   with additional headers shown above */
$fp = fopen('http://www.example.com', 'r', false, $context);
fpassthru($fp);
fclose($fp);
?>

See Also: stream_context_set_option(), and Listing of supported wrappers with context options (Apéndice I)

Anterior | Inicio | Siguiente
Stream functions | Subir | stream_context_get_options


stream_context_get_options

(PHP 4 >= 4.3.0)

stream_context_get_options -- Retrieve options for a stream/wrapper/context

Description

array stream_context_get_options ( resource stream|context)

Returns an array of options on the specified stream or context.

Anterior | Inicio | Siguiente
stream_context_create | Subir | stream_context_set_option


stream_context_set_option

(PHP 4 >= 4.3.0)

stream_context_set_option -- Sets an option for a stream/wrapper/context

Description

bool stream_context_set_option ( resource context|stream, string wrapper, string option, mixed value)

Sets an option on the specified context. value is set to option for wrapper

Anterior | Inicio | Siguiente
stream_context_get_options | Subir | stream_context_set_params


stream_context_set_params

(PHP 4 >= 4.3.0)

stream_context_set_params -- Set parameters for a stream/wrapper/context

Description

bool stream_context_set_params ( resource stream|context, array params)

params should be an associative array of the structure: $params['paramname'] = "paramvalue";.

Tabla 1. Parameters

Parameters | Purpose
notification | Name of user-defined callback function to be called whenever a stream triggers a notification.

Anterior | Inicio | Siguiente
stream_context_set_option | Subir | stream_copy_to_stream


stream_copy_to_stream

(PHP 5 CVS only)

stream_copy_to_stream -- Copies data from one stream to another

Description

int stream_copy_to_stream ( resource source, resource dest [, int maxlength])

Makes a copy of up to maxlength bytes of data from the current position in source to dest. If maxlength is not specified, all remaining content in source will be copied. Returns the total count of bytes copied.

Ejemplo 1. stream_copy_to_stream() example

<?php
$src = fopen('http://www.example.com','r');
$dest1 = fopen('first1k.txt','w');
$dest2 = fopen('remainder.txt','w');

print stream_copy_to_stream($src, $dest1, 1024) . " bytes copied to first1k.txt\n";
print stream_copy_to_stream($src, $dest2) . " bytes copied to remainder.txt\n";

?>

See also copy().

Anterior | Inicio | Siguiente
stream_context_set_params | Subir | stream_filter_append


stream_filter_append

(PHP 4 >= 4.3.0)

stream_filter_append -- Attach a filter to a stream.

Description

bool stream_filter_append ( resource stream, string filtername [, int read_write [, mixed params]])

Adds filtername to the list of filters attached to stream. This filter will be added with the specified params to the end of the list and will therefore be called last during stream operations. To add a filter to the beginning of the list, use stream_filter_prepend().

By default, stream_filter_append() will attach the filter to the read filter chain if the file was opened for reading (i.e. File Mode: r, and/or +). The filter will also be attached to the write filter chain if the file was opened for writing (i.e. File Mode: w, a, and/or +). STREAM_FILTER_READ, STREAM_FILTER_WRITE, and/or STREAM_FILTER_ALL can also be passed to the read_write parameter to override this behavior.

Ejemplo 1. Controlling where filters are applied

<?php
/* Open a test file for reading and writing */
$fp = fopen("test.txt","rw");

/* Apply the ROT13 filter to the
 * write filter chain, but not the
 * read filter chain */
stream_filter_append($fp, "string.rot13", STREAM_FILTER_WRITE);

/* Write a simple string to the file
 * it will be ROT13 transformed on the
 * way out */
fwrite($fp, "This is a test\n");

/* Back up to the beginning of the file */
rewind($fp);

/* Read the contents of the file back out.
 * Had the filter been applied to the
 * read filter chain as well, we would see
 * the text ROT13ed back to its original state */
fpassthru($fp);

fclose($fp);

/* Expected Output
   ---------------

Guvf vf n grfg

 */
?>

When using custom (user) filters: stream_filter_register() must be called first in order to register the desired user filter to filtername.

See also stream_filter_register(), and stream_filter_prepend()

Anterior | Inicio | Siguiente
stream_copy_to_stream | Subir | stream_filter_prepend


stream_filter_prepend

(PHP 4 >= 4.3.0)

stream_filter_prepend -- Attach a filter to a stream.

Description

bool stream_filter_prepend ( resource stream, string filtername [, int read_write [, mixed params]])

Adds filtername to the list of filters attached to stream. This filter will be added with the specified params to the beginning of the list and will therefore be called first during stream operations. To add a filter to the end of the list, use stream_filter_append().

By default, stream_filter_prepend() will attach the filter to the read filter chain if the file was opened for reading (i.e. File Mode: r, and/or +). The filter will also be attached to the write filter chain if the file was opened for writing (i.e. File Mode: w, a, and/or +). STREAM_FILTER_READ, STREAM_FILTER_WRITE, and/or STREAM_FILTER_ALL can also be passed to the read_write parameter to override this behavior. See stream_filter_append() for an example of using this parameter.

When using custom (user) filters: stream_filter_register() must be called first in order to register the desired user filter to filtername.

See also stream_filter_register(), and stream_filter_append()

Anterior | Inicio | Siguiente
stream_filter_append | Subir | stream_filter_register


stream_filter_register

(PHP 5 CVS only)

stream_filter_register -- Register a stream filter implemented as a PHP class derived from php_user_filter

Description

bool stream_filter_register ( string filtername, string classname)

stream_filter_register() allows you to implement your own filter on any registered stream used with all the other filesystem functions (such as fopen(), fread() etc.).

To implement a filter, you need to define a class as an extension of php_user_filter with a number of member functions as defined below. When performing read/write operations on the stream to which your filter is attached, PHP will pass the data through your filter (and any other filters attached to that stream) so that the data may be modified as desired. You must implement the methods exactly as described below - doing otherwise will lead to undefined behaviour.

stream_filter_register() will return FALSE if the filtername is already defined.

int filter ( resource in, resource out, int &consumed, bool closing)

This method is called whenever data is read from or written to the attached stream (such as with fread() or fwrite()). in is a resource pointing to a bucket brigade which contains one or more bucket objects containing data to be filtered. out is a resource pointing to a second bucket brigade into which your modified buckets should be placed. consumed, which must always be declared by reference, should be incremented by the length of the data which your filter reads in and alters. In most cases this means you will increment consumed by $bucket->datalen for each $bucket. If the stream is in the process of closing (and therefore this is the last pass through the filterchain), the closing parameter will be set to TRUE The filter method must return one of three values upon completion.

Return Value | Meaning
PSFS_PASS_ON | Filter processed successfully with data available in the out bucket brigade.
PSFS_FEED_ME | Filter processed successfully, however no data was available to return. More data is required from the stream or prior filter.
PSFS_ERR_FATAL (default) | The filter experienced an unrecoverable error and cannot continue.

void oncreate ( void )

This method is called during instantiation of the filter class object. If your filter allocates or initializes any other resources (such as a buffer), this is the place to do it. Your implementation of this method should return FALSE on failure, or TRUE on success.

When your filter is first instantiated, and yourfilter->oncreate() is called, a number of properties will be available as shown in the table below.

Property | Contents
FilterClass->filtername | A string containing the name the filter was instantiated with. Filters may be registered under multiple names or under wildcards. Use this property to determine which name was used.
FilterClass->params | The contents of the params parameter passed to stream_filter_append() or stream_filter_prepend().

void onclose ( void )

This method is called upon filter shutdown (typically, this is also during stream shutdown), and is executed after the flush method is called. If any resources were allocated or initialzed during oncreate this would be the time to destroy or dispose of them.

The example below implements a filter named strtoupper on the foo-bar.txt stream which will capitalize all letter characters written to/read from that stream.

Ejemplo 1. Filter for capitalizing characters on foo-bar.txt stream

<?php

/* Define our filter class */
class strtoupper_filter extends php_user_filter {
  function filter($in, $out, &$consumed, $closing) {
    while ($bucket = stream_bucket_make_writeable($in)) {
      $bucket->data = strtoupper($bucket->data);
      $consumed += $bucket->datalen;
      stream_bucket_append($out, $bucket);
    }
    return PSFS_PASS_ON;
  }
}

/* Register our filter with PHP */
stream_filter_register("strtoupper", "strtoupper_filter")
    or die("Failed to register filter");

$fp = fopen("foo-bar.txt", "w");

/* Attach the registered filter to the stream just opened */
stream_filter_append($fp, "strtoupper");

fwrite($fp, "Line1\n");
fwrite($fp, "Word - 2\n");
fwrite($fp, "Easy As 123\n");

fclose($fp);

/* Read the contents back out
 */
readfile("foo-bar.txt");

/* Output
 * ------

LINE1
WORD - 2
EASY AS 123

 */
?>

Ejemplo 2. Registering a generic filter class to match multiple filter names.

<?php

/* Define our filter class */
class string_filter extends php_user_filter {
  var $mode;

  function filter($in, $out, &$consumed, $closing) {
    while ($bucket = stream_bucket_make_writeable($in)) {
      if ($this->mode == 1) {
        $bucket->data = strtoupper($bucket->data);
      } elseif ($this->mode == 0) {
        $bucket->data = strtoupper($bucket->data);
      }

      $consumed += $bucket->datalen;
      stream_bucket_append($out, $bucket);
    }
    return PSFS_PASS_ON;
  }

  function oncreate() {
    if ($this->filtername == 'str.toupper') {
      $this->mode = 1;
    } elseif ($this->filtername == 'str.tolower') {
      $this->mode = 0;
    } else {
      /* Some other str.* filter was asked for,
         report failure so that PHP will keep looking */
      return false;
    }

    return true;
  }
}

/* Register our filter with PHP */
stream_filter_register("str.*", "string_filter")
    or die("Failed to register filter");

$fp = fopen("foo-bar.txt", "w");

/* Attach the registered filter to the stream just opened
   We could alternately bind to str.tolower here */
stream_filter_append($fp, "str.toupper");

fwrite($fp, "Line1\n");
fwrite($fp, "Word - 2\n");
fwrite($fp, "Easy As 123\n");

fclose($fp);

/* Read the contents back out
 */
readfile("foo-bar.txt");

/* Output
 * ------

LINE1
WORD - 2
EASY AS 123

 */

?>

See Also:
stream_wrapper_register(),
stream_filter_prepend(), and
stream_filter_append()

Anterior | Inicio | Siguiente
stream_filter_prepend | Subir | stream_get_contents


stream_get_contents

(no version information, might be only in CVS)

stream_get_contents -- Reads remainder of a stream into a string

Description

string stream_get_contents ( resource handle [, int maxlength])

Identical to file_get_contents(), except that stream_get_contents() operates on an already open file resource and returns the remaining contents, up to maxlength bytes, in a string.

Nota: Esta función es segura binariamente.

See also:
fgets(),
fread(), and
fpassthru().

Anterior | Inicio | Siguiente
stream_filter_register | Subir | stream_get_filters


stream_get_filters

(PHP 5 CVS only)

stream_get_filters -- Retrieve list of registered filters

Description

array stream_get_filters ( void )

Returns an indexed array containing the name of all stream filters available on the running system.

Ejemplo 1. Using stream_get_filters()

<?php
$streamlist = stream_get_filters();
print_r($streamlist);

/* Output will be similar to the following
   Note: there may be more or fewer
         filters in your version of PHP
   ---------------------------------------
Array (
  [0] => string.rot13
  [1] => string.toupper
  [2] => string.tolower
  [3] => string.base64
  [4] => string.quoted-printable
)
 */
?>

See also stream_filter_register(), and stream_get_wrappers()

Anterior | Inicio | Siguiente
stream_get_contents | Subir | stream_get_line


stream_get_line

(PHP 5 CVS only)

stream_get_line -- Gets line from stream resource up to a given delimiter

Description

string stream_get_line ( resource handle, int length, string ending)

Returns a string of up to length bytes read from the file pointed to by handle. Reading ends when length bytes have been read, when the string specified by ending is found (which is notincluded in the return value), or on EOF (whichever comes first).

If an error occurs, returns FALSE.

This function is nearly identical to fgets() except in that it allows end of line delimiters other than the standard \n, \r, and \r\n, and does not return the delimiter itself.

See also fread(),
fgets(), and
fgetc(),

Anterior | Inicio | Siguiente
stream_get_filters | Subir | stream_get_meta_data


stream_get_meta_data

(PHP 4 >= 4.3.0)

stream_get_meta_data -- Retrieves header/meta data from streams/file pointers

Description

array stream_get_meta_data ( resource stream)

Returns information about an existing stream. The stream can be any stream created by fopen(), fsockopen() and pfsockopen(). The result array contains the following items:

  • timed_out (bool) - TRUE if the stream timed out while waiting for data on the last call to fread() or fgets().

  • blocked (bool) - TRUE if the stream is in blocking IO mode. See socket_set_blocking().

  • eof (bool) - TRUE if the stream has reached end-of-file. Note that for socket streams this member can be TRUE even when unread_bytes is non-zero. To determine if there is more data to be read, use feof() instead of reading this item.

  • unread_bytes (int) - the number of bytes currently contained in the read buffer.

The following items were added in PHP 4.3:

  • stream_type (string) - a label describing the underlying implementation of the stream.

  • wrapper_type (string) - a label describing the protocol wrapper implementation layered over the stream. See Apéndice I for more information about wrappers.

  • wrapper_data (mixed) - wrapper specific data attached to this stream. See Apéndice I for more information about wrappers and their wrapper data.

  • filters (array) - and array containing the names of any filters that have been stacked onto this stream. Filters are currently undocumented.

Nota: This function was introduced in PHP 4.3, but prior to this version, socket_get_status() could be used to retrieve the first four items, for socket based streams only.

In PHP 4.3 and later, socket_get_status() is an alias for this function.

Nota: This function does NOT work on sockets created by the Socket extension.

Anterior | Inicio | Siguiente
stream_get_line | Subir | stream_get_transports


stream_get_transports

(PHP 5 CVS only)

stream_get_transports -- Retrieve list of registered socket transports

Description

array stream_get_transports ( void )

Returns an indexed array containing the name of all socket transports available on the running system.

Ejemplo 1. Using stream_get_transports()

<?php
$xportlist = stream_get_transports();
print_r($xportlist);

/* Output will be similar to the following
   Note: there may be more or fewer
         transports in your version of PHP
   ---------------------------------------
Array (
  [0] => tcp
  [1] => udp
  [2] => unix
  [3] => udg
)
 */
?>

See also stream_get_filters(), and stream_get_wrappers()

Anterior | Inicio | Siguiente
stream_get_meta_data | Subir | stream_get_wrappers


stream_get_wrappers

(PHP 5 CVS only)

stream_get_wrappers -- Retrieve list of registered streams

Description

array stream_get_wrappers ( void )

Returns an indexed array containing the name of all stream wrappers available on the running system.

See also stream_wrapper_register()

Anterior | Inicio | Siguiente
stream_get_transports | Subir | stream_register_wrapper


stream_register_wrapper

stream_register_wrapper -- Alias of stream_wrapper_register()

Description

This function is an alias of stream_wrapper_register(). This function is included for compatability with PHP 4.3.0 and PHP 4.3.1 only. stream_wrapper_register() should be used instead.

Anterior | Inicio | Siguiente
stream_get_wrappers | Subir | stream_select


stream_select

(PHP 4 >= 4.3.0)

stream_select -- Runs the equivalent of the select() system call on the given arrays of streams with a timeout specified by tv_sec and tv_usec

Description

int stream_select ( resource &read, resource &write, resource &except, int tv_sec [, int tv_usec])

The stream_select() function accepts arrays of streams and waits for them to change status. Its operation is equivalent to that of the socket_select() function except in that it acts on streams.

The streams listed in the read array will be watched to see if characters become available for reading (more precisely, to see if a read will not block - in particular, a stream resource is also ready on end-of-file, in which case an fread() will return a zero length string).

The streams listed in the write array will be watched to see if a write will not block.

The streams listed in the except array will be watched for high priority exceptional ("out-of-band") data arriving.

Nota: When stream_select() returns, the arrays read, write and except are modified to indicate which stream resource(s) actually changed status.

The tv_sec and tv_usec together form the timeout parameter, tv_sec specifies the number of seconds while tv_usec the number of microseconds. The timeout is an upper bound on the amount of time that stream_select() will wait before it returns. If tv_sec and tv_usec are both set to 0, stream_select() will not wait for data - instead it will return immediately, indicating the current status of the streams. If tv_sec is NULL stream_select() can block indefinitely, returning only when an event on one of the watched streams occurs (or if a signal interrupts the system call).

On success stream_select() returns the number of stream resorces contained in the modified arrays, which may be zero if the timeout expires before anything interesting happens. On error FALSE is returned and a warning raised (this can happen if the system call is interrupted by an incoming signal).

Aviso

Using a timeout value of 0 allows you to instantaneously poll the status of the streams, however, it is NOT a good idea to use a 0 timeout value in a loop as it will cause your script to consume too much CPU time.

It is much better to specify a timeout value of a few seconds, although if you need to be checking and running other code concurrently, using a timeout value of at least 200000 microseconds will help reduce the CPU usage of your script.

Remember that the timeout value is the maximum time that will elapse; stream_select() will return as soon as the requested streams are ready for use.

You do not need to pass every array to stream_select(). You can leave it out and use an empty array or NULL instead. Also do not forget that those arrays are passed by reference and will be modified after stream_select() returns.

This example checks to see if data has arrived for reading on either $stream1 or $stream2. Since the timeout value is 0 it will return immediately:
<?php
/* Prepare the read array */
$read = array($stream1, $stream2);

if (false === ($num_changed_streams = stream_select($read, $write = NULL, $except = NULL, 0))) {
    /* Error handling */
} elseif ($num_changed_streams > 0) {
    /* At least on one of the streams something interesting happened */
}
?>

Nota: Due to a limitation in the current Zend Engine it is not possible to pass a constant modifier like NULL directly as a parameter to a function which expects this parameter to be passed by reference. Instead use a temporary variable or an expression with the leftmost member being a temporary variable:
<?php
stream_select($r, $w, $e = NULL, 0);
?>

Nota: Be sure to use the === operator when checking for an error. Since the stream_select() may return 0 the comparison with == would evaluate to TRUE:
<?php
if (false === stream_select($r, $w, $e = NULL, 0)) {
    echo "stream_select() failed\n";
}
?>

Nota: If you read/write to a stream returned in the arrays be aware that they do not necessarily read/write the full amount of data you have requested. Be prepared to even only be able to read/write a single byte.

Windows 98 Note: stream_select() used on a pipe returned from proc_open() may cause data loss under Windows 98.

See also stream_set_blocking()

Anterior | Inicio | Siguiente
stream_register_wrapper | Subir | stream_set_blocking


stream_set_blocking

(PHP 4 >= 4.3.0)

stream_set_blocking -- Set blocking/non-blocking mode on a stream

Description

bool stream_set_blocking ( resource stream, int mode)

If mode is FALSE, the given stream will be switched to non-blocking mode, and if TRUE, it will be switched to blocking mode. This affects calls like fgets() and fread() that read from the stream. In non-blocking mode an fgets() call will always return right away while in blocking mode it will wait for data to become available on the stream.

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

This function was previously called as set_socket_blocking() and later socket_set_blocking() but this usage is deprecated.

Nota: Prior to PHP 4.3, this function only worked on socket based streams. Since PHP 4.3, this function works for any stream that supports non-blocking mode (currently, regular files and socket streams).

See also stream_select().

Anterior | Inicio | Siguiente
stream_select | Subir | stream_set_timeout


stream_set_timeout

(PHP 4 >= 4.3.0)

stream_set_timeout -- Set timeout period on a stream

Description

bool stream_set_timeout ( resource stream, int seconds [, int microseconds])

Sets the timeout value on stream, expressed in the sum of seconds and microseconds. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Ejemplo 1. stream_set_timeout() example

<?php
$fp = fsockopen("www.example.com", 80);
if(!$fp) {
    echo "Unable to open\n";
} else {
    fputs($fp, "GET / HTTP/1.0\n\n");
    stream_set_timeout($fp, 2);
    $res = fread($fp, 2000);
    var_dump(stream_get_meta_data($fp));
    fclose($fp);
    print $res;
}
?>

Nota: As of PHP 4.3, this function can (potentially) work on any kind of stream. In PHP 4.3, socket based streams are still the only kind supported in the PHP core, although streams from other extensions may support this function.

This function was previously called as set_socket_timeout() and later socket_set_timeout() but this usage is deprecated.

See also: fsockopen() and fopen().

Anterior | Inicio | Siguiente
stream_set_blocking | Subir | stream_set_write_buffer


stream_set_write_buffer

(PHP 4 >= 4.3.0)

stream_set_write_buffer -- Sets file buffering on the given stream

Description

int stream_set_write_buffer ( resource stream, int buffer)

Output using fwrite() is normally buffered at 8K. This means that if there are two processes wanting to write to the same output stream (a file), each is paused after 8K of data to allow the other to write. stream_set_write_buffer() sets the buffering for write operations on the given filepointer stream to buffer bytes. If buffer is 0 then write operations are unbuffered. This ensures that all writes with fwrite() are completed before other processes are allowed to write to that output stream.

The function returns 0 on success, or EOF if the request cannot be honored.

The following example demonstrates how to use stream_set_write_buffer() to create an unbuffered stream.

Ejemplo 1. stream_set_write_buffer() example

<?php
$fp = fopen($file, "w");
if ($fp) {
  stream_set_write_buffer($fp, 0);
  fputs($fp, $output);
  fclose($fp);
}
?>

See also fopen() and fwrite().

Anterior | Inicio | Siguiente
stream_set_timeout | Subir | stream_socket_accept


stream_socket_accept

(PHP 5 CVS only)

stream_socket_accept -- Accept a connection on a socket created by stream_socket_server()

Description

resource stream_socket_accept ( resource server_socket [, int timeout [, string &peername]])

Accept a connection on a socket previously created by stream_socket_server(). If timeout is specified, the default socket accept timeout will be overridden with the time specified in seconds. The name (address) of the client which connected will be passed back in peername if included and available from the selected transport.

peername can also be determined later using stream_socket_get_name().

If the call fails, it will return FALSE.

See also stream_socket_server(),
stream_socket_get_name(),
stream_set_blocking(),
stream_set_timeout(),
fgets(),
fgetss(), fputs(),
fclose(), feof(), and
the Curl extension.

Anterior | Inicio | Siguiente
stream_set_write_buffer | Subir | stream_socket_client


stream_socket_client

(PHP 5 CVS only)

stream_socket_client -- Open Internet or Unix domain socket connection

Description

resource stream_socket_client ( string remote_socket [, int &errno [, string &errstr [, float timeout [, int flags [, resource context]]]]])

Initiates a stream or datagram connection to the destination specified by remote_socket. The type of socket created is determined by the transport specified using standard url formatting: transport://target. For Internet Domain sockets (AF_INET) such as TCP and UDP, the target portion of the remote_socket parameter should consist of a hostname or IP address followed by a colon and a port number. For Unix Domain sockets, the target portion should point to the socket file on the filesystem. The optional timeout can be used to set a timeout in seconds for the connect system call. flags is a bitmask field which may be set to any combination of connection flags. Currently the selection of connection flags is limited to STREAM_CLIENT_ASYNC_CONNECT and STREAM_CLIENT_PERSISTENT.

Nota: If you need to set a timeout for reading/writing data over the socket, use stream_set_timeout(), as the timeout parameter to stream_socket_client() only applies while connecting the socket.

stream_socket_client() returns a
stream resource which may
be used together with the other file functions (such as
fgets(), fgetss(),
fputs(), fclose(), and
feof()).

If the call fails, it will return FALSE and if the optional errno and errstr arguments are present they will be set to indicate the actual system level error that occurred in the system-level connect() call. If the value returned in errno is 0 and the function returned FALSE, it is an indication that the error occurred before the connect() call. This is most likely due to a problem initializing the socket. Note that the errno and errstr arguments will always be passed by reference.

Depending on the environment, the Unix domain or the optional connect timeout may not be available. A list of available transports can be retrieved using stream_get_transports(). See Apéndice J for a list of built in transports.

The stream will by default be opened in blocking mode. You can switch it to non-blocking mode by using stream_set_blocking().

Ejemplo 1. stream_socket_client() Example

<?php
$fp = stream_socket_client("tcp://www.example.com:80", $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br>\n";
} else {
    fputs ($fp, "GET / HTTP/1.0\r\nHost: www.example.com\r\nAccept: */*\r\n\r\n");
    while (!feof($fp)) {
        echo fgets ($fp,1024);
    }
    fclose ($fp);
}
?>
The example below shows how to retrieve the day and time from the UDP service "daytime" (port 13) in your own machine.

Ejemplo 2. Using UDP connection

<?php
$fp = stream_socket_client("udp://127.0.0.1:13", $errno, $errstr);
if (!$fp) {
    echo "ERROR: $errno - $errstr<br>\n";
} else {
    fwrite($fp,"\n");
    echo fread($fp, 26);
    fclose($fp);
}
?>

Aviso

UDP sockets will sometimes appear to have opened without an error, even if the remote host is unreachable. The error will only become apparent when you read or write data to/from the socket. The reason for this is because UDP is a "connectionless" protocol, which means that the operating system does not try to establish a link for the socket until it actually needs to send or receive data.

Nota: Cuando se especifique una dirección numérica IPv6 (p.ej. fe80::1) se debe incluir la IP entre corchetes. Por ejemplo tcp://[fe80::1]:80.

See also stream_socket_server(), stream_set_blocking(), stream_set_timeout(), fgets(), fgetss(), fputs(), fclose(), feof(), and the Curl extension.

Anterior | Inicio | Siguiente
stream_socket_accept | Subir | stream_socket_get_name


stream_socket_get_name

(PHP 5 CVS only)

stream_socket_get_name -- Retrieve the name of the local or remote sockets

Description

string stream_socket_get_name ( resource handle, bool want_peer)

Returns the local or remote name of a given socket connection. If want_peer is set to TRUE the remote socket name will be returned, if it is set to FALSE the local socket name will be returned.

See also stream_socket_accept()

Anterior | Inicio | Siguiente
stream_socket_client | Subir | stream_socket_recvfrom


stream_socket_recvfrom

(no version information, might be only in CVS)

stream_socket_recvfrom -- Receives data from a socket, connected or not

Description

string stream_socket_recvfrom ( resource socket, int length [, int flags [, string &address]])

The function stream_socket_recvfrom() accepts data from a remote socket up to length bytes. If address is provided it will be populated with the address of the remote socket.

The value of flags can be any combination of the following:

Tabla 1. possible values for flags

STREAM_OOB | Process OOB (out-of-band) data.
STREAM_PEEK | Retrieve data from the socket, but do not consume the buffer. Subsequent calls to fread() or stream_socket_recvfrom() will see the same data.

Ejemplo 1. stream_socket_sendto() Example

<?php
/* Open a server socket to port 1234 on localhost */
$server = stream_socket_server('tcp://127.0.0.1:1234');

/* Accept a connection */
$socket = stream_socket_accept($server);

/* Grab a packet (1500 is a typical MTU size) of OOB data */
echo "Received Out-Of-Band: '" . stream_socket_recvfrom($socket, 1500, STREAM_OOB) . "'\n";

/* Take a peek at the normal in-band data, but don't comsume it. */
echo "Data: '" . stream_socket_recvfrom($socket, 1500, STREAM_PEEK) . "'\n";

/* Get the exact same packet again, but remove it from the buffer this time. */
echo "Data: '" . stream_socket_recvfrom($socket, 1500) . "'\n";

/* Close it up */
fclose($socket);
fclose($server);
?>

See also
stream_socket_sendto(),
stream_socket_client(), and
stream_socket_server().

Anterior | Inicio | Siguiente
stream_socket_get_name | Subir | stream_socket_sendto


stream_socket_sendto

(no version information, might be only in CVS)

stream_socket_sendto -- Sends a message to a socket, whether it is connected or not

Description

int stream_socket_sendto ( resource socket, string data [, int flags [, string address]])

The function stream_socket_sendto() sends the data specified by data through the socket specified by socket. The address specified when the socket stream was created will be used unless an alternate address is specifed in address.

The value of flags can be any combination of the following:

Tabla 1. possible values for flags

STREAM_OOB Process OOB (out-of-band) data.

Ejemplo 1. stream_socket_sendto() Example

<?php
/* Open a socket to port 1234 on localhost */
$socket = stream_socket_client('tcp://127.0.0.1:1234');

/* Send ordinary data via ordinary channels. */
fwrite($socket, "Normal data transmit.");

/* Send more data out of band. */
stream_socket_sendto($socket, "Out of Band data.", STREAM_OOB);

/* Close it up */
fclose($socket);
?>

See also
stream_socket_recvfrom(),
stream_socket_client(), and
stream_socket_server().

Anterior | Inicio | Siguiente
stream_socket_recvfrom | Subir | stream_socket_server


stream_socket_server

(PHP 5 CVS only)

stream_socket_server -- Create an Internet or Unix domain server socket

Description

resource stream_socket_server ( string local_socket [, int &errno [, string &errstr [, int flags [, resource context]]]])

Creates a stream or datagram socket on the specified local_socket. The type of socket created is determined by the transport specified using standard url formatting: transport://target. For Internet Domain sockets (AF_INET) such as TCP and UDP, the target portion of the remote_socket parameter should consist of a hostname or IP address followed by a colon and a port number. For Unix Domain sockets, the target portion should point to the socket file on the filesystem. flags is a bitmask field which may be set to any combination of socket creation flags. The default value of flags is STREAM_SERVER_BIND | STREAM_SERVER_LISTEN.

This function only creates a socket, to begin accepting connections use stream_socket_accept().

If the call fails, it will return FALSE and if the optional errno and errstr arguments are present they will be set to indicate the actual system level error that occurred in the system-level socket(), bind(), and listen() calls. If the value returned in errno is 0 and the function returned FALSE, it is an indication that the error occurred before the bind() call. This is most likely due to a problem initializing the socket. Note that the errno and errstr arguments will always be passed by reference.

Depending on the environment, Unix domain sockets may not be available. A list of available transports can be retrieved using stream_get_transports(). See Apéndice J for a list of bulitin transports.

stream_socket_server().

Ejemplo 1. stream_socket_server() Example

<?php
$socket = stream_socket_server("tcp://0.0.0.0:8000", $errno, $errstr);
if (!$socket) {
  echo "$errstr ($errno)<br>\n";
} else {
  while ($conn = stream_socket_accept($socket)) {
    fputs ($conn, 'The local time is ' . date('n/j/Y g:i a') . "\n");
    fclose ($conn);
  }
  fclose($socket);
}
?>

The example below shows how to act as a time server which can respond to time queries as shown in an example on stream_socket_client().

Nota: Most systems require root access to create a server socket on a port below 1024.

Ejemplo 2. Using UDP server sockets

<?php
$socket = stream_socket_server("udp://0.0.0.0:13", $errno, $errstr);
if (!$socket) {
    echo "ERROR: $errno - $errstr<br>\n";
} else {
  while ($conn = stream_socket_accept($socket)) {
    fwrite($conn, date("D M j H:i:s Y\r\n"));
    fclose($conn);
  }
  fclose($socket);
}
?>

Nota: Cuando se especifique una dirección numérica IPv6 (p.ej. fe80::1) se debe incluir la IP entre corchetes. Por ejemplo tcp://[fe80::1]:80.

See also stream_socket_client(),
stream_set_blocking(),
stream_set_timeout(),
fgets(),
fgetss(), fputs(),
fclose(), feof(), and
the Curl extension.

Anterior | Inicio | Siguiente
stream_socket_sendto | Subir | stream_wrapper_register


stream_wrapper_register

(PHP 4 >= 4.3.2)

stream_wrapper_register -- Register a URL wrapper implemented as a PHP class

Description

bool stream_wrapper_register ( string protocol, string classname)

stream_wrapper_register() allows you to implement your own protocol handlers and streams for use with all the other filesystem functions (such as fopen(), fread() etc.).

To implement a wrapper, you need to define a class with a number of member functions, as defined below. When someone fopens your stream, PHP will create an instance of classname and then call methods on that instance. You must implement the methods exactly as described below - doing otherwise will lead to undefined behaviour.

Nota: As of PHP 5.0.0 the instance of classname will be populated with a context property referencing a Context Resource which may be accessed with stream_context_get_options(). If no context was passed to the stream creation function, context will be set to NULL.

stream_wrapper_register() will return FALSE if the protocol already has a handler.

bool stream_open ( string path, string mode, int options, string opened_path)

This method is called immediately after your stream object is created. path specifies the URL that was passed to fopen() and that this object is expected to retrieve. You can use parse_url() to break it apart.

mode is the mode used to open the file, as detailed for fopen(). You are responsible for checking that mode is valid for the path requested.

options holds additional flags set by the streams API. It can hold one or more of the following values OR'd together.

Flag | Description
STREAM_USE_PATH | If path is relative, search for the resource using the include_path.
STREAM_REPORT_ERRORS | If this flag is set, you are responsible for raising errors using trigger_error() during opening of the stream. If this flag is not set, you should not raise any errors.

If the path is opened successfully, and STREAM_USE_PATH is set in options, you should set opened_path to the full path of the file/resource that was actually opened.

If the requested resource was opened successfully, you should return TRUE, otherwise you should return FALSE

void stream_close ( void )

This method is called when the stream is closed, using fclose(). You must release any resources that were locked or allocated by the stream.

string stream_read ( int count)

This method is called in response to fread() and fgets() calls on the stream. You must return up-to count bytes of data from the current read/write position as a string. If there are less than count bytes available, return as many as are available. If no more data is available, return either FALSE or an empty string. You must also update the read/write position of the stream by the number of bytes that were successfully read.

int stream_write ( string data)

This method is called in response to fwrite() calls on the stream. You should store data into the underlying storage used by your stream. If there is not enough room, try to store as many bytes as possible. You should return the number of bytes that were successfully stored in the stream, or 0 if none could be stored. You must also update the read/write position of the stream by the number of bytes that were successfully written.

bool stream_eof ( void )

This method is called in response to feof() calls on the stream. You should return TRUE if the read/write position is at the end of the stream and if no more data is available to be read, or FALSE otherwise.

int stream_tell ( void )

This method is called in response to ftell() calls on the stream. You should return the current read/write position of the stream.

bool stream_seek ( int offset, int whence)

This method is called in response to fseek() calls on the stream. You should update the read/write position of the stream according to offset and whence. See fseek() for more information about these parameters. Return TRUE if the position was updated, FALSE otherwise.

bool stream_flush ( void )

This method is called in response to fflush() calls on the stream. If you have cached data in your stream but not yet stored it into the underlying storage, you should do so now. Return TRUE if the cached data was successfully stored (or if there was no data to store), or FALSE if the data could not be stored.

array stream_stat ( void )

This method is called in response to fstat() calls on the stream and should return an array containing the same values as appropriate for the stream.

bool unlink ( string path)

This method is called in response to unlink() calls on URL paths associated with the wrapper and should attempt to delete the item specified by path. It should return TRUE on success or FALSE on failure. In order for the appropriate error message to be returned, do not define this method if your wrapper does not support unlinking.

Nota: Userspace wrapper unlink method is not supported prior to PHP 5.0.0.

bool dir_opendir ( string path, int options)

This method is called immediately when your stream object is created for examining directory contents with opendir(). path specifies the URL that was passed to opendir() and that this object is expected to explore. You can use parse_url() to break it apart.

array url_stat ( string path, int flags)

This method is called in response to stat() calls on the URL paths associated with the wrapper and should return as many elements in common with the system function as possible. Unknown or unavailable values should be set to a rational value (usually 0).

flags holds additional flags set by the streams API. It can hold one or more of the following values OR'd together.

Flag | Description
STREAM_URL_STAT_LINK | For resources with the ability to link to other resource (such as an HTTP Location: forward, or a filesystem symlink). This flag specified that only information about the link itself should be returned. Not the resource pointed to by the link. This flag is set in response to calls to lstat(), is_link(), or filetype().
STREAM_URL_STAT_QUIET | If this flag is set, your wrapper should not raise any errors. If this flag is not set, you are responsible for reporting errors using the trigger_error() function during stating of the path.

string dir_readdir ( void )

This method is called in response to readdir() and should return a string representing the next filename in the location opened by dir_opendir().

bool dir_rewinddir ( void )

This method is called in response to rewinddir() and should reset the output generated by dir_readdir(). i.e.: The next call to dir_readdir() should return the first entry in the location returned by dir_opendir().

bool dir_closedir ( void )

This method is called in response to closedir(). You should release any resources which were locked or allocated during the opening and use of the directory stream.

The example below implements a var:// protocol handler that allows read/write access to a named global variable using standard filesystem stream functions such as fread(). The var:// protocol implemented below, given the url "var://foo" will read/write data to/from $GLOBALS["foo"].

Ejemplo 1. A Stream for reading/writing global variables

<?php

class VariableStream {
    var $position;
    var $varname;

    function stream_open($path, $mode, $options, &$opened_path)
    {
        $url = parse_url($path);
        $this->varname = $url["host"];
        $this->position = 0;

        return true;
    }

    function stream_read($count)
    {
        $ret = substr($GLOBALS[$this->varname], $this->position, $count);
        $this->position += strlen($ret);
        return $ret;
    }

    function stream_write($data)
    {
        $left = substr($GLOBALS[$this->varname], 0, $this->position);
        $right = substr($GLOBALS[$this->varname], $this->position + strlen($data));
        $GLOBALS[$this->varname] = $left . $data . $right;
        $this->position += strlen($data);
        return strlen($data);
    }

    function stream_tell()
    {
        return $this->position;
    }

    function stream_eof()
    {
        return $this->position >= strlen($GLOBALS[$this->varname]);
    }

    function stream_seek($offset, $whence)
    {
        switch($whence) {
            case SEEK_SET:
                if ($offset < strlen($GLOBALS[$this->varname]) && $offset >= 0) {
                     $this->position = $offset;
                     return true;
                } else {
                     return false;
                }
                break;

            case SEEK_CUR:
                if ($offset >= 0) {
                     $this->position += $offset;
                     return true;
                } else {
                     return false;
                }
                break;

            case SEEK_END:
                if (strlen($GLOBALS[$this->varname]) + $offset >= 0) {
                     $this->position = strlen($GLOBALS[$this->varname]) + $offset;
                     return true;
                } else {
                     return false;
                }
                break;

            default:
                return false;
        }
    }
}

stream_wrapper_register("var", "VariableStream")
    or die("Failed to register protocol");

$myvar = "";

$fp = fopen("var://myvar", "r+");

fwrite($fp, "line1\n");
fwrite($fp, "line2\n");
fwrite($fp, "line3\n");

rewind($fp);
while(!feof($fp)) {
    echo fgets($fp);
}
fclose($fp);
var_dump($myvar);

?>

Anterior | Inicio | Siguiente
stream_socket_server | Subir | Funciones de cadenas


Funciones de cadenas

Manual de PHP
Anterior Siguiente

CII. Funciones de cadenas

Todas estas funciones manipulan cadenas de varias maneras. En las secciones sobre expresiones regulares y manejo de URL se pueden encontrar secciones más especializadas.

Tabla de contenidos
AddCSlashes -- Marca una cadena con barras al estilo del C
AddSlashes -- Marca una cadena con barras
bin2hex -- Convierte datos binarios en su representación hexadecimal
chop -- Elimina espacios sobrantes al final
chr -- Devuelve un caracter específico
chunk_split -- Divide una cadena en trozos más pequeños
convert_cyr_string -- Convierte de un juego de caracteres Cirílico a otro
count_chars -- Devuelve información sobre los caracteres usados en una cadena
crc32 -- Calcula el polinomio crc32 de una cadena
crypt -- Encripta una cadena mediante DES
echo -- Da salida a una o más cadenas
explode -- Divide una cadena por otra
fprintf -- Escribir una cadena con formato a una secuencia
get_html_translation_table -- Devuelve la tabla de traducción utilizada por htmlspecialchars() y htmlentities()
hebrev -- Convierte Hebreo lógico a texto visual
hebrevc -- Convierte Hebreo lógico a texto visual con conversión de saltos de línea
html_entity_decode -- Convertir todas las entidades HTML a sus caracteres correspondientes
htmlentities -- Convierte todos los caracteres aplicables a entidades HTML
htmlspecialchars -- Convierte caracteres especiales a entidades HTML
implode -- Unir elementos de una matriz mediante una cadena
join -- Une elementos de una tabla mediante una cadena
levenshtein -- Calcula la distancia Levenshtein entre dos cadenas
localeconv -- Obtener información sobre el formato numérico
ltrim -- Elimina el espacio en blanco del principio de una cadena
md5_file -- Calcula el resumen criptográfico md5 de un nombre de archivo dado
md5 -- Calcula el hash md5 de una cadena
metaphone -- Calcula la clave "metáfona" de una cadena
money_format -- Da formato a un número como una cadena de moneda
nl_langinfo -- Consultar información sobre el lenguaje y la localidad
nl2br -- Convierte nuevas líneas a saltos de línea HTML
number_format -- Dar formato a un número con los miles agrupados
ord -- Devuelve el valor ASCII de un caracter
parse_str -- Divide la cadena en variables
print -- Emite una cadena
printf -- Emite una cadena con formato
quoted_printable_decode -- Convierte una cadena con marcación imprimible a una cadena de 8 bits
quotemeta -- Quote meta characters
rtrim -- Elimina espacios en blanco al final de la cadena.
setlocale -- Fija la información de localidad
sha1_file -- Calcular el resumen criptográfico sha1 de un archivo
sha1 -- Calcular el resumen criptográfico sha1 de una cadena
similar_text -- Calcula la similitud entre dos cadenas
soundex -- Calcula la clave soundex de una cadena
sprintf -- Devuelve una cadena con formato
sscanf -- Trocea la entrada desde una cadena según un formato dado
str_ireplace -- Versión insensible a mayúsculas y minúsculas de str_replace().
str_pad -- Rellena una cadena con otra hasta una longitud dada
str_repeat -- Repite una cadena
str_replace -- Sustitiye todas las apariciones de la aguja en el pajar por la cadena
str_rot13 -- Realizar la transformación rot13 sobre una cadena
str_shuffle -- Reordena aleatoriamente una cadena
str_split -- Convertir una cadena en una matriz
str_word_count -- Devolver información sobre las palabras usadas en una cadena
strcasecmp -- Comparación de cadenas insensible a mayúsculas y minúsculas y segura en modo binario
strchr -- Encuentra la primera aparición de un caracter
strcmp -- Comparación de cadenas con seguridad binaria
strcoll -- Comparación de cadenas basada en la localidad
strcspn -- Encuentra la longitud del elemento inicial que no coincide con la máscara
strip_tags -- Elimina marcas HTML y PHP de una cadena
stripcslashes -- Desmarca la cadena marcada con addcslashes()
stripos -- Encontrar la posición de la primera ocurrencia de una cadena, insensible a mayúsculas y minúsculas
stripslashes -- Desmarca la cadena marcada con addslashes()
stristr -- strstr() sin tener en cuenta mayúsculas o minúsculas
strlen -- Obtiene la longitud de la cadena
strnatcasecmp -- Comparación de cadenas insensible a mayúsculas y minúsculas usando un algoritmo de "orden natural"
strnatcmp -- Compara cadenas usando un algoritmo de "orden natural"
strncasecmp -- Comparación de los primeros n caracteres de cadenas, segura con material binario e insensible a mayúsculas y minúsculas
strncmp -- Comparación de los n primeros caracteres de cadenas, con seguridad binaria
strpos -- Encuentra la posición de la primera aparición de una cadena
strrchr -- Encuentra la última aparición de un caracter en una cadena
strrev -- Invierte una cadena
strripos -- Encontrar la posición de la última ocurrencia de una cadena en otra, insensible a mayúsculas y minúsculas
strrpos -- Encuentra la posición de la última aparición de un caracter en una cadena
strspn -- Encuentra la longitud del segmento inicial que coincide con la máscara
strstr -- Encuentra la primera aparición de una cadena
strtok -- Divide una cadena en elementos
strtolower -- Pasa a minúsculas una cadena
strtoupper -- Pasa a mayúsculas una cadena
strtr -- Traduce ciertos caracteres
substr_compare -- Comparación de 2 cadenas, segura con material binario, opcionalmente insensible a mayúsculas y minúsculas, a partir de un desplazamiento, y hasta un número límite de caracteres
substr_count -- Cuenta el número de apariciones de la subcadena
substr_replace -- Sustituye texto en una parte de una cadena
substr -- Devuelve parte de una cadena
trim -- Elimina espacios del principio y final de una cadena
ucfirst -- Pasar a mayúsculas el primer caracter de una cadena
ucwords -- Pone en mayúsculas el primer caracter de cada palabra de una cadena
vprintf -- Imprimir una cadena con formato
vsprintf -- Devuelve una cadena con formato
wordwrap -- Corta una cadena en un número dado de caracteres usando un caracter de ruptura de cadenas.

Anterior | Inicio | Siguiente
stream_wrapper_register | Subir | AddCSlashes


AddCSlashes

(PHP 4 )

AddCSlashes -- Marca una cadena con barras al estilo del C

Descripción

string addcslashes ( string cad, string listcar)

Devuelve una cadena con barras invertidas antes de los caracteres listados en el parámetro listcar. También marca \n, \r etc. Al estilo del C, los caracteres con códico ASCII inferior a 32 y superior a 126 son convertidos a representación octal. Tenga cuidado cuando marque caracteres alfanuméricos. Puede especificar un rango en listcar como el "\0..\37", que marcaría todos los caracteres con código ASCII entre 0 y 31.

Ejemplo 1. Ejemplo de addcslashes()

$tradformado = addcslashes ($no_transf, "\0..\37!@\177..\377");

Nota: Añadida en PHP4b3-dev.

Vea también stripcslashes(),
stripslashes(),
htmlspecialchars(),
htmlspecialchars(), y
quotemeta().

Anterior | Inicio | Siguiente
Funciones de cadenas | Subir | AddSlashes


AddSlashes

(PHP 3, PHP 4 )

AddSlashes -- Marca una cadena con barras

Descripción

string addslashes ( string cad)

Devuelve una cadena con barras invertidas frente a los caracteres que necesitan marcarse en consultas de bases de datos, etc. Estos son la comilla simple ('), comilla doble ("), barra invertida (\) y NUL (el byte nulo).

Vea también stripslashes(),
htmlspecialchars(), y
quotemeta().

Anterior | Inicio | Siguiente
AddCSlashes | Subir | bin2hex


bin2hex

(PHP 3>= 3.0.9, PHP 4 )

bin2hex -- Convierte datos binarios en su representación hexadecimal

Descripción

string bin2hex ( string cad)

Devuelve una cadena ASCII que contiene la representación hexadecimal de cad. La conversión se realiza byte a byte, con los 4 bits superiores primero.

Anterior | Inicio | Siguiente
AddSlashes | Subir | chop


chop

(PHP 3, PHP 4 )

chop -- Elimina espacios sobrantes al final

Descripción

string chop ( string cad)

Devuelve la cadena argumento sin los espacios sobrantes, incluyendo los saltos de línea.

Ejemplo 1. Ejemplo de chop()

$recortada = chop ($linea);

Vea también trim().

Anterior | Inicio | Siguiente
bin2hex | Subir | chr


chr

(PHP 3, PHP 4 )

chr -- Devuelve un caracter específico

Descripción

string chr ( int ascii)

Devuelve una cadena de un caracter que congiene el caracter especificado por ascii.

Ejemplo 1. Ejemplo de chr()

$cad .= chr (27); /* añade un caracter de escape al final de $cad */

/* A veces esto es más útil */

$cad = sprintf ("La cadena termina en escape: %c", 27);
Esta función complementa a ord(). Vea también sprintf() con una cadena de formato %c.

Anterior | Inicio | Siguiente
chop | Subir | chunk_split


chunk_split

(PHP 3>= 3.0.6, PHP 4 )

chunk_split -- Divide una cadena en trozos más pequeños

Descripción

string chunk_split ( string cadena [, int tamatrozo [, string final]])

Se puede utilizar para trocear una cadena en pedazos más pequeños, lo que es útil, p.ej., para convertir la salida de la función base64_encode a la semántica del RFC 2045. Inserta la cadena final cada tamatrozo (por defecto vale 76) caracteres. Devuelve la nueva cadena y deja intacta la original.

Ejemplo 1. Ejemplo de chunk_split()

# formatear $datos usando la semántica del RFC 2045

$nueva_cad = chunk_split (base64_encode($datos));
Esta función es notablemente más rápida que ereg_replace().

Nota: Esta función se añadió en la 3.0.6.

Anterior | Inicio | Siguiente
chr | Subir | convert_cyr_string


convert_cyr_string

(PHP 3>= 3.0.6, PHP 4 )

convert_cyr_string -- Convierte de un juego de caracteres Cirílico a otro

Descripción

string convert_cyr_string ( string cad, string desde, string hasta)

Esta función convierte la cadena dada de un juego de caracteres Cirílico a otro. Los argumentos desde y hasta son caracteres sencillos que representan los juegos de caracteres Cirílicos fuente y destino. Los tipos soportados son:

  • k - koi8-r

  • w - windows-1251

  • i - iso8859-5

  • a - x-cp866

  • d - x-cp866

  • m - x-mac-cyrillic

Anterior | Inicio | Siguiente
chunk_split | Subir | count_chars


count_chars

(PHP 4 )

count_chars -- Devuelve información sobre los caracteres usados en una cadena

Descripción

mixed count_chars ( string cadena [, modo])

Cuenta el número de apariciones de cada valor de byte (0..255) en cadena y lo devuelve de varias maneras. El parámetro opcional modo vale por defecto 0. Dependiendo de modo, count_chars() puede devolver:

  • 0 - una matriz con el valor del byte como clave y la frecuencia de cada uno como valor.

  • 1 - como el 0, pero listando únicamente los valores de byte con frecuencia superior a cero.

  • 2 - como el 0, pero listando únicamente los valores de byte con frecuencia igual a 0.

  • 3 - se devuelve una cadena que contiene todos los valores de byte utilizados.

  • 4 - se devuelve una cadena que contiene todos los valores de byte no utilizados.

Nota: Esta función se añadió en el PHP 4.0.

Anterior | Inicio | Siguiente
convert_cyr_string | Subir | crc32


crc32

(PHP 4 >= 4.0.1)

crc32 -- Calcula el polinomio crc32 de una cadena

Descripción

int crc32 ( string cad)

Genera el polinomio de comprobación de reduncancia cíclica de 32 bits de cad. Se suele utilizar para validad la integridad de los datos transmitidos.

Vea también: md5()

Anterior | Inicio | Siguiente
count_chars | Subir | crypt


crypt

(PHP 3, PHP 4 )

crypt -- Encripta una cadena mediante DES

Descripción

string crypt ( string cad [, string semilla])

crypt() encriptará una cadena utilizando el método estándar de encriptación del Unix DES. Los argumentos son una cadena a encriptar y una cadena semilla de 2 caracteres en la que basar la encriptación. Vea la página de manual de Unix sobre crypt para más información.

Si el argumento de semilla no se proporciona, será generado aleatoriamente por el PHP.

Algunos sistemas operativos soportan más de un tipo de encriptación. De hecho, algunas veces la encriptación estándar DES es sustituída por un algoritmo de encriptación basado en MD5. El tipo de encriptación es disparado por el argumento semilla. En tiempo de instalación, el PHP determina la capacidad de la función de encriptación y aceptará semillas para otros tipos de encriptación. Si no se proporciona la semilla, el PHP intentará generar una semilla estándar DES de 2 caraceres por defecto, excepto si el tipo de encriptación estándar del sistema es el MD5, en cuyo caso se generará una semilla aleatoria compatible con MD5. El PHP fija una constante llamada CRYPT_SALT_LENGTH que le especifica si su sistema soporta una semilla de 2 caracteres o si se debe usar la semilla de 12 caracteres del NDS.

La función estándar de encriptación crypt() contiene la semilla como los dos primeros caracteres de la salida.

En los sistemas en los que la función crypt() soporta múltiples tipos de encriptación, las siguienes constantes son fijadas a 0 ó 1 dependiendo de si está disponible el tipo dado:

  • CRYPT_STD_DES - Encriptación DES estándar con semilla de 2 caracteres

  • CRYPT_EXT_DES - Encriptación DES extendida con semilla de 9 caracteres

  • CRYPT_MD5 - Encriptación MD5 con semilla de 12 caracteres y comenzando por $1$

  • CRYPT_BLOWFISH - Encriptación DES extendida con semilla de 16 caracteres y comenzando por $2$

No hay función de desencriptado porque crypt() utiliza un algoritmo de una sola vía.

Vea también: md5().

Anterior | Inicio | Siguiente
crc32 | Subir | echo


echo

(PHP 3, PHP 4 )

echo -- Da salida a una o más cadenas

Descripción

echo ( string arg1 [, string argn...])

Da salida a todos sus parámetros.

echo() no es realmente una función (es una sentencia del lenguaje) de modo que no se requiere el uso de los paréntesis.

Ejemplo 1. Ejemplo de echo()

echo "Hola Mundo";

echo "Esto se extiende
por varias líneas. Los saltos de línea
también se envían";

echo "Esto se extiende\npor varias líneas. Los saltos de línea\ntambién se envían";

Nota: De hecho, si desea pasar más de un parámetro a echo no debe encerrarlos entre paréntesis.

Vea también:
print(),
printf(), y
flush().

Anterior | Inicio | Siguiente
crypt | Subir | explode


explode

(PHP 3, PHP 4 )

explode -- Divide una cadena por otra

Descripción

array explode ( string separador, string cadena [, int limite])

Devuelve una matriz de cadenas, cada una de las cuales es una subcadena de cadena formada mediante su división en las fronteras marcadas por la cadena separador. Si se especifica limite, la matriz devuelta contendrá un máximo de limite elementos con el último conteniendo el resto de la cadena.

Ejemplo 1. Ejemplo de explode()

$pizza = "trozo1 trozo2 trozo3 trozo4 trozo5 trozo6";
$trozos = explode (" ", $pizza);

Vea también split() e implode().

Anterior | Inicio | Siguiente
echo | Subir | fprintf


fprintf

(PHP 5 CVS only)

fprintf -- Escribir una cadena con formato a una secuencia

Descripción

int fprintf ( resource gestor, string formato [, mixed args])

Escribe una cadena producida de acuerdo a la cadena de formato formato al recurso de secuencia especificado por gestor.

La cadena de formato está compuesta por cero o más directivas: caracteres ordinarios (excluyendo %) que son copiados directamente en el resultado, y especificaciones de conversión, cada uno de los cuales resulta en la recuperación de su propio parámetro. Esto se aplica en fprintf(), sprintf(), y printf().

Cada especificación de conversión consiste en un signo de porcentaje (%), seguido de uno o más de estos elementos, en orden:

  1. Un especificador de relleno opcional que indica qué caracter será usado para rellenar los resultados al lado derecho del tamaño de la cadena. Éste puede ser un caracter de espacio o un 0 (el caracter de cero). La acción predeterminada es realizar el relleno con espacios. Un caracter de relleno alternativo puede ser especificado si se precede con una comilla simple ('). Vea los ejemplos más adelante.

  2. Un especificador de alineación opcional que dice si el resultado debería ser alineado sobre la izquierda o sobre la derecha. La acción predeterminada es la alineación a la derecha; un caracter - en este lugar hará que la alineación se efectuara a la izquierda.

  3. Un número opcional, un especificador de ancho que dice cuántos caracteres (mínimo) debe producir esta conversión.

  4. Un especificador de precisión opcional que dice cuántos dígitos decimales deben ser mostrados para los números de punto flotante. Esta opción no tiene ningún efecto sobre otros tipos de datos diferentes a float. (Otra función útil para el formato de números es number_format().)

  5. Un especificador de tipo que dice el tipo de argumento usado para tratar los datos. Los posibles tipos:

    % - un caracter de porcentaje literal. No requiere argumento.
    b - el argumento es tratado como un entero, y presentado como un número binario.
    c - el argumento es tratado como un entero, y presentado como el caracter correspondiente al valor ASCII dado.
    d - el argumento es tratado como un entero, y presentado como un número decimal (con signo).
    u - el argumento es tratado como un entero, y presentado como un número decimal sin signo.
    f - el argumento es tratado como un float, y presentado como un número con punto flotante.
    o - el argumento es tratado como un entero, y presentado como un número octal.
    s - el argumento es tratado y presentado como una cadena.
    x - el argumento es tratado como un entero y presentado como un número hexadecimal (con letras minúsculas).
    X - el argumento es tratado como un entero y presentado como un número hexadecimal (con letras mayúsculas).

Vea también: printf(),
sprintf(),
sscanf(), fscanf(),
vsprintf(), y
number_format().

Ejemplos

Ejemplo 1. sprintf(): enteros con relleno de ceros

<?php
$fecha_iso = sprintf("%04d-%02d-%02d", $anyo, $mes, $dia);
?>

Ejemplo 2. sprintf(): dando formato a valores monetarios

<?php
$dinero1 = 68.75;
$dinero2 = 54.35;
$dinero = $dinero1 + $dinero2;
// echo $dinero producira la salida "123.1";

$con_formato = sprintf("%01.2f", $dinero);
// echo $con_formato producira la salida "123.10"
?>

Anterior | Inicio | Siguiente
explode | Subir | get_html_translation_table


get_html_translation_table

(PHP 4 )

get_html_translation_table -- Devuelve la tabla de traducción utilizada por htmlspecialchars() y htmlentities()

Descripción

string get_html_translation_table ( int tabla)

get_html_translation_table() devolverá la tabla de traducción que se usa internamente para htmlspecialchars() y htmlentities(). Hay dos nuevas definiciones (HTML_ENTITIES, HTML_SPECIALCHARS) que le permiten especificar la tabla deseada.

Ejemplo 1. Ejemplo de Tabla de Traducción

$trad = get_html_translation_table (HTML_ENTITIES);
$cad = "Hallo & <Frau> & Krämer";
$codif = strtr ($cad, $trad);
La variable $codif contendrá ahora: "Hallo &<amp>; &<lt>;Frau&<gt>; &<amp>; Kr&<auml>;mer".

Lo interesante es usar la función array_flip() para cambiar la dirección de la traducción.

$trad = array_flip ($trad);
$original = strtr ($cad, $trad);

El contenido de $original sería: "Hallo & <Frau> & Krämer".

Nota: Esta función fue añadida en PHP 4.0.

Vea también: htmlspecialchars(),
htmlentities(), strtr(),
y array_flip().

Anterior | Inicio | Siguiente
fprintf | Subir | hebrev


hebrev

(PHP 3, PHP 4 )

hebrev -- Convierte Hebreo lógico a texto visual

Descripción

string hebrev ( string texto_hebreo [, int max_cars_por_linea])

El parámetro opcional max_cars_por_linea indica el máximo número de caracteres que se emitirán por línea. La función intenta evitar cortar palabras.

Vea también hebrevc()

Anterior | Inicio | Siguiente
get_html_translation_table | Subir | hebrevc


hebrevc

(PHP 3, PHP 4 )

hebrevc -- Convierte Hebreo lógico a texto visual con conversión de saltos de línea

Descripción

string hebrevc ( string texto_hebreo [, int max_cars_por_linea])

Esta funcion es similar a hebrev() con la diferencia que convierte las nuevas líneas (\n) a "<br>\n". El parámetro opcional max_cars_por_linea indica el máximo número de caracteres que se emitirán por línea. La función intenta evitar cortar palabras.

Vea también hebrev()

Anterior | Inicio | Siguiente
hebrev | Subir | html_entity_decode


html_entity_decode

(PHP 4 >= 4.3.0)

html_entity_decode -- Convertir todas las entidades HTML a sus caracteres correspondientes

Descripción

string html_entity_decode ( string cadena [, int estilo_comillas [, string juego_caracteres]])

html_entity_decode() es el opuesto de htmlentities() en el sentido en que convierte todas las entidades HTML a sus caracteres correspondientes en la cadena dada.

El segundo parámetro opcional estilo_comillas le permite definir lo que debe hacerse con las comillas 'sencillas' y "dobles". Recibe una de tres constantes posibles, siendo el valor por defecto ENT_COMPAT:

Tabla 1. Constantes disponibles para estilo_comillas

Nombre de constante | Descripción
ENT_COMPAT | Convierte las comillas dobles y deja intactas las comillas sencillas.
ENT_QUOTES | Convierte tanto comillas dobles como sencillas.
ENT_NOQUOTES | No convierte ni las comillas dobles ni las sencillas.

El juego de caracteres ISO-8859-1 es usado como valor predeterminado para el tercer argumento opcional juego_caracteres. Éste define el juego de caracteres usado en la conversión. El soporte para este tercer argumento fue añadido en PHP 4.1.0.

Los siguientes juegos de caracteres son soportados a partir de PHP 4.3.0.

Tabla 2. Juegos de caracteres soportados

Juego de caracteres | Aliases | Descripción
ISO-8859-1 | ISO8859-1 | Europeo Occidental, Latin-1
ISO-8859-15 | ISO8859-15 | Europeo Occidental, Latin-9. Añade el signo de Euro, y letras del Francés y Finlandés que hacían falta en Latin-1(ISO-8859-1).
UTF-8 |  | Multi-byte Unicode de 8-bits compatible con ASCII.
cp866 | ibm866, 866 | Juego de caracteres cirílicos específico de DOS. Este juego de caracteres está soportado en 4.3.2.
cp1251 | Windows-1251, win-1251, 1251 | Juego de caracteres cirílicos específico de Windows. Este juego de caracteres está soportado en 4.3.2.
cp1252 | Windows-1252, 1252 | Juego de caracteres específico de Windows para Europa Occidental.
KOI8-R | koi8-ru, koi8r | Ruso. Este juego de caracteres está soportado en 4.3.2.
BIG5 | 950 | Chino Tradicional, usado principalmente en Taiwán.
GB2312 | 936 | Chino Simplificado, juego de caracteres estándar nacional.
BIG5-HKSCS |  | Big5 con extensiones de Hong Kong, Chino Tradicional.
Shift_JIS | SJIS, 932 | Japonés
EUC-JP | EUCJP | Japonés

Nota: Cualquier otro juego de caracteres no es reconocido y en su lugar se utilizará ISO-8859-1.

Ejemplo 1. Decodificación de entidades html

<?php
$orig = "I'll \"walk\" the <b>dog</b> now";

$a = htmlentities($orig);

$b = html_entity_decode($a);

echo $a; // I'll &quot;walk&quot; the &lt;b&gt;dog&lt;/b&gt; now

echo $b; // I'll "walk" the <b>dog</b> now

// Usuarios de una version anterior a 4.3.0 de PHP, pueden hacer esto:
function unhtmlentities ($cadena)
{
    $trans_tbl = get_html_translation_table (HTML_ENTITIES);
    $trans_tbl = array_flip ($trans_tbl);
    return strtr ($cadena, $trans_tbl);
}

$c = unhtmlentities($a);

echo $c; // I'll "walk" the <b>dog</b> now

?>

Nota: Puede que se pregunte por qué trim(html_entity_decode('&nbsp;')); no reduce la cadena a una cadena vacía, esto es porque la entidad '&nbsp;' no es el código ASCII 32 (el cual es eliminado por trim()) sino el código ASCII 160 (0xa0) en el juego de caracteres por defecto, ISO 8859-1.

Vea también htmlentities(),
htmlspecialchars(),
get_html_translation_table(),
htmlspecialchars() y urldecode().

Anterior | Inicio | Siguiente
hebrevc | Subir | htmlentities


htmlentities

(PHP 3, PHP 4 )

htmlentities -- Convierte todos los caracteres aplicables a entidades HTML

Descripción

string htmlentities ( string cadena)

Esta función es del todo idéntica a htmlspecialchars(), excepto que traduce todos los caracteres que tienen equivalente como entidad HTML.

Actualmente se utiliza el juego de caracteres ISO-8859-1.

Vea también htmlspecialchars() y nl2br().

Anterior | Inicio | Siguiente
html_entity_decode | Subir | htmlspecialchars


htmlspecialchars

(PHP 3, PHP 4 )

htmlspecialchars -- Convierte caracteres especiales a entidades HTML

Descripción

string htmlspecialchars ( string cadena)

Ciertos caracteres tienen significados especiales en HTML, y deben ser representados por entidades HTML si se desea preservar su significado. Esta función devuelve una cadena con dichas conversiones realizadas.

Esta función es útil para evitar que el texo entrado por el usuario contenga marcas HTML, como ocurre en aplicaciones de foros o libros de visita.

Actualmente, las traducciones hechas son:

  • '&' (ampersand) se convierte en '&amp;'

  • '"' (doble comilla) se convierte en '&quot;'

  • '<' (menor que) se convierte en '&lt;'

  • '>' (mayor que) se convierte en '&gt;'

Nótese que esta función no traduce nada más que lo mostrado más arriba. Para una traducción de entidades completa, vea htmlentities().

Vea también htmlentities() y nl2br().

Anterior | Inicio | Siguiente
htmlentities | Subir | implode


implode

(PHP 3, PHP 4 )

implode -- Unir elementos de una matriz mediante una cadena

Descripción

string implode ( string cola, array piezas)

Devuelve una cadena que contiene una representación de todos los elementos de la matriz en el mismo orden, pero con la cadena cola en medio de los mismos.

Ejemplo 1. Ejemplo de implode()

$separada_dospuntos = implode (":", $matrizay);

Vea también explode(), join(), y split().

Anterior | Inicio | Siguiente
htmlspecialchars | Subir | join


join

(PHP 3, PHP 4 )

join -- Une elementos de una tabla mediante una cadena

Descripción

string join ( string cola, array piezas)

join() es un alias para implode(), y es idéntica en todo.

Vea también explode(), implode(), y split().

Anterior | Inicio | Siguiente
implode | Subir | levenshtein


levenshtein

(PHP 3>= 3.0.17, PHP 4 >= 4.0.1)

levenshtein -- Calcula la distancia Levenshtein entre dos cadenas

Descripción

int levenshtein ( string cad1, string cad2)

Esta función devuelve la distancia Levenshtein entre las dos cadenas argumento, ó -1 si alguna de las cadenas tiene más de 255 caracteres.

La distancia Levenshtein se define como el mínimo número de caracteres que se tienen que sustituir, insertar o borrar para transformar cad1 en cad2. La complejidad del algoritmo es O(m*n), donde n y m son las longitudes de cad1 y cad2 (bastante bueno si se la compara con similar_text(), que es O(max(n,m)**3), pero aún es cara).

Vea también soundex(),
similar_text() y
metaphone().

Anterior | Inicio | Siguiente
join | Subir | localeconv


localeconv

(PHP 4 >= 4.0.5)

localeconv -- Obtener información sobre el formato numérico

Descripción

array localeconv ( void )

Devuelve una matriz asociativa que contiene información de los formatos numérico y monetario, localizados.

localeconv() devuelve información basada en la localidad actual, tal y como haya sido definida mediante setlocale(). La matriz asociativa que devuelve contiene los siguientes campos:

Elemento de la matriz | Descripción
decimal_point | Caracter de punto decimal
thousands_sep | Separador de miles
grouping | Matriz que contiene agrupaciones numéricas
int_curr_symbol | Símbolo internacional de moneda (i.e. USD)
currency_symbol | Símbolo local de moneda (i.e. $)
mon_decimal_point | Caracter de punto decimal monetario
mon_thousands_sep | Separador de miles monetario
mon_grouping | Matriz que contiene agrupaciones de moneda
positive_sign | Signo para valores positivos
negative_sign | Signo para valores negativos
int_frac_digits | Dígitos fraccionarios internacionales
frac_digits | Dígitos fraccionarios locales
p_cs_precedes | TRUE si currency_symbol precede un valor positivo, FALSE si lo sucede
p_sep_by_space | TRUE si un espacio separa currency_symbol de un valor positivo, FALSE de lo contrario
n_cs_precedes | TRUE si currency_symbol precede un valor negativo, FALSE si lo sucede
n_sep_by_space | TRUE si un espacio separa currency_symbol de un valor negativo, FALSE de lo contrario
p_sign_posn

0 | Paréntesis rodean la cantidad y currency_symbol
1 | La cadena de signo precede la cantidad y currency_symbol
2 | La cadena de signo sucede la cantidad y currency_symbol
3 | La cadena de signo precede inmediatamente currency_symbol
4 | La cadena de signo sucede inmediatamente currency_symbol

n_sign_posn

0 | Paréntesis rodean la cantidad y currency_symbol
1 | La cadena de signo precede la cantidad y currency_symbol
2 | La cadena de signo sucede la cantidad y currency_symbol
3 | La cadena de signo precede inmediatamente currency_symbol
4 | La cadena de signo sucede inmediatamente currency_symbol

Los campos de agrupamiento contienen matrices que definen el modo en que los números deben ser agrupados. Por ejemplo, el campo de agrupamiento para la localidad en_US debería contener una matriz de 2 elementos con los valores 3 y 3. Entre más alto sea el índice dentro de la matriz, lo más lejos hacia la izquierda se encuentra el agrupamiento. Si un elemento de la matriz es igual a CHAR_MAX, no se realiza ningún agrupamiento posterior. Si un elemento de la matriz es igual a 0, el elemento anterior deberá ser usado.

Ejemplo 1. Ejemplo de localeconv()

<?php
setlocale(LC_ALL, "en_US");

$info_locale = localeconv();

echo "<PRE>\n";
echo "-------------------------------------------------\n";
echo " Informaci&oacute;n monetaria para la localidad actual:  \n";
echo "-------------------------------------------------\n\n";

echo "int_curr_symbol:   {$info_locale["int_curr_symbol"]}\n";
echo "currency_symbol:   {$info_locale["currency_symbol"]}\n";
echo "mon_decimal_point: {$info_locale["mon_decimal_point"]}\n";
echo "mon_thousands_sep: {$info_locale["mon_thousands_sep"]}\n";
echo "positive_sign:     {$info_locale["positive_sign"]}\n";
echo "negative_sign:     {$info_locale["negative_sign"]}\n";
echo "int_frac_digits:   {$info_locale["int_frac_digits"]}\n";
echo "frac_digits:       {$info_locale["frac_digits"]}\n";
echo "p_cs_precedes:     {$info_locale["p_cs_precedes"]}\n";
echo "p_sep_by_space:    {$info_locale["p_sep_by_space"]}\n";
echo "n_cs_precedes:     {$info_locale["n_cs_precedes"]}\n";
echo "n_sep_by_space:    {$info_locale["n_sep_by_space"]}\n";
echo "p_sign_posn:       {$info_locale["p_sign_posn"]}\n";
echo "n_sign_posn:       {$info_locale["n_sign_posn"]}\n";
echo "</PRE>\n";
?>

La constante CHAR_MAX también se define para el uso mencionado anteriormente.

Vea también setlocale().

Anterior | Inicio | Siguiente
levenshtein | Subir | ltrim


ltrim

(PHP 3, PHP 4 )

ltrim -- Elimina el espacio en blanco del principio de una cadena

Descripción

string ltrim ( string cad)

Esta función elimina el espacio en blanco del principio de una cadena y devuelve la cadena resultante. Los caracteres de espacio que elimina realmente son: "\n", "\r", "\t", "\v", "\0", y el espacio en sí.

Vea también chop() y trim().

Anterior | Inicio | Siguiente
localeconv | Subir | md5_file


md5_file

(PHP 4 >= 4.2.0)

md5_file -- Calcula el resumen criptográfico md5 de un nombre de archivo dado

Descripción

string md5_file ( string nombre_archivo [, bool salida_primitiva])

Calcula el resumen criptográfico MD5 del nombre_archivo especificado, usando el Algoritmo de Resumen de Mensajes MD5 de RSA Data Security, Inc., y devuelve ese resumen. El resumen criptográfico es un número hexadecimal de 32 caracteres. Si el valor opcional salida_primitiva es TRUE, entonces el resumen md5 es retornado en cambio en formato binario primitivo con una longitud de 16.

Nota: El parámetro opcional salida_primitiva fue añadido en PHP 5.0.0 y tiene un valor predeterminado de FALSE

Esta función tiene el mismo propósito que la utilidad de línea de comandos md5sum.

Vea también md5(), crc32(), y sha1_file().

Anterior | Inicio | Siguiente
ltrim | Subir | md5


md5

(PHP 3, PHP 4 )

md5 -- Calcula el hash md5 de una cadena

Descripción

string md5 ( string cad)

Calcula el hash (extracto) MD5 de cad usaneo el Algoritmo de Resumen de Mensajes MD5 de RSA Data Security, Inc. .

Vea también: crc32()

Anterior | Inicio | Siguiente
md5_file | Subir | metaphone


metaphone

(PHP 4 )

metaphone -- Calcula la clave "metáfona" de una cadena

Descripción

string metaphone ( string cad)

Calcula la clave "metáfona" de cad.

Similarmente a soundex(), metaphone crea la misma clave para palabras que suenan parecidas. Es más precisa que la función soundex(), pues conoce las reglas básicas de la pronunciación del Inglés. Las claves metafónicas generadas son de longitud variable.

Metaphone fue desarrollado por Lawrence Philips <lphilips@verity.com>. Se describe en ["Practical Algorithms for Programmers", Binstock & Rex, Addison Wesley, 1995].

Nota: Esta función se añadió en PHP 4.0.

Anterior | Inicio | Siguiente
md5 | Subir | money_format


money_format

(PHP 4 >= 4.3.0)

money_format -- Da formato a un número como una cadena de moneda

Descripción

string money_format ( string formato, float numero)

money_format() devuelve una versión con formato de numero. Esta función envuelve la función de la librería de C strfmon(), con la diferencia de que ésta implementación convierte solo un número a la vez.

Nota: La función money_format() está definida solo si el sistema tiene la capacidad de llamar a strfmon. Por ejemplo, Windows no tiene soporte para esta función, así que money_format() no se encuentra definida en Windows.

La especificación de formato consiste de la siguiente secuencia:

  • un caracter %

  • banderas opcionales

  • un ancho de campo opcional

  • precisión de izquierda opcional

  • precisión de derecha opcional

  • un caracter de conversión, requerido

Banderas. Una o más de las siguientes banderas opcionales pueden ser usadas:

=f

El caracter = seguido de un caracter (byte sencillo) f que será usado como el caracter de relleno numérico. Es caracter de relleno predeterminado es el espacio.

^

Deshabilitar el uso de caracteres de agrupamiento (tal y como estén definidos según la localidad actual).

+ o (

Especifica el estilo de formato para números positivos y negativos. Si se usa +, los equivalentes de + y - en la localidad actual serán usados. Si se usa (, las cantidades negativas estarán ubicadas entre paréntesis. Si no se da especificación alguna, el valor por defecto es +.

!

Elimina el símbolo de moneda de la cadena de salida.

-

Si se encuentra presente, hará que todos los campos estén justificados a izquierda (con relleno a la derecha), en contraste al comportamiento predeterminado que hace que los campos estén justificados a derecha (con relleno a la izquierda).

Ancho de campo.

w

Una cadena de dígito decimal que especifica un ancho de campo mínimo. El campo será justificado a derecha a menos que la bandera - sea usada. El valor predeterminado es 0 (cero).

Precisión de izquierda.

#n

El número máximo de dígitos (n) a esperar a la izquerda del caracter decimal (p. ej. el punto decimal). Usualmente se usa para mantener la salida con formato alineada en las mismas columnas, usando el caracter de relleno si el número de dígitos es menor que n. Si el número de dígitos real es mayor que n, entonces ésta especificación es ignorada.

Si no se ha suprimido el agrupamiento usando la bandera ^, los separadores de agrupamiento serán insertados antes de que los caracteres de relleno (si los hay) sean agregados. Los separadores de agrupamiento no serán aplicados sobre los caracteres de relleno, aun si el caracter de relleno es un dígito.

Para asegurar el alineamiento, cualquier caracter que aparezca antes o después del número en la salida con formato, tales como los símbolos de moneda o de signo, son rellenados en tanto sea necesario con caracteres de espacio para hacer que sus formatos positivo y negativo tengan una misma longitud.

Precisión de derecha .

.p

Un punto seguido del número de dígitos (p) después del caracter decimal. Si el valor de p es 0 (cero), el caracter decimal y los dígitos a su derecha serán omitidos. Si no se incluye ninguna precisión de derecha, el valor predeterminado será determinado por la localidad en uso. La cantidad a la cual se está dando formato es redondeada al número de dígitos especificado antes del formato.

Caracteres de conversión .

i

El número recibe formato de acuerdo al formato de moneda internacional de la localidad (p.ej. para la localidad de USA: USD 1,234.56).

n

El número recibe formato de acuerdo al formato de moneda nacional de la localidad (p.ej. para la localidad de_DE: DM1.234,56).

%

Devuelve el caracter %.

Nota: La categoría LC_MONETARY de los parámetros de la localidad, afecta el comportamiento de esta función. Use setlocale() para establecer la localidad por defecto apropiada antes de usar esta función.

Los caracteres antes y después de la cadena de formato serán devueltos sin modificaciones.

Ejemplo 1. Ejemplo de money_format()

Usaremos diferentes localidades y especificaciones de formato para ilustrar el uso de esta función.

<?php

$numero = 1234.56;

// imprimamos el formato internacional para la localidad en_US
setlocale(LC_MONETARY, 'en_US');
echo money_format('%i', $numero)."\n";
// USD 1,234.56

// Formato nacional italiano con 2 decimales
setlocale(LC_MONETARY, 'it_IT');
echo money_format('%.2n', $numero)."\n";
// L. 1.234,56

// Uso de un numero negativo
$numero = -1234.5672;

// Formato nacional de US, usando () para numeros negativos
// y 10 digitos para la precision de derecha
setlocale(LC_MONETARY, 'en_US');
echo money_format('%(#10n', $numero)."\n";
// ($        1,234.57)

// Un formato similar al anterior, agregando el uso de 2 digitos de
// precision de derecha y '*' como caracter de relleno
echo money_format('%=*(#10.2n', $numero)."\n";
// ($********1,234.57)

// Justifiquemos a izquierda, con 14 posiciones de ancho, 8 digitos de
// precision de izquierda, 2 de precision de derecha, sin caracter de
// agrupamiento y usando el formato internacional de la localidad
// de_DE.
setlocale(LC_MONETARY, 'de_DE');
echo money_format('%=*^-14#8.2i', 1234.56)."\n";
// DEM 1234,56****

// Agreguemos un poco de informacion antes y despues de la especificacion
// de conversion
setlocale(LC_MONETARY, 'en_GB');
$fmt = 'El valor final es %i (despues de un descuento de 10%%)';
echo money_format($fmt, 1234.56)."\n";
// El valor final es GBP 1,234.56 (despues de un descuento de 10%)

?>

Vea también: setlocale(),
number_format(),sprintf(),
printf() y sscanf().

Anterior | Inicio | Siguiente
metaphone | Subir | nl_langinfo


nl_langinfo

(PHP 4 >= 4.1.0)

nl_langinfo -- Consultar información sobre el lenguaje y la localidad

Descripción

string nl_langinfo ( int item)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
money_format | Subir | nl2br


nl2br

(PHP 3, PHP 4 )

nl2br -- Convierte nuevas líneas a saltos de línea HTML

Descripción

string nl2br ( string cadena)

Devuelve la cadena con '<BR>' insertados antes de cada nueva línea.

Vea también htmlspecialchars(),
htmlentities() y
wordwrap().

Anterior | Inicio | Siguiente
nl_langinfo | Subir | number_format


number_format

(PHP 3, PHP 4 )

number_format -- Dar formato a un número con los miles agrupados

Descripción

string number_format ( float numero [, int decimales])

string number_format ( float numero, int decimales, string punto_dec, string sep_miles)

number_format() devuelve una versión con formato de numero. Esta función acepta uno, dos, o cuatro parámetros (no tres):

Si solo se entrega un parámetro, numero recibirá un formato sin decimales, pero con una coma (",") entre cada grupo de miles.

Si se entregan dos parámetros, numero recibirá un formato con la cantidad de decimales dada, con un punto (".") al frente, y una coma (",") entre cada grupo de miles.

Si todos los cuatro parámetros son dados, numero recibirá un formato con la cantidad de decimales dada, punto_dec en lugar de un punto (".") antes de los decimales, y sep_miles en lugar de una coma (",") entre cada grupo de miles.

Sólo el primer caracter de sep_miles es usado. Por ejemplo, si usa foo como sep_miles sobre el número 1000, number_format() devolverá 1f000.

Ejemplo 1. Ejemplo de number_format()

Por ejemplo, la notación francesa usa usualmente dos decimales, coma (',') como separador decimal, y espacio (' ') como separador de miles. Esto se puede lograr con esta línea:

<?php

$numero = 1234.56;

// notacion inglesa (predeterminada)
$numero_formato_ingles = number_format($numero);
// 1,234

// notacion francesa
$numero_formato_frances = number_format($numero, 2, ',', ' ');
// 1 234,56

$numero = 1234.5678;

// notacion inglesa sin separador de miles
$numero_formato_ingles = number_format($numero, 2, '.', '');
// 1234.57

?>

Vea también: sprintf(), printf() y sscanf().

Anterior | Inicio | Siguiente
nl2br | Subir | ord


ord

(PHP 3, PHP 4 )

ord -- Devuelve el valor ASCII de un caracter

Descripción

int ord ( string cadena)

Devuelve el valor ASCII del primer caracter de cadena. Esta función complementa a chr().

Ejemplo 1. Ejemplo de ord()

if (ord ($cad) == 10) {
    echo "El primer caracter de \$cad es un salto de línea.\n";
}

Vea también chr().

Anterior | Inicio | Siguiente
number_format | Subir | parse_str


parse_str

(PHP 3, PHP 4 )

parse_str -- Divide la cadena en variables

Descripción

void parse_str ( string cad)

Divide cad como si fuera la cadena de consulta enviada por un URL y crea las variables en el ámbito actual.

Ejemplo 1. Usando parse_str()

$cad = "primero=valor&segundo[]=esto+funciona&segundo[]=otro";
parse_str($cad);
echo $primero;    /* escribe "valor" */
echo $segundo[0]; /* escribe "esto funciona" */
echo $segundo[1]; /* escribe "otro" */

Anterior | Inicio | Siguiente
ord | Subir | print


print

(PHP 3, PHP 4 )

print -- Emite una cadena

Descripción

print ( string arg)

Emite arg.

Vea también: echo(), printf(), y flush().

Anterior | Inicio | Siguiente
parse_str | Subir | printf


printf

(PHP 3, PHP 4 )

printf -- Emite una cadena con formato

Descripción

int printf ( string formato [, mixed args])

Produce una salida según el formato, que es descrito en la documentación para sprintf().

Vea también: print(), sprintf(),
    sscanf(), fscanf(),
    y flush().

Anterior | Inicio | Siguiente
print | Subir | quoted_printable_decode


quoted_printable_decode

(PHP 3>= 3.0.6, PHP 4 )

quoted_printable_decode -- Convierte una cadena con marcación imprimible a una cadena de 8 bits

Descripción

string quoted_printable_decode ( string cad)

Esta función devuelve una cadena binaria de 8 bit que se corresponde con la cadena con marcación imprimible decodificada. Esta función es similar a imap_qprint(), pero sin requerir que el módulo IMAP funcione.

Anterior | Inicio | Siguiente
printf | Subir | quotemeta


quotemeta

(PHP 3, PHP 4 )

quotemeta -- Quote meta characters

Descripción

string quotemeta ( string cad)

Devuelve una versión de la cadena con una barra invertida (\) antes de cada caracter de este conjunto:
. \\ + * ? [ ^ ] ( $ )

Vea también addslashes(),
htmlentities(),
htmlspecialchars(),
nl2br(), y
stripslashes().

Anterior | Inicio | Siguiente
quoted_printable_decode | Subir | rtrim


rtrim

(PHP 3, PHP 4 )

rtrim -- Elimina espacios en blanco al final de la cadena.

Descripción

string rtrim ( string cad)

Devuelve la cadena argumento sin espacios en blanco ni saltos de línea al final. Es un alias para chop().

Ejemplo 1. Ejemplo de rtrim()

$recortada = rtrim ($linea);

Vea también trim(), ltrim().

Anterior | Inicio | Siguiente
quotemeta | Subir | setlocale


setlocale

(PHP 3, PHP 4 )

setlocale -- Fija la información de localidad

Descripción

string setlocale ( string categoria, string localidad)

categoria es una cadena que especifica la categoría de las funciones afectadas por el ajuste de localidad:

  • LC_ALL para todas las funciones

  • LC_COLLATE para la comparación de cadenas - aún no incluída en el PHP

  • LC_CTYPE para la conversión y clasificación de caracteres, como por ejemplo strtoupper()

  • LC_MONETARY para localeconv() - aún no incluída en el PHP

  • LC_NUMERIC para el separador decimal

  • LC_TIME para el formato de fecha y hora con strftime()

Si localidad es la cadena vacía "", los nombres de localidad se fijarán a partir de las variables de entorno con los mismos nombres de las categorías anteriores, o desde "LANG".

Si la localidad es cero o "0", el ajuste de localidad no se ve afectado y sólo se devuelve el ajuste actual.

setlocale devuelve la nueva localidad, o FALSE si la funcionalidad de localización no está disponible en la plataforma, la localidad especificada no existe o el nombre de categoría no es válido. Un nombre de categoría no válido también produce un mensaje de aviso.

Anterior | Inicio | Siguiente
rtrim | Subir | sha1_file


sha1_file

(PHP 4 >= 4.3.0)

sha1_file -- Calcular el resumen criptográfico sha1 de un archivo

Descripción

string sha1_file ( string nombre_archivo [, bool salida_pura])

Calcula el resumen criptográfico sha1 de nombre_archivo usando el Algoritmo de Hash Seguro US 1, y devuelve ese resumen. El resumen criptográfico es un número hexadecimal de 40 caracteres. En caso de fallo, se devuelve FALSE. Si el parámetro opcional salida_pura es definido a TRUE, entonces el resumen sha1 es devuelto en su lugar en un formato binario puro, con una longitud de 20.

Nota: El parámetro opcional salida_pura fue añadido en PHP 5.0.0 y tiene un valor predeterminado de FALSE.

Vea también sha1(), crc32(), y md5_file()

Anterior | Inicio | Siguiente
setlocale | Subir | sha1


sha1

(PHP 4 >= 4.3.0)

sha1 -- Calcular el resumen criptográfico sha1 de una cadena

Descripción

string sha1 ( string cadena [, bool salida_pura])

Calcula el resumen criptográfico sha1 de cadena usando el Algoritmo de Hash Seguro US 1, y devuelve ese resumen. El resumen criptográfico es un número hexadecimal de 40 caracteres. Si el parámetro opcional salida_pura es definido a TRUE, entonces el resumen sha1 es devuelto en su lugar en un formato binario puro, con una longitud de 20.

Nota: El parámetro opcional salida_pura fue añadido en PHP 5.0.0 y tiene un valor predeterminado de FALSE

Ejemplo 1. Un ejemplo de sha1()

<?php
$cadena = 'manzana';

if (sha1($cadena) === '6cc76bddf29e934258e30fbf301ad8ec89cb7cc6') {
    echo "&iquest;Quisiera una manzana verde o roja?";
    exit;
}
?>

Vea también sha1_file(), crc32(), y md5()

Anterior | Inicio | Siguiente
sha1_file | Subir | similar_text


similar_text

(PHP 3>= 3.0.7, PHP 4 )

similar_text -- Calcula la similitud entre dos cadenas

Descripción

int similar_text ( string primera, string segunda [, double porcentaje])

Esta función calcula la similitud entre dos cadenas según se describe en Oliver [1993]. Nótese que esta implementación no utiliza una pila como en el pseudo-código de Oliver, sino llamadas recursivas que pueden o no acelerar el proceso completo. Nótese también que la complejidad de este algoritmo es O(N**3), donde N es la longitud de la cadena más larga.

Pasando una referencia como tercer argumento, similar_text() calculará para usted la similitud como porcentaje. Devuelve el número de caracteres coincidentes en ambas cadenas.

Anterior | Inicio | Siguiente
sha1 | Subir | soundex


soundex

(PHP 3, PHP 4 )

soundex -- Calcula la clave soundex de una cadena

Descripción

string soundex ( string cad)

Calcula la clave soundex de cad.

Las claves soundex tienen la propiedad de que las palabras que se pronuncian de forma parecida tienen la misma clave, de modo que se pueden usar para simplificar la búsqueda en las bases de datos cuando se conoce la pronunciación pero no la transcripción. Esta función soundex devuelve una cadena de 4 caracteres que comienza por una letra.

Esta función soundex en particular es la descrita por Donald Knuth en "The Art Of Computer Programming, vol. 3: Sorting And Searching", Addison-Wesley (1973), pp. 391-392.

Ejemplo 1. Ejemplos de Soundex

soundex ("Euler") == soundex ("Ellery") == 'E460';
soundex ("Gauss") == soundex ("Ghosh") == 'G200';
soundex ("Knuth") == soundex ("Kant") == 'H416';
soundex ("Lloyd") == soundex ("Ladd") == 'L300';
soundex ("Lukasiewicz") == soundex ("Lissajous") == 'L222';

Anterior | Inicio | Siguiente
similar_text | Subir | sprintf


sprintf

(PHP 3, PHP 4 )

sprintf -- Devuelve una cadena con formato

Descripción

string sprintf ( string formato [, mixed args])

Devuelve una cadena producida de acuerdo a la cadena de formato.

La cadena de formato está compuesta por cero o más directivas: caracteres ordinarios (excepto %) que son copiados directamente al resultado, y especificaciones de conversión, cada una de las cuales provoca la obtención de su propio parámetro. Esto se aplica tanto a sprintf() como a printf().

Cada especificación de conversión consiste en uno de estos elementos, por orden:

  1. Un especificador de relleno opcional que indica qué caracter se utilizará para rellenar el resultado hasta el tamaño de cadena correcto. Este puede ser un espacio o un 0 (caracter cero). El valor por defecto es rellenar con espacios. Un caracter de relleno alternativo se puede especificar prefijándolo con una comilla simple ('). Vea los ejemplos más abajo.

  2. Un especificador de alineación opcional que indica si el resultado debe ser alineado a la izquierda o a la derecha. Por defecto se alinea a la derecha; un caracter - aquí lo justificará a la izquierda.

  3. Un número opcional, un especificador de ancho que dice el número de caracteres (mínimo) en que debería resultar esta conversión.

  4. Un especificador de precisión opcional que indica cuántos dígitos decimales deben mostrarse para los números en coma flotante. Esta opción no tienen efecto para otros tipos que no sean double. (Otra función útil para formatear números es number_format()).

  5. Un especificador de tipo que indica el tipo a usar para tratar los datos de los argumentos. Los tipos posibles son:

    % - un caracter literal de porcentaje. No se precisa argumento.
    b - el argumento es tratado como un entero y presentado como un número binario.
    c - el argumento es tratado como un entero, y presentado como el caracter con dicho valor ASCII.
    d - el argumento es tratado como un entero y presentado como un número decimal.
    f - el argumento es tratado como un doble y presentado como un número de coma flotante.
    o - el argumento es tratado como un entero, y presentado como un número octal.
    s - el argumento es tratado como una cadena y es presentado como tal.
    x - el argumento es tratado como un entero y presentado como un número hexadecimal (con minúsculas).
    X - el argumento es tratado como un entero y presentado como un número hexadecimal (con mayúsculas).

Vea también: printf(), sscanf(), fscanf(), y number_format().

Ejemplos

Ejemplo 1. Ejemplo de sprintf(): enteros rellenos con ceros

$fechaiso = sprintf ("%04d-%02d-%02d", $anno, $mes, $dia);

Ejemplo 2. Ejemplo de sprintf(): formateando monedas

$pelas1 = 68.75;
$pelas2 = 54.35;
$pelas = $pelas1 + $pelas2;
// echo $pelas mostrará "123.1";
$formateado = sprintf ("%01.2f", $pelas);
// echo $formateado mostrará "123.10"

Anterior | Inicio | Siguiente
soundex | Subir | sscanf


sscanf

(PHP 4 >= 4.0.1)

sscanf -- Trocea la entrada desde una cadena según un formato dado

Descripción

mixed sscanf ( string cad, string formato [, string var1])

La funciónsscanf() es la función de entrada análoga de printf(). sscanf() lee del parámetro de cadena cad y lo interpreta según el formato especificado. Si sólo se pasan dos parámetros a esta función, los valores devueltos se harán en una matriz.

Ejemplo 1. Ejemplo de sscanf()

// obteniendo el número de serie
$numserie = sscanf("SN/2350001","SN/%d");
// y la fecha de fabricación
$fecha = "01 Enero 2000";
list($dia, $mes, $anno) = sscanf($fecha,"%d %s %d");
echo "El objeto $numserie fue fabricado el: $anno-".substr($mes,0,3)."-$dia\n";
Si se pasan los parámetros opcionales, la función devolverá el número de valores asignados. Los parámetros opcionales deben ser pasados por referencia.

Ejemplo 2. Ejemplo de sscanf() - usando parámetros opcionales

// obtener autor y generar la ficha DocBook
$autor = "24\tLewis Carroll";
$n = sscanf($autor,"%d\t%s %s", &$id, &$nombre, &$apell);
echo "<autor id='$id'>
        <firstname>$nombre</firstname>
        <surname>$apell</surname>
</author>\n";

Vea también: fscanf(), printf(), y sprintf().

Anterior | Inicio | Siguiente
sprintf | Subir | str_ireplace


str_ireplace

(PHP 5 CVS only)

str_ireplace -- Versión insensible a mayúsculas y minúsculas de str_replace().

Descripción

mixed str_ireplace ( mixed busqueda, mixed reemplazo, mixed asunto [, int &conteo])

Esta función devuelve una cadena o una matriz con todas las ocurrencias de busqueda en asunto (ignorando mayúsculas y minúsculas) sustituidas por el reemplazo dado. Si no necesita reglas de reemplazo sofisticadas, usted debería, por lo general, usar esta función en lugar de eregi_replace() o preg_replace() con el modificador i.

Si asunto es una matriz, entonces las búsquedas y reemplazos son realizados con cada entrada de asunto, y el valor devuelto es asimismo una matriz.

Si busqueda y reemplazo son matrices, entonces str_ireplace() toma un valor de cada matriz y los usa para realizar las búsquedas y reemplazos sobre asunto. Si reemplazo tiene menos valores que busqueda, entonces se usa una cadena vacía para el resto de valores de reemplazo. Si busqueda es una matriz y reemplazo es una cadena, entonces ésta cadena de reemplazo es usada para cada valor de busqueda.

Ejemplo 1. Ejemplo de str_ireplace()

<?php
$etiqueta_body = str_ireplace("%body%", "black", "<body text=%BODY%>");
?>

Esta función es segura con material binario.

Nota: A partir de PHP 5.0.0, el número de agujas encontradas y reemplazadas será devuelto en conteo, el cual es pasado por referencia. Antes de PHP 5.0.0, este parámetro no se encuentra disponible.

Vea también:
str_replace(),
ereg_replace(),
preg_replace(), y
strtr().

Anterior | Inicio | Siguiente
sscanf | Subir | str_pad


str_pad

(PHP 4 >= 4.0.1)

str_pad -- Rellena una cadena con otra hasta una longitud dada

Descripción

string str_pad ( string entrada, int tama_relleno [, string cad_relleno [, int tipo_relleno]])

Esta función rellena la cadena entrada por la derecha, la izquierda o por ambos lados hasta el largo indicado. Si no se especifica el argumento opcional cad_relleno, entrada es rellenada con espacios. En caso contrario, será rellenada con los caracteres de cad_relleno hasta el límite.

El argumento opcional tipo_relleno puede valer STR_PAD_RIGHT, STR_PAD_LEFT, o STR_PAD_BOTH. Si no se especifica, se asume que vale STR_PAD_RIGHT.

Si el valor de tama_relleno es negativo o menor que la longitud de la cadena de entrada, no se produce rellenado alguno.

Ejemplo 1. Ejemplo de str_pad()

$entrada = "Alien";
print str_pad($entrada, 10);                      // produce "Alien     "
print str_pad($entrada, 10, "-=", STR_PAD_LEFT);  // produce "-=-=-Alien"
print str_pad($entrada, 10, "_", STR_PAD_BOTH);   // produce "__Alien___"

Anterior | Inicio | Siguiente
str_ireplace | Subir | str_repeat


str_repeat

(PHP 4 )

str_repeat -- Repite una cadena

Descripción

string str_repeat ( string cad_entrada, int veces)

Devuelve la cad_entrada repetida veces. veces debe ser mayor que 0.

Ejemplo 1. Ejemplo de str_repeat()

echo str_repeat ("-=", 10);

Esto mostrará "-=-=-=-=-=-=-=-=-=-=".

Nota: Esta función fue añadida en el PHP 4.0.

Anterior | Inicio | Siguiente
str_pad | Subir | str_replace


str_replace

(PHP 3>= 3.0.6, PHP 4 )

str_replace -- Sustitiye todas las apariciones de la aguja en el pajar por la cadena

Descripción

string str_replace ( string aguja, string cad, string pajar)

Esta función sustituye todas las apariciones de la aguja en el pajar por la cad dada. Si no precisa reglas especiales de sustitución, deberá usar siempre esta función en lugar de ereg_replace().

Ejemplo 1. Ejemplo de str_replace()

$bodytag = str_replace ("%cuerpo%", "negro", "<body text=%cuerpo%>");

Esta función tiene seguridad binaria.

Nota: str_replace() fue añadida en PHP 3.0.6, pero tuvo errores hasta el PHP 3.0.8.

Vea también ereg_replace() y strtr().

Anterior | Inicio | Siguiente
str_repeat | Subir | str_rot13


str_rot13

(PHP 4 >= 4.2.0)

str_rot13 -- Realizar la transformación rot13 sobre una cadena

Descripción

string str_rot13 ( string cadena)

Esta función aplica la codificación ROT13 sobre el argumento cadena y devuelve la cadena resultante. La codificación ROT13 simplemente desplaza cada letra en 13 posiciones en el alfabeto, mientras que deja todos los caracteres no-alfabéticos intactos. La codificación y la decodificación se realizan con la misma función, pasar una cadena codificada como argumento devolverá la versión original.

Ejemplo 1. Ejemplo de rot13()

<?php

echo str_rot13('PHP 4.3.0'); // CUC 4.3.0

?>

Nota: El comportamiento de esta función era equivocado hasta PHP 4.3.0. Anteriormente, la cadena era también modificada, como si fuera pasada por referencia.

Anterior | Inicio | Siguiente
str_replace | Subir | str_shuffle


str_shuffle

(PHP 4 >= 4.3.0)

str_shuffle -- Reordena aleatoriamente una cadena

Descripción

string str_shuffle ( string cadena)

str_shuffle() baraja una cadena. Es creada una permutación de todas las posibles.

Ejemplo 1. Ejemplo de str_shuffle()

<?php
$cadena = 'abcdef';
$desordenada = str_shuffle($cadena);

// Esto imprime algo como: bfdaec
print $desordenada;
?>

Vea también shuffle() y rand().

Anterior | Inicio | Siguiente
str_rot13 | Subir | str_split


str_split

(PHP 5 CVS only)

str_split -- Convertir una cadena en una matriz

Descripción

array str_split ( string cadena [, int longitud_separacion])

Convierte una cadena en una matriz. Si el parámetro opcional longitud_separacion es especificado, la matriz devuelta estará separada en pedazos, cada uno de longitud longitud_separacion, de otro modo cada trozo tendrá un caracter de longitud.

Se devuelve FALSE si longitud_separacion es menor que 1. Si la longitud longitud_separacion excede la longitud de cadena, entonces la cadena completa es devuelta como el primer (y único) elemento de la matriz.

Ejemplo 1. Ejemplos de uso de str_split()

<?php

$cadena = "Hello Friend";

$matriz1 = str_split($cadena);
$matriz2 = str_split($cadena, 3);

print_r($matriz1);
print_r($matriz2);

/* La salida puede verse algo como:

Array
(
    [0] => H
    [1] => e
    [2] => l
    [3] => l
    [4] => o
    [5] =>
    [6] => F
    [7] => r
    [8] => i
    [9] => e
    [10] => n
    [11] => d
)

Array
(
    [0] => Hel
    [1] => lo
    [2] => Fri
    [3] => end
)
*/
?>

Ejemplo 2. Ejemplos relacionados con str_split()

<?php

$cadena = "Hello Friend";

print $cadena{0};  // H
print $cadena{8};  // i

// Crea: array('H','e','l','l','o',' ','F','r','i','e','n','d')
$matriz1 = preg_split('//', $cadena, -1, PREG_SPLIT_NO_EMPTY);

?>

Vea también
preg_split(),
split(),
count_chars(),
str_word_count(), y
for.

Anterior | Inicio | Siguiente
str_shuffle | Subir | str_word_count


str_word_count

(PHP 4 >= 4.3.0)

str_word_count -- Devolver información sobre las palabras usadas en una cadena

Descripción

mixed str_word_count ( string cadena [, int formato])

Cuenta el número de palabras en cadena. Si el formato opcional no es especificado, entonces el valor devuelto será un número que representa el número de palabras encontradas. En caso de que el formato sea especificado, el valor devuelto será una matriz, cuyo contenido depende del formato. Los valores posibles para el formato y las salidas resultantes son listadas a continuación.

  • 1 - devuelve una matriz que contiene todas las palabras encontradas en la cadena.

  • 2 - devuelve una matriz asociativa, en donde la clave es la posición numérica de la palabra dentro de la cadena, y el valor es la palabra misma.

Para el propósito de esta función, 'palabra' se define como una cadena dependiente de la localidad, que contiene caracteres alfabéticos, la cual puede también contener, pero no comenzar por los caracteres "'" y "-".

Ejemplo 1. Ejemplo de uso de str_word_count()

<?php

$cadena = "Hola amigo, se ve bien
           el dia de hoy.";

$a   = str_word_count($cadena, 1);
$b   = str_word_count($cadena, 2);
$c   = str_word_count($cadena);

print_r($a);
print_r($b);
print $c;

/* La salida puede verse algo asi:

Array
(
    [0] => Hola
    [1] => amigo
    [2] => se
    [3] => ve
    [4] => bien
    [5] => el
    [6] => dia
    [7] => de
    [8] => hoy
)

Array
(
    [0] => Hola
    [5] => amigo
    [12] => se
    [15] => ve
    [18] => bien
    [34] => el
    [37] => dia
    [41] => de
    [44] => hoy
)

9

*/
?>

Vea también
explode(),
preg_split(),
split(),
count_chars(), y
substr_count().

Anterior | Inicio | Siguiente
str_split | Subir | strcasecmp


strcasecmp

(PHP 3>= 3.0.2, PHP 4 )

strcasecmp -- Comparación de cadenas insensible a mayúsculas y minúsculas y segura en modo binario

Descripción

int strcasecmp ( string cad1, string cad2)

Devuelve < 0 si cad1 es menor que cad2; > 0 si cad1 es mayor que cad2, y 0 si son iguales.

Ejemplo 1. Ejemplo de strcasecmp()

$var1 = "Hello";
$var2 = "hello";
if (!strcasecmp ($var1, $var2)) {
    echo '$var1 es igual a $var2 en una comparación sin tener en cuenta '
     .'mayúsculas o minúsculas';
}

Vea también ereg(), strcmp(),
substr(), stristr(), y
strstr().

Anterior | Inicio | Siguiente
str_word_count | Subir | strchr


strchr

(PHP 3, PHP 4 )

strchr -- Encuentra la primera aparición de un caracter

Descripción

string strchr ( string pajar, string aguja)

Esta función es un alias para strstr(), y es idéntica en todo.

Anterior | Inicio | Siguiente
strcasecmp | Subir | strcmp


strcmp

(PHP 3, PHP 4 )

strcmp -- Comparación de cadenas con seguridad binaria

Descripción

int strcmp ( string cad1, string cad2)

Devuelve < 0 si cad1 es menor que cad2; > 0 si cad1 es mayor que cad2, y 0 si son iguales.

Nótese que esta comparación es sensible a mayúsculas y minúsculas.

Vea también ereg(),
strcasecmp(), substr(),
stristr(), strncmp(),
    y strstr().

Anterior | Inicio | Siguiente
strchr | Subir | strcoll


strcoll

(PHP 4 >= 4.0.5)

strcoll -- Comparación de cadenas basada en la localidad

Descripción

int strcoll ( string cad1, string cad2)

Devuelve < 0 si cad1 es menor que cad2; > 0 si cad1 es mayor que cad2, y 0 si son equivalentes. strcoll() usa la localidad actual para realizar las comparaciones. Si la localidad actual es C o POSIX, esta función es equivalente a strcmp().

Note que esta comparación es sensible a mayúsculas y minúsculas, y a diferencia de strcmp(), esta función no es segura con material binario.

Nota: strcoll() fue agregada en PHP 4.0.5, pero no estuvo habilitada para win32 hasta 4.2.3.

Vea también
ereg(), strcmp(),
strcasecmp(), substr(),
stristr(), strncasecmp(),
strncmp(), strstr(), y
setlocale().

Anterior | Inicio | Siguiente
strcmp | Subir | strcspn


strcspn

(PHP 3>= 3.0.3, PHP 4 )

strcspn -- Encuentra la longitud del elemento inicial que no coincide con la máscara

Descripción

int strcspn ( string cad1, string cad2)

Devuelve la longitud del segmento inicial de cad1 que no contiene ninguno de los caracteres de cad2.

Vea también strspn().

Anterior | Inicio | Siguiente
strcoll | Subir | strip_tags


strip_tags

(PHP 3>= 3.0.8, PHP 4 )

strip_tags -- Elimina marcas HTML y PHP de una cadena

Descripción

string strip_tags ( string cad [, string etiq_permitidas])

Esta función intenta eliminar todas las etiquetas HTML y PHP de la cadena dada. Causa error por precaución en caso de etiquetas incompletas o falsas. Utiliza la misma máquina de estados para eliminar las etiquetas que la función fgetss().

Puede usar el parámetro opcional para especificar las etiquetas que no deben eliminarse.

Nota: etiq_permitidas fue añadido en PHP 3.0.13, PHP4B3.

Anterior | Inicio | Siguiente
strcspn | Subir | stripcslashes


stripcslashes

(PHP 4 )

stripcslashes -- Desmarca la cadena marcada con addcslashes()

Descripción

string stripcslashes ( string cad)

Devuelve una cadena con las barras invertidas eliminadas. Reconoce las marcas tipo C \n, \r ..., y la representación octal y hexadecimal.

Nota: Añadida en PHP4b3-dev.

Vea también addcslashes().

Anterior | Inicio | Siguiente
strip_tags | Subir | stripos


stripos

(PHP 5 CVS only)

stripos -- Encontrar la posición de la primera ocurrencia de una cadena, insensible a mayúsculas y minúsculas

Descripción

int stripos ( string pajar, string aguja [, int desplazamiento])

Devuelve la posición numérica de la primera ocurrencia de aguja en el pajar tipo string. A diferencia de strpos(), stripos() es indiferente a mayúsculas y minúsculas.

Note que la aguja puede ser una cadena de uno o más caracteres.

Si aguja no se encuentra, stripos() devolverá el valor boolean FALSE.

Aviso

Esta función puede devolver FALSE, pero también puede devolver un valor no-booleano que será evaluado FALSE, como por ejemplo 0 o "". Por favor, lea la sección Booleans para más información. Utilice el operador === para comprobar el valor devuelto por esta función.

Ejemplo 1. Ejemplos de stripos()

<?php
$encontradme = 'a';
$micadena1 = 'xyz';
$micadena2 = 'ABC';

$pos1 = stripos($micadena1, $encontradme);
$pos2 = stripos($micadena2, $encontradme);

// No, ciertamente 'a' no esta en 'xyz'
if ($pos1 === false) {
    echo "La cadena '$encontradme' no fue encontrada en la cadena '$micadena1'";
}

// Note nuestro uso de ===.  Simplemente == no funcionaria como es de
// esperarse, ya que la posicion de 'a' es el caracter 0 (el primero).
if ($pos2 !== false) {
    echo "Encontramos '$encontradme' en '$micadena2' en la posicion $pos2";
}
?>

Si aguja no es una cadena, es convertida a un entero y aplicada como el valor ordinal de un caracter.

El parámetro opcional desplazamiento le permite especificar el caracter en pajar a partir del que desea empezar a buscar. La posición devuelta sigue siendo relativa al comienzo de pajar.

Vea también
strpos(), strrpos(),
strrchr(), substr(),
stristr(), strstr(),
strripos() y str_ireplace().

Anterior | Inicio | Siguiente
stripcslashes | Subir | stripslashes


stripslashes

(PHP 3, PHP 4 )

stripslashes -- Desmarca la cadena marcada con addslashes()

Descripción

string stripslashes ( string cad)

Devuelve una cadena con las barras invertidas eliminadas (\' se convierte en ', etc.). Las barras invertidas dobles se convierten en sencillas.

Vea también addslashes().

Anterior | Inicio | Siguiente
stripos | Subir | stristr


stristr

(PHP 3>= 3.0.6, PHP 4 )

stristr -- strstr() sin tener en cuenta mayúsculas o minúsculas

Descripción

string stristr ( string pajar, string aguja)

Devuelve todo el pajar desde la primera aparición de la aguja, siendo el pajar examinado sin tener en cuenta mayúsculas o minúsculas.

Si la aguja no se encuentra, devuelve FALSE.

Si la aguja no es una cadena, es convertida a entero y usada como código de un carácter ASCII.

Vea también strchr(),
strrchr(), substr(), y
ereg().

Anterior | Inicio | Siguiente
stripslashes | Subir | strlen


strlen

(PHP 3, PHP 4 )

strlen -- Obtiene la longitud de la cadena

Descripción

int strlen ( string cad)

Devuelve la longitud de la cadena.

Anterior | Inicio | Siguiente
stristr | Subir | strnatcasecmp


strnatcasecmp

(PHP 4 )

strnatcasecmp -- Comparación de cadenas insensible a mayúsculas y minúsculas usando un algoritmo de "orden natural"

Descripción

int strnatcasecmp ( string cad1, string cad2)

Esta función implementa un algoritmo de comparación que ordena las cadenas alfanuméricas como lo haría un ser humano. El comportamiento de esta función es similar a strnatcmp(), pero la comparación no es sensible a mayúsculas y minúsculas. Para más información, vea la página de Martin Pool sobre Comparación de Cadenas en Orden Natural.

De forma similar a otras funciones de comparación de cadenas, esta devuelve < 0 si cad1 es menor que cad2; > 0 si cad1 es mayor que cad2, y 0 si son iguales.

Vea también ereg(),
strcasecmp(), substr(),
stristr(), strcmp(),
strncmp(), strnatcmp(),
    y strstr().

Anterior | Inicio | Siguiente
strlen | Subir | strnatcmp


strnatcmp

(PHP 4 )

strnatcmp -- Compara cadenas usando un algoritmo de "orden natural"

Descripción

int strnatcmp ( string cad1, string cad2)

Esta función implementa un algoritmo de comparación que ordena las cadenas alfanuméricas como lo haría un ser humano, que es lo que se denomina "orden natural". A continuación se puede ver un ejemplo de la diferencia entre este algoritmo y los algoritmos de ordenación de cadenas habituales en los ordenadores (utilizados en strcmp()):

$matriz1 = $matriz2 = array ("img12.png","img10.png","img2.png","img1.png");
echo "Comparación de cadenas estándar\n";
usort($matriz1,"strcmp");
print_r($matriz1);
echo "\nComparación de cadenas en orden natural\n";
usort($matriz2,"strnatcmp");
print_r($matriz2);

El código anterior generará la siguiente salida:

Comparación de cadenas estándar
Array
(
    [0] => img1.png
    [1] => img10.png
    [2] => img12.png
    [3] => img2.png
)

Comparación de cadenas en orden natural
Array
(
    [0] => img1.png
    [1] => img2.png
    [2] => img10.png
    [3] => img12.png
)

Para más información, vea la página de Martin Pool sobre Comparación de Cadenas en Orden Natural.

De forma similar a otras funciones de comparación de cadenas, esta devuelve < 0 si cad1 es menor que cad2; > 0 si cad1 es mayor que cad2, y 0 si son iguales.

Nótese que esta comparación es sensible a mayúsculas y minúsculas.

Vea también ereg(),
strcasecmp(), substr(),
stristr(), strcmp(),
strncmp(), strnatcasecmp(),
    y strstr().

Anterior | Inicio | Siguiente
strnatcasecmp | Subir | strncasecmp


strncasecmp

(PHP 4 >= 4.0.2)

strncasecmp -- Comparación de los primeros n caracteres de cadenas, segura con material binario e insensible a mayúsculas y minúsculas

Descripción

int strncasecmp ( string cad1, string cad2, int longitud)

Esta función es similar a strcasecmp(), con la diferencia de que puede especificar el (límite superior de) número de caracteres (longitud) de cada cadena a ser usado en la comparación. Si cualquiera de las cadenas es más corta que longitud, entonces toda la longitud de esa cadena será usada para la comparación.

Devuelve < 0 si cad1 es menor que cad2; > 0 si cad1 es mayor que cad2, y 0 si son equivalentes.

Vea también
ereg(), strcasecmp(),
strcmp(), substr(),
stristr(), y strstr().

Anterior | Inicio | Siguiente
strnatcmp | Subir | strncmp


strncmp

(PHP 4 )

strncmp -- Comparación de los n primeros caracteres de cadenas, con seguridad binaria

Descripción

int strncmp ( string cad1, string cad2, int largo)

Esta función es similar a strcmp(), con la diferencia que se puede especificar el (límite superior del) número de caractares (largo) de cada cadena que se usarán en la comparación. Si alguna de las cadenas es menor que el largo, se usará su longitud para la comparación.

Devuelve < 0 si cad1 es menor que cad2; > 0 si cad1 es mayor que cad2, y 0 si son iguales.

Nótese que esta comparación es sensible a mayúsculas y minúsculas.

Vea también ereg(),
strcasecmp(), substr(),
stristr(), strcmp(),
    y strstr().

Anterior | Inicio | Siguiente
strncasecmp | Subir | strpos


strpos

(PHP 3, PHP 4 )

strpos -- Encuentra la posición de la primera aparición de una cadena

Descripción

int strpos ( string pajar, string aguja [, int desplazamiento])

Devuelve la posición numérica de la primera aparición de la aguja en la cadena pajar. A diferencia de strrpos(), esta función puede tomar una cadena completa como aguja y se utilizará en su totalidad.

Si la aguja no es hayada, devuelve FALSE.

Nota: Es fácil confundir los valores de retorno para "caracter encontrado en la posición 0" y "caracter no encontrado". Aquí se indica cómo detectar la diferencia:

// en PHP 4.0b3 y posteriores:
$pos = strpos ($micadena, "b");
if ($pos === false) { // nota: tres signos igual
    // no encontrado ...
}

// en versiones anteriores a la 4.0b3:
$pos = strpos ($micadena, "b");
if (is_string ($pos) && !$pos) {
    // no encontrado ...
}

Si la aguja no es una cadena, se convierte a entero y se aplica como el valor ordinal de un caracter.

El parámetro opcional desplazamiento le permite especificar a partir de qué caracter del pajar comenzar a buscar. La posición devuelta es aún relativa al comienzo de pajar.

Vea también strrpos(),
strrchr(), substr(),
stristr(), y strstr().

Anterior | Inicio | Siguiente
strncmp | Subir | strrchr


strrchr

(PHP 3, PHP 4 )

strrchr -- Encuentra la última aparición de un caracter en una cadena

Descripción

string strrchr ( string pajar, string aguja)

Esta función devuelve la porción del pajar que comienza en la última aparición de la aguja y continúa hasta el final del pajar.

Devuelve FALSE si la aguja no es hallada.

Si la aguja contiene más de un caracter, sólo se usará el primero.

Si la aguja no es una cadena, se convierte a entero y se aplica como el valor ordinal de un caracter.

Ejemplo 1. Ejemplo de strrchr()

// obtener el último directorio de $PATH
$dir = substr (strrchr ($PATH, ":"), 1);

// obtener todo tras el último salto de línea
$texto = "Line 1\nLine 2\nLine 3";
$apell = substr (strrchr ($texto, 10), 1 );

Vea también substr(), stristr(), y strstr().

Anterior | Inicio | Siguiente
strpos | Subir | strrev


strrev

(PHP 3, PHP 4 )

strrev -- Invierte una cadena

Descripción

string strrev ( string cadena)

Devuele la cadena invertida.

Anterior | Inicio | Siguiente
strrchr | Subir | strripos


strripos

(PHP 5 CVS only)

strripos -- Encontrar la posición de la última ocurrencia de una cadena en otra, insensible a mayúsculas y minúsculas

Descripción

int strripos ( string pajar, string aguja [, int desplazamiento])

Devuelve la posición numérica de la última ocurrencia de aguja en la cadena pajar. A diferencia de strrpos(), strripos() es indiferente a mayúsculas y minúsculas. También note que las posiciones de una cadena comienzan por 0, y no 1.

Note que la aguja puede ser una cadena de uno o más caracteres.

Si la aguja no es encontrada, se devuelve FALSE.

Aviso

Esta función puede devolver FALSE, pero también puede devolver un valor no-booleano que será evaluado FALSE, como por ejemplo 0 o "". Por favor, lea la sección Booleans para más información. Utilice el operador === para comprobar el valor devuelto por esta función.

Ejemplo 1. Un ejemplo simple de strripos()

<?php
$pajar = 'ababcd';
$aguja = 'aB';

$pos   = strripos($pajar, $aguja);

if ($pos === false) {
    echo "Lo siento, no encontramos ($aguja) en ($pajar)";
} else {
    echo "&iexcl;Felicitaciones!\n";
    echo "Encontramos la &uacute;ltima ocurrencia de ($aguja) en ($pajar) en " .
         "la posici&oacute;n ($pos)";
}

/* Produce la salida:

&iexcl;Felicitaciones!
Encontramos la &uacute;ltima ocurrencia de (aB) en (ababcd) en la posici&oacute;n (2)

*/
?>

El desplazamiento puede ser especificado para comenzar la búsqueda en un número arbitrario de caracteres dentro de la cadena. Los valores negativos detendrán la búsqueda en un punto arbitrario anterior al final de la cadena.

Vea también
strrpos(),
strrchr(),
substr(), stripos() y
stristr().

Anterior | Inicio | Siguiente
strrev | Subir | strrpos


strrpos

(PHP 3, PHP 4 )

strrpos -- Encuentra la posición de la última aparición de un caracter en una cadena

Descripción

int strrpos ( string pajar, char aguja)

Devuele la posición numérica de la última aparición de la aguja en el pajar. Nótese que la aguja en este caso sólo puede ser un caracter único. Si se pasa una cadena como aguja, sólo se utilizará el primer caracter de la misma.

Si la aguja no es hayada, devuelve FALSE.

Si la aguja no es una cadena, se convierte a entero y se aplica como el valor ordinal de un caracter.

Vea también strpos(),
strrchr(), substr(),
stristr(), y strstr().

Anterior | Inicio | Siguiente
strripos | Subir | strspn


strspn

(PHP 3>= 3.0.3, PHP 4 )

strspn -- Encuentra la longitud del segmento inicial que coincide con la máscara

Descripción

int strspn ( string cad1, string cad2)

Devuelve la longitud del segmento inicial de cad1 que consiste por entero en caracteres contenidos en cad2.

strspn ("42 es la respuesta. ¿Cuál es la pregunta ...?", "1234567890");

devolverá 2 como resultado.

Vea también strcspn().

Anterior | Inicio | Siguiente
strrpos | Subir | strstr


strstr

(PHP 3, PHP 4 )

strstr -- Encuentra la primera aparición de una cadena

Descripción

string strstr ( string pajar, string aguja)

Devuelve todo el pajar desde la primera aparición de la aguja hasta el final.

Si la aguja no es hayada, devuelve FALSE.

Si la aguja no es una cadena, se convierte a entero y se aplica como el valor ordinal de un caracter.

Nota: Nótese que esta función es sensible a mayúsculas y minúsculas. Para búsquedas no sensibles, utilice stristr().

Ejemplo 1. Ejemplo de strstr()

$email = 'sterling@designmultimedia.com';
$dominio = strstr ($email, '@');
print $dominio; // imprime @designmultimedia.com

Vea también stristr(),
strrchr(), substr(), y
ereg().

Anterior | Inicio | Siguiente
strspn | Subir | strtok


strtok

(PHP 3, PHP 4 )

strtok -- Divide una cadena en elementos

Descripción

string strtok ( string arg1, string arg2)

strtok() se usa para dividir en elementos una cadena. Es decir, que si tiene una cadena como "Esta es una cadena de ejemplo" podría dividirla en palabras individuales utilizando el espacio como divisor.

Ejemplo 1. Ejemplo de strtok()

$cadena = "Esta es una cadena de ejemplo";
$tok = strtok ($cadena," ");
while ($tok) {
    echo "Palabra=$tok<br>";
    $tok = strtok (" ");
}

Nótese que sólo la primera llamada a strtok utiliza el argumento cadena. Cada llamada subsiguiente necesita sólo el divisor a utilizar, puesto que ella guarda la posición actual en la cadena. Para comenzar de nuevo o para dividir otra cadena, simplemente llame a strtok con el argumento de cadena y se inicializará. Nótese que puede poner divisores múltiples como parámetro. La cadena será dividida cuando alguno de los caracteres del argumento sea hallado.

Además tenga cuidado si sus divisores valen "0", pues evalúa como FALSE en las expresiones condicionales.

Vea también split() y explode().

Anterior | Inicio | Siguiente
strstr | Subir | strtolower


strtolower

(PHP 3, PHP 4 )

strtolower -- Pasa a minúsculas una cadena

Descripción

string strtolower ( string cad)

Devuelve la cadena con todas sus letras en minúsculas.

Nótese que las letras son definidad por el locale actual. Esto quiere decir que, por ejemplo, en el locale por defecto ("C"), los caracteres como la Ñ no serán convertidos.

Ejemplo 1. Ejemplo de strtolower()

$cad = "María Tenía Un Corderito al que QUERÍA Mucho";
$cad = strtolower($cad);
print $cad; # Visualiza maría tenía un corderito al que querÍa mucho

Vea también strtoupper() y ucfirst().

Anterior | Inicio | Siguiente
strtok | Subir | strtoupper


strtoupper

(PHP 3, PHP 4 )

strtoupper -- Pasa a mayúsculas una cadena

Descripción

string strtoupper ( string cadena)

Devuelve la cadena con todas sus letras en mayúsculas.

Nótese que las letras son definidad por el locale actual. Esto quiere decir que, por ejemplo, en el locale por defecto ("C"), los caracteres como la ñ no serán convertidos.

Ejemplo 1. Ejemplo de strtoupper()

$cad = "María Tenía Un Corderito al que QUERÍA Mucho";
$cad = strtoupper ($cad);
print $cad; # Visuaiza MARíA TENíA UN CORDERITO AL QUE QUERÍA MUCHO

Vea también strtolower() and ucfirst().

Anterior | Inicio | Siguiente
strtolower | Subir | strtr


strtr

(PHP 3, PHP 4 )

strtr -- Traduce ciertos caracteres

Descripción

string strtr ( string cad, string desde, string hasta)

Esta función trabaja sobre cad, traduciendo todas las apariciones de cada caracter en desde por el caracter correspondiente en hasta y devolviendo el resultado.

Si desde y hasta son de distinta longitud, los caracteres extra en la más larga son ignorados.

Ejemplo 1. Ejemplo de strtr()

$addr = strtr($addr, "äåö", "aao");

strtr() puede llamarso sólo con dos argumentos. Si se llama de esta manera, se comporta de otro modo: desde debe ser entonces una matriz que contenga pares cadena -> cadena que serán sustituídos en la cadena fuente. strtr() siempre buscará la coincidencia más larga primero y *NO* intentará sustituir nada en lo que haya trabajado ya.

Ejemplos:

$trad = array ("hola" => "hey", "hey" => "hola");
echo strtr("hey a todos, dije hola", $trad) . "\n";

Mostrará: "hola a todos, dije hey",

Nota: Esta característica (2 argumentos) fue añadida en el PHP 4.0

Vea también ereg_replace().

Anterior | Inicio | Siguiente
strtoupper | Subir | substr_compare


substr_compare

(no version information, might be only in CVS)

substr_compare -- Comparación de 2 cadenas, segura con material binario, opcionalmente insensible a mayúsculas y minúsculas, a partir de un desplazamiento, y hasta un número límite de caracteres

Descripción

int substr_compare ( string cadena_principal, string cadena, int desplazamiento [, int longitud [, bool sensibilidad_mayusculas]])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
strtr | Subir | substr_count


substr_count

(PHP 4 )

substr_count -- Cuenta el número de apariciones de la subcadena

Descripción

int substr_count ( string pajar, string aguja)

substr_count() devuelve el número de veces que la subcadena aguja se encuentra en la cadena pajar.

Ejemplo 1. Ejemplo de substr_count()

print substr_count("This is a test", "is"); // prints out 2

Anterior | Inicio | Siguiente
substr_compare | Subir | substr_replace


substr_replace

(PHP 4 )

substr_replace -- Sustituye texto en una parte de una cadena

Descripción

string substr_replace ( string cadena, string sustituto, int comienzo [, int largo])

substr_replace() sustituye la parte de cadena delimitada por los parámetros comienzo y (opcionalmente) largo por la cadena dada en sustituto. Se devuelve el resultado.

Si comienzo es positivo, la sustitución comenzará en dicha posición dentro de la cadena.

Si comienzo es negativo, la sustitución comenzará en dicha posición pero contando desde el final de cadena.

Si se especifica el largo y es positivo, representa el largo de la porción de cadena a sustituir. Si es negativo, representa el número de caracteres desde el final de cadena en los que dejar de sustituir. Si no se especifica, valdrá por defecto strlen(cadena); es decir, que acabará la sustitución al final de cadena.

Ejemplo 1. Ejemplo de substr_replace()

<?php
$var = 'ABCDEFGH:/MNRPQR/';
echo "Original: $var<hr>\n";

/* Estos dos ejemplos sustituyen toda $var por 'bob'. */
echo substr_replace ($var, 'bob', 0) . "<br>\n";
echo substr_replace ($var, 'bob', 0, strlen ($var)) . "<br>\n";

/* Inserta 'bob' justo al inicio de $var. */
echo substr_replace ($var, 'bob', 0, 0) . "<br>\n";

/* Los dos siguientes cambian 'MNRPQR' en $var por 'bob'. */
echo substr_replace ($var, 'bob', 10, -1) . "<br>\n";
echo substr_replace ($var, 'bob', -7, -1) . "<br>\n";

/* Borrar 'MNRPQR' de $var. */
echo substr_replace ($var, '', 10, -1) . "<br>\n";
?>

Vea también str_replace() y substr().

Nota: substr_replace() fue añadida en el PHP 4.0.

Anterior | Inicio | Siguiente
substr_count | Subir | substr


substr

(PHP 3, PHP 4 )

substr -- Devuelve parte de una cadena

Descripción

string substr ( string cadena, int comienzo [, int largo])

substr devuelve la porción de cadena especificada por los parámetros comienzo y largo.

Si comienzo es positivo, la cadena devuelta comenzará en dicho caracter de cadena.

Ejemplos:

$resto = substr ("abcdef", 1);    // devuelve "bcdef"
$resto = substr ("abcdef", 1, 3); // devuelve "bcd"

Si comienzo es negativo, la cadena devuelta comenzará en dicha posición desde el final de cadena.

Ejemplos:

$resto = substr ("abcdef", -1);    // devuelve "f"
$resto = substr ("abcdef", -2);    // devuelve "ef"
$resto = substr ("abcdef", -3, 1); // devuelve "d"

Si se especifica largo y es positivo, la cadena devuelta terminará largo caracteres tras el comienzo. Si esto resulta en una cadena con longitud negativa (porque el comienzo está pasado el final de la cadena), la cadena devuelta contendrá únicamente el caracter que haya en comienzo.

Si se especifica largo y es negativo, la cadena devuelta terminará a largo caracteres desde el final de cadena. Si esto resulta en una cadena con longitud negativa, la cadena devuelta contendrá únicamente el caracter que haya en comienzo.

Examples:

$resto = substr ("abcdef", 1, -1); // devuelve "bcde"

Vea también strrchr(),
substr_replace(),
ereg(), y
trim().

Anterior | Inicio | Siguiente
substr_replace | Subir | trim


trim

(PHP 3, PHP 4 )

trim -- Elimina espacios del principio y final de una cadena

Descripción

string trim ( string cad)

Esta función elimina los espacios en blanco del comienzo y del final de una cadena y devuelve el resultado. Los caracteres de espacio que elimina realmente son: "\n", "\r", "\t", "\v", "\0", y el espacio en sí.

Vea también chop() y ltrim().

Anterior | Inicio | Siguiente
substr | Subir | ucfirst


ucfirst

(PHP 3, PHP 4 )

ucfirst -- Pasar a mayúsculas el primer caracter de una cadena

Descripción

string ucfirst ( string cad)

Pone en mayúsculas el primer carácter de cad si es alfabético.

Nótese que 'alfabético' está determinado por la localidad actual. Por ejemplo, en la localidad por defecto "C", los caracteres como la a con diéresis (ä) no serán convertidos.

Ejemplo 1. Ejemplo de ucfirst()

$texto = 'susanita tiene un ratón, un ratón chiquitín.';
$texto = ucfirst ($texto); // $texto vale ahora: Susanita tiene un
            // ratón, un ratón chiquitín.

Vea también strtoupper() y strtolower()

Anterior | Inicio | Siguiente
trim | Subir | ucwords


ucwords

(PHP 3>= 3.0.3, PHP 4 )

ucwords -- Pone en mayúsculas el primer caracter de cada palabra de una cadena

Descripción

string ucwords ( string cad)

Pasa a mayúsculas la primera letra de cada palabra en cad si dicho caracter es alfabético.

Ejemplo 1. Ejemplo de ucwords()

$texto = "susanita tiene un ratón, un ratón chiquitín.";
$texto = ucwords($texto); // $texto vale ahora: Susanita Tiene Un
                        // Ratón, Un Ratón Chiquitín.

Vea también strtoupper(), strtolower() y ucfirst().

Anterior | Inicio | Siguiente
ucfirst | Subir | vprintf


vprintf

(PHP 4 >= 4.1.0)

vprintf -- Imprimir una cadena con formato

Descripción

void vprintf ( string formato, array args)

Despliega los valores de una matriz como una cadena con formato de acuerdo al formato (el cual es descrito en la documentación de sprintf()).

Opera como printf() pero acepta una matriz como sus argumentos, en lugar de un número variable de argumentos.

Vea también printf(), sprintf(), vsprintf()

Anterior | Inicio | Siguiente
ucwords | Subir | vsprintf


vsprintf

(PHP 4 >= 4.1.0)

vsprintf -- Devuelve una cadena con formato

Descripción

string vsprintf ( string formato, array args)

Devuelve los valores de una matriz como una cadena con formato de acuerdo a formato (el cual es descrito en la documentación de sprintf()).

Opera como sprintf() pero acepta una matriz de argumentos, en lugar de un número variable de argumentos.

Vea también sprintf() y vprintf()

Anterior | Inicio | Siguiente
vprintf | Subir | wordwrap


wordwrap

(PHP 4 >= 4.0.2)

wordwrap -- Corta una cadena en un número dado de caracteres usando un caracter de ruptura de cadenas.

Descripción

string wordwrap ( string cad [, int ancho [, string ruptura]])

Corta la cadena cad en la columna especificada por el parámetro (opcional) ancho. La línea se rompe utilizando el parámetro (opcional) ruptura.

wordwrap() automáticamente cortará en la columna 75 y usará '\n' (nueva línea) si no se especifican el ancho o la ruptura.

Ejemplo 1. Ejemplo de wordwrap()

$texto = "El veloz murciélago hindú comía feliz cardillo y kiwi.";
$textonuevo = wordwrap( $texto, 20 );

echo "$textonuevo\n";

Este ejemplo mostraría:

El veloz murciélago
hindú comía feliz cardillo y kiwi.

Vea también nl2br().

Anterior | Inicio | Siguiente
vsprintf | Subir | Funciones de Sybase


Funciones de Sybase

Manual de PHP
Anterior Siguiente

CIII. Funciones de Sybase

Tabla de contenidos
sybase_affected_rows -- obtiene el número de filas afectadas por la última consulta
sybase_close -- cierra una conexión Sybase
sybase_connect -- abre una conexión con un servidor Sybase
sybase_data_seek -- mueve el puntero interno de la fila
sybase_deadlock_retry_count -- Sets the deadlock retry count
sybase_fetch_array -- carga una fila como un array
sybase_fetch_assoc -- Fetch a result row as an associative array
sybase_fetch_field -- obtiene la información del campo
sybase_fetch_object -- carga una fila como un objeto
sybase_fetch_row -- obtiene una fila como un array enumerado
sybase_field_seek -- establece el offset de un campo
sybase_free_result -- libera el resultado de la memoria
sybase_get_last_message -- Returns the last message from the server
sybase_min_client_severity -- Sets minimum client severity
sybase_min_error_severity -- Sets minimum error severity
sybase_min_message_severity -- Sets minimum message severity
sybase_min_server_severity -- Sets minimum server severity
sybase_num_fields -- obtiene el número de campos de un resultado
sybase_num_rows -- obtiene el número de filas de un resultado
sybase_pconnect -- abre una conexión con Sybase persistente
sybase_query -- envía una consulta a Sybase
sybase_result -- obtiene datos de un resultado
sybase_select_db -- seleccciona una base de datos Sybase
sybase_set_message_handler -- Sets the handler called when a server message is raised
sybase_unbuffered_query -- Send a Sybase query and do not block

Anterior | Inicio | Siguiente
wordwrap | Subir | sybase_affected_rows


sybase_affected_rows

(PHP 3>= 3.0.6, PHP 4 )

sybase_affected_rows -- obtiene el número de filas afectadas por la última consulta

Descripción

int sybase_affected_rows ( [int link_identifier])

Devuelve: El número de filas afectadas por la última consulta.

sybase_affected_rows() devuelve el número de filas afectadas por la última acción e tipo INSERT, UPDATE o DELETE en el servidor asociado al identificador de enlace especificado. Si no se especifica un identificador de enlace, se asume el último enlace abierto.

Esta instrucción no es efectiva para sentencias de tipo SELECT, sólo en sentencias que modifican registros. Para obtener el número de filas afectadas por un SELECT, use sybase_num_rows().

Nota: Esta función sólo esta disponible usando el interface de la librería CT, y no con la librería DB.

Anterior | Inicio | Siguiente
Funciones de Sybase | Subir | sybase_close


sybase_close

(PHP 3, PHP 4 )

sybase_close -- cierra una conexión Sybase

Descripción

int sybase_close ( int link_identifier)

Devuelve: TRUE si lo consigue, FALSE ante un error

sybase_close() cierra el enlace a la base de datos Sybase asociada con el identificador de enlace especificado. Si no se especifica un identificador de enlace, se asume el último enlace abierto.

Note que esto no es necesario usualmente, ya que los enlaces no persistentes abiertos son cerrados automaticamente al final de la ejecución del script.

sybase_close() no cerrará enlaces persistentes generados por sybase_pconnect().

Vea también: sybase_connect(), sybase_pconnect().

Anterior | Inicio | Siguiente
sybase_affected_rows | Subir | sybase_connect


sybase_connect

(PHP 3, PHP 4 )

sybase_connect -- abre una conexión con un servidor Sybase

Descripción

int sybase_connect ( string servername, string username, string password)

Devuelve: Un identificador de enlace Sybase positivo, o FALSE ante un error.

sybase_connect() establece una conexión son un servidor Sybase. El parámetro servername tiene que ser un nombre de servidor válido que esta definido en el fichero 'interfaces'.

En el caso que se haga una segunda llamada a sybase_connect() con los mismos argumentos, no se establecerá un nuevo enlace, en vez de esto, se devolverá el identificador de enlace que ya está abierto.

El enlace al servidor será cerrado tan pronto como la ejecución del script finalice, a menos que sea cerrado antes llamando explicitamente a sybase_close().

Vea también sybase_pconnect(), sybase_close().

Anterior | Inicio | Siguiente
sybase_close | Subir | sybase_data_seek


sybase_data_seek

(PHP 3, PHP 4 )

sybase_data_seek -- mueve el puntero interno de la fila

Descripción

int sybase_data_seek ( int result_identifier, int row_number)

Devuelve: TRUE si lo hace, FALSE en caso de fallo

sybase_data_seek() mueve el puntero interno de la fila del resultado asociado con el identificador de resultado especificado hacia el número de fila introducido. La siguiente llamada a sybase_fetch_row() devolverá esa fila.

Vea también: sybase_data_seek().

Anterior | Inicio | Siguiente
sybase_connect | Subir | sybase_deadlock_retry_count


sybase_deadlock_retry_count

(PHP 4 >= 4.3.0)

sybase_deadlock_retry_count -- Sets the deadlock retry count

Description

void sybase_deadlock_retry_count ( int retry_count)

Using sybase_deadlock_retry_count(), the number of retries can be defined in cases of deadlocks. By default, every deadlock is retried an infinite number of times or until the process is killed by Sybase, the executing script is killed (for instance, by set_time_limit()) or the query succeeds.

Tabla 1. Values for retry_count

-1 | Retry forever (default)
0 | Do not retry
n | Retry n times

Nota: Esta función se encuentra disponible solamente cuando se usan las bibliotecas CT de Sybase y no las bibliotecas DB.

Anterior | Inicio | Siguiente
sybase_data_seek | Subir | sybase_fetch_array


sybase_fetch_array

(PHP 3, PHP 4 )

sybase_fetch_array -- carga una fila como un array

Descripción

int sybase_fetch_array ( int result)

Returns: An array that corresponds to the fetched row, or FALSE if there are no more rows.

sybase_fetch_array() es la versión extendida de sybase_fetch_row(). Además de almacenar los datos en los indices numericos del array de resultados, también almacena los datos en indices asociativos, usando los nombres de campo como claves.

Una cosa importante a remarcar es que el uso de sybase_fetch_array() NO es significativamente más lento que el uso de sybase_fetch_row(), mientrás que proporciona un valor añadido significativo.

Para más detalles, vea también sybase_fetch_row()

Anterior | Inicio | Siguiente
sybase_deadlock_retry_count | Subir | sybase_fetch_assoc


sybase_fetch_assoc

(PHP 4 >= 4.3.0)

sybase_fetch_assoc -- Fetch a result row as an associative array

Description

array sybase_fetch_assoc ( resource result)

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

sybase_fetch_assoc() is a version of sybase_fetch_row() that uses column names instead of integers for indices in the result array. Columns from different tables with the same names are returned as name, name1, name2, ..., nameN.

An important thing to note is that using sybase_fetch_assoc() is NOT significantly slower than using sybase_fetch_row(), while it provides a significant added value.

See also
sybase_fetch_array(),
sybase_fetch_object() and
sybase_fetch_row().

Anterior | Inicio | Siguiente
sybase_fetch_array | Subir | sybase_fetch_field


sybase_fetch_field

(PHP 3, PHP 4 )

sybase_fetch_field -- obtiene la información del campo

Descripción

object sybase_fetch_field ( int result, int field_offset)

Devuelve un objeto conteniendo la información del campo

sybase_fetch_field() puede usarse para obtener información sobre los campos de una consulta determinada. Si no se especifica el offset del campo, el siguiente campo que aún no halla sido tomado por sybase_fetch_field() es el que se obtiene.

Las propiedades del objeto son:

  • name - column name. si la columna es el resultado de una función, esta propiedad se establece a computed#N, donde #N es un número de serie.

  • column_source - la tabla de la cual se ha cogido la columna

  • max_length - máxima longitud de la columna

  • numeric - 1 si la columna es numérica

Vea también sybase_field_seek()

Anterior | Inicio | Siguiente
sybase_fetch_assoc | Subir | sybase_fetch_object


sybase_fetch_object

(PHP 3, PHP 4 )

sybase_fetch_object -- carga una fila como un objeto

Descripción

int sybase_fetch_object ( int result)

Devuelve: Un objeto con las propiedades que corresponden a la fila tomada, o FALSE si no hay más filas.

sybase_fetch_object() es similar a sybase_fetch_array(), con una diferencia - se devuelve un objeto, en vez de un array. Indirectamente, esto significa que sólo se puede acceder a los datos por los nombres de campo, y no por sus offsets (los números son nombres de propiedades ilegales).

En el tema de velocidad, la función es idéntica a sybase_fetch_array(), y al menos tan rápida como sybase_fetch_row() (la diferencia es insignificante).

Vea también: sybase_fetch-array() y sybase_fetch-row().

Anterior | Inicio | Siguiente
sybase_fetch_field | Subir | sybase_fetch_row


sybase_fetch_row

(PHP 3, PHP 4 )

sybase_fetch_row -- obtiene una fila como un array enumerado

Descripción

array sybase_fetch_row ( int result)

Devuelve: Un array que corresponde a la fila obtenida, o FALSE si no hay más filas.

sybase_fetch_row() obtiene una fila de datos del resultado asociado con el identificador de resultado especificado. La fila se devuelve como un array. Cada columna del resultado es almacenada en un offset del arrat, comenzando en el offset 0.

Las siguientes llamadas a sybase_fetch_rows() devolverán la siguiente fila del conjunto de resultados, o FALSE si no hay más filas.

Vea también: sybase_fetch_array(),
          sybase_fetch_object(),
          sybase_data_seek(),
          sybase_fetch_lengths(), y
          sybase_result().

Anterior | Inicio | Siguiente
sybase_fetch_object | Subir | sybase_field_seek


sybase_field_seek

(PHP 3, PHP 4 )

sybase_field_seek -- establece el offset de un campo

Descripción

int sybase_field_seek ( int result, int field_offset)

Localiza el campo especificado por el offset. Si la siguiente llamada sybase_fetch_field() no incluye un offset se devuelve este campo.

Vea también: sybase_fetch_field().

Anterior | Inicio | Siguiente
sybase_fetch_row | Subir | sybase_free_result


sybase_free_result

(PHP 3, PHP 4 )

sybase_free_result -- libera el resultado de la memoria

Descripción

int sybase_free_result ( int result)

sybase_free_result() sólo se necesita usar en el caso de que este preocupado por el uso de demasiada memoria mientras se ejecuta su script. Todos los resultados en memoria son liberados cuando el script finaliza, puede llamar a sybase_free_result() con el identificador de resultado como argumento y la memoria asociada a ese resultado será liberada.

Anterior | Inicio | Siguiente
sybase_field_seek | Subir | sybase_get_last_message


sybase_get_last_message

(PHP 3, PHP 4 )

sybase_get_last_message -- Returns the last message from the server

Description

string sybase_get_last_message ( void )

sybase_get_last_message() returns the last message reported by the server.

See also sybase_min_message_severity().

Anterior | Inicio | Siguiente
sybase_free_result | Subir | sybase_min_client_severity


sybase_min_client_severity

(PHP 3, PHP 4 )

sybase_min_client_severity -- Sets minimum client severity

Description

void sybase_min_client_severity ( int severity)

sybase_min_client_severity() sets the minimum client severity level.

Nota: Esta función se encuentra disponible solamente cuando se usan las bibliotecas CT de Sybase y no las bibliotecas DB.

See also sybase_min_server_severity().

Anterior | Inicio | Siguiente
sybase_get_last_message | Subir | sybase_min_error_severity


sybase_min_error_severity

(PHP 3, PHP 4 )

sybase_min_error_severity -- Sets minimum error severity

Description

void sybase_min_error_severity ( int severity)

sybase_min_error_severity() sets the minimum error severity level.

See also sybase_min_message_severity().

Anterior | Inicio | Siguiente
sybase_min_client_severity | Subir | sybase_min_message_severity


sybase_min_message_severity

(PHP 3, PHP 4 )

sybase_min_message_severity -- Sets minimum message severity

Description

void sybase_min_message_severity ( int severity)

sybase_min_message_severity() sets the minimum message severity level.

See also sybase_min_error_severity().

Anterior | Inicio | Siguiente
sybase_min_error_severity | Subir | sybase_min_server_severity


sybase_min_server_severity

(PHP 3, PHP 4 )

sybase_min_server_severity -- Sets minimum server severity

Description

void sybase_min_server_severity ( int severity)

sybase_min_server_severity() sets the minimum server severity level.

Nota: Esta función se encuentra disponible solamente cuando se usan las bibliotecas CT de Sybase y no las bibliotecas DB.

See also sybase_min_client_severity().

Anterior | Inicio | Siguiente
sybase_min_message_severity | Subir | sybase_num_fields


sybase_num_fields

(PHP 3, PHP 4 )

sybase_num_fields -- obtiene el número de campos de un resultado

Descripción

int sybase_num_fields ( int result)

sybase_num_fields() devuelve el número de campos en un conjunto de resultados.

Vea también:
sybase_db_query(),
sybase_query(),
sybase_fetch_field(),
sybase_num_rows().

Anterior | Inicio | Siguiente
sybase_min_server_severity | Subir | sybase_num_rows


sybase_num_rows

(PHP 3, PHP 4 )

sybase_num_rows -- obtiene el número de filas de un resultado

Descripción

int sybase_num_rows ( string result)

sybase_num_rows() devuelve el número de filas de un conjunto de resultados.

Vea también:
sybase_db_query(),
sybase_query() and,
sybase_fetch_row().

Anterior | Inicio | Siguiente
sybase_num_fields | Subir | sybase_pconnect


sybase_pconnect

(PHP 3, PHP 4 )

sybase_pconnect -- abre una conexión con Sybase persistente

Descripción

int sybase_pconnect ( string servername, string username, string password)

Devuelve: Un identificador de enlace persistente de Sybase positivo en caso de que pueda abrirlo, en caso de error devuelve FALSE

sybase_pconnect() actua de una forma muy parecida a sybase_connect() con dos grandes diferencias.

Primera, cuando se conecta, esta función primero tratará de encontrar un enlace (persistente) que ya este abierto con el mismo host, nombre de usuario y contraseña. Si encuentra uno, devolverá un identificador para él en vez de abrir una nueva conexión.

Segunda, la conexión al servidor SQL no se cerrará cuando finalice la ejecución del script. En vez de esto, el enlace permanecerá abierto para un futuro uso (sybase_close() no podrá cerrar enlaces establecidos consybase_pconnect()).

Este tipo de enlaces son llamados 'persistentes'.

Anterior | Inicio | Siguiente
sybase_num_rows | Subir | sybase_query


sybase_query

(PHP 3, PHP 4 )

sybase_query -- envía una consulta a Sybase

Descripción

int sybase_query ( string query, int link_identifier)

Devuelve: Un identificador de resultado Sybase positivo si va bien, o FALSE ante un error.

sybase_query() envía una consulta a la actual base de datos activa en el servidor que está asociada con el identificador de enlace especificado. Si no se especifica un identificador de enlace, se asume el último enlace abierto. Si no hay un enlace abierto, la función intentará establecer un enlace como si sybase_connect() fuese llamada, y lo usará.

Vea también:
sybase_db_query(),
sybase_select_db(), y
sybase_connect().

Anterior | Inicio | Siguiente
sybase_pconnect | Subir | sybase_result


sybase_result

(PHP 3, PHP 4 )

sybase_result -- obtiene datos de un resultado

Descripción

int sybase_result ( int result, int i, mixed field)

Devuelve: El contenido de la celda en la fila y el offset especificado de un conjunto de resultados de Sybase.

sybase_result() devuelve el contenido de una celda de un conjunto de resultados de Sybase. El parámetro field puede ser el offset del campo, o el nombre del campo, o el nombre de la tabla, un punto y el nombre del campo (nombre_tabla.nombre_campo). Si el nombre de la columna tiene un alias ('select foo as bar from...'), use el alias en vez del nombre de la columna.

Cuando trabaje con conjuntos de resultados grandes, debe considerar el uso de alguna de las funciones que cargan una fila entera (especificadas abajo). Ya que estas funciones devuelven el contenido de multiples celdas en una única llamada, son MUCHO más rápidas que sybase_result(). Además, note que especificar un offset númerico en el parámetro field es mucho más rápido que especificar un nombre de campo o nombre_tabla.nombre_campo.

Alternativas recomendadas para alto rendimiento:
sybase_fetch_row(),
sybase_fetch_array(), y
sybase_fetch_object().

Anterior | Inicio | Siguiente
sybase_query | Subir | sybase_select_db


sybase_select_db

(PHP 3, PHP 4 )

sybase_select_db -- seleccciona una base de datos Sybase

Descripción

int sybase_select_db ( string database_name, int link_identifier)

Returns: TRUE on success, FALSE on error

sybase_select_db() establece como activa la base de datos en el servidor asociada con el identificador de enlace especificado. Si no se especifica un identificador de enlace, se asume el último enlace abierto. Si no hay un enlace abierto, la función intentará establecer un enlace como si sybase_connect() fuese llamada, y lo usará.

Cada llamada subsiguiente a sybase_query() será hecha en la base de datos activa.

Vea también:
    sybase_connect(),
    sybase_pconnect(), y
    sybase_query()

Anterior | Inicio | Siguiente
sybase_result | Subir | sybase_set_message_handler


sybase_set_message_handler

(PHP 4 >= 4.3.0)

sybase_set_message_handler -- Sets the handler called when a server message is raised

Description

bool sybase_set_message_handler ( callback handler)

sybase_set_message_handler() sets a user function to handle messages generated by the server. You may specify the name of a global function, or use an array to specify an object reference and a method name.

The handler expects five arguments in the following order: message number, severity, state, line number and description. The first four are integers. The last is a string. If the function returns FALSE, PHP generates an ordinary error message.

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Ejemplo 1. sybase_set_message_handler() callback function

<?php
    function msg_handler($msgnumber, $severity, $state, $line, $text) {
        var_dump($msgnumber, $severity, $state, $line, $text);
    }

    sybase_set_message_handler('msg_handler');
?>

Ejemplo 2. sybase_set_message_handler() callback to a class

<?php
    class Sybase {
        function handler($msgnumber, $severity, $state, $line, $text) {
            var_dump($msgnumber, $severity, $state, $line, $text);
        }
    }

    $sybase= new Sybase();
    sybase_set_message_handler(array($sybase, 'handler'));
?>

Ejemplo 3. sybase_set_message_handler() unhandled messages

<?php
    // Return FALSE from this function to indicate you can't handle
    // this. The error is printed out as a warning, the way you're used
    // to it if there is no handler installed.
    function msg_handler($msgnumber, $severity, $state, $line, $text) {
        if (257 == $msgnumber) return FALSE;
        var_dump($msgnumber, $severity, $state, $line, $text);
    }

    sybase_set_message_handler('msg_handler');
?>

Anterior | Inicio | Siguiente
sybase_select_db | Subir | sybase_unbuffered_query


sybase_unbuffered_query

(PHP 4 >= 4.3.0)

sybase_unbuffered_query -- Send a Sybase query and do not block

Description

resource sybase_unbuffered_query ( string query, resource link_identifier)

Returns a positive Sybase result identifier on success, or FALSE on error.

sybase_unbuffered_query() sends a query to the currently active database on the server that's associated with the specified link identifier. If the link identifier isn't specified, the last opened link is assumed. If no link is open, the function tries to establish a link as if sybase_connect() was called, and use it.

Unlike sybase_query(), sybase_unbuffered_query() reads only the first row of the result set. sybase_fetch_array() and similar function read more rows as needed. sybase_data_seek() reads up to the target row. The behavior may produce better performance for large result sets.

sybase_num_rows() will only return the correct number of rows if all result sets have been read. To Sybase, the number of rows is not known and is therefore computed by the client implementation.

Nota: If you don't read all of the resultsets prior to executing the next query, PHP will raise a warning and cancel all of the pending results. To get rid of this, use sybase_free_result() which will cancel pending results of an unbuffered query.

The optional store_result can be FALSE to indicate the resultsets should'nt be fetched into memory, thus minimizing memory usage which is particularily interesting with very large resultsets.

Ejemplo 1. sybase_unbuffered_query() example

<?php
       $dbh= sybase_connect('SYBASE', '', '');
       $q= sybase_unbuffered_query('select firstname, lastname from huge_table', $dbh, FALSE);
       sybase_data_seek($q, 10000);
       $i= 0;
       while ($row= sybase_fetch_row($q)) {
               echo $row[0].' '.$row[0];
               if ($i++ > 40000) break;
       }
       sybase_free_result($q);
       sybase_close($dbh);
?>

Anterior | Inicio | Siguiente
sybase_set_message_handler | Subir | tidy Functions


tidy Functions

Manual de PHP
Anterior Siguiente

CIV. tidy Functions

Introducción

Tidy is a binding for the Tidy HTML clean and repair utility which allows you to not only clean and otherwise manipluate HTML documents, but also traverse the document tree.

Requerimientos

To use Tidy, you will need libtidy installed, available on the tidy homepage http://tidy.sourceforge.net/.

Instalación

Tidy is currently available for PHP 4.3.x and PHP 5 as a PECL extension from http://pecl.php.net/package/tidy.

If PEAR is available on your *nix-like system you can use the pear installer to install the tidy extension, by the following command: pear -v install tidy.

You can always download the tar.gz package and install tidy by hand:

Ejemplo 1. tidy install by hand

gunzip tidy-xxx.tgz
tar -xvf tidy-xxx.tar
cd tidy-xxx
phpize
./configure && make && make install

Windows users can download the extension dll php_tidy.dll from http://snaps.php.net/win32/PECL_STABLE/.

Configuración en tiempo de ejecución

El comportamiento de estas funciones está afectado por los valores definidos en php.ini.

Tabla 1. tidy Configuration Options

Name | Default | Changeable
tidy.default_config | "" | PHP_INI_SYSTEM
For further details and definition of the PHP_INI_* constants see ini_set().

A continuación se presenta una corta explicación de las directivas de configuración

tidy.default_config string

Default path for tidy config file.

Tipos de recursos

Esta extensión no tiene ningún tipo de recurso definido.

Constantes predefinidas

Estas constantes están definidas por esta extensión y estarán disponibles solamente cuando la extensión ha sido o bien compilada dentro de PHP o grabada dinámicamente en tiempo de ejecución.

The following constants are defined:

Tabla 2. tidy tag constants

constant | description
TIDY_TAG_UNKNOWN |
TIDY_TAG_A |
TIDY_TAG_ABBR |
TIDY_TAG_ACRONYM |
TIDY_TAG_ACRONYM |
TIDY_TAG_ALIGN |
TIDY_TAG_APPLET |
TIDY_TAG_AREA |
TIDY_TAG_B |
TIDY_TAG_BASE |
TIDY_TAG_BASEFONT |
TIDY_TAG_BDO |
TIDY_TAG_BGSOUND |
TIDY_TAG_BIG |
TIDY_TAG_BLINK |
TIDY_TAG_BLOCKQUOTE |
TIDY_TAG_BODY |
TIDY_TAG_BR |
TIDY_TAG_BUTTON |
TIDY_TAG_CAPTION |
TIDY_TAG_CENTER |
TIDY_TAG_CITE |
TIDY_TAG_CODE |
TIDY_TAG_COL |
TIDY_TAG_COLGROUP |
TIDY_TAG_COMMENT |
TIDY_TAG_DD |
TIDY_TAG_DEL |
TIDY_TAG_DFN |
TIDY_TAG_DIR |
TIDY_TAG_DIV |
TIDY_TAG_DL |
TIDY_TAG_DT |
TIDY_TAG_EM |
TIDY_TAG_EMBED |
TIDY_TAG_FIELDSET |
TIDY_TAG_FONT |
TIDY_TAG_FORM |
TIDY_TAG_FRAME |
TIDY_TAG_FRAMESET |
TIDY_TAG_H1 |
TIDY_TAG_H2 |
TIDY_TAG_H3 |
TIDY_TAG_H4 |
TIDY_TAG_H5 |
TIDY_TAG_6 |
TIDY_TAG_HEAD |
TIDY_TAG_HR |
TIDY_TAG_HTML |
TIDY_TAG_I |
TIDY_TAG_IFRAME |
TIDY_TAG_ILAYER |
TIDY_TAG_IMG |
TIDY_TAG_INPUT |
TIDY_TAG_INS |
TIDY_TAG_ISINDEX |
TIDY_TAG_KBD |
TIDY_TAG_KEYGEN |
TIDY_TAG_LABEL |
TIDY_TAG_LAYER |
TIDY_TAG_LEGEND |
TIDY_TAG_LI |
TIDY_TAG_LINK |
TIDY_TAG_LISTING |
TIDY_TAG_MAP |
TIDY_TAG_MARQUEE |
TIDY_TAG_MENU |
TIDY_TAG_META |
TIDY_TAG_MULTICOL |
TIDY_TAG_NOBR |
TIDY_TAG_NOEMBED |
TIDY_TAG_NOFRAMES |
TIDY_TAG_NOLAYER |
TIDY_TAG_NOSAFE |
TIDY_TAG_NOSCRIPT |
TIDY_TAG_OBJECT |
TIDY_TAG_OL |
TIDY_TAG_OPTGROUP |
TIDY_TAG_OPTION |
TIDY_TAG_P |
TIDY_TAG_PARAM |
TIDY_TAG_PLAINTEXT |
TIDY_TAG_PRE |
TIDY_TAG_Q |
TIDY_TAG_RP |
TIDY_TAG_RT |
TIDY_TAG_RTC |
TIDY_TAG_RUBY |
TIDY_TAG_S |
TIDY_TAG_SAMP |
TIDY_TAG_SCRIPT |
TIDY_TAG_SELECT |
TIDY_TAG_SERVER |
TIDY_TAG_SERVLET |
TIDY_TAG_SMALL |
TIDY_TAG_SPACER |
TIDY_TAG_SPAN |
TIDY_TAG_STRIKE |
TIDY_TAG_STRONG |
TIDY_TAG_STYLE |
TIDY_TAG_SUB |
TIDY_TAG_TABLE |
TIDY_TAG_TBODY |
TIDY_TAG_TD |
TIDY_TAG_TEXTAREA |
TIDY_TAG_TFOOT |
TIDY_TAG_TH |
TIDY_TAG_THEAD |
TIDY_TAG_TITLE |
TIDY_TAG_TR |
TIDY_TAG_TR |
TIDY_TAG_TT |
TIDY_TAG_U |
TIDY_TAG_UL |
TIDY_TAG_VAR |
TIDY_TAG_WBR |
TIDY_TAG_XMP |

Tabla 3. tidy attribute constants

constant | description
TIDY_ATTR_UNKNOWN |
TIDY_ATTR_ABBR |
TIDY_ATTR_ACCEPT |
TIDY_ATTR_ACCEPT_CHARSET |
TIDY_ATTR_ACCESSKEY |
TIDY_ATTR_ACTION |
TIDY_ATTR_ADD_DATE |
TIDY_ATTR_ALIGN |
TIDY_ATTR_ALINK |
TIDY_ATTR_ALT |
TIDY_ATTR_ARCHIVE |
TIDY_ATTR_AXIS |
TIDY_ATTR_BACKGROUND |
TIDY_ATTR_BGCOLOR |
TIDY_ATTR_BGPROPERTIES |
TIDY_ATTR_BORDER |
TIDY_ATTR_BORDERCOLOR |
TIDY_ATTR_BOTTOMMARGIN |
TIDY_ATTR_CELLPADDING |
TIDY_ATTR_CELLSPACING |
TIDY_ATTR_CHAR |
TIDY_ATTR_CHAROFF |
TIDY_ATTR_CHARSET |
TIDY_ATTR_CHECKED |
TIDY_ATTR_CITE |
TIDY_ATTR_CLASS |
TIDY_ATTR_CLASSID |
TIDY_ATTR_CLEAR |
TIDY_ATTR_CODE |
TIDY_ATTR_CODEBASE |
TIDY_ATTR_CODETYPE |
TIDY_ATTR_COLOR |
TIDY_ATTR_COLS |
TIDY_ATTR_COLSPAN |
TIDY_ATTR_COMPACT |
TIDY_ATTR_CONTENT |
TIDY_ATTR_COORDS |
TIDY_ATTR_DATA |
TIDY_ATTR_DATAFLD |
TIDY_ATTR_DATAPAGESIZE |
TIDY_ATTR_DATASRC |
TIDY_ATTR_DATETIME |
TIDY_ATTR_DECLARE |
TIDY_ATTR_DEFER |
TIDY_ATTR_DIR |
TIDY_ATTR_DISABLED |
TIDY_ATTR_ENCODING |
TIDY_ATTR_ENCTYPE |
TIDY_ATTR_FACE |
TIDY_ATTR_FOR |
TIDY_ATTR_FRAME |
TIDY_ATTR_FRAMEBORDER |
TIDY_ATTR_FRAMESPACING |
TIDY_ATTR_GRIDX |
TIDY_ATTR_GRIDY |
TIDY_ATTR_HEADERS |
TIDY_ATTR_HEIGHT |
TIDY_ATTR_HREF |
TIDY_ATTR_HREFLANG |
TIDY_ATTR_HSPACE |
TIDY_ATTR_HTTP_EQUIV |
TIDY_ATTR_ID |
TIDY_ATTR_ISMAP |
TIDY_ATTR_LABEL |
TIDY_ATTR_LANG |
TIDY_ATTR_LANGUAGE |
TIDY_ATTR_LAST_MODIFIED |
TIDY_ATTR_LAST_VISIT |
TIDY_ATTR_LEFTMARGIN |
TIDY_ATTR_LINK |
TIDY_ATTR_LONGDESC |
TIDY_ATTR_LOWSRC |
TIDY_ATTR_MARGINHEIGHT |
TIDY_ATTR_MARGINWIDTH |
TIDY_ATTR_MAXLENGTH |
TIDY_ATTR_MEDIA |
TIDY_ATTR_METHOD |
TIDY_ATTR_MULTIPLE |
TIDY_ATTR_NAME |
TIDY_ATTR_NOHREF |
TIDY_ATTR_NORESIZE |
TIDY_ATTR_NOSHADE |
TIDY_ATTR_NOWRAP |
TIDY_ATTR_OBJECT |
TIDY_ATTR_OnAFTERUPDATE |
TIDY_ATTR_OnBEFOREUNLOAD |
TIDY_ATTR_OnBEFOREUPDATE |
TIDY_ATTR_OnBLUR |
TIDY_ATTR_OnCHANGE |
TIDY_ATTR_OnCLICK |
TIDY_ATTR_OnDATAAVAILABLE |
TIDY_ATTR_OnDATASETCHANGED |
TIDY_ATTR_OnDATASETCOMPLETE |
TIDY_ATTR_OnDBLCLICK |
TIDY_ATTR_OnERRORUPDATE |
TIDY_ATTR_OnFOCUS |
TIDY_ATTR_OnKEYDOWN |
TIDY_ATTR_OnKEYPRESS |
TIDY_ATTR_OnKEYUP |
TIDY_ATTR_OnLOAD |
TIDY_ATTR_OnMOUSEDOWN |
TIDY_ATTR_OnMOUSEMOVE |
TIDY_ATTR_OnMOUSEOUT |
TIDY_ATTR_OnMOUSEOVER |
TIDY_ATTR_OnMOUSEUP |
TIDY_ATTR_OnRESET |
TIDY_ATTR_OnROWENTER |
TIDY_ATTR_OnROWEXIT |
TIDY_ATTR_OnSELECT |
TIDY_ATTR_OnSUBMIT |
TIDY_ATTR_OnUNLOAD |
TIDY_ATTR_PROFILE |
TIDY_ATTR_PROMPT |
TIDY_ATTR_RBSPAN |
TIDY_ATTR_READONLY |
TIDY_ATTR_REL |
TIDY_ATTR_REV |
TIDY_ATTR_RIGHTMARGIN |
TIDY_ATTR_ROWS |
TIDY_ATTR_ROWSPAN |
TIDY_ATTR_RULES |
TIDY_ATTR_SCHEME |
TIDY_ATTR_SCOPE |
TIDY_ATTR_SCROLLING |
TIDY_ATTR_SELECTED |
TIDY_ATTR_SHAPE |
TIDY_ATTR_SHOWGRID |
TIDY_ATTR_SHOWGRIDX |
TIDY_ATTR_SHOWGRIDY |
TIDY_ATTR_SIZE |
TIDY_ATTR_SPAN |
TIDY_ATTR_SRC |
TIDY_ATTR_STANDBY |
TIDY_ATTR_START |
TIDY_ATTR_STYLE |
TIDY_ATTR_SUMMARY |
TIDY_ATTR_TABINDEX |
TIDY_ATTR_TARGET |
TIDY_ATTR_TEXT |
TIDY_ATTR_TITLE |
TIDY_ATTR_TOPMARGIN |
TIDY_ATTR_TYPE |
TIDY_ATTR_USEMAP |
TIDY_ATTR_VALIGN |
TIDY_ATTR_VALUE |
TIDY_ATTR_VALUETYPE |
TIDY_ATTR_VERSION |
TIDY_ATTR_VLINK |
TIDY_ATTR_VSPACE |
TIDY_ATTR_WIDTH |
TIDY_ATTR_WRAP |
TIDY_ATTR_XML_LANG |
TIDY_ATTR_XML_SPACE |
TIDY_ATTR_XMLNS |

Tabla 4. tidy nodetype constants

constant | description
TIDY_NODETYPE_ROOT |
TIDY_NODETYPE_DOCTYPE |
TIDY_NODETYPE_COMMENT |
TIDY_NODETYPE_PROCINS |
TIDY_NODETYPE_TEXT |
TIDY_NODETYPE_START |
TIDY_NODETYPE_END |
TIDY_NODETYPE_STARTEND |
TIDY_NODETYPE_CDATA |
TIDY_NODETYPE_SECTION |
TIDY_NODETYPE_ASP |
TIDY_NODETYPE_JSTE |
TIDY_NODETYPE_PHP |
TIDY_NODETYPE_XMLDECL |

Tabla de contenidos
tidy_access_count -- Returns the Number of Tidy accessibility warnings encountered for specified document.
tidy_clean_repair -- Execute configured cleanup and repair operations on parsed markup
tidy_config_count -- Returns the Number of Tidy configuration errors encountered for specified document.
tidy_diagnose -- Run configured diagnostics on parsed and repaired markup.
tidy_error_count -- Returns the Number of Tidy errors encountered for specified document.
tidy_get_body -- Returns a TidyNode Object starting from the >BODY< tag of the tidy parse tree
tidy_get_config -- Get current Tidy configuarion
tidy_get_error_buffer -- Return warnings and errors which occured parsing the specified document
tidy_get_head -- Returns a TidyNode Object starting from the >HEAD< tag of the tidy parse tree
tidy_get_html_ver -- Get the Detected HTML version for the specified document.
tidy_get_html -- Returns a TidyNode Object starting from the >HTML< tag of the tidy parse tree
tidy_get_output -- Return a string representing the parsed tidy markup
tidy_get_release -- Get release date (version) for Tidy library
tidy_get_root -- Returns a TidyNode Object representing the root of the tidy parse tree
tidy_get_status -- Get status of specfied document.
tidy_getopt -- Returns the value of the specified configuration option for the tidy document.
tidy_is_xhtml -- Indicates if the document is a generic (non HTML/XHTML) XML document.
tidy_load_config -- Load an ASCII Tidy configuration file with the specified encoding
tidy_node->attributes -- Returns an array of attribute objects for node
tidy_node->children -- Returns an array of child nodes
tidy_node->get_attr -- Return the attribute with the provided attribute id
tidy_node->get_nodes -- Return an array of nodes under this node with the specified id
tidy_node->has_children -- Returns true if this node has children
tidy_node->has_siblings -- Returns true if this node has siblings
tidy_node->is_asp -- Returns true if this node is ASP
tidy_node->is_comment -- Returns true if this node represents a comment
tidy_node->is_html -- Returns true if this node is part of a HTML document
tidy_node->is_jsp -- Returns true if this node is JSP
tidy_node->is_jste -- Returns true if this node is JSTE
tidy_node->is_text -- Returns true if this node represents text (no markup)
tidy_node->is_xhtml -- Returns true if this node is part of a XHTML document
tidy_node->is_xml -- Returns true if this node is part of a XML document
tidy_node->next -- Returns the next sibling to this node
tidy_node->prev -- Returns the previous sibiling to this node
tidy_node->tidy_node -- Constructor.
tidy_parse_file -- Parse markup in file or URI
tidy_parse_string -- Parse a document stored in a string
tidy_repair_file -- Repair a file using an optionally provided configuration file
tidy_repair_string -- Repair a string using an optionally provided configuration file
tidy_reset_config -- Restore Tidy configuration to default values
tidy_save_config -- Save current settings to named file. Only non-default values are written.
tidy_set_encoding -- Set the input/output character encoding for parsing markup. Values include: ascii, latin1, raw, utf8, iso2022, mac, win1252, utf16le, utf16be, utf16, big5 and shiftjis.
tidy_setopt -- Updates the configuration settings for the specified tidy document.
tidy_warning_count -- Returns the Number of Tidy warnings encountered for specified document.

Anterior | Inicio | Siguiente
sybase_unbuffered_query | Subir | tidy_access_count


tidy_access_count

(no version information, might be only in CVS)

tidy_access_count -- Returns the Number of Tidy accessibility warnings encountered for specified document.

Description

int tidy_access_count ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
tidy Functions | Subir | tidy_clean_repair


tidy_clean_repair

(no version information, might be only in CVS)

tidy_clean_repair -- Execute configured cleanup and repair operations on parsed markup

Description

bool tidy_clean_repair ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
tidy_access_count | Subir | tidy_config_count


tidy_config_count

(no version information, might be only in CVS)

tidy_config_count -- Returns the Number of Tidy configuration errors encountered for specified document.

Description

int tidy_config_count ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
tidy_clean_repair | Subir | tidy_diagnose


tidy_diagnose

(no version information, might be only in CVS)

tidy_diagnose -- Run configured diagnostics on parsed and repaired markup.

Description

bool tidy_diagnose ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
tidy_config_count | Subir | tidy_error_count


tidy_error_count

(no version information, might be only in CVS)

tidy_error_count -- Returns the Number of Tidy errors encountered for specified document.

Description

int tidy_error_count ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
tidy_diagnose | Subir | tidy_get_body


tidy_get_body

(no version information, might be only in CVS)

tidy_get_body -- Returns a TidyNode Object starting from the >BODY< tag of the tidy parse tree

Description

object tidy_get_body ( resource tidy)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Nota: This function is only available with Zend Engine 2, this means PHP >= 5.0.0.

Anterior | Inicio | Siguiente
tidy_error_count | Subir | tidy_get_config


tidy_get_config

(no version information, might be only in CVS)

tidy_get_config -- Get current Tidy configuarion

Description

array tidy_get_config ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
tidy_get_body | Subir | tidy_get_error_buffer


tidy_get_error_buffer

(no version information, might be only in CVS)

tidy_get_error_buffer -- Return warnings and errors which occured parsing the specified document

Description

string tidy_get_error_buffer ( [bool detailed])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
tidy_get_config | Subir | tidy_get_head


tidy_get_head

(no version information, might be only in CVS)

tidy_get_head -- Returns a TidyNode Object starting from the >HEAD< tag of the tidy parse tree

Description

object tidy_get_head ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Nota: This function is only available with Zend Engine 2, this means PHP >= 5.0.0.

Anterior | Inicio | Siguiente
tidy_get_error_buffer | Subir | tidy_get_html_ver


tidy_get_html_ver

(no version information, might be only in CVS)

tidy_get_html_ver -- Get the Detected HTML version for the specified document.

Description

int tidy_get_html_ver ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
tidy_get_head | Subir | tidy_get_html


tidy_get_html

(no version information, might be only in CVS)

tidy_get_html -- Returns a TidyNode Object starting from the >HTML< tag of the tidy parse tree

Description

object tidy_get_html ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Nota: This function is only available with Zend Engine 2, this means PHP >= 5.0.0.

Anterior | Inicio | Siguiente
tidy_get_html_ver | Subir | tidy_get_output


tidy_get_output

(no version information, might be only in CVS)

tidy_get_output -- Return a string representing the parsed tidy markup

Description

string tidy_get_output ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
tidy_get_html | Subir | tidy_get_release


tidy_get_release

(no version information, might be only in CVS)

tidy_get_release -- Get release date (version) for Tidy library

Description

string tidy_get_release ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
tidy_get_output | Subir | tidy_get_root


tidy_get_root

(no version information, might be only in CVS)

tidy_get_root -- Returns a TidyNode Object representing the root of the tidy parse tree

Description

object tidy_get_root ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Nota: This function is only available with Zend Engine 2, this means PHP >= 5.0.0.

Anterior | Inicio | Siguiente
tidy_get_release | Subir | tidy_get_status


tidy_get_status

(no version information, might be only in CVS)

tidy_get_status -- Get status of specfied document.

Description

int tidy_get_status ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
tidy_get_root | Subir | tidy_getopt


tidy_getopt

(no version information, might be only in CVS)

tidy_getopt -- Returns the value of the specified configuration option for the tidy document.

Description

mixed tidy_getopt ( string option)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
tidy_get_status | Subir | tidy_is_xhtml


tidy_is_xhtml

(no version information, might be only in CVS)

tidy_is_xhtml -- Indicates if the document is a generic (non HTML/XHTML) XML document.

Description

bool tidy_is_xhtml ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
tidy_getopt | Subir | tidy_load_config


tidy_load_config

(no version information, might be only in CVS)

tidy_load_config -- Load an ASCII Tidy configuration file with the specified encoding

Description

void tidy_load_config ( string filename, string encoding)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
tidy_is_xhtml | Subir | tidy_node->attributes


tidy_node->attributes

(no version information, might be only in CVS)

tidy_node->attributes -- Returns an array of attribute objects for node

Description

array tidy_node->attributes ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
tidy_load_config | Subir | tidy_node->children


tidy_node->children

(no version information, might be only in CVS)

tidy_node->children -- Returns an array of child nodes

Description

array tidy_node->children ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
tidy_node->attributes | Subir | tidy_node->get_attr


tidy_node->get_attr

(no version information, might be only in CVS)

tidy_node->get_attr -- Return the attribute with the provided attribute id

Description

tidy_attr tidy_node->get_attr ( int attrib_id)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
tidy_node->children | Subir | tidy_node->get_nodes


tidy_node->get_nodes

(no version information, might be only in CVS)

tidy_node->get_nodes -- Return an array of nodes under this node with the specified id

Description

array tidy_node->get_nodes ( int node_id)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
tidy_node->get_attr | Subir | tidy_node->has_children


tidy_node->has_children

(no version information, might be only in CVS)

tidy_node->has_children -- Returns true if this node has children

Description

bool tidy_node->has_children ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
tidy_node->get_nodes | Subir | tidy_node->has_siblings


tidy_node->has_siblings

(no version information, might be only in CVS)

tidy_node->has_siblings -- Returns true if this node has siblings

Description

bool tidy_node->has_siblings ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
tidy_node->has_children | Subir | tidy_node->is_asp


tidy_node->is_asp

(no version information, might be only in CVS)

tidy_node->is_asp -- Returns true if this node is ASP

Description

bool tidy_node->is_asp ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
tidy_node->has_siblings | Subir | tidy_node->is_comment


tidy_node->is_comment

(no version information, might be only in CVS)

tidy_node->is_comment -- Returns true if this node represents a comment

Description

bool tidy_node->is_comment ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
tidy_node->is_asp | Subir | tidy_node->is_html


tidy_node->is_html

(no version information, might be only in CVS)

tidy_node->is_html -- Returns true if this node is part of a HTML document

Description

bool tidy_node->is_html ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
tidy_node->is_comment | Subir | tidy_node->is_jsp


tidy_node->is_jsp

(no version information, might be only in CVS)

tidy_node->is_jsp -- Returns true if this node is JSP

Description

bool tidy_node->is_jsp ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
tidy_node->is_html | Subir | tidy_node->is_jste


tidy_node->is_jste

(no version information, might be only in CVS)

tidy_node->is_jste -- Returns true if this node is JSTE

Description

bool tidy_node->is_jste ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
tidy_node->is_jsp | Subir | tidy_node->is_text


tidy_node->is_text

(no version information, might be only in CVS)

tidy_node->is_text -- Returns true if this node represents text (no markup)

Description

bool tidy_node->is_text ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
tidy_node->is_jste | Subir | tidy_node->is_xhtml


tidy_node->is_xhtml

(no version information, might be only in CVS)

tidy_node->is_xhtml -- Returns true if this node is part of a XHTML document

Description

bool tidy_node->is_xhtml ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
tidy_node->is_text | Subir | tidy_node->is_xml


tidy_node->is_xml

(no version information, might be only in CVS)

tidy_node->is_xml -- Returns true if this node is part of a XML document

Description

bool tidy_node->is_xml ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
tidy_node->is_xhtml | Subir | tidy_node->next


tidy_node->next

(no version information, might be only in CVS)

tidy_node->next -- Returns the next sibling to this node

Description

tidy_node tidy_node->next ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
tidy_node->is_xml | Subir | tidy_node->prev


tidy_node->prev

(no version information, might be only in CVS)

tidy_node->prev -- Returns the previous sibiling to this node

Description

tidy_node tidy_node->prev ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
tidy_node->next | Subir | tidy_node->tidy_node


tidy_node->tidy_node

(no version information, might be only in CVS)

tidy_node->tidy_node -- Constructor.

Description

void tidy_node->tidy_node ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
tidy_node->prev | Subir | tidy_parse_file


tidy_parse_file

(no version information, might be only in CVS)

tidy_parse_file -- Parse markup in file or URI

Description

bool tidy_parse_file ( string file [, bool use_include_path])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
tidy_node->tidy_node | Subir | tidy_parse_string


tidy_parse_string

(no version information, might be only in CVS)

tidy_parse_string -- Parse a document stored in a string

Description

bool tidy_parse_string ( string input)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
tidy_parse_file | Subir | tidy_repair_file


tidy_repair_file

(no version information, might be only in CVS)

tidy_repair_file -- Repair a file using an optionally provided configuration file

Description

bool tidy_repair_file ( string filename [, string config_file [, bool use_include_path]])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
tidy_parse_string | Subir | tidy_repair_string


tidy_repair_string

(no version information, might be only in CVS)

tidy_repair_string -- Repair a string using an optionally provided configuration file

Description

bool tidy_repair_string ( string data [, string config_file])

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
tidy_repair_file | Subir | tidy_reset_config


tidy_reset_config

(no version information, might be only in CVS)

tidy_reset_config -- Restore Tidy configuration to default values

Description

string tidy_reset_config ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
tidy_repair_string | Subir | tidy_save_config


tidy_save_config

(no version information, might be only in CVS)

tidy_save_config -- Save current settings to named file. Only non-default values are written.

Description

bool tidy_save_config ( string filename)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
tidy_reset_config | Subir | tidy_set_encoding


tidy_set_encoding

(no version information, might be only in CVS)

tidy_set_encoding -- Set the input/output character encoding for parsing markup. Values include: ascii, latin1, raw, utf8, iso2022, mac, win1252, utf16le, utf16be, utf16, big5 and shiftjis.

Description

bool tidy_set_encoding ( string encoding)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
tidy_save_config | Subir | tidy_setopt


tidy_setopt

(no version information, might be only in CVS)

tidy_setopt -- Updates the configuration settings for the specified tidy document.

Description

bool tidy_setopt ( string option, mixed newvalue)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
tidy_set_encoding | Subir | tidy_warning_count


tidy_warning_count

(no version information, might be only in CVS)

tidy_warning_count -- Returns the Number of Tidy warnings encountered for specified document.

Description

int tidy_warning_count ( void )

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
tidy_setopt | Subir | Tokenizer functions


Tokenizer functions

Manual de PHP
Anterior Siguiente

CV. Tokenizer functions

Introducción

The tokenizer functions provide an interface to the PHP tokenizer embedded in the Zend Engine. Using these functions you may write your own PHP source analyzation or modification tools without having to deal with the language specification at the lexical level.

See also the appendix about tokens.

Requerimientos

No se necesitan bibliotecas externas para construir esta extensión

Instalación

Beginning with PHP 4.3.0 these functions are enabled by default. For older versions you have to configure and compile PHP with --enable-tokenizer. You can disable tokenizer support with --disable-tokenizer.

La versión para Windows de PHP tiene soporte nativo para esta extensión. No se necesita cargar ninguna extensión adicional para usar estas funciones.

Nota: Builtin support for tokenizer is available with PHP 4.3.0.

Constantes predefinidas

Estas constantes están definidas por esta extensión y estarán disponibles solamente cuando la extensión ha sido o bien compilada dentro de PHP o grabada dinámicamente en tiempo de ejecución.

T_INCLUDE (integer)

T_INCLUDE_ONCE (integer)

T_EVAL (integer)

T_REQUIRE (integer)

T_REQUIRE_ONCE (integer)

T_LOGICAL_OR (integer)

T_LOGICAL_XOR (integer)

T_LOGICAL_AND (integer)

T_PRINT (integer)

T_PLUS_EQUAL (integer)

T_MINUS_EQUAL (integer)

T_MUL_EQUAL (integer)

T_DIV_EQUAL (integer)

T_CONCAT_EQUAL (integer)

T_MOD_EQUAL (integer)

T_AND_EQUAL (integer)

T_OR_EQUAL (integer)

T_XOR_EQUAL (integer)

T_SL_EQUAL (integer)

T_SR_EQUAL (integer)

T_BOOLEAN_OR (integer)

T_BOOLEAN_AND (integer)

T_IS_EQUAL (integer)

T_IS_NOT_EQUAL (integer)

T_IS_IDENTICAL (integer)

T_IS_NOT_IDENTICAL (integer)

T_IS_SMALLER_OR_EQUAL (integer)

T_IS_GREATER_OR_EQUAL (integer)

T_SL (integer)

T_SR (integer)

T_INC (integer)

T_DEC (integer)

T_INT_CAST (integer)

T_DOUBLE_CAST (integer)

T_STRING_CAST (integer)

T_ARRAY_CAST (integer)

T_OBJECT_CAST (integer)

T_BOOL_CAST (integer)

T_UNSET_CAST (integer)

T_NEW (integer)

T_EXIT (integer)

T_IF (integer)

T_ELSEIF (integer)

T_ELSE (integer)

T_ENDIF (integer)

T_LNUMBER (integer)

T_DNUMBER (integer)

T_STRING (integer)

T_STRING_VARNAME (integer)

T_VARIABLE (integer)

T_NUM_STRING (integer)

T_INLINE_HTML (integer)

T_CHARACTER (integer)

T_BAD_CHARACTER (integer)

T_ENCAPSED_AND_WHITESPACE (integer)

T_CONSTANT_ENCAPSED_STRING (integer)

T_ECHO (integer)

T_DO (integer)

T_WHILE (integer)

T_ENDWHILE (integer)

T_FOR (integer)

T_ENDFOR (integer)

T_FOREACH (integer)

T_ENDFOREACH (integer)

T_DECLARE (integer)

T_ENDDECLARE (integer)

T_AS (integer)

T_SWITCH (integer)

T_ENDSWITCH (integer)

T_CASE (integer)

T_DEFAULT (integer)

T_BREAK (integer)

T_CONTINUE (integer)

T_OLD_FUNCTION (integer)

T_FUNCTION (integer)

T_CONST (integer)

T_RETURN (integer)

T_USE (integer)

T_GLOBAL (integer)

T_STATIC (integer)

T_VAR (integer)

T_UNSET (integer)

T_ISSET (integer)

T_EMPTY (integer)

T_CLASS (integer)

T_EXTENDS (integer)

T_OBJECT_OPERATOR (integer)

T_DOUBLE_ARROW (integer)

T_LIST (integer)

T_ARRAY (integer)

T_LINE (integer)

T_FILE (integer)

T_COMMENT (integer)

T_ML_COMMENT (integer)

T_OPEN_TAG (integer)

T_OPEN_TAG_WITH_ECHO (integer)

T_CLOSE_TAG (integer)

T_WHITESPACE (integer)

T_START_HEREDOC (integer)

T_END_HEREDOC (integer)

T_DOLLAR_OPEN_CURLY_BRACES (integer)

T_CURLY_OPEN (integer)

T_PAAMAYIM_NEKUDOTAYIM (integer)

T_DOUBLE_COLON (integer)

Ejemplos

Here is a simple example PHP scripts using the tokenizer that will read in a PHP file, strip all comments from the source and print the pure code only.

Ejemplo 1. Strip comments with the tokenizer

<?php
  $source = file_get_contents("somefile.php");
  $tokens = token_get_all($source);
  foreach ($tokens as $token) {
    if (is_string($token)) {
      // simple 1-character token
      echo $token;
    } else {
      // token array
      list($id, $text) = $token;
      switch($id) {
        case T_COMMENT:
        case T_ML_COMMENT:
          // no action on comments
          break;
        default:
          // anything else -> output "as is"
          echo $text;
          break;
      }
    }
  }
?>
Tabla de contenidos
token_get_all -- Split given source into PHP tokens
token_name -- Get the symbolic name of a given PHP token

Anterior | Inicio | Siguiente
tidy_warning_count | Subir | token_get_all


token_get_all

(PHP 4 >= 4.2.0)

token_get_all -- Split given source into PHP tokens

Description

array token_get_all ( string source)

token_get_all() parses the given source string into PHP language tokens using the Zend engine's lexical scanner. The function returns an array of token identifiers. Each individual token identifier is either a single character (i.e.: ;, ., >, !, etc...), or a two element array containing the token index in element 0, and the string content of the original token in element 1.

For a list of parser tokens, see Apéndice L, or use token_name() to translate a token value into its string representation.

Ejemplo 1. token_get_all() examples

<?php
  $tokens = token_get_all('<?'); // => array(array(T_OPEN_TAG, '<?'));
  $tokens = token_get_all('<? echo; ?>'); /* => array(
                                                    array(T_OPEN_TAG,'<?'),
                                                    array(T_ECHO, 'echo'),
                                                    ';',
                                                    array(T_CLOSE_TAG, '?>') ); */

/* Note in the following example that the string is parsed as T_INLINE_HTML
   rather than the otherwise expected T_ML_COMMENT.
   This is because no open/close tags were used in the "code" provided.
   This would be equivalent to putting a comment outside of <? ?> tags in a normal file. */
  $tokens = token_get_all('/* comment */'); // => array(array(T_INLINE_HTML, '/* comment */'));
?>

Anterior | Inicio | Siguiente
Tokenizer functions | Subir | token_name


token_name

(PHP 4 >= 4.2.0)

token_name -- Get the symbolic name of a given PHP token

Description

string token_name ( int token)

token_name() returns the symbolic name for a PHP token value. The symbolic name returned matches the name of the matching token constant.

Ejemplo 1. token_name() example

<?php
  // 260 is the token value for the T_REQUIRE token
  echo token_name(260);        // -> "T_REQUIRE"

  // a token constant maps to its own name
  echo token_name(T_FUNCTION); // -> "T_FUNCTION"
?>

Anterior | Inicio | Siguiente
token_get_all | Subir | Funciones URL


Funciones URL

Manual de PHP
Anterior Siguiente

CVI. Funciones URL

Tabla de contenidos
base64_decode -- decodifica datos cifrados con MIME base64
base64_encode -- Codifica datos en MIME base64
get_meta_tags -- Extrae todo el contenido de atributos de etiquetas meta de un archivo y devuelve una matriz
http_build_query -- Generar una cadena de consulta codificada estilo url
parse_url -- Analiza una URL y devuelve sus componentes
rawurldecode -- Decodificar cadenas codificadas estilo URL
rawurlencode -- Codificar estilo URL de acuerdo al RFC 1738
urldecode -- decodifica URL-cifradas en una cadena de texto
urlencode -- Codifica una URL en una cadena de texto

Anterior | Inicio | Siguiente
token_name | Subir | base64_decode


base64_decode

(PHP 3, PHP 4 )

base64_decode -- decodifica datos cifrados con MIME base64

Descripción

string base64_decode ( string datos_cifrados)

base64_decode() decodifica datos_cifrados y devuelve los datos originales. Los datos devueltos pueden ser binarios.

Vea también: base64_encode(), RFC-2045 sección 6.8.

Anterior | Inicio | Siguiente
Funciones URL | Subir | base64_encode


base64_encode

(PHP 3, PHP 4 )

base64_encode -- Codifica datos en MIME base64

Descripción

string base64_encode ( string datos)

base64_encode() devuelve datos cifrados en base64. Esta codificación está pensada para que los datos binarios sobrevivan al transporte a través de capas que no son de 8 bits, como por ejemplo los cuerpos de los mensajes de correo.

Los datos codificados con Base64 ocupan aproximadamente un 33% más de espacio que los datos originales.

Vea también: base64_decode(), chunk_split(), RFC-2045 sección 6.8.

Anterior | Inicio | Siguiente
base64_decode | Subir | get_meta_tags


get_meta_tags

(PHP 3>= 3.0.4, PHP 4 )

get_meta_tags -- Extrae todo el contenido de atributos de etiquetas meta de un archivo y devuelve una matriz

Descripción

array get_meta_tags ( string nombre_archivo [, int usar_ruta_inclusion])

Abre nombre_archivo y lo procesa línea por línea en busca de etiquetas <meta> en el archivo. Éste puede ser un archivo local o una URL. El procesamiento se detiene al encontrar </head>.

Definir usar_ruta_inclusion como 1 producirá que PHP intente abrir el archivo a lo largo de la ruta de inclusión estándar, tal y como se define en la directiva include_path. Éste parámetro es usado para archivos locales, no URLs.

Ejemplo 1. Lo que procesa get_meta_tags()

<meta name="author" content="nombre">
<meta name="keywords" content="php documentacion">
<meta name="DESCRIPTION" content="un manual de php">
<meta name="geo.position" content="49.33;-86.59">
</head> <!-- el procesamiento se detiene aqui -->
(preste atención a los finales de línea, - PHP usa una función nativa para procesar la entrada, así que un archivo Mac no funcionará en Unix).

El valor de la propiedad name se convierte en la clave, el valor de contenido de la propiedad se convierte en el valor de la matriz devuelta, de modo que puede usar fácilmente funciones estándar de matrices para recorrerlo o acceder a valores sencillos. Los caracteres especiales en el valor de la propiedad name son sustituidos con '_', el resto es convertido a minúsculas. Si dos etiquetas meta tienen el mismo nombre, sólo se devuelve la última.

Ejemplo 2. Lo que devuelve get_meta_tags()

<?php
// Asumiendo que las anteriores etiquetas se encuentran en www.example.com
$etiquetas = get_meta_tags('http://www.example.com/');

// Note como las claves estan ahora en minusculas, y como . fue
// reemplazado con _ en la clave
print $etiquetas['author'];       // nombre
print $etiquetas['keywords'];     // php documentacion
print $etiquetas['description'];  // un manual de php
print $etiquetas['geo_position']; // 49.33;-86.59
?>

Nota: A partir de PHP 4.0.5, get_meta_tags() soporta los atributos HTML sin comillas.

Vea también htmlentities() y urlencode().

Anterior | Inicio | Siguiente
base64_encode | Subir | http_build_query


http_build_query

(no version information, might be only in CVS)

http_build_query -- Generar una cadena de consulta codificada estilo url

Descripción

string http_build_query ( array datos_formulario [, string prefijo_numerico])

Genera una cadena de consulta codificada estilo url a partir de la matriz asociativa (o indexada) dada. datos_formulario puede ser una matriz u objeto que contenga propiedades. Una matriz datos_formulario puede ser una estructura uni-dimensional sencilla, o una matriz de matrices (que a su vez puede contener otras matrices). Si se usan índices numéricos en la matriz base, y se provee un prefijo_numerico, éste será añadido al comienzo de los índices numéricos para aquellos elementos encontrados sólo en la matriz base. Esto es para permitir que se opere con nombres de variables legales cuando los datos sean decodificados por PHP u otra aplicación CGI más adelante.

Ejemplo 1. Uso simple de http_build_query()

<?php
$datos = array('foo'=>'bar',
               'baz'=>'boom',
               'vaca'=>'leche',
               'php'=>'procesador de hipertexto');

echo http_build_query($datos);
/* Genera la salida:
      foo=bar&baz=boom&vaca=leche&php=procesador+de+hipertexto
 */
?>

Ejemplo 2. http_build_query() con elementos indexados numéricamente.

<?php
$datos = array('foo', 'bar', 'baz', 'boom', 'vaca' => 'leche',
               'php' => 'procesador de hipertexto');

echo http_build_query($datos);
/* Genera la salida:
      0=foo&1=bar&2=baz&3=boom&vaca=leche&php=procesador+de+hipertexto
 */

echo http_build_query($datos, 'mivar_');
/* Genera la salida:
      mivar_0=foo&mivar_1=bar&mivar_2=baz&mivar_3=boom&vaca=leche&php=procesador+de+hipertexto
 */
?>

Ejemplo 3. http_build_query() con matrices complejas

<?php
$datos = array('usuario'=>array('nombre'=>'Bob Smith',
                                'edad'=>47,
                                'sexo'=>'M',
                                'fdm'=>'5/12/1956'),
               'pasatiempos'=>array('golf', 'opera', 'poker', 'rap'),
               'hijos'=>array('bobby'=>array('edad'=>12,
                                             'sexo'=>'M'),
                              'sally'=>array('edad'=>8,
                                             'sexo'=>'F')),
               'CEO');

echo http_build_query($datos, 'banderas_');
?>

esto generará la salida: (acotada por razones de legibilidad)

usuario[nombre]=Bob+Smith&usuario[edad]=47&usuario[sexo]=M&
usuario[fdm]=5%1F12%1F1956&pasatiempos[0]=golf&pasatiempos[1]=opera&
pasatiempos[2]=poker&pasatiempos[3]=rap&hijos[bobby][edad]=12&
hijos[bobby][sexo]=M&hijos[sally][edad]=8&hijos[sally][sexo]=F&banderas_0=CEO

Nota: Sólo el elemento "CEO" indexado numéricamente en la matriz base recibió un prefijo. Los otros índices numéricos, encontrados bajo los pasatiempos, no requieren un prefijo tipo cadena para ser nombres legales de variables.

Ejemplo 4. Uso de http_build_query() con un objeto

<?php
class miClase {
  var $foo;
  var $baz;

  function miClase() {
    $this->foo = 'bar';
    $this->baz = 'boom';
  }
}

$datos = new miClase();

echo http_build_query($datos);
/* Genera la salida:
      foo=bar&baz=boom
 */
?>

Vea también:
parse_str(),
parse_url(),
urlencode(), y
array_walk()

Anterior | Inicio | Siguiente
get_meta_tags | Subir | parse_url


parse_url

(PHP 3, PHP 4 )

parse_url -- Analiza una URL y devuelve sus componentes

Descripción

array parse_url ( string url)

Esta función devuelve una matriz que apunta a alguno de los componentes de la URL que estén presentes. Esto incluye el "esquema", "host", "puerto", "usuario", "pass", "path", "consulta", y "fragmento".

Anterior | Inicio | Siguiente
http_build_query | Subir | rawurldecode


rawurldecode

(PHP 3, PHP 4 )

rawurldecode -- Decodificar cadenas codificadas estilo URL

Descripción

string rawurldecode ( string cadena)

Devuelve una cadena en done las con secuencias con signos de porcentaje (%) seguidos de dos dígitos hexadecimales, son reemplazados con caracteres literales.

Ejemplo 1. Ejemplo de rawurldecode()

<?php

echo rawurldecode('foo%20bar%40baz'); // foo bar@baz

?>

Nota: rawurldecode() no decodifica los símbolos más ('+') como espacios. urldecode() lo hace.

Vea también
rawurlencode(),
urldecode() y
urlencode().

Anterior | Inicio | Siguiente
parse_url | Subir | rawurlencode


rawurlencode

(PHP 3, PHP 4 )

rawurlencode -- Codificar estilo URL de acuerdo al RFC 1738

Descripción

string rawurlencode ( string cadena)

Devuelve una cadena en donde todos los caracteres no-alfanuméricos, excepto -_., son reemplazados con un signo de porcentaje (%) seguido de dos dígitos hexadecimales. Este es el tipo de codificación descrito en el RFC 1738 para evitar que caracteres literales sean interpretados como delimitadores de URL especiales, y para evitar que las URLs sean modificadas por medios de transmisión con conversiones de caracteres (como algunos sistemas de correo electrónico). Por ejemplo, si desea incluir una contraseña en una URL de FTP:

Ejemplo 1. Ejemplo 1 de rawurlencode()

<?php
echo '<a href="ftp://usuario:', rawurlencode('foo @+%/'),
     '@ftp.example.com/x.txt">';
?>

O, si pasa información en un componente PATH_INFO de la URL:

Ejemplo 2. Ejemplo 2 de rawurlencode()

<?php
echo '<a href="http://example.com/script_de_lista_de_departamentos/',
    rawurlencode('ventas y mercadeo/Miami'), '">';
?>

Vea también
rawurldecode(),
urldecode(),
urlencode() y el documento
RFC 1738.

Anterior | Inicio | Siguiente
rawurldecode | Subir | urldecode


urldecode

(PHP 3, PHP 4 )

urldecode -- decodifica URL-cifradas en una cadena de texto

Descripción

string urldecode ( string cadena)

Decodifica cualquier %## cifrado en la cadena dada. Se devuelve la cadena decodificada.

Ejemplo 1. Ejemplo urldecode()

$a = split ('&', $querystring);
$i = 0;
while ($i < count ($a)) {
  $b = split ('=', $a [$i]);
  echo 'El valor para el parámetro ', htmlspecialchars (urldecode ($b [0])),
       ' es ', htmlspecialchars (urldecode ($b [1])), "<BR>";
  $i++;
}

Vea también urlencode()

Anterior | Inicio | Siguiente
rawurlencode | Subir | urlencode


urlencode

(PHP 3, PHP 4 )

urlencode -- Codifica una URL en una cadena de texto

Descripción

string urlencode ( string cadena)

Devuelve una cadena en la que todos los carácteres no alfanuméricos excepto -_. han sido reemplazados con un signo de porcentaje (%) seguido por dos dígitos hexadecimales y los espacios han sido codificados como signos positivos (+). Está codificado de la misma manera que los datos que se envian desde un formulario WWW, es decir de la misma forma que el tipo application/x-www-form-urlencoded. Esto difiere del cifrado RFC1738 (vea rawurlencode() ) en el que por razones históricas, los espacios son codificados como signos positivos (+ ). Esta función es conveniente para codificar una cadena de texto que va a ser usada como parte de una consulta de una URL, y es una forma adecuada de pasar variables a la página siguiente:

Ejemplo 1. Ejemplo urlencode()

echo '<A HREF="mycgi?foo=', urlencode ($userinput), '">';

Vea también urldecode()

Anterior | Inicio | Siguiente
urldecode | Subir | Funciones sobre variables


Funciones sobre variables

Manual de PHP
Anterior Siguiente

CVII. Funciones sobre variables

Tabla de contenidos
doubleval -- Obtiene el valor double (decimal) de una variable.
empty -- Determina si una variable está definida
floatval -- Obtener el valor flotante de una variable
get_defined_vars -- Devuelve una matriz con todas la variables definidas
get_resource_type -- Devuelve el tipo de recurso
gettype -- Obtiene el tipo de una variable.
import_request_variables -- Importar variables GET/POST/Cookie en el contexto global
intval -- Obtiene el valor entero de una variable.
is_array -- Averigua si una variable es un array.
is_bool -- Encuentra si una variable es de tipo booleana
is_callable -- Verifica que los contenidos de una variable puedan ser llamados como una función
is_double -- Averigua si una variable es un valor double (número decimal).
is_float -- Averigua si una variable es un flotante.
is_int -- Averigua si una variable es un valor entero.
is_integer -- Averigua si una variable es un valor entero.
is_long -- Averigua si una varible es un valor entero.
is_null -- Encuentra si una variable es NULL
is_numeric -- Encuentra si una variable es un número o una cadena numérica
is_object -- Averigua si una varible es un objeto.
is_real -- Averigua si una varible es un número real.
is_resource -- Encuentra si una variable es un recurso
is_scalar -- Encuentra si una variable es un escalar
is_string -- Averigua si una varible es una cadena de caracteres (string).
isset -- Determina si una varible está definida
print_r -- Imprime información legible para humanos sobre una variable
serialize -- Genera una representación apta para almacenamiento de un valor
settype -- Establece el tipo de una variable.
strval -- Obtiene una cadena de caracteres a partir de una variable.
unserialize -- Crea un valor PHP a partir de una representación almacenada
unset -- Destruye una variable dada
var_dump -- Vuelca información sobre una variable
var_export -- Imprime o devuelve la representación de cadena de una variable

Anterior | Inicio | Siguiente
urlencode | Subir | doubleval


doubleval

(PHP 3, PHP 4 )

doubleval -- Obtiene el valor double (decimal) de una variable.

Descripción

double doubleval ( mixed var)

Devuelve el valor double (decimal en punto flotante) de var.

var puede ser cualquier tipo escalar. No se puede usar doubleval() sobre arrays u objetos.

Ver también intval(),
strval(),
settype() y Type juggling.

Anterior | Inicio | Siguiente
Funciones sobre variables | Subir | empty


empty

(PHP 3, PHP 4 )

empty -- Determina si una variable está definida

Descripción

int empty ( mixed var)

Devuelve FALSE si var está definida y tiene un valor no-vacío o distinto de cero; en otro caso devuelve TRUE.

Ver también isset() y unset().

Anterior | Inicio | Siguiente
doubleval | Subir | floatval


floatval

(PHP 4 >= 4.2.0)

floatval -- Obtener el valor flotante de una variable

Descripción

float floatval ( mixed var)

Devuelve el valor float de var.

var puede ser cualquier tipo escalar. No puede usar floatval() en matrices u objetos.

<?php
$var = '122.34343El';
$valor_flotante_de_var = floatval ($var);
print $valor_flotante_de_var; // imprime 122.34343
?>

Vea también intval(), strval(), settype() y Conversión de Tipos.

Anterior | Inicio | Siguiente
empty | Subir | get_defined_vars


get_defined_vars

(PHP 4 >= 4.0.4)

get_defined_vars -- Devuelve una matriz con todas la variables definidas

Descripción

array get_defined_vars ( void )

Esta función devuelve una matriz multidimensional que contiene una lista de todas las variables definidas, ya sean variables de entorno, de servidor, o definidas por el usuario.

<?php
$b = array(1,1,2,3,5,8);

$matriz = get_defined_vars();

// imprimir $b
print_r($matriz["b"]);

/* imprimir ruta al interpretre PHP (si es usado como CGI)
 * p.ej. /usr/local/bin/php */
echo $matriz["_"];

// imprimir los parametros de la linea de comandos, si existen
print_r($matriz["argv"]);

// imprimir todas las variables del servidor
print_r($matriz["_SERVER"]);

// imprimir todas las claves disponibles para las matrices de variables
print_r(array_keys(get_defined_vars()));
?>

Vea también get_defined_functions() y get_defined_constants().

Anterior | Inicio | Siguiente
floatval | Subir | get_resource_type


get_resource_type

(PHP 4 >= 4.0.2)

get_resource_type -- Devuelve el tipo de recurso

Descripción

string get_resource_type ( resource gestor)

Esta función devuelve una cadena que representa el tipo del resource pasado a ella. Si el parámetro no es un resource válido, genera un error.

<?php
// imprime: mysql link
$c = mysql_connect();
echo get_resource_type($c)."\n";

// imprime: file
$da = fopen("foo", "w");
echo get_resource_type($da)."\n";

// imprime: domxml document
$doc = new_xmldoc("1.0");
echo get_resource_type($doc->doc)."\n";
?>

Anterior | Inicio | Siguiente
get_defined_vars | Subir | gettype


gettype

(PHP 3, PHP 4 )

gettype -- Obtiene el tipo de una variable.

Descripción

string gettype ( mixed var)

Devuelve el tipo de la variable PHP var.

Los valores posibles de la cadena devuelta son:

  • "integer"

  • "double"

  • "string"

  • "array"

  • "object"

  • "unknown type"

Ver también settype().

Anterior | Inicio | Siguiente
get_resource_type | Subir | import_request_variables


import_request_variables

(PHP 4 >= 4.1.0)

import_request_variables -- Importar variables GET/POST/Cookie en el contexto global

Descripción

bool import_request_variables ( string tipos [, string prefijo])

Importa las variables GET/POST/Cookie en el contexto global. Es útil si usted ha deshabilitado register_globals, pero desea ver algunas variables en el contexto global.

Usando el parámetro tipos, es posible indicar cuáles variables de petición deben importarse. Puede usar los caracteres 'G', 'P' y 'C' respectivamente para indicar GET, POST y Cookie. Estos caracteres no son sensibles a mayúsculas o minúsculas, así que puede usar cualquier combinación de 'g', 'p' y 'c'. POST incluye la información de archivos cargados mediante POST. Note que el orden de las letras tiene importancia, ya que cuando usa "gp", las variables POST sobrescribirán las variables GET con el mismo nombre. Cualquier otra letra diferente a GPC es descartada.

El parámetro prefijo es usado como prefijo para nombres de variables, que es colocado antes de todos los nombres de variables importados en el contexto global. De modo que si tiene un valor GET llamado "userid", y usa el prefijo "pref_", entonces obtendrá una variable global llamada $pref_userid.

Si está interesado en importar otras variables en el contexto global, como SERVER, considere el uso de extract().

Nota: Aunque el parámetro prefijo es opcional, recibirá un error de nivel E_NOTICE si no especifica el prefijo, o indica una cadena vacía como el prefijo. Este es un riesgo potencial de seguridad. Los errores de nivel de noticia no son mostrados usando el nivel de reporte de errores predeterminado.

<?php
// Esto importara las variables GET y POST con el prefijo "rvar_"

import_request_variables("gP", "rvar_");

print $rvar_foo;
?>

Vea también $_REQUEST, register_globals, Variables Predefinidas, y extract().

Anterior | Inicio | Siguiente
gettype | Subir | intval


intval

(PHP 3, PHP 4 )

intval -- Obtiene el valor entero de una variable.

Descripción

int intval ( mixed var [, int base])

Devuelve el valor entero de var, usando la base de conversión especificada (por defecto es base 10).

var puede ser cualquier tipo escalar. No se puede usar intval() sobre arrays u objetos.

Ver también doubleval(),
strval(),
settype() y Type juggling.

Anterior | Inicio | Siguiente
import_request_variables | Subir | is_array


is_array

(PHP 3, PHP 4 )

is_array -- Averigua si una variable es un array.

Descripción

int is_array ( mixed var)

Devuelve TRUE si var es un array, y FALSE en otro caso.

Ver también is_double(),
is_float(),
is_int(),
is_integer(),
is_real(),
is_string(),
is_long(), y
is_object().

Anterior | Inicio | Siguiente
intval | Subir | is_bool


is_bool

(PHP 4 )

is_bool -- Encuentra si una variable es de tipo booleana

Descripción

bool is_bool ( mixed var)

Devuelve TRUE si el parámetro var es un boolean.

Ejemplo 1. Ejemplos de is_bool()

<?php
$a = false;
$b = 0;

// Dado que $a es un booleano, esto es verdadero
if (is_bool($a)) {
    print "Si, este es un booleano";
}

// Dado que $b no es un booleano, esto no es verdadero
if (is_bool($b)) {
    print "Si, este es un booleano";
}
?>

Vea también
is_array(),
is_float(),
is_int(),
is_integer(),
is_string(), y
is_object().

Anterior | Inicio | Siguiente
is_array | Subir | is_callable


is_callable

(PHP 4 >= 4.0.6)

is_callable -- Verifica que los contenidos de una variable puedan ser llamados como una función

Descripción

bool is_callable ( mixed var [, bool solo_sintaxis [, string nombre_a_llamar]])

Verifica que los contenidos de una variable puedan ser llamados como una función. Esto permite revisar que los contenidos de una variable contengan el nombre de una función válida, o que una matriz contenga un objeto adecuadamente codificado y un nombre de función.

El parámetro var puede ser o bien el nombre de una función almacenada en una variable tipo cadena, o un objeto y el nombre de un método dentro del objeto, de este modo:
array( $AlgunObjeto, 'NombreDelMetodo' )

Si el argumento solo_sintaxis es TRUE la función solo verifica que var pueda ser una función o un método. Solo rechazará variables simples que no sean cadenas, o una matriz que no tenga una estructura válida para ser usada como llamada de retorno. Se espera que las matrices válidas tengan solo 2 entradas, la primera de las cuales es un objeto o una cadena, y la segunda una cadena.

El argumento nombre_a_llamar recibe el "nombre que puede ser llamado". En el ejemplo siguiente este es "algunaClase:algunMetodo". Note, sin embargo, que a pesar de la implicación de que algunaClase::algunMetodo() es un método estático que puede ser llamado, este no es el caso.

<? php
//  Como chequear una variable para ver si puede ser llamada
//  como una funcion.

//
//  Variable simple que contiene una funcion
//

function algunaFuncion() {
}

$variableFuncion = 'algunaFuncion';

var_dump( is_callable( $variableFuncion, false, $nombre_a_llamar ));  // bool(true)

echo $nombre_a_llamar, "\n";  // algunaFuncion

//
//  Matriz que contiene un metodo
//

class algunaClase {

  function algunMetodo() {
  }

}

$unObjeto = new algunaClase();

$variableMetodo = array( $unObjeto, 'algunMetodo' );

var_dump( is_callable( $variableMetodo, true, $nombre_a_llamar ));  //  bool(true)

echo $nombre_a_llamar, "\n";  //  algunaClase:algunMetodo

?>

Anterior | Inicio | Siguiente
is_bool | Subir | is_double


is_double

(PHP 3, PHP 4 )

is_double -- Averigua si una variable es un valor double (número decimal).

Descripción

int is_double ( mixed var)

Devuelve TRUE si var es un double (número decimal), y FALSE en otro caso.

Ver también is_array(),
is_float(),
is_int(),
is_integer(),
is_real(),
is_string(),
is_long(), y
is_object().

Anterior | Inicio | Siguiente
is_callable | Subir | is_float


is_float

(PHP 3, PHP 4 )

is_float -- Averigua si una variable es un flotante.

Descripción

int is_float ( mixed var)

Esta función es un alias de is_double().

Ver también is_double(),
is_real(),
is_int(),
is_integer(),
is_string(),
is_object(),
is_array(), y
is_long().

Anterior | Inicio | Siguiente
is_double | Subir | is_int


is_int

(PHP 3, PHP 4 )

is_int -- Averigua si una variable es un valor entero.

Descripción

int is_int ( mixed var)

Esta función es un alias de is_long().

Ver también is_double(),
is_float(),
is_integer(),
is_string(),
is_real(),
is_object(),
is_array(), y
is_long().

Anterior | Inicio | Siguiente
is_float | Subir | is_integer


is_integer

(PHP 3, PHP 4 )

is_integer -- Averigua si una variable es un valor entero.

Descripción

int is_integer ( mixed var)

Esta función es un alias de is_long().

Ver también is_double(),
is_float(),
is_int(),
is_string(),
is_real(),
is_object(),
is_array(), y
is_long().

Anterior | Inicio | Siguiente
is_int | Subir | is_long


is_long

(PHP 3, PHP 4 )

is_long -- Averigua si una varible es un valor entero.

Descripción

int is_long ( mixed var)

Devuelve TRUE si var es un entero (long), y FALSE en otro caso.

Ver también is_double(),
is_float(),
is_int(),
is_real(),
is_string(),
is_object(),
is_array(), y
is_integer().

Anterior | Inicio | Siguiente
is_integer | Subir | is_null


is_null

(PHP 4 >= 4.0.4)

is_null -- Encuentra si una variable es NULL

Descripción

bool is_null ( mixed var)

Devuelve TRUE si var es null, o FALSE en cualquier otro caso.

Consulte sobre el tipo NULL para una explicación de cuándo una variable es considerada como NULL y cuándo no.

Vea también NULL,
is_bool(),
is_numeric(),
is_float(),
is_int(),
is_string(),
is_object(),
is_array(),
is_integer(), y
is_real().

Anterior | Inicio | Siguiente
is_long | Subir | is_numeric


is_numeric

(PHP 4 )

is_numeric -- Encuentra si una variable es un número o una cadena numérica

Descripción

bool is_numeric ( mixed var)

Devuelve TRUE si var es un número o una cadena numérica, o FALSE en cualquier otro caso.

Vea también is_bool(),
is_float(),
is_int(),
is_string(),
is_object(),
is_array(), y
is_integer().

Anterior | Inicio | Siguiente
is_null | Subir | is_object


is_object

(PHP 3, PHP 4 )

is_object -- Averigua si una varible es un objeto.

Descripción

int is_object ( mixed var)

Devuelve TRUE si var es un objeto, y FALSE en otro caso.

Ver también is_long(),
is_int(),
is_integer(),
is_float(),
is_double(),
is_real(),
is_string(), y
is_array().

Anterior | Inicio | Siguiente
is_numeric | Subir | is_real


is_real

(PHP 3, PHP 4 )

is_real -- Averigua si una varible es un número real.

Descripción

int is_real ( mixed var)

Esta función es un alias de is_double().

Ver también is_long(),
is_int(),
is_integer(),
is_float(),
is_double(),
is_object(),
is_string(), y
is_array().

Anterior | Inicio | Siguiente
is_object | Subir | is_resource


is_resource

(PHP 4 )

is_resource -- Encuentra si una variable es un recurso

Descripción

bool is_resource ( mixed var)

is_resource() devuelve TRUE si la variable dada por el parámetro var es un resource, o de lo contrario devuelve FALSE.

Ejemplo 1. uso de is_resource()

<?php

$enlace_bd = @mysql_connect('localhost', 'mysql_user', 'mysql_pass');
if (!is_resource($enlace_bd)) {
    die('No pudo realizarse la conexi&oacute;n : ' . mysql_error());
}

?>

Vea la documentación sobre el tipo de datos resource para más información.

Anterior | Inicio | Siguiente
is_real | Subir | is_scalar


is_scalar

(PHP 4 >= 4.0.5)

is_scalar -- Encuentra si una variable es un escalar

Descripción

bool is_scalar ( mixed var)

is_scalar() devuelve TRUE si la variable dada por el parámetro var es un escalar, o de lo contrario devuelve FALSE.

Las variables escalares son aquellas que contienen un integer, float, string o boolean. Los tipos array, object y resource no son escalares.

<?php
function mostrar_var($var) {
    if (is_scalar($var)) {
        echo $var;
    } else {
        var_dump($var);
    }
}
$pi = 3.1416;
$proteinas = array("hemoglobina", "citocromo c oxidasa", "ferredoxin");

mostrar_var($pi);
// imprime: 3.1416

mostrar_var($proteinas)
// imprime:
// array(3) {
//   [0]=>
//   string(10) "hemoglobina"
//   [1]=>
//   string(20) "citocromo c oxidasa"
//   [2]=>
//   string(10) "ferredoxin"
// }
?>

Nota: is_scalar() no considera los valores de tipo resource como escalares dado que los recursos son tipos de datos abstractos que por el momento están basados en enteros. Este detalle de implementación no debería ser considerado confiable, ya que puede cambiar.

Vea también is_bool(),
is_numeric(),
is_float(),
is_int(),
is_real(),
is_string(),
is_object(),
is_array(), y
is_integer().

Anterior | Inicio | Siguiente
is_resource | Subir | is_string


is_string

(PHP 3, PHP 4 )

is_string -- Averigua si una varible es una cadena de caracteres (string).

Descripción

int is_string ( mixed var)

Devuelve TRUE si var es una cadena, y FALSE en otro caso.

Ver también is_long(),
is_int(),
is_integer(),
is_float(),
is_double(),
is_real(),
is_object(), y
is_array().

Anterior | Inicio | Siguiente
is_scalar | Subir | isset


isset

(PHP 3, PHP 4 )

isset -- Determina si una varible está definida

Descripción

int isset ( mixed var)

Devuelve TRUE si var existe; y FALSE en otro caso.

Si una variable ha sido destruida con unset(), ya no estará definida (no será isset()).

$a = "test";
echo isset($a); // true
unset($a);
echo isset($a); // false

Ver también empty() y unset().

Anterior | Inicio | Siguiente
is_string | Subir | print_r


print_r

(PHP 4 )

print_r -- Imprime información legible para humanos sobre una variable

Descripción

bool print_r ( mixed expresion [, bool devolver])

Nota: El parámetro devolver fue agregado en PHP 4.3.0

print_r() despliega información sobre una variable en una forma que es apta para su lectura por humanos. Si se le entrega una variable tipo string, integer o float, el valor mismo será impreso. Si se le entrega un array, los valores serán presentados en un formato que muestra las claves y los elementos. Una notación parecida es usada para variables tipo object.

Recuerde que print_r() desplazará el apuntador de la matriz al final. Use reset() para llevarlo de vuelta al comienzo.

<pre>
<?php
    $a = array ('a' => 'manzana', 'b' => 'banano', 'c' => array ('x','y','z'));
    print_r ($a);
?>
</pre>

Lo cual producirá la salida:

<pre>
Array
(
    [a] => manzana
    [b] => banano
    [c] => Array
        (
            [0] => x
            [1] => y
            [2] => z
        )
)
</pre>

Si quisiera capturar la salida de print_r(), use el parámetro devolver. Si este parámetro recibe el valor TRUE, print_r() devolverá su salida, en lugar de imprimirla (cosa que hace por defecto).

Ejemplo 1. Ejemplo del parámetro devolver

<?php
    $b = array ('m' => 'mono', 'foo' => 'bar', 'x' => array ('x', 'y', 'z'));
    $resultados = print_r ($b, true);  // $resultados contiene ahora la
                                          salida de print_r
?>

Nota: Si necesita capturar la salida de print_r() con una versión de PHP anterior a 4.3.0, use las funciones de control de salida.

Nota: Antes de PHP 4.0.4, print_r() continuará ejecutándose indefinidamente si se le entrega una variable tipo array u object que contenga una referencia directa o indirecta a sí misma. Un ejemplo es print_r($GLOBALS) ya que la variable $GLOBALS es una variable global que contiene una referencia a sí misma.

Vea también ob_start(),
var_dump() y
var_export().

Anterior | Inicio | Siguiente
isset | Subir | serialize


serialize

(PHP 3>= 3.0.5, PHP 4 )

serialize -- Genera una representación apta para almacenamiento de un valor

Descripción

string serialize ( mixed valor)

serialize() devuelve una cadena que contiene una representación de flujo de bytes del valor que puede ser almacenada en cualquier parte.

Esto es útil para el almacenamiento de valores en PHP sin perder su tipo y estructura.

Para recuperar el valor PHP a partir de la cadena seriada, use unserialize(). serialize() maneja todos los tipos, excepto resource. Usted puede incluso usar serialize() sobre matrices que contienen referencias a ellas mismas. Las referencias encontradas en la matriz/objeto que procede a seriar con serialize() también serán almacenadas.

Cuando seria objetos, PHP intentará llamar la función miembro __sleep() antes de la seriación. Esto permite que el objeto efectúe limpiezas de último minuto, etc. antes de ser seriado. De forma semejante, cuando un objeto es recuperado usando unserialize(), la función miembro __wakeup() es llamada.

Nota: En PHP 3, las propiedades de los objetos serán seriados, pero los métodos se pierden. PHP 4 elimina esa limitación y recupera tanto propiedades como métodos. Por favor consulte la sección Seriación de Objetos de Clases y Objetos para más información.

Ejemplo 1. Ejemplo de serialize()

<?php
// $datos_sesion contiene una matriz multi-dimensional con
// informacion del usuario actual. Usamos serialize() para
// almacenarla en una base de datos al final de la peticion.

$con  = odbc_connect ("bd_web", "php", "gallina");
$sent = odbc_prepare ($con,
      "UPDATE sesiones SET datos = ? WHERE id = ?");
$datos_sql = array (serialize($datos_sesion), $PHP_AUTH_USER);

if (!odbc_execute ($sent, &$datos_sql)) {
    $sent = odbc_prepare($con,
     "INSERT INTO sesiones (id, datos) VALUES(?, ?)");
    if (!odbc_execute($sent, &$datos_sql)) {
        /* Algo ha fallado.. */
    }
}
?>

Vea También: unserialize().

Anterior | Inicio | Siguiente
print_r | Subir | settype


settype

(PHP 3, PHP 4 )

settype -- Establece el tipo de una variable.

Descripción

int settype ( string var, string type)

Establece el tipo de la varible var como type.

Los valores posibles para type son:

  • "integer"

  • "double"

  • "string"

  • "array"

  • "object"

Devuelve TRUE si se lleva a cabo con éxito; en otro caso devuelve FALSE.

Ver también gettype().

Anterior | Inicio | Siguiente
serialize | Subir | strval


strval

(PHP 3, PHP 4 )

strval -- Obtiene una cadena de caracteres a partir de una variable.

Descripción

string strval ( mixed var)

Devuelve una cadena con el valor de var.

var puede ser cualquier tipo escalar. No se puede usar strval() sobre arrays u objetos.

Ver también doubleval(),
intval(),
settype() y Type juggling.

Anterior | Inicio | Siguiente
settype | Subir | unserialize


unserialize

(PHP 3>= 3.0.5, PHP 4 )

unserialize -- Crea un valor PHP a partir de una representación almacenada

Descripción

mixed unserialize ( string cadena [, string llamada_de_retorno])

unserialize() toma una variable sencilla seriada (vea serialize()) y la convierte de vuelta a su valor PHP. El valor convertido es retornado, y puede ser un integer, float, string, array u object. En caso de que la cadena pasada no pueda ser procesada para revertir la seriación, se devuelve FALSE.

Directiva unserialize_callback_func: Es posible establecer una función-llamada de retorno la cual será llamada si una clase no definida debería ser instanciada durante el proceso de revertir la seriación. (para prevenir que se reciba un object incompleto "__PHP_Incomplete_Class".) Use su php.ini, ini_set() o .htaccess para definir 'unserialize_callback_func'. Cada vez que una clase no definida deba ser instanciada, ésta función será llamada. Para deshabilitar esta característica simplemente asigne un valor vacío a este parámetro. También note que la directiva unserialize_callback_func se hizo disponible en PHP 4.2.0.

Nota: El parámetro llamada_de_retorno fue agregado en PHP 4.2.0

Si la variable que está siendo convertida de vuelta es un objeto, PHP intentará llamar la función miembro __wakeup() (si existe) automáticamente luego de haber recontruido satisfactoriamente el objeto.

Ejemplo 1. Ejemplo de unserialize_callback_func

<?php
$objeto_seriado='O:1:"a":1:{s:5:"valor";s:3:"100";}';

// la directiva unserialize_callback_func esta disponible a partir de PHP 4.2.0
ini_set('unserialize_callback_func','mi_llamada_de_retorno'); // defina su callback_function

function mi_llamada_de_retorno($nombre_clase) {
    // tan solo incluya un archivo que contenga su definicion de clase

    // usted recibe $nombre_clase para determinar que definicion de
    // clase requiere
}
?>

Nota: En PHP 3, los métodos no se preservan cuando se revierte un objeto seriado. PHP 4 elimina esta limitación y recupera tanto propiedades como métodos. Por favor consulte la sección Seriación de Objetos de Clases y Objetos para más información.

Ejemplo 2. Ejemplo de unserialize()

<?php
// Aqui usamos unserialize() para cargar los datos de sesion
// provenientes de la cadena seleccionada desde la base de datos en la
// matriz $datos_sesion. Este ejemplo complementa aquel descrito con
// serialize().

$con = odbc_connect ("bd_web", "php", "gallina");
$sent = odbc_prepare ($con, "SELECT datos FROM sesiones WHERE id = ?");
$datos_sql = array ($PHP_AUTH_USER);

if (!odbc_execute ($sent, &$datos_sql) || !odbc_fetch_into ($sent, &$tmp)) {
    // si la ejecucion del comando o la recuperacion de datos falla,
    // inicializar una matriz vacia
    $datos_sesion = array();
} else {
    // ahora deberiamos tener los datos seriados en $tmp[0].
    $datos_sesion = unserialize ($tmp[0]);
    if (!is_array ($datos_sesion)) {
        // algo ha fallado, inicializar una matriz vacia
        $datos_sesion = array();
    }
}
?>

Vea también serialize().

Anterior | Inicio | Siguiente
strval | Subir | unset


unset

(PHP 3, PHP 4 )

unset -- Destruye una variable dada

Descripción

int unset ( mixed var)

unset() destruye la variable especificada y devuelve TRUE.

Ejemplo 1. Ejemplo de unset()

unset( $foo );
unset( $bar['quux'] );

Ver también isset() y empty().

Anterior | Inicio | Siguiente
unserialize | Subir | var_dump


var_dump

(PHP 3>= 3.0.5, PHP 4 )

var_dump -- Vuelca información sobre una variable

Descripción

void var_dump ( mixed expresion [, mixed expresion [, ...]])

Esta función despliega información estructurada sobre una o más expresiones que incluye sus tipos y valores. Las matrices son exploradas recursivamente con valores sangrados para mostrar su estructura.

Sugerencia: Como con todo lo que presenta un resultado directamente en el navegador, se pueden utilizar las funciones de control de salida para capturar el resultado de esta función y grabarlo - por ejemplo - en una string.

Compare var_dump() con print_r().

Ejemplo 1. Ejemplo de var_dump()

<pre>
<?php
$a = array (1, 2, array ("a", "b", "c"));
var_dump ($a);

/* salida:
array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  array(3) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "b"
    [2]=>
    string(1) "c"
  }
}

*/

$b = 3.1;
$c = TRUE;
var_dump($b,$c);

/* salida:
float(3.1)
bool(true)

*/
?>
</pre>

Anterior | Inicio | Siguiente
unset | Subir | var_export


var_export

(PHP 4 >= 4.2.0)

var_export -- Imprime o devuelve la representación de cadena de una variable

Descripción

mixed var_export ( mixed expresion [, bool devolver])

Esta función devuelve información estructurada sobre la variable que le es pasada. Es similar a var_dump() con la excepción de que la represencación devuelta es código PHP válido.

También puede devolver la representación de la variable usando TRUE como segundo parámetro para esta función.

Compare var_export() con var_dump().

<pre>
<?php
$a = array (1, 2, array ("a", "b", "c"));
var_export ($a);

/* salida:
array (
  0 => 1,
  1 => 2,
  2 =>
  array (
    0 => 'a',
    1 => 'b',
    2 => 'c',
  ),
)
*/

$b = 3.1;
$v = var_export($b, TRUE);
echo $v;

/* salida:
3.1
*/
?>
</pre>

Anterior | Inicio | Siguiente
var_dump | Subir | vpopmail functions


vpopmail functions

Manual de PHP
Anterior Siguiente

CVIII. vpopmail functions

Introducción

Aviso

Esta extensión es EXPERIMENTAL. Esto significa que el comportamiento de esta extensión, los nombre de sus funciones y en definitiva TODO lo documentado sobre esta extensión, puede cambiar en una futura versión de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

This extension has been moved from PHP as of PHP 4.3.0 and now vpopmail lives in PECL.

Instalación

In PHP 4, these functions are only available if PHP was configured with --with-vpopmail[=DIR].

Tabla de contenidos
vpopmail_add_alias_domain_ex -- Add alias to an existing virtual domain
vpopmail_add_alias_domain -- Add an alias for a virtual domain
vpopmail_add_domain_ex -- Add a new virtual domain
vpopmail_add_domain -- Add a new virtual domain
vpopmail_add_user -- Add a new user to the specified virtual domain
vpopmail_alias_add -- insert a virtual alias
vpopmail_alias_del_domain -- deletes all virtual aliases of a domain
vpopmail_alias_del -- deletes all virtual aliases of a user
vpopmail_alias_get_all -- get all lines of an alias for a domain
vpopmail_alias_get -- get all lines of an alias for a domain
vpopmail_auth_user -- Attempt to validate a username/domain/password. Returns true/false
vpopmail_del_domain_ex -- Delete a virtual domain
vpopmail_del_domain -- Delete a virtual domain
vpopmail_del_user -- Delete a user from a virtual domain
vpopmail_error -- Get text message for last vpopmail error. Returns string
vpopmail_passwd -- Change a virtual user's password
vpopmail_set_user_quota -- Sets a virtual user's quota

Anterior | Inicio | Siguiente
var_export | Subir | vpopmail_add_alias_domain_ex


vpopmail_add_alias_domain_ex

(4.0.5 - 4.2.3 only)

vpopmail_add_alias_domain_ex -- Add alias to an existing virtual domain

Description

bool vpopmail_add_alias_domain_ex ( string olddomain, string newdomain)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
vpopmail functions | Subir | vpopmail_add_alias_domain


vpopmail_add_alias_domain

(4.0.5 - 4.2.3 only)

vpopmail_add_alias_domain -- Add an alias for a virtual domain

Description

bool vpopmail_add_alias_domain ( string domain, string aliasdomain)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
vpopmail_add_alias_domain_ex | Subir | vpopmail_add_domain_ex


vpopmail_add_domain_ex

(4.0.5 - 4.2.3 only)

vpopmail_add_domain_ex -- Add a new virtual domain

Description

bool vpopmail_add_domain_ex ( string domain, string passwd [, string quota [, string bounce [, bool apop]]])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
vpopmail_add_alias_domain | Subir | vpopmail_add_domain


vpopmail_add_domain

(4.0.5 - 4.2.3 only)

vpopmail_add_domain -- Add a new virtual domain

Description

bool vpopmail_add_domain ( string domain, string dir, int uid, int gid)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
vpopmail_add_domain_ex | Subir | vpopmail_add_user


vpopmail_add_user

(4.0.5 - 4.2.3 only)

vpopmail_add_user -- Add a new user to the specified virtual domain

Description

bool vpopmail_add_user ( string user, string domain, string password [, string gecos [, bool apop]])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
vpopmail_add_domain | Subir | vpopmail_alias_add


vpopmail_alias_add

(4.1.0 - 4.2.3 only)

vpopmail_alias_add -- insert a virtual alias

Description

bool vpopmail_alias_add ( string user, string domain, string alias)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
vpopmail_add_user | Subir | vpopmail_alias_del_domain


vpopmail_alias_del_domain

(4.1.0 - 4.2.3 only)

vpopmail_alias_del_domain -- deletes all virtual aliases of a domain

Description

bool vpopmail_alias_del_domain ( string domain)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
vpopmail_alias_add | Subir | vpopmail_alias_del


vpopmail_alias_del

(4.1.0 - 4.2.3 only)

vpopmail_alias_del -- deletes all virtual aliases of a user

Description

bool vpopmail_alias_del ( string user, string domain)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
vpopmail_alias_del_domain | Subir | vpopmail_alias_get_all


vpopmail_alias_get_all

(4.1.0 - 4.2.3 only)

vpopmail_alias_get_all -- get all lines of an alias for a domain

Description

array vpopmail_alias_get_all ( string domain)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
vpopmail_alias_del | Subir | vpopmail_alias_get


vpopmail_alias_get

(4.1.0 - 4.2.3 only)

vpopmail_alias_get -- get all lines of an alias for a domain

Description

array vpopmail_alias_get ( string alias, string domain)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
vpopmail_alias_get_all | Subir | vpopmail_auth_user


vpopmail_auth_user

(4.0.5 - 4.2.3 only)

vpopmail_auth_user -- Attempt to validate a username/domain/password. Returns true/false

Description

bool vpopmail_auth_user ( string user, string domain, string password [, string apop])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
vpopmail_alias_get | Subir | vpopmail_del_domain_ex


vpopmail_del_domain_ex

(4.0.5 - 4.2.3 only)

vpopmail_del_domain_ex -- Delete a virtual domain

Description

bool vpopmail_del_domain_ex ( string domain)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
vpopmail_auth_user | Subir | vpopmail_del_domain


vpopmail_del_domain

(4.0.5 - 4.2.3 only)

vpopmail_del_domain -- Delete a virtual domain

Description

bool vpopmail_del_domain ( string domain)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
vpopmail_del_domain_ex | Subir | vpopmail_del_user


vpopmail_del_user

(4.0.5 - 4.2.3 only)

vpopmail_del_user -- Delete a user from a virtual domain

Description

bool vpopmail_del_user ( string user, string domain)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
vpopmail_del_domain | Subir | vpopmail_error


vpopmail_error

(4.0.5 - 4.2.3 only)

vpopmail_error -- Get text message for last vpopmail error. Returns string

Description

string vpopmail_error ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
vpopmail_del_user | Subir | vpopmail_passwd


vpopmail_passwd

(4.0.5 - 4.2.3 only)

vpopmail_passwd -- Change a virtual user's password

Description

bool vpopmail_passwd ( string user, string domain, string password)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
vpopmail_error | Subir | vpopmail_set_user_quota


vpopmail_set_user_quota

(4.0.5 - 4.2.3 only)

vpopmail_set_user_quota -- Sets a virtual user's quota

Description

bool vpopmail_set_user_quota ( string user, string domain, string quota)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
vpopmail_passwd | Subir | W32api functions


W32api functions

Manual de PHP
Anterior Siguiente

CIX. W32api functions

Introducción

This extension is a generic extension API to DLLs. This was originally written to allow access to the Win32 API from PHP, although you can also access other functions exported via other DLLs.

Currently supported types are generic PHP types (strings, booleans, floats, integers and nulls) and types you define with w32api_deftype().

Aviso

Esta extensión es EXPERIMENTAL. Esto significa que el comportamiento de esta extensión, los nombre de sus funciones y en definitiva TODO lo documentado sobre esta extensión, puede cambiar en una futura versión de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Requerimientos

This extension will only work on Windows systems.

Instalación

No se necesita ninguna instalación para usar estas funciones, son parte del núcleo de PHP.

Configuración en tiempo de ejecución

Esta extensión no tiene directivas de configuración en php.ini.

Tipos de recursos

This extension defines one resource type, used for user defined types. The name of this resource is "dynaparm".

Constantes predefinidas

Estas constantes están definidas por esta extensión y estarán disponibles solamente cuando la extensión ha sido o bien compilada dentro de PHP o grabada dinámicamente en tiempo de ejecución.

DC_MICROSOFT (integer)

DC_BORLAND (integer)

DC_CALL_CDECL (integer)

DC_CALL_STD (integer)

DC_RETVAL_MATH4 (integer)

DC_RETVAL_MATH8 (integer)

DC_CALL_STD_BO (integer)

DC_CALL_STD_MS (integer)

DC_CALL_STD_M8 (integer)

DC_FLAG_ARGPTR (integer)

Ejemplos

This example gets the amount of time the system has been running and displays it in a message box.

Ejemplo 1. Get the uptime and display it in a message box

<?php
// Define constants needed, taken from
// Visual Studio/Tools/Winapi/WIN32API.txt
define("MB_OK", 0);

// Load the extension in
dl("php_w32api.dll");

// Register the GetTickCount function from kernel32.dll
w32api_register_function("kernel32.dll",
                         "GetTickCount",
                         "long");

// Register the MessageBoxA function from User32.dll
w32api_register_function("User32.dll",
                         "MessageBoxA",
                         "long");

// Get uptime information
$ticks = GetTickCount();

// Convert it to a nicely displayable text
$secs  = floor($ticks / 1000);
$mins  = floor($secs / 60);
$hours = floor($mins / 60);

$str = sprintf("You have been using your computer for:".
                "\r\n %d Milliseconds, or \r\n %d Seconds".
                "or \r\n %d mins or\r\n %d hours %d mins.",
                $ticks,
                $secs,
                $mins,
                $hours,
                $mins - ($hours*60));

// Display a message box with only an OK button and the uptime text
MessageBoxA(NULL,
            $str,
            "Uptime Information",
            MB_OK);
?>
Tabla de contenidos
w32api_deftype -- Defines a type for use with other w32api_functions
w32api_init_dtype -- Creates an instance of the data type typename and fills it with the values passed
w32api_invoke_function -- Invokes function funcname with the arguments passed after the function name
w32api_register_function -- Registers function function_name from library with PHP
w32api_set_call_method -- Sets the calling method used

Anterior | Inicio | Siguiente
vpopmail_set_user_quota | Subir | w32api_deftype


w32api_deftype

(4.2.0 - 4.2.3 only)

w32api_deftype -- Defines a type for use with other w32api_functions

Description

bool w32api_deftype ( string typename, string member1_type, string member1_name [, string ... [, string ...]])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

If you would like to define a type for a w32api call, you need to call w32api_deftype(). This function takes 2n+1 arguments, where n is the number of members the type has. The first argument is the name of the type. After that is the type of the member followed by the members name (in pairs). A member type can be a user defined type. All the type names are case sensitive. Built in type names should be provided in lowercase. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Anterior | Inicio | Siguiente
W32api functions | Subir | w32api_init_dtype


w32api_init_dtype

(4.2.0 - 4.2.3 only)

w32api_init_dtype -- Creates an instance of the data type typename and fills it with the values passed

Description

resource w32api_init_dtype ( string typename, mixed value [, mixed ...])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

This function creates an instance of the data type named typename, filling in the values of the data type. The typename parameter is case sensitive. You should give the values in the same order as you defined the data type with w32api_deftype(). The type of the resource returned is dynaparm.

Anterior | Inicio | Siguiente
w32api_deftype | Subir | w32api_invoke_function


w32api_invoke_function

(4.2.0 - 4.2.3 only)

w32api_invoke_function -- Invokes function funcname with the arguments passed after the function name

Description

mixed w32api_invoke_function ( string funcname, mixed argument [, mixed ...])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

w32api_invoke_function() tries to find the previously registered function, named funcname, passing the parameters you provided. The return type is the one you set when you registered the function, the value is the one returned by the function itself. Any of the arguments can be of any PHP type or w32api_deftype() defined type, as needed.

Anterior | Inicio | Siguiente
w32api_init_dtype | Subir | w32api_register_function


w32api_register_function

(4.2.0 - 4.2.3 only)

w32api_register_function -- Registers function function_name from library with PHP

Description

bool w32api_register_function ( string library, string function_name, string return_type)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

This function tries to find the function_name function in libary, and tries to import it into PHP. The function will be registered with the given return_type. This type can be a generic PHP type, or a type defined with w32api_deftype(). All type names are case sensitive. Built in type names should be provided in lowercase. Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Anterior | Inicio | Siguiente
w32api_invoke_function | Subir | w32api_set_call_method


w32api_set_call_method

(4.2.0 - 4.2.3 only)

w32api_set_call_method -- Sets the calling method used

Description

void w32api_set_call_method ( int method)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

This function sets the method call type. The parameter can be one of the constants DC_CALL_CDECL or DC_CALL_STD. The extension default is DC_CALL_STD.

Anterior | Inicio | Siguiente
w32api_register_function | Subir | Funciones WDDX


Funciones WDDX

Manual de PHP
Anterior Siguiente

CX. Funciones WDDX

Estas funciones permiten el uso de WDDX.

Debe saber que todas las funciones que serializan variables usan el primer elemento de un array para determinar si este ha de serializarse en forma de array o como estructura. Si el primer elemento esta indexado por una cadena, se serializa como estructura, y en caso contrario, como array.

Ejemplo 1. Serializacion de un valor simple

<?php
print wddx_serialize_value("Ejemplo de PHP a paquete WDDX", "Paquete PHP");
?>

Este ejemplo producira:

<wddxPacket version='0.9'><header comment='Paquete PHP'/><data>
<string>Ejemplo de PHP a paquete WDDX</string></data></wddxPacket>

Ejemplo 2. Uso de paquetes incrementales

<?php
$pi = 3.1415926;
$packet_id = wddx_packet_start("PHP");
wddx_add_vars($packet_id, "pi");

/* Suponga que $ciudades se ha obtenido de una base de datos */
$ciudades = array("Austin", "Novato", "Seattle");
wddx_add_vars($packet_id, "ciudades");

$packet = wddx_packet_end($packet_id);
print $packet;
?>

Este ejemplo producira:

<wddxPacket version='0.9'><header comment='PHP'/><data><struct>
<var name='pi'><number>3.1415926</number></var><var name='ciudades'>
<array length='3'><string>Austin</string><string>Novato</string>
<string>Seattle</string></array></var></struct></data></wddxPacket>

Tabla de contenidos
wddx_add_vars -- Finaliza un paquete WDDX con el identificador dado
wddx_deserialize -- Des-serializa un paquete WDDX
wddx_packet_end -- Finaliza un paquete WDDX con el identificador dado
wddx_packet_start -- Comienza un nuevo paquete WDDX con una estructura dentro
wddx_serialize_value -- Serializa un valor simple en un paquete WDDX
wddx_serialize_vars -- Serializa variables en un paquete WDDX

Anterior | Inicio | Siguiente
w32api_set_call_method | Subir | wddx_add_vars


wddx_add_vars

(PHP 3>= 3.0.7, PHP 4 )

wddx_add_vars -- Finaliza un paquete WDDX con el identificador dado

Descripcion

wddx_add_vars ( entero packet_id, varios-tipos name_var [, varios-tipos ...])

wddx_add_vars() se utiliza para serializar las variables dadas e incorporar el resultado al paquete especificado por packet_id. Las variables a serializar se especifican exactamente igual que en wddx_serialize_vars().

Anterior | Inicio | Siguiente
Funciones WDDX | Subir | wddx_deserialize


wddx_deserialize

(PHP 3>= 3.0.7, PHP 4 )

wddx_deserialize -- Des-serializa un paquete WDDX

Descripcion

varios-tipos wddx_deserialize ( cadena packet)

wddx_deserialized() toma una cadena packet y la desserializa. Devuelve el resultado que puede ser de tipo cadena, numerico o array. Las estructuras son desserializadas en forma de arrays asociativos.

Anterior | Inicio | Siguiente
wddx_add_vars | Subir | wddx_packet_end


wddx_packet_end

(PHP 3>= 3.0.7, PHP 4 )

wddx_packet_end -- Finaliza un paquete WDDX con el identificador dado

Descripcion

cadena wddx_packet_end ( entero packet_id)

wddx_packet_end() finaliza el paquete WDDX especificado por el packet_id y devuelve la cadena con el paquete.

Anterior | Inicio | Siguiente
wddx_deserialize | Subir | wddx_packet_start


wddx_packet_start

(PHP 3>= 3.0.7, PHP 4 )

wddx_packet_start -- Comienza un nuevo paquete WDDX con una estructura dentro

Descripcion

entero wddx_packet_start ( [cadena comentario])

Utilice wddx_packet_start() para comenzar un nuevo paquete WDDX que permita la adicion sucesiva de variables. Recibe el parametro opcional comentario y devuelve un identificador de paquete para su uso en posteriores llamadas. Automaticamente define una estructura dentro del paquete para contener las variables.

Anterior | Inicio | Siguiente
wddx_packet_end | Subir | wddx_serialize_value


wddx_serialize_value

(PHP 3>= 3.0.7, PHP 4 )

wddx_serialize_value -- Serializa un valor simple en un paquete WDDX

Descripcion

cadena wddx_serialize_value ( varios-tipos var [, cadena comentario])

wddx_serialize_value() se utiliza para crear un paquete WDDX desde un valor simple dado. Toma el valor contenido en var, y una cadena comentario opcional que aparecera en la cabecera del paquete, y devuelve el paquete WDDX.

Anterior | Inicio | Siguiente
wddx_packet_start | Subir | wddx_serialize_vars


wddx_serialize_vars

(PHP 3>= 3.0.7, PHP 4 )

wddx_serialize_vars -- Serializa variables en un paquete WDDX

Descripcion

cadena wddx_serialize_vars ( varios-tipos nombre_var [, varios-tipos ...])

wddx_serialize_vars() se utiliza para crear un paquete WDDX con una estructura que contiene la representacion serializada de las variables pasadas como parametros.

wddx_serialize_vars() toma un numero variable de argumentos, cada uno de los cuales puede ser una cadena con el nombre de una variable o un array con nombres de variables, o de otro array, etc.

Ejemplo 1. wddx_serialize_vars example

<?php
$a = 1;
$b = 5.5;
$c = array("azul", "naranja", "violeta");
$d = "colores";

$clvars = array("c", "d");
print wddx_serialize_vars("a", "b", $clvars);
?>

El ejemplo anterior producira:
<wddxPacket version='0.9'><header/><data><struct><var name='a'><number>1</number></var>
<var name='b'><number>5.5</number></var><var name='c'><array length='3'>
<string>azul</string><string>naranja</string><string>violeta</string></array></var>
<var name='d'><string>colores</string></var></struct></data></wddxPacket>

Anterior | Inicio | Siguiente
wddx_serialize_value | Subir | Funciones de intérprete XML


Funciones de intérprete XML

Manual de PHP
Anterior Siguiente

CXI. Funciones de intérprete XML

Introducción

Acerca de XML

XML (eXtensible Markup Language) es un formato de información para el intercambio de documentos estructurado en la "Web" Es un estándar definido por el consorcio de la "World Wide Web" (W3C). Se puede encontrar información sobre XML y tecnologís relacionadas en http://www.w3.org/XML/.

Instalación

Esta extensión usa expat, que se puede encontrar en http://www.jclark.com/xml/expat.html. El Makefile que viene con expat no crea una biblioteca por defecto, se puede usar esta regla de make para eso:
libexpat.a: $(OBJS)
    ar -rc $@ $(OBJS)
    ranlib $@
Se puede conseguir un paquete RPM de expat en http://sourceforge.net/projects/expat/.

Nota que si se usa Apache-1.3.7 o posterior, ya tienes la biblioteca requerida expat. Simplemente, configura PHP usando --with-xml (sin ninguna ruta adicional) y usará automáticamente la biblioteca expat incluida en Apache.

En UNIX, ejecuta configure con la opción --with-xml. La biblioteca expat debería ser instalada en algún lugar donde el compilador pueda encontrarlo. Si se compila PHP como un módulo para Apache 1.3.9 o posterior, PHP automáticamente usará la biblioteca integrada expat de Apache. Puede necesitar establecer CPPFLAGS y LDFLAGS en su entorno antes de ejecutar "configure" si se ha instalado expat en algún lugar exótico.

Compila PHP. ¡Ta-tam! Ya debería estar.

Sobre Esta Extensión

Esta extensión de PHP implementa soporte para expat de James Clarkin en PHP. Este conjunto de herramientas permite interpretar, pero no validar, documentos XML. Soporta tres codificaciones de caracteres fuente, también proporcionados por PHP: US-ASCII, ISO-8859-1 y UTF-8. UTF-16 no está soportado.

Esta extensión permite crear intérpretes de XML y definir entonces gestores para diferentes eventos XML. Cada intérprete XML tiene también unos cuantos parámetros que se pueden ajustar.

Los gestores de eventos XML definidos son:

Tabla 1. Gestores de XML soportados

Función PHP para establecer gestor | Descripción del evento
xml_set_element_handler() | Los eventos de elemento ("element") se producen cuando el intérprete XML encuentra etiquetas de comienzo o fin. Hay gestores separados para etiquetas de comienzo y etiquetas de fin.
xml_set_character_data_handler() | La información de caracteres es, por definición, todo el contenido no "marcado" de los documentos XML, incluidos los espacios en blanco entre etiquetas. Nota que el intérprete XML no añade o elimina ningún espacio en blanco, depende de la aplicación (de ti) decidir si el espacio en blanco es significativo.
xml_set_processing_instruction_handler() | Los programadores de PHP deberían estar ya familiarizados con las instrucciones de procesado (PI). <?php ?> es una instrucción de procesado, donde php se denomina el "objetivo de procesado". El manejo de éstos es específico a cada aplicación, salvo que todos los objetivos PI que comienzan con "XML" están reservados.
xml_set_default_handler() | Todo lo que no va a otro gestor, va al gestor por defecto. Se tendrán en el gestor por defecto cosas como las declaraciones de tipos de documento y XML.
xml_set_unparsed_entity_decl_handler() | Este gestor se llamará para la declaración de una entidad no analizada (NDATA).
xml_set_notation_decl_handler() | Este gestor se llama para la declaración de una anotación.
xml_set_external_entity_ref_handler() | Este gestor se llama cuando el intérprete XML encuentra una referencia a una entidad general interpretada externa. Puede ser una referencia a un archivo o URL, por ejemplo. Ver el ejemplo de entidad externa para demostración.

Case Folding

Las funciones manejadoras de elementos pueden tomar sus nombres de elementos "case-folded". Case-folding se define en el estándar XML como "un proceso aplicado a una secuencia de caracteres, en el cual aquellos identificados como sin-mayúsculas son reemplazados por sus equivalentes en mayúsculas". En otras palabras, cuando se trata de XML, case-folding simplemente significa poner en mayúsculas.

Por defecto, todos los nombres de elementos que se pasan a las funciones gestoras estan "pasados a mayúsculas". Esta conducta puede ser observada y controlada por el analizador XML con las funciones xml_parser_get_option() y xml_parser_set_option(), respectivamente.

Códigos de Error

Las siguientes constantes se definen para códigos de error XML (como los devuelve xml_parse()):

XML_ERROR_NONE
XML_ERROR_NO_MEMORY
XML_ERROR_SYNTAX
XML_ERROR_NO_ELEMENTS
XML_ERROR_INVALID_TOKEN
XML_ERROR_UNCLOSED_TOKEN
XML_ERROR_PARTIAL_CHAR
XML_ERROR_TAG_MISMATCH
XML_ERROR_DUPLICATE_ATTRIBUTE
XML_ERROR_JUNK_AFTER_DOC_ELEMENT
XML_ERROR_PARAM_ENTITY_REF
XML_ERROR_UNDEFINED_ENTITY
XML_ERROR_RECURSIVE_ENTITY_REF
XML_ERROR_ASYNC_ENTITY
XML_ERROR_BAD_CHAR_REF
XML_ERROR_BINARY_ENTITY_REF
XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF
XML_ERROR_MISPLACED_XML_PI
XML_ERROR_UNKNOWN_ENCODING
XML_ERROR_INCORRECT_ENCODING
XML_ERROR_UNCLOSED_CDATA_SECTION
XML_ERROR_EXTERNAL_ENTITY_HANDLING

Codificación de caracteres

La extension XML de PHP soporta el conjunto de caracteres Unicode a través de diferentes codificaciones de caracteres. Hay dos tipos de codificaciones de caracteres, coficación de fuente y codificación de destino. La representación interna de PHP del documento está siempre codificada con UTF-8.

La codificación de fuente se hace cuando un documento XML es interpretado. Al crear un intérprete XML , se puede especificar una codificación de fuente (esta codificación no se puede cambiar má tarde durante el tiempo de vida del intérprete XML). Las codificaciones de fuente soportadas son ISO-8859-1, US-ASCII y UTF-8. Las dos primeras son codificaciones de byte-único, lo que significa que cada carácter se representa por un solo byte. UTF-8 puede codificar caracteres compuestos por un número variable de bits (hasta 21) en de uno a cuatro bytes. La codificación fuente por defecto usada por PHP es ISO-8859-1.

La codificación de destino se hace cuando PHP pasa datos a las funciones gestoras XML. Cuando se crea un intérprete XML, la codificación de destino se crea igual a la codificación de fuente, pero se puede cambiar en cualquier momento. La codificación de destino afectará a la información de los caracteres así como a los nombres de las etiquetas y a los objetivos de instrucciones de procesado.

Si el intérprete XML encuentra caracteres fuera del rango que su codificación de fuente es capaz de representar, devolverá un error.

Si PHP encuentra caracteres en el documento XML interpretado que no pueden ser representados en la codificación de destino elegida, los caracteres problema serán "degradados". Actualmente, esto significa que tales caracteres se reemplazan por un signo de interrogación.

Algunos Ejemplos

Aquí hay algunos ejemplos de archivos de comandos PHP que interpretan documentos XML.

Ejemplos de Estructuras de Elementos XML

Este primer ejemplo muestra la estructura del elemento inicio en un documento con indentación.

Ejemplo 1. Muestra la Estructura del Elemento XML

$file = "data.xml";
$depth = array();

function startElement($parser, $name, $attrs) {
    global $depth;
    for ($i = 0; $i < $depth[$parser]; $i++) {
        print "  ";
    }
    print "$name\n";
    $depth[$parser]++;
}

function endElement($parser, $name) {
    global $depth;
    $depth[$parser]--;
}

$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
if (!($fp = fopen($file, "r"))) {
    die("could not open XML input");
}

while ($data = fread($fp, 4096)) {
    if (!xml_parse($xml_parser, $data, feof($fp))) {
        die(sprintf("XML error: %s at line %d",
                    xml_error_string(xml_get_error_code($xml_parser)),
                    xml_get_current_line_number($xml_parser)));
    }
}
xml_parser_free($xml_parser);

Ejemplo de Mapeo de Etiquetas XML

Ejemplo 2. Traduciendo XML a HTML

Este ejemplo transforma etiquetas de un documento XML directamente a etiquetas HTML. Los elementos no encontrados en el "array de traducción ("map array") son ignorados. Por supuesto, este ejemplo solamente funcionará con un tipo de documentos XML específico.
$file = "data.xml";
$map_array = array(
    "BOLD"     => "B",
    "EMPHASIS" => "I",
    "LITERAL"  => "TT"
);

function startElement($parser, $name, $attrs) {
    global $map_array;
    if ($htmltag = $map_array[$name]) {
        print "<$htmltag>";
    }
}

function endElement($parser, $name) {
    global $map_array;
    if ($htmltag = $map_array[$name]) {
        print "</$htmltag>";
    }
}

function characterData($parser, $data) {
    print $data;
}

$xml_parser = xml_parser_create();
// usa case-folding para que estemos seguros de encontrar la etiqueta
// en $map_array
xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, true);
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
if (!($fp = fopen($file, "r"))) {
    die("could not open XML input");
}

while ($data = fread($fp, 4096)) {
    if (!xml_parse($xml_parser, $data, feof($fp))) {
        die(sprintf("XML error: %s at line %d",
                    xml_error_string(xml_get_error_code($xml_parser)),
                    xml_get_current_line_number($xml_parser)));
    }
}
xml_parser_free($xml_parser);

Ejemplo de Entidad Externa XML

Este ejemplo resalta el código XML. Ilustra cómo usar un gestor de referencia de entidades extenas para incluir y analizar otros documentos, así como cuúntos PIs pueden ser procesados, y un modo de determinar "confianza" para PIs que contienen código.

Los documentos XML que se pueden usar en este ejemplo se encuentran bajo el ejemplo (xmltest.xml y xmltest2.xml.)

Ejemplo 3. Ejemplo de Entidades Externas

$file = "xmltest.xml";

function trustedFile($file) {
    // solamente confía en archivos locales que nos pertenezcan
    if (!eregi("^([a-z]+)://", $file)
        && fileowner($file) == getmyuid()) {
            return true;
    }
    return false;
}

function startElement($parser, $name, $attribs) {
    print "&lt;<font color=\"#0000cc\">$name</font>";
    if (sizeof($attribs)) {
        while (list($k, $v) = each($attribs)) {
            print " <font color=\"#009900\">$k</font>=\"<font
                   color=\"#990000\">$v</font>\"";
        }
    }
    print "&gt;";
}

function endElement($parser, $name) {
    print "&lt;/<font color=\"#0000cc\">$name</font>&gt;";
}

function characterData($parser, $data) {
    print "<b>$data</b>";
}

function PIHandler($parser, $target, $data) {
    switch (strtolower($target)) {
        case "php":
            global $parser_file;
            // Si el documento analizado es "de confianza", diremos
            // que es seguro ejecutar código PHP en su interior.
            // Si no, en vez de ello mostrará el código.
            if (trustedFile($parser_file[$parser])) {
                eval($data);
            } else {
                printf("Untrusted PHP code: <i>%s</i>",
                        htmlspecialchars($data));
            }
            break;
    }
}

function defaultHandler($parser, $data) {
    if (substr($data, 0, 1) == "&" && substr($data, -1, 1) == ";") {
        printf('<font color="#aa00aa">%s</font>',
                htmlspecialchars($data));
    } else {
        printf('<font size="-1">%s</font>',
                htmlspecialchars($data));
    }
}

function externalEntityRefHandler($parser, $openEntityNames, $base, $systemId,
                                  $publicId) {
    if ($systemId) {
        if (!list($parser, $fp) = new_xml_parser($systemId)) {
            printf("Could not open entity %s at %s\n", $openEntityNames,
                   $systemId);
            return false;
        }
        while ($data = fread($fp, 4096)) {
            if (!xml_parse($parser, $data, feof($fp))) {
                printf("XML error: %s at line %d while parsing entity %s\n",
                       xml_error_string(xml_get_error_code($parser)),
                       xml_get_current_line_number($parser), $openEntityNames);
                xml_parser_free($parser);
                return false;
            }
        }
        xml_parser_free($parser);
        return true;
    }
    return false;
}

function new_xml_parser($file) {
    global $parser_file;

    $xml_parser = xml_parser_create();
    xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, 1);
    xml_set_element_handler($xml_parser, "startElement", "endElement");
    xml_set_character_data_handler($xml_parser, "characterData");
    xml_set_processing_instruction_handler($xml_parser, "PIHandler");
    xml_set_default_handler($xml_parser, "defaultHandler");
    xml_set_external_entity_ref_handler($xml_parser, "externalEntityRefHandler");

    if (!($fp = @fopen($file, "r"))) {
        return false;
    }
    if (!is_array($parser_file)) {
        settype($parser_file, "array");
    }
    $parser_file[$xml_parser] = $file;
    return array($xml_parser, $fp);
}

if (!(list($xml_parser, $fp) = new_xml_parser($file))) {
    die("could not open XML input");
}

print "<pre>";
while ($data = fread($fp, 4096)) {
    if (!xml_parse($xml_parser, $data, feof($fp))) {
        die(sprintf("XML error: %s at line %d\n",
                    xml_error_string(xml_get_error_code($xml_parser)),
                    xml_get_current_line_number($xml_parser)));
    }
}
print "</pre>";
print "parse complete\n";
xml_parser_free($xml_parser);

?>

Ejemplo 4. xmltest.xml

<?xml version='1.0'?>
<!DOCTYPE chapter SYSTEM "/just/a/test.dtd" [
<!ENTITY plainEntity "FOO entity">
<!ENTITY systemEntity SYSTEM "xmltest2.xml">
]>
<chapter>
 <TITLE>Title &plainEntity;</TITLE>
 <para>
  <informaltable>
   <tgroup cols="3">
    <tbody>
     <row><entry>a1</entry><entry morerows="1">b1</entry><entry>c1</entry></row>
     <row><entry>a2</entry><entry>c2</entry></row>
     <row><entry>a3</entry><entry>b3</entry><entry>c3</entry></row>
    </tbody>
   </tgroup>
  </informaltable>
 </para>
 &systemEntity;
 <sect1 id="about">
  <title>About this Document</title>
  <para>
   <!-- this is a comment -->
   <?php print 'Hi!  This is PHP version '.phpversion(); ?>
  </para>
 </sect1>
</chapter>

Este archivo se incluye desde xmltest.xml:

Ejemplo 5. xmltest2.xml

<?xml version="1.0"?>
<!DOCTYPE foo [
<!ENTITY testEnt "test entity">
]>
<foo>
   <element attrib="value"/>
   &testEnt;
   <?php print "This is some more PHP code being executed."; ?>
</foo>

Tabla de contenidos
utf8_decode -- Convierte una cadena codificada UTF-8 a ISO-8859-1
utf8_encode -- codifica una cadena ISO-8859-1 a UTF-8
xml_error_string -- obtiene la cadena de error del analizador XML
xml_get_current_byte_index -- obtiene el índice del byte actual para un analizador XML
xml_get_current_column_number -- Obtiene el número de columna actual para un analizador XML.
xml_get_current_line_number -- obtiene el número de línea actual de un analizador XML
xml_get_error_code -- obtiene el código de error del analizador XML
xml_parse_into_struct -- Parse XML data into an array structure
xml_parse -- comienza a analizar un documento XML
xml_parser_create_ns -- Create an XML parser with namespace support
xml_parser_create -- crea un analizador de XML
xml_parser_free -- Libera un analizador XML
xml_parser_get_option -- obtiene las opciones de un analizador XML
xml_parser_set_option -- establece las opciones de un analizador XML
xml_set_character_data_handler -- Establece gestores de datos de caracteres
xml_set_default_handler -- set up default handler
xml_set_element_handler -- establece gestores de los elementos principio y fin
xml_set_end_namespace_decl_handler -- Set up character data handler
xml_set_external_entity_ref_handler -- Establece gestores de referencia de entidades externas
xml_set_notation_decl_handler -- Establece gestores de declaraciones de notación
xml_set_object -- Usa un analizador XML dentro de un objecto
xml_set_processing_instruction_handler -- Establece el gestor de instrucciones de procesado (PI)
xml_set_start_namespace_decl_handler -- Set up character data handler
xml_set_unparsed_entity_decl_handler -- Establece un gestor de declaraciones de entidades no analizadas

Anterior | Inicio | Siguiente
wddx_serialize_vars | Subir | utf8_decode


utf8_decode

(PHP 3>= 3.0.6, PHP 4 )

utf8_decode -- Convierte una cadena codificada UTF-8 a ISO-8859-1

Descripción

string utf8_decode ( string data)

Esta función decodificadata, asume codificación UTF-8 , a ISO-8859-1.

Mira utf8_encode() para una explicación de codificación UTF-8.

Anterior | Inicio | Siguiente
Funciones de intérprete XML | Subir | utf8_encode


utf8_encode

(PHP 3>= 3.0.6, PHP 4 )

utf8_encode -- codifica una cadena ISO-8859-1 a UTF-8

Descripción

string utf8_encode ( string data)

Esta función codifica la cadena data a UTF-8, y devuelve la versión codificada. UTF-8 es un mecanismo estándar usado por Unicodepara codificar valores de caracteres amplios en un chorro de bytes. UTF-8 es transparente a caracteres de ASCII plano, es auto-sincronizado (significa que es posible para un programa averiguar dónde comienzan los caracteres en el chorro de bytes) y se puede usar con funciones de comparación de cadenas normales para ordenar y otros fines. PHP codifica caracteres UTF-8 en hasta cuatro bytes, como esto:

Tabla 1. Codificación UTF-8

bytes | bits | representación
1 | 7 | 0bbbbbbb
2 | 11 | 110bbbbb 10bbbbbb
3 | 16 | 1110bbbb 10bbbbbb 10bbbbbb
4 | 21 | 11110bbb 10bbbbbb 10bbbbbb 10bbbbbb
Cada b representa un bit que puede ser usado para almacenar datos de caracteres.

Anterior | Inicio | Siguiente
utf8_decode | Subir | xml_error_string


xml_error_string

(PHP 3>= 3.0.6, PHP 4 )

xml_error_string -- obtiene la cadena de error del analizador XML

Descripción

string xml_error_string ( int code)

code

Un código de error de xml_get_error_code().

Devuelve una cadena con una descripción textual del código de error code, o FALSE si no se encontró descripción.

Anterior | Inicio | Siguiente
utf8_encode | Subir | xml_get_current_byte_index


xml_get_current_byte_index

(PHP 3>= 3.0.6, PHP 4 )

xml_get_current_byte_index -- obtiene el índice del byte actual para un analizador XML

Descripción

int xml_get_current_byte_index ( int parser)

parser

Una referencia al analizador XML del que obtener el índice del byte.

Esta función devuelve FALSE si parser no referencia un analizador válido, o si no devuelve en qué índice de byte se encuentra el buffer de datos del analizador (empezando en 0).

Anterior | Inicio | Siguiente
xml_error_string | Subir | xml_get_current_column_number


xml_get_current_column_number

(PHP 3>= 3.0.6, PHP 4 )

xml_get_current_column_number -- Obtiene el número de columna actual para un analizador XML.

Descripción

int xml_get_current_column_number ( int parser)

parser

Una referencia al analizador XML del que obtener el número de columna.

Esta función devuelve FALSE si parser no referencia un analizador válido, o si no devuelve en qué columna de la línea actual (como se obtiene de xml_get_current_line_number()) en la que se encuentra el analizador.

Anterior | Inicio | Siguiente
xml_get_current_byte_index | Subir | xml_get_current_line_number


xml_get_current_line_number

(PHP 3>= 3.0.6, PHP 4 )

xml_get_current_line_number -- obtiene el número de línea actual de un analizador XML

Descripción

int xml_get_current_line_number ( int parser)

parser

Una referencia al analizador XML del que obtener el número de línea.

Esta función devuelve FALSE si parser no referencia un analizador válido, o si no devuelve en qué línea se encuentra actualmente el buffer de datos del analizador.

Anterior | Inicio | Siguiente
xml_get_current_column_number | Subir | xml_get_error_code


xml_get_error_code

(PHP 3>= 3.0.6, PHP 4 )

xml_get_error_code -- obtiene el código de error del analizador XML

Descripción

int xml_get_error_code ( int parser)

parser

Una referencia al analizador XML del que obtener el código de error.

Esta función devuelve FALSE si parser no referencia un analizador válido, o si no devuelve uno de los códigos de error listados en la sección de códigos de error.

Anterior | Inicio | Siguiente
xml_get_current_line_number | Subir | xml_parse_into_struct


xml_parse_into_struct

(PHP 3>= 3.0.8, PHP 4 )

xml_parse_into_struct -- Parse XML data into an array structure

Description

int xml_parse_into_struct ( resource parser, string data, array &values [, array &index])

This function parses an XML file into 2 parallel array structures, one (index) containing pointers to the location of the appropriate values in the values array. These last two parameters must be passed by reference.

Below is an example that illustrates the internal structure of the arrays being generated by the function. We use a simple note tag embedded inside a para tag, and then we parse this an print out the structures generated:

<?php
$simple = "<para><note>simple note</note></para>";
$p = xml_parser_create();
xml_parse_into_struct($p,$simple,$vals,$index);
xml_parser_free($p);
echo "Index array\n";
print_r($index);
echo "\nVals array\n";
print_r($vals);
?>

When we run that code, the output will be:

Index array
Array
(
    [PARA] => Array
        (
            [0] => 0
            [1] => 2
        )

    [NOTE] => Array
        (
            [0] => 1
        )

)

Vals array
Array
(
    [0] => Array
        (
            [tag] => PARA
            [type] => open
            [level] => 1
        )

    [1] => Array
        (
            [tag] => NOTE
            [type] => complete
            [level] => 2
            [value] => simple note
        )

    [2] => Array
        (
            [tag] => PARA
            [type] => close
            [level] => 1
        )

)

Event-driven parsing (based on the expat library) can get complicated when you have an XML document that is complex. This function does not produce a DOM style object, but it generates structures amenable of being transversed in a tree fashion. Thus, we can create objects representing the data in the XML file easily. Let's consider the following XML file representing a small database of aminoacids information:

Ejemplo 1. moldb.xml - small database of molecular information

<?xml version="1.0"?>
<moldb>

    <molecule>
        <name>Alanine</name>
        <symbol>ala</symbol>
        <code>A</code>
        <type>hydrophobic</type>
    </molecule>

    <molecule>
        <name>Lysine</name>
        <symbol>lys</symbol>
        <code>K</code>
        <type>charged</type>
    </molecule>

</moldb>
And some code to parse the document and generate the appropriate objects:

Ejemplo 2. parsemoldb.php - parses moldb.xml into and array of molecular objects

<?php

class AminoAcid {
    var $name;  // aa name
    var $symbol;    // three letter symbol
    var $code;  // one letter code
    var $type;  // hydrophobic, charged or neutral

    function AminoAcid ($aa) {
        foreach ($aa as $k=>$v)
            $this->$k = $aa[$k];
    }
}

function readDatabase($filename) {
    // read the xml database of aminoacids
    $data = implode("",file($filename));
    $parser = xml_parser_create();
    xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0);
    xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1);
    xml_parse_into_struct($parser,$data,$values,$tags);
    xml_parser_free($parser);

    // loop through the structures
    foreach ($tags as $key=>$val) {
        if ($key == "molecule") {
            $molranges = $val;
            // each contiguous pair of array entries are the
            // lower and upper range for each molecule definition
            for ($i=0; $i < count($molranges); $i+=2) {
                    $offset = $molranges[$i] + 1;
                $len = $molranges[$i + 1] - $offset;
                $tdb[] = parseMol(array_slice($values, $offset, $len));
            }
        } else {
            continue;
        }
    }
    return $tdb;
}

function parseMol($mvalues) {
    for ($i=0; $i < count($mvalues); $i++)
        $mol[$mvalues[$i]["tag"]] = $mvalues[$i]["value"];
    return new AminoAcid($mol);
}

$db = readDatabase("moldb.xml");
echo "** Database of AminoAcid objects:\n";
print_r($db);

?>
After executing parsemoldb.php, the variable $db contains an array of AminoAcid objects, and the output of the script confirms that:

** Database of AminoAcid objects:
Array
(
    [0] => aminoacid Object
        (
            [name] => Alanine
            [symbol] => ala
            [code] => A
            [type] => hydrophobic
        )

    [1] => aminoacid Object
        (
            [name] => Lysine
            [symbol] => lys
            [code] => K
            [type] => charged
        )

)

Anterior | Inicio | Siguiente
xml_get_error_code | Subir | xml_parse


xml_parse

(PHP 3>= 3.0.6, PHP 4 )

xml_parse -- comienza a analizar un documento XML

Descripción

int xml_parse ( int parser, string data [, int isFinal])

parser

Una referencia al analizador XML que se va a utilizar.

data

Conjunto de información que se analizará. Un documento puede ser analizado por trozos llamando varias veces a xml_parse() con nueva información, siempre que se establezca el parámetro isFinal y sea TRUE cuando el último dato sea analizado.

isFinal (optional)

Si existe y es TRUE, data es el último pedazo de información envíado en este análisis.

Cuando el documento XML es analizado, se hacen llamadas a los gestores para los eventos configurados tantas veces como sea necesario, después de que esta función devuelva TRUE o FALSE.

Devuelve TRUE si el análisis se realiza con éxito, FALSE si no tiene éxito, o si parser no referencia a un analizador válido. Para análisis fallidos, se puede recuperar información de error con xml_get_error_code(), xml_error_string(), xml_get_current_line_number(), xml_get_current_column_number() y xml_get_current_byte_index().

Anterior | Inicio | Siguiente
xml_parse_into_struct | Subir | xml_parser_create_ns


xml_parser_create_ns

(PHP 4 >= 4.0.5)

xml_parser_create_ns -- Create an XML parser with namespace support

Description

resource xml_parser_create_ns ( [string encoding [, string separator]])

xml_parser_create_ns() creates a new XML parser with XML namespace support and returns a resource handle referencing it to be used by the other XML functions.

With a namespace aware parser tag parameters passed to the various handler functions will consist of namespace and tag name separated by the string specified in seperator or ':' by default.

The optional encoding specifies the character encoding of the XML input to be parsed. Supported encodings are "ISO-8859-1", which is also the default if no encoding is specified, "UTF-8" and "US-ASCII".

See also xml_parser_create(), and xml_parser_free().

Anterior | Inicio | Siguiente
xml_parse | Subir | xml_parser_create


xml_parser_create

(PHP 3>= 3.0.6, PHP 4 )

xml_parser_create -- crea un analizador de XML

Descripción

int xml_parser_create ( [string encoding])

encoding (opcional)

Qué codificación de caracteres debería usar el analizador. Las siguientes codificación de caracteres están soportadas:

ISO-8859-1 (por defecto)
US-ASCII
UTF-8

Esta función crea un analizador XML y devuelve un índice para usarlo con otras funciones XML. Devuelve FALSE en caso de fallo.

Anterior | Inicio | Siguiente
xml_parser_create_ns | Subir | xml_parser_free


xml_parser_free

(PHP 3>= 3.0.6, PHP 4 )

xml_parser_free -- Libera un analizador XML

Descripción

string xml_parser_free ( int parser)

parser

Una referencia al analizador XML que se liberará.

Esta función devuelve FALSE si parser no referencia un analizador válido, o si no libera el analizador y devuelve TRUE.

Anterior | Inicio | Siguiente
xml_parser_create | Subir | xml_parser_get_option


xml_parser_get_option

(PHP 3>= 3.0.6, PHP 4 )

xml_parser_get_option -- obtiene las opciones de un analizador XML

Descripción

mixed xml_parser_get_option ( int parser, int option)

parser

Una referencia al analizador XML del que obtener opciones.

option

Qué opción recuperar. Ver xml_parser_set_option() para una lista de opciones.

Esta función devuelve FALSE si parser no referencia un analizador válido, o si la opción no pudo ser establecida. Si no, se devuelve la opción.

Mirar xml_parser_set_option() para la lista de opciones.

Anterior | Inicio | Siguiente
xml_parser_free | Subir | xml_parser_set_option


xml_parser_set_option

(PHP 3>= 3.0.6, PHP 4 )

xml_parser_set_option -- establece las opciones de un analizador XML

Descripción

int xml_parser_set_option ( int parser, int option, mixed value)

parser

Una referencia al analizador XML en el que establecer opciones.

option

Opción que se establecerá. Ver más abajo.

value

El nuevo valor de la opción.

Esta función devuelve FALSE si parser no referencia un analizador válido, o si la opción no pudo ser establecida. Si no, la opción se establece y devuelve TRUE.

Las opciones siguientes están disponibles:

Tabla 1. Opciones de analizador XML

Opción constante | Tipo de Datos | Descripción
XML_OPTION_CASE_FOLDING | integer | Controla si case-folding se habilita para este analizador XML. Habilitado por defecto.
XML_OPTION_TARGET_ENCODING | string | Establece qué codificación destino se usa en este analizador XML. Por defecto, esta puesta al mismo que la codificación fuente usada por xml_parser_create(). Las codificaciones de destino soportadas son ISO-8859-1, US-ASCII y UTF-8.

Anterior | Inicio | Siguiente
xml_parser_get_option | Subir | xml_set_character_data_handler


xml_set_character_data_handler

(PHP 3>= 3.0.6, PHP 4 )

xml_set_character_data_handler -- Establece gestores de datos de caracteres

Descripción

int xml_set_character_data_handler ( int parser, string handler)

Establece la función gestora de datos de caracteres para el analizador XML parser. handler es un string que contiene el nombre de la función que debe existir cuando xml_parse() es llamado por parser.

La función nombrada en handler debe aceptar dos parámetros: handler ( int parser, string data)

parser

El primer parámetro, parser, es una referencia al analizador XML que llama al gestor.

data

El segundo parámetro, data, contiene los datos caracteres como string.

Si una función gestora se establece como la cadena vacía, o FALSE, el gestor en cuestión se deshabilita.

Se devuelve TRUE si se estableció el gestor, FALSE si parser no es un analizador.

En la actualidad no hay soporte para gestores objeto/método.

Anterior | Inicio | Siguiente
xml_parser_set_option | Subir | xml_set_default_handler


xml_set_default_handler

(PHP 3>= 3.0.6, PHP 4 )

xml_set_default_handler -- set up default handler

Descripción

int xml_set_default_handler ( int parser, string handler)

Establece la función gestora por defecto para un analizador XML parser. handler es un string que contiene el nombre de la función que debe existir cuando xml_parse() es llamado por parser.

La función nombrada en handler debe aceptar dos parámetros: handler ( int parser, string data)

parser

El primer parámetro, parser, es una referencia al analizador XML que llama al gestor.

data

El segundo parámetro, data, contiene los caracteres de dato. Esto puede ser la declaración XML, la declaración de tipo de documento, entidades u otros datos para los cuales no existe otro gestor.

Si una función gestora se establece como la cadena vacía, o FALSE, el gestor en cuestión se deshabilita.

Se devuelve TRUE si se estableció el gestor, FALSE si parser no es un analizador.

En la actualidad no hay soporte para gestores objeto/método.

Anterior | Inicio | Siguiente
xml_set_character_data_handler | Subir | xml_set_element_handler


xml_set_element_handler

(PHP 3>= 3.0.6, PHP 4 )

xml_set_element_handler -- establece gestores de los elementos principio y fin

Descripción

int xml_set_element_handler ( int parser, string startElementHandler, string endElementHandler)

Establece las funciones de gestion de elementos para el analizador XML parser. startElementHandler y endElementHandler son strings que contienen los nombres de las funciones que deben existir cuando xml_parse() es llamado por parser.

La función denominada startElementHandler debe aceptar tres parámetros: startElementHandler ( int parser, string name, string attribs)

parser

El primer parámetro, parser, es una referencia al analizador XML que llama al gestor.

name

El segundo parámetro, name, contiene el nombre del elemento para el que se llama a este gestor. Si la propiedad de case-folding tiene efecto para este analizador, el nombre del elemento estará en mayúsculas.

attribs

El tercer parámetro, attribs, contiene un array asociativo con los atributos de los elementos (si hay). Las claves de este array son los nombres de los atributos, los valores son los valores de los atributos. Los nombres de los atributos están en mayúsculas (case-folded) con el mismo criterio que los nombres de los elementos. Los valores de los atributos no sufren las consecuencias de case-folding.

El orden original de los atributos se puede recuperar recorriendo attribs del modo usual, usando each(). La primera clave del array es el el primer atributo, y así sucesivamente.

La función llamada endElementHandler debe aceptar dos parámetros: endElementHandler ( int parser, string name)

parser

El primer parámetro, parser, es una referencia al analizador XML que llama al gestor.

name

El segundo parámetro, name, contiene el nombre del elemento para el que se llama a este gestor. Si la propiedad de case-folding tiene efecto para este analizador, el nombre del elemento estará en mayúsculas.

Si una función gestora se establece como la cadena vacía, o FALSE, el gestor en cuestión se deshabilita.

Se devuelve TRUE si se establecieron los gestores, FALSE si parser no es un analizador.

En la actualidad no hay soporte para gestores objeto/método.

Anterior | Inicio | Siguiente
xml_set_default_handler | Subir | xml_set_end_namespace_decl_handler


xml_set_end_namespace_decl_handler

(PHP 4 >= 4.0.5)

xml_set_end_namespace_decl_handler -- Set up character data handler

Description

bool xml_set_end_namespace_decl_handler ( resource pind, callback handler)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Nota: En lugar de un nombre de función, se puede proporcionar una matriz que contenga una referencia a un objeto o el nombre de un método.

Anterior | Inicio | Siguiente
xml_set_element_handler | Subir | xml_set_external_entity_ref_handler


xml_set_external_entity_ref_handler

(PHP 3>= 3.0.6, PHP 4 )

xml_set_external_entity_ref_handler -- Establece gestores de referencia de entidades externas

Descripción

int xml_set_external_entity_ref_handler ( int parser, string handler)

Establece la función gestora de declaraciones de notación para el analizador XML parser. handler es un string que contiene el nombre de una función que debe existir cuando xml_parse() es llamado por parser.

La función llamada por handler debe aceptar cinco parámetros, y debería devolver un valor entero. Si el valor devuelto desde el gestor (handler) es falso (lo cual ocurrirá si no se devuelve un valor), el analizador XML dejará de analizar y xml_get_error_code() devolverá XML_ERROR_EXTERNAL_ENTITY_HANDLING. int handler ( int parser, string openEntityNames, string base, string systemId, string publicId)

parser

El primer parámetro, parser, es una referencia al analizador XML que llama al gestor.

openEntityNames

El segundo parámetro, openEntityNames, es una lista, separada por espacios, de los nombres de las entidades que se abren para el análisis de esta entidad (incluido el nombre de la entidad referenciada).

base

Esta es la base para resolver el identificador de sistema (systemid) de la entidad externa. En la actualidad este parámetro es siempre la cadena vacía.

systemId

El cuarto parámetro, systemId, es el identificador del sistema tal como se especificó en la declaración de la entidad.

publicId

El quinto parámetro, publicId, es el identificador público como se especificó en la declaración de la entidad, o una cadena vacía si no se especificó ninguno; el espacio en blanco en el identificador público se habrá normalizado como se requiere en las especificaciones XML.

Si una función gestora se establece como la cadena vacía, o FALSE, el gestor en cuestión se deshabilita.

Se devuelve TRUE si se estableció el gestor, FALSE si parser no es un analizador.

En la actualidad no hay soporte para gestores objeto/método.

Anterior | Inicio | Siguiente
xml_set_end_namespace_decl_handler | Subir | xml_set_notation_decl_handler


xml_set_notation_decl_handler

(PHP 3>= 3.0.6, PHP 4 )

xml_set_notation_decl_handler -- Establece gestores de declaraciones de notación

Descripción

int xml_set_notation_decl_handler ( int parser, string handler)

Establece las funciones gestoras de declaraciones de notación para el analizador XML parser. handler es un string que contiene el nombre de una función que debe existir cuando xml_parse() es llamado por parser.

Una declaración de notación es parte del DTD del documento y tiene el siguiente formato:
<!NOTATION name
     {systemId | publicId}
     >
Ver la sección 4.7 de las especificaciones XML 1.0 para la definición de declaraciones de notación.

La función llamada por handler debe aceptar cinco parámetros: handler ( int parser, string notationName, string base, string systemId, string publicId)

parser

El primer parámetro, parser, es una referencia al analizador XML que llama al gestor.

notationName

Este es el nombre de la notación, como se describió arriba en el formato de notación.

base

Esta es la base para resolver el identificador de sistema (systemId) de la declaración. En la actualidad este parámetro es siempre la cadena vacía.

systemId

Identificador de sistema de la declaración de notación externa.

publicId

Identificador público de la declaración de notación externa.

Si una función gestora se establece como la cadena vacía, o FALSE, el gestor en cuestión se deshabilita.

Se devuelve TRUE si se estableció el gestor, FALSE si parser no es un analizador.

En la actualidad no hay soporte para gestores objeto/método.

Anterior | Inicio | Siguiente
xml_set_external_entity_ref_handler | Subir | xml_set_object


xml_set_object

(PHP 4 )

xml_set_object -- Usa un analizador XML dentro de un objecto

Descripción

void xml_set_object ( int parser, object &object)

Esta función hace a parser utilizable dentro de object. Todas las funciones de callback establecidas por xml_set_element_handler() etc se asumen como métodos de object.

<?php

class xml  {
var $parser;

function xml() {
    $this->parser = xml_parser_create();
    xml_set_object($this->parser,$this);
    xml_set_element_handler($this->parser,"tag_open","tag_close");
    xml_set_character_data_handler($this->parser,"cdata");
}

function parse($data) {
    xml_parse($this->parser,$data);
}

function tag_open($parser,$tag,$attributes) {
    var_dump($parser,$tag,$attributes);
}

function cdata($parser,$cdata) {
    var_dump($parser,$cdata);
}

function tag_close($parser,$tag) {
    var_dump($parser,$tag);
}

} // end of class xml

$xml_parser = new xml();
$xml_parser->parse("&lt;A ID=\"hallo\">PHP&lt;/A>");
?>

Nota: xml_set_object() es gestionable a partir de PHP 4.0.

Anterior | Inicio | Siguiente
xml_set_notation_decl_handler | Subir | xml_set_processing_instruction_handler


xml_set_processing_instruction_handler

(PHP 3>= 3.0.6, PHP 4 )

xml_set_processing_instruction_handler -- Establece el gestor de instrucciones de procesado (PI)

Descripción

int xml_set_processing_instruction_handler ( int parser, string handler)

Establece ela función de gestión de instrucciones de procesado (PI) para el analizador XML parser. handler es un string que contiene el nombre de una función que debe existir cuando xml_parse() es llamada por parser.

Una instrucción de procedado tiene el siguiente formato:

<?
       target
       data?>

Puedes poner código PHP en esa etiqueta, pero ten en cuenta una limitación: en una PI XML, la etiqueta de fin de la PI (?>) no puede ser citada, por lo que esta secuencia de caracteres no debería aparecer en el código PHP que insertes con las PIs en documentos XML. Si lo hace, el resto del código PHP, así como la etiqueta de fin de PI "real", serán tratados como datos de caracteres.

La función nombrada en handler debe aceptar tres parámetros: handler ( int parser, string target, string data)

parser

El primer parámetro, parser, es una referencia al analizador XML que llama al gestor.

target

El segundo parámetro, target, contiene el objetivo PI.

data

El tercer parámetro, data, contiene los datos PI.

Si una función gestora se establece como la cadena vacía, o FALSE, el gestor en cuestión se deshabilita.

Se devuelve TRUE si se estableció el gestor, FALSE si parser no es un analizador.

En la actualidad no hay soporte para gestores objeto/método.

Anterior | Inicio | Siguiente
xml_set_object | Subir | xml_set_start_namespace_decl_handler


xml_set_start_namespace_decl_handler

(PHP 4 >= 4.0.5)

xml_set_start_namespace_decl_handler -- Set up character data handler

Description

bool xml_set_start_namespace_decl_handler ( resource pind, callback hdl)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Nota: En lugar de un nombre de función, se puede proporcionar una matriz que contenga una referencia a un objeto o el nombre de un método.

Anterior | Inicio | Siguiente
xml_set_processing_instruction_handler | Subir | xml_set_unparsed_entity_decl_handler


xml_set_unparsed_entity_decl_handler

(PHP 3>= 3.0.6, PHP 4 )

xml_set_unparsed_entity_decl_handler -- Establece un gestor de declaraciones de entidades no analizadas

Descripción

int xml_set_unparsed_entity_decl_handler ( int parser, string handler)

Establece la función gestora de declaración de entidades no analizadas para el analizador XML parser. handler es una cadena que contiene el nombre de una función que debe existir cuando xml_parse() es llamada por parser.

Este gestor será llamado si el analizador XML encuentra una declaración de entidades externas con una declaración NDATA, como la siguiente:
<!ENTITY name {publicId | systemId}
        NDATA notationName>

Mira la sección 4.2.2 de las especificaciones XML 1.0 para la definición de entidades externas de notación declarada.

La función nombrada en handler debe aceptar seis parámetros: handler ( int parser, string entityName, string base, string systemId, string publicId, string notationName)

parser

El primer parámetro, parser, es una referencia al analizador XML que llama al gestor.

entityName

El nombre de la entidad que va a ser definida.

base

Esta es la base para resolver el identificador de sistema (systemId) de la entidad externa. Actualmente este parámetro siempre será una cadena vacía.

systemId

Identificador de Sistema para la entidad externa.

publicId

Identificador público para la entidad externa.

notationName

Nombre de la notación de esta entidad (ver xml_set_notation_decl_handler()).

Si una función gestora se establece como la cadena vacía, o FALSE, el gestor en cuestión se deshabilita.

Se devuelve TRUE si se estableció el gestor, FALSE si parser no es un analizador.

En la actualidad no hay soporte para gestores objeto/método.

Anterior | Inicio | Siguiente
xml_set_start_namespace_decl_handler | Subir | XML-RPC functions


XML-RPC functions

Manual de PHP
Anterior Siguiente

CXII. XML-RPC functions

Introducción

These functions can be used to write XML-RPC servers and clients. You can find more information about XML-RPC at http://www.xmlrpc.com/, and more documentation on this extension and it's functions at http://xmlrpc-epi.sourceforge.net/.

Aviso

Esta extensión es EXPERIMENTAL. Esto significa que el comportamiento de esta extensión, los nombre de sus funciones y en definitiva TODO lo documentado sobre esta extensión, puede cambiar en una futura versión de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Requerimientos

No se necesitan bibliotecas externas para construir esta extensión

Instalación

XML-RPC support in PHP is not enabled by default. You will need to use the --with-xmlrpc[=DIR] configuration option when compiling PHP to enable XML-RPC support. This extension is bundled into PHP as of 4.1.0.

Configuración en tiempo de ejecución

El comportamiento de estas funciones está afectado por los valores definidos en php.ini.

Tabla 1. XML-RPC configuration options

Name | Default | Changeable
xmlrpc_errors | "0" | PHP_INI_SYSTEM
xmlrpc_error_number | "0" | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Tipos de recursos

Esta extensión no tiene ningún tipo de recurso definido.

Constantes predefinidas

Esta extensión no tiene ninguna constante definida.

Tabla de contenidos
xmlrpc_decode_request -- Decodes XML into native PHP types
xmlrpc_decode -- Decodes XML into native PHP types
xmlrpc_encode_request -- Generates XML for a method request
xmlrpc_encode -- Generates XML for a PHP value
xmlrpc_get_type -- Gets xmlrpc type for a PHP value. Especially useful for base64 and datetime strings
xmlrpc_parse_method_descriptions -- Decodes XML into a list of method descriptions
xmlrpc_server_add_introspection_data -- Adds introspection documentation
xmlrpc_server_call_method -- Parses XML requests and call methods
xmlrpc_server_create -- Creates an xmlrpc server
xmlrpc_server_destroy -- Destroys server resources
xmlrpc_server_register_introspection_callback -- Register a PHP function to generate documentation
xmlrpc_server_register_method -- Register a PHP function to resource method matching method_name
xmlrpc_set_type -- Sets xmlrpc type, base64 or datetime, for a PHP string value

Anterior | Inicio | Siguiente
xml_set_unparsed_entity_decl_handler | Subir | xmlrpc_decode_request


xmlrpc_decode_request

(PHP 4 >= 4.1.0)

xmlrpc_decode_request -- Decodes XML into native PHP types

Description

array xmlrpc_decode_request ( string xml, string &method [, string encoding])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
XML-RPC functions | Subir | xmlrpc_decode


xmlrpc_decode

(PHP 4 >= 4.1.0)

xmlrpc_decode -- Decodes XML into native PHP types

Description

array xmlrpc_decode ( string xml [, string encoding])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
xmlrpc_decode_request | Subir | xmlrpc_encode_request


xmlrpc_encode_request

(PHP 4 >= 4.1.0)

xmlrpc_encode_request -- Generates XML for a method request

Description

string xmlrpc_encode_request ( string method, mixed params)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
xmlrpc_decode | Subir | xmlrpc_encode


xmlrpc_encode

(PHP 4 >= 4.1.0)

xmlrpc_encode -- Generates XML for a PHP value

Description

string xmlrpc_encode ( mixed value)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
xmlrpc_encode_request | Subir | xmlrpc_get_type


xmlrpc_get_type

(PHP 4 >= 4.1.0)

xmlrpc_get_type -- Gets xmlrpc type for a PHP value. Especially useful for base64 and datetime strings

Description

string xmlrpc_get_type ( mixed value)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
xmlrpc_encode | Subir | xmlrpc_parse_method_descriptions


xmlrpc_parse_method_descriptions

(PHP 4 >= 4.1.0)

xmlrpc_parse_method_descriptions -- Decodes XML into a list of method descriptions

Description

array xmlrpc_parse_method_descriptions ( string xml)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
xmlrpc_get_type | Subir | xmlrpc_server_add_introspection_data


xmlrpc_server_add_introspection_data

(PHP 4 >= 4.1.0)

xmlrpc_server_add_introspection_data -- Adds introspection documentation

Description

int xmlrpc_server_add_introspection_data ( resource server, array desc)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
xmlrpc_parse_method_descriptions | Subir | xmlrpc_server_call_method


xmlrpc_server_call_method

(PHP 4 >= 4.1.0)

xmlrpc_server_call_method -- Parses XML requests and call methods

Description

mixed xmlrpc_server_call_method ( resource server, string xml, mixed user_data [, array output_options])

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
xmlrpc_server_add_introspection_data | Subir | xmlrpc_server_create


xmlrpc_server_create

(PHP 4 >= 4.1.0)

xmlrpc_server_create -- Creates an xmlrpc server

Description

resource xmlrpc_server_create ( void )

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
xmlrpc_server_call_method | Subir | xmlrpc_server_destroy


xmlrpc_server_destroy

(PHP 4 >= 4.1.0)

xmlrpc_server_destroy -- Destroys server resources

Description

int xmlrpc_server_destroy ( resource server)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
xmlrpc_server_create | Subir | xmlrpc_server_register_introspection_callback


xmlrpc_server_register_introspection_callback

(PHP 4 >= 4.1.0)

xmlrpc_server_register_introspection_callback -- Register a PHP function to generate documentation

Description

bool xmlrpc_server_register_introspection_callback ( resource server, string function)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
xmlrpc_server_destroy | Subir | xmlrpc_server_register_method


xmlrpc_server_register_method

(PHP 4 >= 4.1.0)

xmlrpc_server_register_method -- Register a PHP function to resource method matching method_name

Description

bool xmlrpc_server_register_method ( resource server, string method_name, string function)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
xmlrpc_server_register_introspection_callback | Subir | xmlrpc_set_type


xmlrpc_set_type

(PHP 4 >= 4.1.0)

xmlrpc_set_type -- Sets xmlrpc type, base64 or datetime, for a PHP string value

Description

bool xmlrpc_set_type ( string value, string type)

Aviso

Esta función es EXPERIMENTAL. Esto significa que el comportamiento de esta función, el nombre de esta función y en definitiva TODO lo documentado sobre esta función, puede cambiar en una futura version de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
xmlrpc_server_register_method | Subir | XSLT functions


XSLT functions

Manual de PHP
Anterior Siguiente

CXIII. XSLT functions

Aviso

Esta extensión es EXPERIMENTAL. Esto significa que el comportamiento de esta extensión, los nombre de sus funciones y en definitiva TODO lo documentado sobre esta extensión, puede cambiar en una futura versión de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabiliad.

Introduction

About XSLT and Sablotron

XSLT (Extensible Stylesheet Language (XSL) Transformations) is a language for transforming XML documents into other XML documents. It is a standard defined by The World Wide Web consortium (W3C). Information about XSLT and related technologies can be found at http://www.w3.org/TR/xslt.

Installation

This extension uses Sabloton and expat, which can both be found at http://www.gingerall.com/. Binaries are provided as well as source.

On UNIX, run configure with the --with-sablot and --enable-sablot-errors-descriptive options. The Sablotron library should be installed somewhere your compiler can find it.

About This Extension

This PHP extension implements support Sablotron from Ginger Alliance in PHP. This toolkit lets you transform XML documents into other documents, including new XML documents, but also into HTML or other target formats. It basically provides a standardized and portable template mechanism, separating content and design of a website.

Tabla de contenidos
xslt_create -- Create a new XSL processor.
xslt_errno -- Return the current error number
xslt_error -- Return the current error string
xslt_free -- Free XSLT processor
xslt_output_process -- unknown
xslt_set_base -- Set the base URI for all XSLT transformations
xslt_set_encoding -- Set the encoding for the parsing of XML documents
xslt_set_error_handler -- Set an error handler for a XSLT processor
xslt_set_log -- Set the log file to write log messages to
xslt_set_sax_handler -- Set SAX handlers for a XSLT processor
xslt_set_sax_handlers -- Set the SAX handlers to be called when the XML document gets processed
xslt_set_scheme_handler -- Set Scheme handlers for a XSLT processor
xslt_set_scheme_handlers -- Set the scheme handlers for the XSLT processor

Anterior | Inicio | Siguiente
xmlrpc_set_type | Subir | xslt_create


xslt_create

(PHP 4 >= 4.0.3)

xslt_create -- Create a new XSL processor.

Description

resource xslt_create ( void )

This function returns a handle for a new XSL processor. This handle is needed in all subsequent calls to XSL functions.

Anterior | Inicio | Siguiente
XSLT functions | Subir | xslt_errno


xslt_errno

(PHP 4 >= 4.0.3)

xslt_errno -- Return the current error number

Description

int xslt_errno ( [ int xh])

Return the current error number of the given XSL processor. If no handle is given, the last error number that occured anywhere is returned.

Anterior | Inicio | Siguiente
xslt_create | Subir | xslt_error


xslt_error

(PHP 4 >= 4.0.3)

xslt_error -- Return the current error string

Description

mixed xslt_error ( [ int xh])

Return the current error string of the given XSL processor. If no handle is given, the last error string that occured anywhere is returned.

Anterior | Inicio | Siguiente
xslt_errno | Subir | xslt_free


xslt_free

(PHP 4 >= 4.0.3)

xslt_free -- Free XSLT processor

Description

void xslt_free ( resource xh)

Free the XSLT processor identified by the given handle.

Anterior | Inicio | Siguiente
xslt_error | Subir | xslt_output_process


xslt_output_process

(no version information, might be only in CVS)

xslt_output_process -- unknown

Description

unknown xslt_process ( unknown)

This function lacks a prototype definition.

Anterior | Inicio | Siguiente
xslt_free | Subir | xslt_set_base


xslt_set_base

(PHP 4 >= 4.0.5)

xslt_set_base -- Set the base URI for all XSLT transformations

Description

void xslt_set_base ( resource xh, string uri)

Sets the base URI for all XSLT transformations, the base URI is used with Xpath instructions to resolve document() and other commands which access external resources. It is also used to resolve URIs for the <xsl:include> and <xsl:import> elements.

As of 4.3, the default base URI is the directory of the executing script. In effect, it is the directory name value of the __FILE__ constant. Prior to 4.3, the default base URI was less predictable.

Nota: Please note that file:// is needed in front of path if you use Windows.

Anterior | Inicio | Siguiente
xslt_output_process | Subir | xslt_set_encoding


xslt_set_encoding

(PHP 4 >= 4.0.5)

xslt_set_encoding -- Set the encoding for the parsing of XML documents

Description

void xslt_set_encoding ( resource xh, string encoding)

Set the output encoding for the XSLT transformations. When using the Sablotron backend this option is only available when you compile Sablotron with encoding support.

Anterior | Inicio | Siguiente
xslt_set_base | Subir | xslt_set_error_handler


xslt_set_error_handler

(PHP 4 >= 4.0.4)

xslt_set_error_handler -- Set an error handler for a XSLT processor

Description

void xslt_set_error_handler ( resource xh, mixed handler)

Set an error handler function for the XSLT processor given by xh, this function will be called whenever an error occurs in the XSLT transformation (this function is also called for notices).

Anterior | Inicio | Siguiente
xslt_set_encoding | Subir | xslt_set_log


xslt_set_log

(PHP 4 >= 4.0.6)

xslt_set_log -- Set the log file to write log messages to

Description

void xslt_set_log ( resource xh, mixed log)

xh

A reference to the XSLT parser.

log

This parameter is either a boolean value which toggles logging on and off, or a string containing the logfile in which log errors too.

This function allows you to set the file in which you want XSLT log messages to, XSLT log messages are different than error messages, in that log messages are not actually error messages but rather messages related to the state of the XSLT processor. They are useful for debugging XSLT, when something goes wrong.

By default logging is disabled, in order to enable logging you must first call xslt_set_log() with a boolean parameter which enables logging, then if you want to set the log file to debug to, you must then pass it a string containing the filename:

Ejemplo 1. Using the XSLT Logging features

<?php

$xh = xslt_create();
xslt_set_log($xh, true);
xslt_set_log($xh, getcwd() . 'myfile.log');

$result = xslt_process($xh, 'dog.xml', 'pets.xsl');
echo $result;

xslt_free($xh);
?>

Nota: Please note that file:// is needed in front of path if you use Windows.

Anterior | Inicio | Siguiente
xslt_set_error_handler | Subir | xslt_set_sax_handler


xslt_set_sax_handler

(4.0.3 - 4.0.6 only)

xslt_set_sax_handler -- Set SAX handlers for a XSLT processor

Description

bool xslt_set_sax_handler ( resource xh, handlers)

Set SAX handlers on the ressource handle given by xh.

Anterior | Inicio | Siguiente
xslt_set_log | Subir | xslt_set_sax_handlers


xslt_set_sax_handlers

(PHP 4 >= 4.0.6)

xslt_set_sax_handlers -- Set the SAX handlers to be called when the XML document gets processed

Description

void xslt_set_sax_handlers ( resource processor, array handlers)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
xslt_set_sax_handler | Subir | xslt_set_scheme_handler


xslt_set_scheme_handler

(4.0.5 - 4.0.6 only)

xslt_set_scheme_handler -- Set Scheme handlers for a XSLT processor

Description

void xslt_set_scheme_handler ( resource xh, array handlers)

Set Scheme handlers on the resource handle given by xh. Scheme handlers should be an array with the format (all elements are optional):

array(
[get_all] => get all handler,
[open] => open handler,
[get] => get handler,
[put] => put handler,
[close] => close handler
)

Anterior | Inicio | Siguiente
xslt_set_sax_handlers | Subir | xslt_set_scheme_handlers


xslt_set_scheme_handlers

(PHP 4 >= 4.0.6)

xslt_set_scheme_handlers -- Set the scheme handlers for the XSLT processor

Description

void xslt_set_scheme_handlers ( resource processor, array handlers)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
xslt_set_scheme_handler | Subir | YAZ


YAZ

Manual de PHP
Anterior Siguiente

CXIV. YAZ

The yaz() functions wrap the YAZ API. The home page of the project is http://www.indexdata.dk/yaz/. Information about the phpyaz module can be found at http://www.indexdata.dk/phpyaz/.

PHP/YAZ is much simpler to use than the C API for YAZ but less flexible. The intent is to make it easy to build basic client functions. It supports persistent stateless connections very similar to those offered by the various SQL APIs that are available for PHP. This means that sessions are stateless but shared amongst users, thus saving the connect and INIT steps in many cases.

Before compiling PHP with the PHP/YAZ module you'll need the YAZ toolkit. Build YAZ and install it. Build PHP with your favourite modules and add option --with-yaz. Your task is roughly the following:

gunzip -c yaz-1.6.tar.gz|tar xf -
gunzip -c php-4.0.X.tar.gz|tar xf -
cd yaz-1.6
./configure --prefix=/usr
make
make install
cd ../php-4.0.X
./configure --with-yaz=/usr/bin
make
make install

PHP/YAZ keeps track of connections with targets (Z-Associations). A positive integer represents the ID of a particular association.

The script below demonstrates the parallel searching feature of the API. When invoked it either prints a query form (if no arguments are supplied) or if there are arguments (term and one or more hosts) it searches the targets in array host.

Ejemplo 1. YAZ()

$num_hosts = count ($host);
if (empty($term) || count($host) == 0) {
    echo '<form method="get">
    <input type="checkbox"
    name="host[]" value="bagel.indexdata.dk/gils">
        GILS test
    <input type="checkbox"
    name="host[]" value="localhost:9999/Default">
        local test
    <input type="checkbox" checked="1"
    name="host[]" value="z3950.bell-labs.com/books">
        BELL Labs Library
    <br>
    RPN Query:
    <input type="text" size="30" name="term">
    <input type="submit" name="action" value="Search">
    ';
} else {
    echo 'You searced for ' . htmlspecialchars($term) . '<br>';
    for ($i = 0; $i > $num_hosts; $i++) {
        $id[] = yaz_connect($host[$i]);
        yaz_syntax($id[$i],"sutrs");
        yaz_search($id[$i],"rpn",$term);
    }
    yaz_wait();
    for ($i = 0; $i < $num_hosts; $i++) {
        echo '<hr>' . $host[$i] . ":";
        $error = yaz_error($id[$i]);
        if (!empty($error)) {
            echo "Error: $error";
        } else {
            $hits = yaz_hits($id[$i]);
            echo "Result Count $hits";
        }
        echo '<dl>';
        for ($p = 1; $p <= 10; $p++) {
            $rec = yaz_record($id[$i],$p,"string");
            if (empty($rec)) continue;
            echo "<dt><b>$p</b></dt><dd>";
            echo ereg_replace("\n", "<br>\n",$rec);
            echo "</dd>";
        }
        echo '</dl>';
    }
}
Tabla de contenidos
yaz_addinfo -- Returns additional error information
yaz_ccl_conf -- Configure CCL parser
yaz_ccl_parse -- Invoke CCL Parser
yaz_close -- Closes a YAZ connection
yaz_connect -- Returns a positive association ID on success; zero on failure
yaz_database -- Specifies the databases within a session
yaz_element -- Specifies Element-Set Name for retrieval
yaz_errno -- Returns error number
yaz_error -- Returns error description
yaz_get_option -- Returns value of option for connection
yaz_hits -- Returns number of hits for last search
yaz_itemorder -- Prepares for Z39.50 Item Order with an ILL-Request package
yaz_present -- Prepares for retrieval (Z39.50 present).
yaz_range -- Specifies the maximum number of records to retrieve
yaz_record -- Returns a record
yaz_scan_result -- Returns Scan Response result
yaz_scan -- Prepares for a scan
yaz_schema -- Specifies schema for retrieval.
yaz_search -- Prepares for a search
yaz_set_option -- Sets one or more options for connection
yaz_sort -- Sets sorting criteria
yaz_syntax -- Specifies the preferred record syntax for retrieval
yaz_wait -- Executes queries

Anterior | Inicio | Siguiente
xslt_set_scheme_handlers | Subir | yaz_addinfo


yaz_addinfo

(PHP 4 >= 4.0.1)

yaz_addinfo -- Returns additional error information

Description

int yaz_addinfo ( int id)

Returns additional error message for target (last request). An empty string is returned if last operation was a success or if no additional information was provided by the target.

Anterior | Inicio | Siguiente
YAZ | Subir | yaz_ccl_conf


yaz_ccl_conf

(PHP 4 >= 4.0.5)

yaz_ccl_conf -- Configure CCL parser

Description

int yaz_ccl_conf ( resource id, array config)

This function configures the CCL query parser for a target with definitions of access points (CCL qualifiers) and their mapping to RPN. To map a specific CCL query to RPN afterwards call the yaz_ccl_parse() function. Each index of the array config is the name of a CCL field and the corresponding value holds a string that specifies a mapping to RPN. The mapping is a sequence of attribute-type, attribute-value pairs. Attribute-type and attribute-value is separated by an equal sign (=). Each pair is separated by white space.

Ejemplo 1. CCL configuration

In the example below, the CCL parser is configured to support three CCL fields: ti, au and isbn. Each field is mapped to their BIB-1 equivalent. It is assumed that variable $id is the connection ID.

<?php
$fields["ti"] = "1=4";
$fields["au"] = "1=1";
$fields["isbn"] = "1=7";
yaz_ccl_conf($id,$fields);
?>

Anterior | Inicio | Siguiente
yaz_addinfo | Subir | yaz_ccl_parse


yaz_ccl_parse

(PHP 4 >= 4.0.5)

yaz_ccl_parse -- Invoke CCL Parser

Description

bool yaz_ccl_parse ( resource id, string query, array & result)

This function invokes a CCL parser. It converts a given CCL FIND query to an RPN query which may be passed to the yaz_search() function to perform a search. To define a set of valid CCL fields call yaz_ccl_conf() prior to this function. If the supplied query was successfully converted to RPN, this function returns TRUE, and the index rpn of the supplied array result holds a valid RPN query. If the query could not be converted (because of invalid syntax, unknown field, etc.) this function returns FALSE and three indexes are set in the resulting array to indicate the cause of failure: errorcode CCL error code (integer), errorstring CCL error string, and errorpos approximate position in query of failure (integer is character position).

Ejemplo 1. CCL Parsing

We will try to search using CCL. In the example below, $ccl is a CCL query.

<?php
yaz_ccl_conf($id,$fields);  // see example for yaz_ccl_conf
if (!yaz_ccl_parse($id, $ccl, &$cclresult)) {
    echo 'Error: ' . $cclresult["errorstring"];
} else {
    $rpn = $cclresult["rpn"];
    yaz_search($id,"rpn",$rpn);
}
?>

Anterior | Inicio | Siguiente
yaz_ccl_conf | Subir | yaz_close


yaz_close

(PHP 4 >= 4.0.1)

yaz_close -- Closes a YAZ connection

Description

int yaz_close ( int id)

Closes a connection to a target. The application can no longer refer to the target with the given id.

Anterior | Inicio | Siguiente
yaz_ccl_parse | Subir | yaz_connect


yaz_connect

(PHP 4 >= 4.0.1)

yaz_connect -- Returns a positive association ID on success; zero on failure

Description

int yaz_connect ( string zurl)

yaz_connect() prepares for a connection to a Z39.50 target. The zurl argument takes the form host[:port][/database]. If port is omitted 210 is used. If database is omitted Default is used. This function is non-blocking and doesn't attempt to establish a socket - it merely prepares a connect to be performed later when yaz_wait() is called.

Anterior | Inicio | Siguiente
yaz_close | Subir | yaz_database


yaz_database

(PHP 4 >= 4.0.6)

yaz_database -- Specifies the databases within a session

Description

bool yaz_database ( resource id, string databases)

This function specifies one or more databases to be used in search, retrieval, etc. - overriding databases specified in call to yaz_connect(). Multiple databases are separated by a plus sign +.

This function allows you to use different sets of databases within a session.

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Anterior | Inicio | Siguiente
yaz_connect | Subir | yaz_element


yaz_element

(PHP 4 >= 4.0.1)

yaz_element -- Specifies Element-Set Name for retrieval

Description

bool yaz_element ( resource id, string elementset)

This function sets the element set name for retrieval. Call this function before yaz_search() or yaz_present() to specify the element set name for records to be retrieved. Most servers support F (for full records) and B (for brief records).

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Anterior | Inicio | Siguiente
yaz_database | Subir | yaz_errno


yaz_errno

(PHP 4 >= 4.0.1)

yaz_errno -- Returns error number

Description

int yaz_errno ( int id)

Returns error for target (last request). A positive value is returned if the target returned a diagnostic code; a value of zero is returned if no errors occurred (success); negative value is returned for other errors targets didn't indicate the error in question.

yaz_errno() should be called after network activity for each target - (after yaz_wait() returns) to determine the success or failure of the last operation (e.g. search).

Anterior | Inicio | Siguiente
yaz_element | Subir | yaz_error


yaz_error

(PHP 4 >= 4.0.1)

yaz_error -- Returns error description

Description

int yaz_error ( int id)

Returns error message for target (last request). An empty string is returned if last operation was a success.

yaz_error() returns a english message corresponding to the last error number as returned by yaz_errno().

Anterior | Inicio | Siguiente
yaz_errno | Subir | yaz_get_option


yaz_get_option

(PHP 5 CVS only)

yaz_get_option -- Returns value of option for connection

Description

string yaz_get_option ( resource id, string name)

Returns the value of the option specified with name. If an option is not set, an empty string is returned.

See the description of yaz_set_option() for available options.

Anterior | Inicio | Siguiente
yaz_error | Subir | yaz_hits


yaz_hits

(PHP 4 >= 4.0.1)

yaz_hits -- Returns number of hits for last search

Description

int yaz_hits ( int id)

yaz_hits() returns number of hits for last search.

Anterior | Inicio | Siguiente
yaz_get_option | Subir | yaz_itemorder


yaz_itemorder

(PHP 4 >= 4.0.5)

yaz_itemorder -- Prepares for Z39.50 Item Order with an ILL-Request package

Description

int yaz_itemorder ( resource id, array args)

This function prepares for an Extended Services request using the Profile for the Use of Z39.50 Item Order Extended Service to Transport ILL (Profile/1). See this and the specification. The args parameter must be a hash array with information about the Item Order request to be sent. The key of the hash is the name of the corresponding ASN.1 tag path. For example, the ISBN below the Item-ID has the key item-id,ISBN.

The ILL-Request parameters are:

protocol-version-num
transaction-id,initial-requester-id,person-or-institution-symbol,person
transaction-id,initial-requester-id,person-or-institution-symbol,institution
transaction-id,initial-requester-id,name-of-person-or-institution,name-of-person
transaction-id,initial-requester-id,name-of-person-or-institution,name-of-institution
transaction-id,transaction-group-qualifier
transaction-id,transaction-qualifier
transaction-id,sub-transaction-qualifier
service-date-time,this,date
service-date-time,this,time
service-date-time,original,date
service-date-time,original,time
requester-id,person-or-institution-symbol,person
requester-id,person-or-institution-symbol,institution
requester-id,name-of-person-or-institution,name-of-person
requester-id,name-of-person-or-institution,name-of-institution
responder-id,person-or-institution-symbol,person
responder-id,person-or-institution-symbol,institution
responder-id,name-of-person-or-institution,name-of-person
responder-id,name-of-person-or-institution,name-of-institution
transaction-type
delivery-address,postal-address,name-of-person-or-institution,name-of-person
delivery-address,postal-address,name-of-person-or-institution,name-of-institution
delivery-address,postal-address,extended-postal-delivery-address
delivery-address,postal-address,street-and-number
delivery-address,postal-address,post-office-box
delivery-address,postal-address,city
delivery-address,postal-address,region
delivery-address,postal-address,country
delivery-address,postal-address,postal-code
delivery-address,electronic-address,telecom-service-identifier
delivery-address,electronic-address,telecom-service-addreess
billing-address,postal-address,name-of-person-or-institution,name-of-person
billing-address,postal-address,name-of-person-or-institution,name-of-institution
billing-address,postal-address,extended-postal-delivery-address
billing-address,postal-address,street-and-number
billing-address,postal-address,post-office-box
billing-address,postal-address,city
billing-address,postal-address,region
billing-address,postal-address,country
billing-address,postal-address,postal-code
billing-address,electronic-address,telecom-service-identifier
billing-address,electronic-address,telecom-service-addreess
ill-service-type
requester-optional-messages,can-send-RECEIVED
requester-optional-messages,can-send-RETURNED
requester-optional-messages,requester-SHIPPED
requester-optional-messages,requester-CHECKED-IN
search-type,level-of-service
search-type,need-before-date
search-type,expiry-date
search-type,expiry-flag
place-on-hold
client-id,client-name
client-id,client-status
client-id,client-identifier
item-id,item-type
item-id,call-number
item-id,author
item-id,title
item-id,sub-title
item-id,sponsoring-body
item-id,place-of-publication
item-id,publisher
item-id,series-title-number
item-id,volume-issue
item-id,edition
item-id,publication-date
item-id,publication-date-of-component
item-id,author-of-article
item-id,title-of-article
item-id,pagination
item-id,ISBN
item-id,ISSN
item-id,additional-no-letters
item-id,verification-reference-source
copyright-complicance
retry-flag
forward-flag
requester-note
forward-note

There are also a few parameters that are part of the Extended Services Request package and the ItemOrder package:

package-name
user-id
contact-name
contact-phone
contact-email
itemorder-item

Anterior | Inicio | Siguiente
yaz_hits | Subir | yaz_present


yaz_present

(PHP 4 >= 4.0.5)

yaz_present -- Prepares for retrieval (Z39.50 present).

Description

bool yaz_present ( resource id)

This function prepares for retrieval of records after a successful search. The yaz_range() should be called prior to this function to specify the range of records to be retrieved.

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Anterior | Inicio | Siguiente
yaz_itemorder | Subir | yaz_range


yaz_range

(PHP 4 >= 4.0.1)

yaz_range -- Specifies the maximum number of records to retrieve

Description

int yaz_range ( int id, int start, int number)

This function is used in conjunction with yaz_search() to specify the maximum number of records to retrieve (number) and the first record position (start). If this function is not invoked (only yaz_search()) start is set to 1 and number is set to 10.

Returns TRUE on success; FALSE on error.

Anterior | Inicio | Siguiente
yaz_present | Subir | yaz_record


yaz_record

(PHP 4 >= 4.0.1)

yaz_record -- Returns a record

Description

int yaz_record ( int id, int pos, string type)

Returns record at position or empty string if no record exists at given position.

The yaz_record() function inspects a record in the current result set at the position specified. If no database record exists at the given position an empty string is returned. The argument, type, specifies the form of the returned record. If type is "string" the record is returned in a string representation suitable for printing (for XML and SUTRS). If type is "array" the record is returned as an array representation (for structured records).

Anterior | Inicio | Siguiente
yaz_range | Subir | yaz_scan_result


yaz_scan_result

(PHP 4 >= 4.0.5)

yaz_scan_result -- Returns Scan Response result

Description

array yaz_scan_result ( resource id [, array & result])

yaz_scan_result() returns terms and associated information as received from the target in the last performed yaz_scan(). This function returns an array (0..n-1) where n is the number of terms returned. Each value is a pair where the first item is the term, and the second item is the result-count. If the optional parameter result is given it will be modified to hold additional information taken from the Scan Response: number (number of entries returned), stepsize (Step-size), position (position of term), status (Scan Status).

Anterior | Inicio | Siguiente
yaz_record | Subir | yaz_scan


yaz_scan

(PHP 4 >= 4.0.5)

yaz_scan -- Prepares for a scan

Description

int yaz_scan ( resource id, string type, string startterm [, array flags])

This function prepares for a Z39.50 Scan Request, where parameter id specifies connection. Starting term point for the scan is given by startterm. The form in which the starting term is specified is given by parameter type. Currently only type rpn is supported. The optional parameter flags specifies additional information to control the behaviour of the scan request. Three indexes are currently read from the flags: number (number of terms requested), position (preferred position of term) and stepSize (preferred step size). To actually transfer the Scan Request to the target and receive the Scan Response, yaz_wait() must be called. Upon completion of yaz_wait() call yaz_error() and yaz_scan_result() to handle the response.

The syntax of startterm is similar to the RPN query as described in yaz_search(). The startterm consists of zero or more @attr-operator specifications, then followed by exactly one token.

Ejemplo 1. PHP function that scans titles

<?php
function scan_titles($id, $startterm) {
  yaz_scan($id,"rpn", "@attr 1=4 " . $startterm);
  yaz_wait();
  $errno = yaz_errno($id);
  if ($errno == 0) {
    $ar = yaz_scan_result($id,&$options);
    echo 'Scan ok; ';
    while(list($key,$val)=each($options)) {
      echo "$key = $val &nbsp;";
    }
    echo '<br><table><tr><td>';
    while(list($key,list($k, $term, $tcount))=each($ar)) {
      if (empty($k)) continue;
      echo "<tr><td>$term</td><td>";
      echo $tcount;
      echo "</td></tr>";
    }
    echo '</table>';
  } else {
    echo "Scan failed. Error: " . yaz_error($id) . "<br>";
  }
}
?>

Anterior | Inicio | Siguiente
yaz_scan_result | Subir | yaz_schema


yaz_schema

(PHP 4 >= 4.2.0)

yaz_schema -- Specifies schema for retrieval.

Description

int yaz_schema ( resource id, string schema)

The schema must be specified as an OID (Object Identifier) in a raw dot-notation (like 1.2.840.10003.13.4) or as one of the known registered schemas: GILS-schema, Holdings, Zthes, ... This function should be called before yaz_search() or yaz_present().

Anterior | Inicio | Siguiente
yaz_scan | Subir | yaz_search


yaz_search

(PHP 4 >= 4.0.1)

yaz_search -- Prepares for a search

Description

int yaz_search ( int id, string type, string query)

yaz_search() prepares for a search on the target with given id. The type represents the query type - only "rpn" is supported now in which case the third argument is a prefix notation query as used by YAZ. Like yaz_connect() this function is non-blocking and only prepares for a search to be executed later when yaz_wait() is called.

Anterior | Inicio | Siguiente
yaz_schema | Subir | yaz_set_option


yaz_set_option

(PHP 5 CVS only)

yaz_set_option -- Sets one or more options for connection

Description

string yaz_set_option ( resource id, string name, string value)

Sets option name to value.

Tabla 1. PYP/YAZ Connection Options

Name | Description
implementationName | implementation name of target
implementationVersion | implementation version of target
implementationId | implementation ID of target
schema | schema for retrieval. By default, no schema is used. Setting this option is equivalent to using function yaz_schema()
preferredRecordSyntax | record syntax for retrieval. By default, no syntax is used. Setting this option is equivalent to using function yaz_syntax()
start | offset for first record to be retrieved via yaz_search() or yaz_present(). Records are numbered from zero and upwards. Setting this option in combination with option count has the same effect as calling yaz_range() except that records are numbered from 1 in yaz_range()
count | maximum number of records to be retrieved via yaz_search() or yaz_present().
elementSetName | element-set-name for retrieval. Setting this option is equivalent to calling yaz_element().

Anterior | Inicio | Siguiente
yaz_search | Subir | yaz_sort


yaz_sort

(PHP 4 >= 4.1.0)

yaz_sort -- Sets sorting criteria

Description

int yaz_sort ( resource id, string criteria)

This function sets sorting criteria and enables Z39.50 Sort. Call this function before yaz_search(). Using this function alone does not have any effect. When used in conjunction with yaz_search(), a Z39.50 Sort will be sent after a search response has been received and before any records are retrieved with Z39.50 Present (yaz_present(). The parameter criteria takes the form

field1 flags1 field2 flags2 ...

where field1 specifies the primary attributes for sort, field2 seconds, etc.. The field specifies either a numerical attribute combinations consisting of type=value pairs separated by comma (e.g. 1=4,2=1) ; or the field may specify a plain string criteria (e.g. title. The flags is a sequnce of the following characters which may not be separated by any white space.

Sort Flags

a

Sort ascending

d

Sort descending

i

Case insensitive sorting

s

Case sensitive sorting

Ejemplo 1. Sort Criterias

To sort on Bib1 attribute title, case insensitive, and ascending you would use the following sort criteria:
1=4 ia

If the secondary sorting criteria should be author, case sensitive and ascending you would use:
1=4 ia 1=1003 sa

Anterior | Inicio | Siguiente
yaz_set_option | Subir | yaz_syntax


yaz_syntax

(PHP 4 >= 4.0.1)

yaz_syntax -- Specifies the preferred record syntax for retrieval

Description

int yaz_syntax ( int id, string syntax)

This function is used in conjunction with yaz_search() to specify the preferred record syntax for retrieval.

Anterior | Inicio | Siguiente
yaz_sort | Subir | yaz_wait


yaz_wait

(PHP 4 >= 4.0.1)

yaz_wait -- Executes queries

Description

int yaz_wait ( int id, string syntax)

This function carries out networked (blocked) activity for outstanding requests which have been prepared by the functions yaz_connect(), yaz_search(). yaz_wait() returns when all targets have either completed all requests or otherwise completed (in case of errors).

Anterior | Inicio | Siguiente
yaz_syntax | Subir | NIS funciona


NIS funciona

Manual de PHP
Anterior Siguiente

CXV. NIS funciona

NIS ( anteriormente llamado Paginas Amarillas ) permite la administracion de red de los archivos de administracion importantes (e.g.El archivo de contraseñas). Para mas informacion dirigirse a las paginas de ayuda de NIS y a la direccion. Introduccion a YP/NIS Hay tambien un libro llamado gestionando NFS Y NIS por Hal Stern.

Para obtener estas funciones de trabajo, usted tiene que configure PHP con -- con- yp.

Tabla de contenidos
yp_all -- Traverse the map and call a function on each entry
yp_cat -- Return an array containing the entire map
yp_err_string -- devuelve el mensaje de error asociado con la operacion previa.Util que indica el problema exacto.
yp_errno -- Retorna el codigo de error de la operacion previa.
yp_first -- devuelve la primera clave emparejada con el nombrado mapa.
yp_get_default_domain -- Trae el valor por omision de dominios de maquina NIS.
yp_master -- Returns the machine name of the master NIS server for a map
yp_match -- Retorna la linea compañera (pareja).
yp_next -- Devuelve la siguiente clave tecleada en el nombre de mapa
yp_order -- Returns the order number for a map

Anterior | Inicio | Siguiente
yaz_wait | Subir | yp_all


yp_all

(PHP 4 >= 4.0.6)

yp_all -- Traverse the map and call a function on each entry

Description

void yp_all ( string domain, string map, string callback)

Aviso

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Anterior | Inicio | Siguiente
NIS funciona | Subir | yp_cat


yp_cat

(PHP 4 >= 4.0.6)

yp_cat -- Return an array containing the entire map

Description

array yp_cat ( string domain, string map)

yp_cat() returns all map entries as an array with the maps key values as array indices and the maps entries as array data.

Anterior | Inicio | Siguiente
yp_all | Subir | yp_err_string


yp_err_string

(PHP 4 >= 4.0.6)

yp_err_string -- devuelve el mensaje de error asociado con la operacion previa.Util que indica el problema exacto.

Descripcion

cadena yp_err_string ( void )

yp_err_string() Retorna el mensaje de error asociado con la operacion previa.Util para indicar que salio mal exactamente.

Ejemplo 1. Ejemplo para errores de NIS

              Vea tambien:
               yp errno

Anterior | Inicio | Siguiente
yp_cat | Subir | yp_errno


yp_errno

(PHP 4 >= 4.0.6)

yp_errno -- Retorna el codigo de error de la operacion previa.

Descripcion

int yp_errno ( void )

yp_errno() retorna el codigo de error de la operacion previa.

Los errores posibles son:

1 args para funcionar son malos
2 fallo de RPC- dominio ha sido unbound
3 no puede unir a servidor en este dominio
4 ningun tal mapa en dominio de servidor
5 ninguna tal llave en
6 interno yp error de cliente o servidor
7 fallo de asignacion de recurso
8 ningunos más registros en base de datos de mapa
9 no puede comunicar wiTh portmapper
10 no puede comunicar con ypbind
11 no puede comunicar con ypserv
12 nombre de dominio local no conjunto
13 yp base de datos es malo
14 yp La version mismatch
15 violacion de acceso
16 base de datos ocupar

Ver tambien: yp_err_string

Anterior | Inicio | Siguiente
yp_err_string | Subir | yp_first


yp_first

yp_first -- devuelve la primera clave emparejada con el nombrado mapa.

Descripcion

string[] yp_first (cadena dominio, cadena mapa)

yp_first(nombre de la funcion)() Retorna la primera clave de valor pareada del mapa nombrado en el dominio, de otra manera FALSO.

Ejemplo 1. Ejemplo para el primer NIS

<?$entry= yp_first($dominio,passwd.byname");
             if (!$entry){"echo yp_errno().":".yp_err_string();}
            $key=key($entry);
      echo"Primera entrada en este mapa fue ".$key ."Y valor".$entry[$key];?>

Ver tambien: yp_get_default_domain yp_errno y yp_err_string

Anterior | Inicio | Siguiente
yp_errno | Subir | yp_get_default_domain


yp_get_default_domain

(PHP 3>= 3.0.7, PHP 4 )

yp_get_default_domain -- Trae el valor por omision de dominios de maquina NIS.

Descripcion

int yp get_default_domain ( void )

yp_ get_default_domain() Retorna el valor por omision del dominio del nodo o FALSO. Puede ser usado el parametro de dominio para sucesivas llamadas a NIS.

Un dominio de NIS puede ser descrito en un grupo de mapas NIS. Cada host necesita buscar uniones de informacion en un mismo dominio. Acudir a los documentos mencionados en el comienzo para mas informacion.

Ejemplo 1. Ejemplo para el dominio por omision

<?$domain = yp_ get_default_domain (); if (!$ domain) {"echo yp_errno().":" .yp_err_string();}
         echo "El valor por omision de dominio NIS es:  $ domain;?>

Ver tambien: yp_ errno (nombre de la funcion) y yp_err_string (nombre de la funcion)

Anterior | Inicio | Siguiente
yp_first | Subir | yp_master


yp_master

(PHP 3>= 3.0.7, PHP 4 )

yp_master -- Returns the machine name of the master NIS server for a map

Description

string yp_master ( string domain, string map)

yp_master() returns the machine name of the master NIS server for a map.

Ejemplo 1. Example for the NIS master

<?php
$number = yp_master ($domain, $mapname);
echo "Master for this map is: " . $master;
?>

See also yp_get_default_domain().

Anterior | Inicio | Siguiente
yp_get_default_domain | Subir | yp_match


yp_match

(PHP 3>= 3.0.7, PHP 4 )

yp_match -- Retorna la linea compañera (pareja).

Descripcion

cadena yp match ( cadena dominio, cadena mapa, cadena teclea)

yp_match(nombre de la funcion)() Retorna el valor asociado con la llave pasada fuera del mapa especificado o FALSO. esta llave tiene que ser exacta.

Ejemplo 1. Ejemplo para NIS parejo

       En este caso esto puede ser:
                 Joe:##joe:11111:100:joe
                 usuario:/hogar/j/joe:
                 User:/usr/local/bin/bash

             Ver tambien:
    yp_get_default_domain
    yp_errno
     y
    yp_err_string

Anterior | Inicio | Siguiente
yp_master | Subir | yp_next


yp_next

(PHP 3>= 3.0.7, PHP 4 )

yp_next -- Devuelve la siguiente clave tecleada en el nombre de mapa

Descripcion

string[] yp_next ( cadena dominio, cadena mapa, cadena teclea)

yp_next() devuelve el siguiente par de valor tecleado en el mapa de nombres despues de la clave especificada o FALSO.

Ejemplo 1. Ejemplo para NIS siguiente

<?$entry=yp_next($dominio,"passwd. byname"."joe");
     if(!$entry){echo yp_errno().":".yp_err_string();}
     $key=key($entry); echo "La siguiente entrada despues joe fue".$key."Y su valor".$entry[$key];?>

Ver tambien: yp_get_default_domain yp_errno y yp_err_string

Anterior | Inicio | Siguiente
yp_match | Subir | yp_order


yp_order

(PHP 3>= 3.0.7, PHP 4 )

yp_order -- Returns the order number for a map

Description

int yp_order ( string domain, string map)

yp_order() returns the order number for a map or FALSE.

Ejemplo 1. Example for the NIS order

<?php
    $number = yp_order($domain,$mapname);
    echo "Order number for this map is: " . $number;
?>

See also yp_get_default_domain().

Anterior | Inicio | Siguiente
yp_next | Subir | Funciones de manejo de archivos Zip (Solo lectura)


Funciones de manejo de archivos Zip (Solo lectura)

Manual de PHP
Anterior Siguiente

CXVI. Funciones de manejo de archivos Zip (Solo lectura)

Introducción

Este módulo permite leer de forma transparente archivos comprimidos en formato Zip y acceder a su contenido.

Requerimientos

Este módulo utiliza las funciones de la librería ZZIPlib, creada por Guido Draheim. Se requiere una versión de ZZIPlib >= 0.10.6.

Debe tenerse en cuenta que la anterior librería solamente proporciona un conjunto limitado de funciones para el tratamiento de archivos en formato Zip. Para poder crear los archivos en formato Zip se requiere del uso de alguna herramienta externa a PHP.

Instalación

Para poder usar las funciones de manejo de archivos en formato Zip, se debe añadir el parámetro --with-zip[=DIR] a las opciones de configuración de PHP.

Nota: El funcionamiento de las funciones de manejo de archivos en formato Zip es experimental en las versiones de PHP anteriores a la 4.1.0. En esta sección del manual se muestran las funciones que existen en las versiones posteriores a la 4.1.0

Configuración en tiempo de ejecución

Esta extensión no tiene directivas de configuración en php.ini.

Tipos de recursos

Esta extensión no tiene ningún tipo de recurso definido.

Constantes predefinidas

Esta extensión no tiene ninguna constante definida.

Ejemplos

En el siguiente ejemplo se abre un archivo en formato Zip, se lee cada uno de los archivos contenidos en el y se muestran sus contenidos. El archivo test2.zip que se utiliza en el ejemplo es uno de los archivos de prueba que se incluyen en la distribución del código fuente de la libería ZZIPlib.

Ejemplo 1. Ejemplo de utilización de las funciones para manejo de archivos en formato Zip

<?php

$zip = zip_open("/tmp/test2.zip");

if ($zip) {

    while ($zip_entry = zip_read($zip)) {
        echo "Nombre:                " . zip_entry_name($zip_entry) . "\n";
        echo "Tamanio sin comprimir: " . zip_entry_filesize($zip_entry) . "\n";
        echo "Tamanio comprimido:    " . zip_entry_compressedsize($zip_entry) . "\n";
        echo "Metodo de compresion:  " . zip_entry_compressionmethod($zip_entry) . "\n";

        if (zip_entry_open($zip, $zip_entry, "r")) {
            echo "Contenidos del fichero:\n";
            $buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
            echo "$buf\n";

            zip_entry_close($zip_entry);
        }
        echo "\n";

    }

    zip_close($zip);

}

?>
Tabla de contenidos
zip_close -- Cierra un archivo en formato Zip
zip_entry_close -- Cierra una entrada de directorio
zip_entry_compressedsize -- Obtiene el tamaño comprimido de una entrada de directorio
zip_entry_compressionmethod -- Obtiene el método de compresión utilizado por una entrada de directorio
zip_entry_filesize -- Obtiene el tamaño real de una entrada de directorio
zip_entry_name -- Obtiene el nombre de una entrada de directorio
zip_entry_open -- Abre una entrada de directorio en modo solo lectura
zip_entry_read -- Lee los datos de una entrada de directorio abierta
zip_open -- Abre un archivo en formato Zip
zip_read -- Lee la siguiente entrada de un archivo en formato Zip

Anterior | Inicio | Siguiente
yp_order | Subir | zip_close


zip_close

(4.1.0 - 4.3.2 only)

zip_close -- Cierra un archivo en formato Zip

Descripción

void zip_close ( resource zip)

Cierra un archivo en formato Zip. El parámetro zip debe ser un archivo en formato Zip abierto previamente con la función zip_open().

Esta función no devuelve ningú valor.

Ver también zip_open() y zip_read().

Anterior | Inicio | Siguiente
Funciones de manejo de archivos Zip (Solo lectura) | Subir | zip_entry_close


zip_entry_close

(4.1.0 - 4.3.2 only)

zip_entry_close -- Cierra una entrada de directorio

Descripción

void zip_entry_close ( resource zip_entry)

Cierra la entrada de directorio indicada en el parámetro zip_entry. Este parámetro zip_entry debe ser una entrada de directorio abierta mediante la funció zip_entry_open().

Esta función no devuelve ningú valor.

Ver también zip_entry_open() y zip_entry_read().

Anterior | Inicio | Siguiente
zip_close | Subir | zip_entry_compressedsize


zip_entry_compressedsize

(4.1.0 - 4.3.2 only)

zip_entry_compressedsize -- Obtiene el tamaño comprimido de una entrada de directorio

Descripción

int zip_entry_compressedsize ( resource zip_entry)

Devuelve el tamaño comprimido de la entrada de directorio indicada en el parámetro zip_entry. Este parámetro zip_entry debe ser una entrada de directorio válida obtenida mediante la función zip_read().

Ver también zip_open() y zip_read().

Anterior | Inicio | Siguiente
zip_entry_close | Subir | zip_entry_compressionmethod


zip_entry_compressionmethod

(4.1.0 - 4.3.2 only)

zip_entry_compressionmethod -- Obtiene el método de compresión utilizado por una entrada de directorio

Descripción

string zip_entry_compressionmethod ( resource zip_entry)

Devuelve el método de compresión de la entrada de directorio especificada en el parámetro zip_entry. El parámetro zip_entry debe ser una entrada de directorio válida obtenida mediante la función zip_read().

Ver tamién zip_open() y zip_read().

Anterior | Inicio | Siguiente
zip_entry_compressedsize | Subir | zip_entry_filesize


zip_entry_filesize

(4.1.0 - 4.3.2 only)

zip_entry_filesize -- Obtiene el tamaño real de una entrada de directorio

Descripción

int zip_entry_filesize ( resource zip_entry)

Devuelve el tamaño real (no comprimido) de la entrada de directorio indicada en el parámetro zip_entry. Este parámetro zip_entry debe ser una entrada de directorio válida obtenida mediante la función zip_read().

Ver también zip_open() y zip_read().

Anterior | Inicio | Siguiente
zip_entry_compressionmethod | Subir | zip_entry_name


zip_entry_name

(4.1.0 - 4.3.2 only)

zip_entry_name -- Obtiene el nombre de una entrada de directorio

Descripción

string zip_entry_name ( resource zip_entry)

Devuelve el nombre de la entrada de directorio indicada en el parámetro zip_entry. El parámetro zip_entry debe ser una entrada de directorio válida obtenida mediante la función zip_read().

Ver también zip_open() y zip_read().

Anterior | Inicio | Siguiente
zip_entry_filesize | Subir | zip_entry_open


zip_entry_open

(4.1.0 - 4.3.2 only)

zip_entry_open -- Abre una entrada de directorio en modo solo lectura

Descripción

bool zip_entry_open ( resource zip, resource zip_entry [, string modo])

Abre una entrada de directorio de un archivo en formato zip para su lectura. El parámetro zip es un apuntador válido devuelto por la función zip_open(). El parámetro zip_entry es una entrada de directorio válida obtenida mediante la función zip_read(). El parámetro opcional modo puede ser cualquiera de los modos descritos en la documentación de la función fopen().

Nota: Actualmente, el parámetro modo no se tiene en cuenta y siempre se considera que es "rb". La razón de este comportamiento es que, de momento, PHP solo soporta el formato Zip en operaciones de lectura y no de escritura. En la documentación de la función fopen() se explican todos los modos disponibles, incluido el modo "rb".

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Nota: Al contrario de lo que sucede con la función fopen() y otras similares, el valor que devuelve zip_entry_open() solamente indica el resultado de la operación efectuada y no es necesario para realizar las funciones de lectura y cierre de esa entrada de directorio.

Ver también zip_entry_read() y zip_entry_close().

Anterior | Inicio | Siguiente
zip_entry_name | Subir | zip_entry_read


zip_entry_read

(4.1.0 - 4.3.2 only)

zip_entry_read -- Lee los datos de una entrada de directorio abierta

Descripción

string zip_entry_read ( resource zip_entry [, int longitud])

Lee como máximo un número de bytes igual al parámetro longitud en una entrada de directorio abierta. Si no se especifica el parámetro longitud, la función zip_entry_read() intentará leer 1024 bytes. El parámetro zip_entry es una entrada de directorio válida obtenida mediante la función zip_read().

Nota: El parámetro longitud indica el número de bytes que se quieren leer del archivo una vez descomprimido.

La función devuelve los datos leidos o FALSE si se ha llegado al final del archivo.

Ver también zip_entry_open(), zip_entry_close() y zip_entry_filesize().

Anterior | Inicio | Siguiente
zip_entry_open | Subir | zip_open


zip_open

(4.1.0 - 4.3.2 only)

zip_open -- Abre un archivo en formato Zip

Descripción

resource zip_open ( string nombre_archivo)

Abre un fichero en formato Zip para poder leerlo. El parámetro nombre_archivo es el nombre del archivo en formato Zip que se quiere abrir.

La función devuelve un apuntador que se utiliza con las funciones zip_read() y zip_close() o devuelve FALSE si no existe el archivo nombre_archivo.

Ver también zip_read() y zip_close().

Anterior | Inicio | Siguiente
zip_entry_read | Subir | zip_read


zip_read

(4.1.0 - 4.3.2 only)

zip_read -- Lee la siguiente entrada de un archivo en formato Zip

Descripción

resource zip_read ( resource zip)

Lee la siguiente entrada de un archivo en formato Zip. El parámetro zip debe ser un apuntador válido obtenido mediante la función zip_open().

La función devuelve una entrada de directorio válida para su uso con cualquiera de las funciones zip_entry_...() o FALSE si ya no hay mas entradas para leer en el archivo en formato Zip.

Ver también zip_open(), zip_close(), zip_entry_open() y zip_entry_read().

Anterior | Inicio | Siguiente
zip_open | Subir | Funciones de Compresión


Funciones de Compresión

Manual de PHP
Anterior Siguiente

CXVII. Funciones de Compresión

Este módulo usa la función de zlib de Jean-loup Gailly y Mark Adler para leer y grabar archivos comprimidos .gz, de un modo transparente. Con este módulo, es requisito usar una versión de zlib igual o posterior a 1.0.9.

Este módulo contiene versiones de la mayoría de las funciones de Sistema de archivos que funcionan con los archivos comprimidos con gzip (y con los no-comprimidos tambien, pero no con conectores (sockets)).

Pequeño código de ejemlo

Abre un archivo temporal y escribe en él, una cadena de prueba, y luego presenta el cotenido del archivo dos veces

Ejemplo 1. Ejemplo de Zlib

<?php
  $filename = tempnam('/tmp', 'zlibtest').'.gz';
  print "<html>\n<head></head>\n<body>\n<pre>\n";
  $s = "Sólo es una prueba, prueba, prueba,prueba, prueba, prueba!\n";
  // Abre el archivo para escribirlo con máximo de compresión
  $zp = gzopen($filename, "w9");
  // Escribe la cadena en él
  gzwrite($zp, $s);
  // Cierra el fichero
  gzclose($zp);
  // Abre el fichero para lectura
  $zp = gzopen($filename, "r");
  // Lee 3 caracteres
  print gzread($zp, 3);
  // Salida hasta el final del fichero, para cerrarlo luego.
  gzpassthru($zp);
  print "\n";
  // Abre el fichero y muestra su contenido (por segunda vez).
  if (readgzfile($filename) != strlen($s)) {
          echo "Error con las funciones zlib!";
  }
  unlink($filename);
  print "<pre>\n</h1></body>\n</html>\n";
?>
Tabla de contenidos
gzclose -- cierra un puntero a archivo-gz abierto
gzcompress -- Compress a string
gzdeflate -- Deflate a string
gzencode -- Create a gzip compressed string
gzeof -- prueba el fin-de-archivo de un puntero de archivo-gz
gzfile -- lee el archivo gz completo en un arreglo
gzgetc -- toma caracteres de un archivo-gz
gzgets -- toma una linea del archivo apuntado
gzgetss -- toma una linea del archivo-gz apuntado y le quita los tags HTML
gzinflate -- Inflate a deflated string
gzopen -- open gz-file
gzpassthru -- Devuelve el remanente de datos de un fichero-gz
gzputs -- escribe al fichero-gz que se apunta
gzread -- Lee archivos-gz en modo Binario
gzrewind -- Reposiciona al puntero de archivo-gz, al inicio de aquel
gzseek -- Posiciona el puntero del archivo-gz
gztell -- Indica la posición de lecto-escritura en el archivo
gzuncompress -- Uncompress a deflated string
gzwrite -- Escritura de ficheros gz en modo Binario
readgzfile -- devuelve el fichero-gz
zlib_get_coding_type -- Returns the coding type used for output compression

Anterior | Inicio | Siguiente
zip_read | Subir | gzclose


gzclose

(PHP 3, PHP 4 )

gzclose -- cierra un puntero a archivo-gz abierto

Descripción

int gzclose ( int zp)

El archivo-gz al que apunta zp se cierra.

Devuelve TRUE (verdadero) si fue exitoso, si hubo errores devuelve FALSE.

El puntero al archivo-gz debe ser válido y debe apuntar a un archivo correctamente abierto con gzopen().

Anterior | Inicio | Siguiente
Funciones de Compresión | Subir | gzcompress


gzcompress

(PHP 4 >= 4.0.1)

gzcompress -- Compress a string

Description

string gzcompress ( string data [, int level])

This function returns a compressed version of the input data using the ZLIB data format, or FALSE if an error is encountered. The optional parameter level can be given as 0 for no compression up to 9 for maximum compression.

For details on the ZLIB compression algorithm see the document "ZLIB Compressed Data Format Specification version 3.3" (RFC 1950).

Nota: This is not the same as gzip compression, which includes some header data. See gzencode() for gzip compression.

See also gzdeflate(),
gzinflate(),
gzuncompress(),
gzencode().

Anterior | Inicio | Siguiente
gzclose | Subir | gzdeflate


gzdeflate

(PHP 4 >= 4.0.4)

gzdeflate -- Deflate a string

Description

string gzdeflate ( string data [, int level])

This function returns a compressed version of the input data using the DEFLATE data format, or FALSE if an error is encountered. The optional parameter level can be given as 0 for no compression up to 9 for maximum compression.

For details on the DEFLATE compression algorithm see the document "DEFLATE Compressed Data Format Specification version 1.3" (RFC 1951).

See also
gzinflate(),
gzcompress(),
gzuncompress(),
gzencode().

Anterior | Inicio | Siguiente
gzcompress | Subir | gzencode


gzencode

(PHP 4 >= 4.0.4)

gzencode -- Create a gzip compressed string

Description

string gzencode ( string data [, int level [, int encoding_mode]])

This function returns a compressed version of the input data compatible with the output of the gzip program, or FALSE if an error is encountered. The optional parameter level can be given as 0 for no compression up to 9 for maximum compression, if not given the default compression level will be the default compression level of the zlib library.

You can also give FORCE_GZIP (the default) or FORCE_DEFLATE as optional third paramter encoding_mode. If you use FORCE_DEFLATE, you get a standard zlib deflated string (inclusive zlib headers) after the gzip file header but without the trailing crc32 checksum.

Nota: level was added in PHP 4.2, before PHP 4.2 gzencode() only had the data and (optional) encoding_mode parameters..

The resulting data contains the appropriate headers and data structure to make a standard .gz file, e.g.:

Ejemplo 1. Creating a gzip file

<?php
    $data = implode("", file("bigfile.txt"));
    $gzdata = gzencode($data, 9);
    $fp = fopen("bigfile.txt.gz", "w");
    fwrite($fp, $gzdata);
    fclose($fp);
?>

For more information on the GZIP file format, see the document: GZIP file format specification version 4.3 (RFC 1952).

See also gzcompress().
gzuncompress(),
gzdeflate(),
gzinflate().

Anterior | Inicio | Siguiente
gzdeflate | Subir | gzeof


gzeof

(PHP 3, PHP 4 )

gzeof -- prueba el fin-de-archivo de un puntero de archivo-gz

Descripción

int gzeof ( int zp)

Devuelve verdadero si el puntero-a-archivo está en el fin-de-archivo, o ha ocurrido un error. De otro modo devuelve falso.

El puntero al archivo-gz debe ser válido y debe apuntar a un archivo correctamente abierto con gzopen().

Anterior | Inicio | Siguiente
gzencode | Subir | gzfile


gzfile

(PHP 3, PHP 4 )

gzfile -- lee el archivo gz completo en un arreglo

Descripción

array gzfile ( string nombre_archivo [, int usar_include_path])

Identico a readgzfile(), solo que gzfile() devuelve el fichero en un arreglo.

Se puede usar el segundo parámetro opcional poniéndolo a "1", si se quiere que la función busque también el archivo en la trayectoria definida como include_path.

Vea también readgzfile(), y gzopen().

Anterior | Inicio | Siguiente
gzeof | Subir | gzgetc


gzgetc

(PHP 3, PHP 4 )

gzgetc -- toma caracteres de un archivo-gz

Descripción

cadena gzgetc ( int zp)

Devuelve una cadena conteniendo un caracter en particular (sin comprimir) leído del archivo al que apunta zp. Devuelve FALSE cuando está al final del archivo (al igual que gzeof()).

El puntero al archivo-gz debe ser válido y debe apuntar a un archivo correctamente abierto con gzopen().

Vea también gzopen(), y gzgets().

Anterior | Inicio | Siguiente
gzfile | Subir | gzgets


gzgets

(PHP 3, PHP 4 )

gzgets -- toma una linea del archivo apuntado

Descripción

string gzgets ( int zp, int longitud)

Devuelve una cadena (descomprimida) con longitud - 1 bytes de largo, leída del archivo apuntado por fp. La lectura finaliza cuando se han leído longitud - 1 bytes, ante un salto de linea o un fin-de-archivo (lo que ocurra primero).

Si ocurre un error, devuelve falso.

El puntero al archivo-gz debe ser válido y debe apuntar a un archivo correctamente abierto con gzopen().

Vea también gzopen(), gzgetc(), y fgets().

Anterior | Inicio | Siguiente
gzgetc | Subir | gzgetss


gzgetss

(PHP 3, PHP 4 )

gzgetss -- toma una linea del archivo-gz apuntado y le quita los tags HTML

Descripción

string gzgetss ( int zp, int longitud [, string tags_permitidos])

Idéntica a gzgets(), excepto que gzgetss intenta quitar cualquier "tag" HTML o PHP del texto que lee.

Se puede usar el tercer parámetro para indicar qué parametros no deben ser extraídos.

Nota: tags_permitidos fue agregado en la versión de PHP 3.0.13, PHP4B3.

Véase también gzgets(), gzopen(), y strip_tags().

Anterior | Inicio | Siguiente
gzgets | Subir | gzinflate


gzinflate

(PHP 4 >= 4.0.4)

gzinflate -- Inflate a deflated string

Description

string gzinflate ( string data [, int length])

This function takes data compressed by gzdeflate() and returns the original uncompressed data or FALSE on error. The function will return an error if the uncompressed data is more than 32768 times the length of the compressed input data or more than the optional parameter length.

See also gzcompress().
gzuncompress(),
gzdeflate(),
gzencode().

Anterior | Inicio | Siguiente
gzgetss | Subir | gzopen


gzopen

(PHP 3, PHP 4 )

gzopen -- open gz-file

Descripción

int gzopen ( string nombre_fichero, string modo [, int use_include_path])

Abre un archivo gzip (.gz) para lectura o escritura. El parámetro modo es, como en fopen() ("rb" o "wb") pero puede incluir tambien el nivel de compresión ("wb9") o la estrategia: 'f' para filtrado de datos como en "wb6f", 'h' para comprimir solo por Huffman igual que en "wb1h". (Ver la descripción de deflateInit2 en zlib.h para más información sobre el parámetro de estrategia.)

Gzopen puede usarse para leer o escribir un fichero que no esté en formato gzip; en ese caso gzread() leerá el archivo directamente, sin descomprimirlo.

Gzopen devuelve un puntero al archivo abierto y luego, cualquier proceso de lectura o escritura relacionado con ese descriptor de archivo, será transparente: se comprimirá o descomprimirá los datos según la necesidad, de manera automática.

Si la apertura fallase, se devolverá falso.

Se puede usar el tercer parámetro opcional, poniéndolo a "1", si se quiere buscar también el fichero en la trayectoria include_path.

Ejemplo 1. ejemplo de gzopen()

$fp = gzopen("/tmp/file.gz", "r");

Vea también gzclose().

Anterior | Inicio | Siguiente
gzinflate | Subir | gzpassthru


gzpassthru

(PHP 3, PHP 4 )

gzpassthru -- Devuelve el remanente de datos de un fichero-gz

Descripción

int gzpassthru ( int zp)

Lee hasta el Fin-De-Archivo del archivo gz dado, y escribe los resultados (descomprimidos) en la salida standard.

Si ocurre un error, devuelve Falso.

El puntero al archivo-gz debe ser válido y debe apuntar a un archivo correctamente abierto con gzopen().

El archivo-gz es cerrado cuando gzpassthru() termina de leerlo (dejando zp sin utilidad).

Anterior | Inicio | Siguiente
gzopen | Subir | gzputs


gzputs

(PHP 3, PHP 4 )

gzputs -- escribe al fichero-gz que se apunta

Descripción

int gzputs ( int zp, string str [, int longitud])

gzputs() es un alias a gzwrite(), y es absolutamente idéntico.

Anterior | Inicio | Siguiente
gzpassthru | Subir | gzread


gzread

(PHP 3, PHP 4 )

gzread -- Lee archivos-gz en modo Binario

Descripción

string gzread ( int zp, int longitud)

gzread() lee hasta longitud bytes del archivo-gz apuntado por el parámetro zp. La lectura termina cuando se han leído longitud bytes (descomprimidos) o se alcanza el fin-de-archivo, lo que sucediera primero.

// Pone los contenidos del gz, a una cadena
$filename = "/usr/local/algo.txt.gz";
$zd = gzopen( $filename, "r" );
$contents = gzread( $zd, 10000 );
gzclose( $zd );

Ver también gzwrite(), gzopen(),
gzgets(), gzgetss(),
gzfile(), y gzpassthru().

Anterior | Inicio | Siguiente
gzputs | Subir | gzrewind


gzrewind

(PHP 3, PHP 4 )

gzrewind -- Reposiciona al puntero de archivo-gz, al inicio de aquel

Descripción

int gzrewind ( int zp)

Reubica el indicador de posición del archivo, al comienzo del mismo.

si surge un error, devuelve 0.

El puntero al archivo-gz debe ser válido y debe apuntar a un archivo correctamente abierto con gzopen().

Ver también: gzseek() y gztell().

Anterior | Inicio | Siguiente
gzread | Subir | gzseek


gzseek

(PHP 3, PHP 4 )

gzseek -- Posiciona el puntero del archivo-gz

Descripción

int gzseek ( int zp, int offset)

Busca la posición dentro del archivo zp, indicada en bytes por el parametro de desplazamiento offset. Es equivalente a llamar (en C) gzseek( zp, offset, SEEK_SET ).

Si el archivo se abre para lectura, la función será emulada, pero puede ponerse extremadamente lenta. Si se trata de escritura, solo está soportada la búsqueda hacia adelante; gzseek comprime entonces una secuencia de ceros hasta que alcanza la nueva ubicación.

Si se completa el pedido con éxito, devuelve 0; de lo contrario, devuelve -1. Note que la busqueda más allá del fin-de-archivo no se considera un error.

Vea también gztell() y gzrewind().

Anterior | Inicio | Siguiente
gzrewind | Subir | gztell


gztell

(PHP 3, PHP 4 )

gztell -- Indica la posición de lecto-escritura en el archivo

Descripción

int gztell ( int zp)

Devuelve la posición dentro del fichero referido por zp; p.e., su desplazamiento en el cuerpo del archivo.

Si hay algún error, devuelve falso.

El puntero al archivo-gz debe ser válido y debe apuntar a un archivo correctamente abierto con gzopen().

Ver también gzopen(), gzseek() y gzrewind().

Anterior | Inicio | Siguiente
gzseek | Subir | gzuncompress


gzuncompress

(PHP 4 >= 4.0.1)

gzuncompress -- Uncompress a deflated string

Description

string gzuncompress ( string data [, int length])

This function takes data compressed by gzcompress() and returns the original uncompressed data or FALSE on error. The function will return an error if the uncompressed data is more than 32768 times the length of the compressed input data or more than the optional parameter length.

See also gzdeflate(),
gzinflate(),
gzcompress(),
gzencode().

Anterior | Inicio | Siguiente
gztell | Subir | gzwrite


gzwrite

(PHP 3, PHP 4 )

gzwrite -- Escritura de ficheros gz en modo Binario

Descripción

int gzwrite ( int zp, string cadena [, int largo])

gzwrite() escribe el contenido de cadena al fichero gz referido por zp. Si el parámetro largo está presente, se detendrá la escritura luego de escribir largo bytes (descomprimidos) o al llegar el final de la cadena, lo que ocurriese primero.

Note que si se pasa el argumento largo, la opcion magic_quotes_runtime será ignorada y no se quitarán barras de la cadena en cuestión.

Ver también gzread(), gzopen(), y gzputs().

Anterior | Inicio | Siguiente
gzuncompress | Subir | readgzfile


readgzfile

(PHP 3, PHP 4 )

readgzfile -- devuelve el fichero-gz

Descripción

int readgzfile ( string nombre_archivo [, int usar_trayectoria_include])

Lee el archivo, lo descomprime y lo escribe en la salida estándar.

Readgzfile() puede usarse para leer un archivo comprimido o no con gzip; en cuyo caso readgzfile() leerá directamente el archivo, sin descomprimirlo.

Devuelve el numero de bytes (descomprimidos) leídos del archivo, si ocurre un error, se devuelve falso y hasta que se llame como @readgzfile, se imprime un mensaje de error.

El archivo nombre_archivo se abrirá en el sistema de archivos y su contenido enviado a la salida estándar.

Puede usarse el segundo paametro opcional dándole el valor "1", si se quiere que se busque el archivo también dentro de la trayectoria "include": include_path.

Ver también gzpassthru(), gzfile(), y gzopen().

Anterior | Inicio | Siguiente
gzwrite | Subir | zlib_get_coding_type


zlib_get_coding_type

(PHP 4 >= 4.3.2)

zlib_get_coding_type -- Returns the coding type used for output compression

Description

string zlib_get_coding_type ( void )

Returns the coding type used for output compression. Possible return values are gzip, deflate, or FALSE

See also the zlib.output_compression directive.

Anterior | Inicio | Siguiente
readgzfile | Subir | Zend API


Zend API

Manual de PHP
Anterior Siguiente

VI. Zend API

Hacking the Core of PHP

Those who know don't talk.

Those who talk don't know.

Sometimes, PHP "as is" simply isn't enough. Although these cases are rare for the average user, professional applications will soon lead PHP to the edge of its capabilities, in terms of either speed or functionality. New functionality cannot always be implemented natively due to language restrictions and inconveniences that arise when having to carry around a huge library of default code appended to every single script, so another method needs to be found for overcoming these eventual lacks in PHP.

As soon as this point is reached, it's time to touch the heart of PHP and take a look at its core, the C code that makes PHP go.

Tabla de contenidos
24. Overview
25. Extension Possibilities
26. Source Layout
27. PHP's Automatic Build System
28. Creating Extensions
29. Using Extensions
30. Troubleshooting
31. Source Discussion
32. Accepting Arguments
33. Creating Variables
34. Duplicating Variable Contents: The Copy Constructor
35. Returning Values
36. Printing Information
37. Startup and Shutdown Functions
38. Calling User Functions
39. Initialization File Support
40. Where to Go from Here
41. Reference: Some Configuration Macros
42. API Macros
Hacking the Core of PHP

Anterior | Inicio | Siguiente
zlib_get_coding_type |  | Overview


Overview

Manual de PHP
Anterior Siguiente

Capítulo 24. Overview

Tabla de contenidos
What Is Zend? and What Is PHP?

"Extending PHP" is easier said than done. PHP has evolved to a full-fledged tool consisting of a few megabytes of source code, and to hack a system like this quite a few things have to be learned and considered. When structuring this chapter, we finally decided on the "learn by doing" approach. This is not the most scientific and professional approach, but the method that's the most fun and gives the best end results. In the following sections, you'll learn quickly how to get the most basic extensions to work almost instantly. After that, you'll learn about Zend's advanced API functionality. The alternative would have been to try to impart the functionality, design, tips, tricks, etc. as a whole, all at once, thus giving a complete look at the big picture before doing anything practical. Although this is the "better" method, as no dirty hacks have to be made, it can be very frustrating as well as energy- and time-consuming, which is why we've decided on the direct approach.

Note that even though this chapter tries to impart as much knowledge as possible about the inner workings of PHP, it's impossible to really give a complete guide to extending PHP that works 100% of the time in all cases. PHP is such a huge and complex package that its inner workings can only be understood if you make yourself familiar with it by practicing, so we encourage you to work with the source.

What Is Zend? and What Is PHP?

The name Zend refers to the language engine, PHP's core. The term PHP refers to the complete system as it appears from the outside. This might sound a bit confusing at first, but it's not that complicated (see Figura 24-1). To implement a Web script interpreter, you need three parts:

  1. The interpreter part analyzes the input code, translates it, and executes it.

  2. The functionality part implements the functionality of the language (its functions, etc.).

  3. The interface part talks to the Web server, etc.

Zend takes part 1 completely and a bit of part 2; PHP takes parts 2 and 3. Together they form the complete PHP package. Zend itself really forms only the language core, implementing PHP at its very basics with some predefined functions. PHP contains all the modules that actually create the language's outstanding capabilities.

Figura 24-1. The internal structure of PHP.

The following sections discuss where PHP can be extended and how it's done.

Anterior | Inicio | Siguiente
Zend API | Subir | Extension Possibilities


Extension Possibilities

Manual de PHP
Anterior Siguiente

Capítulo 25. Extension Possibilities

Tabla de contenidos
External Modules
Built-in Modules
The Zend Engine

As shown in Figura 24-1 above, PHP can be extended primarily at three points: external modules, built-in modules, and the Zend engine. The following sections discuss these options.

External Modules

External modules can be loaded at script runtime using the function dl(). This function loads a shared object from disk and makes its functionality available to the script to which it's being bound. After the script is terminated, the external module is discarded from memory. This method has both advantages and disadvantages, as described in the following table:

Advantages | Disadvantages
External modules don't require recompiling of PHP. | The shared objects need to be loaded every time a script is being executed (every hit), which is very slow.
The size of PHP remains small by "outsourcing" certain functionality. | External additional files clutter up the disk.
 | Every script that wants to use an external module's functionality has to specifically include a call to dl(), or the extension tag in php.ini needs to be modified (which is not always a suitable solution).

To sum up, external modules are great for third-party products, small additions to PHP that are rarely used, or just for testing purposes. To develop additional functionality quickly, external modules provide the best results. For frequent usage, larger implementations, and complex code, the disadvantages outweigh the advantages.

Third parties might consider using the extension tag in php.ini to create additional external modules to PHP. These external modules are completely detached from the main package, which is a very handy feature in commercial environments. Commercial distributors can simply ship disks or archives containing only their additional modules, without the need to create fixed and solid PHP binaries that don't allow other modules to be bound to them.

Anterior | Inicio | Siguiente
Overview | Subir | Built-in Modules


Built-in Modules

Built-in modules are compiled directly into PHP and carried around with every PHP process; their functionality is instantly available to every script that's being run. Like external modules, built-in modules have advantages and disadvantages, as described in the following table:

Advantages | Disadvantages
No need to load the module specifically; the functionality is instantly available. | Changes to built-in modules require recompiling of PHP.
No external files clutter up the disk; everything resides in the PHP binary. | The PHP binary grows and consumes more memory.

Built-in modules are best when you have a solid library of functions that remains relatively unchanged, requires better than poor-to-average performance, or is used frequently by many scripts on your site. The need to recompile PHP is quickly compensated by the benefit in speed and ease of use. However, built-in modules are not ideal when rapid development of small additions is required.

Anterior | Inicio | Siguiente
Extension Possibilities | Subir | The Zend Engine


The Zend Engine

Of course, extensions can also be implemented directly in the Zend engine. This strategy is good if you need a change in the language behavior or require special functions to be built directly into the language core. In general, however, modifications to the Zend engine should be avoided. Changes here result in incompatibilities with the rest of the world, and hardly anyone will ever adapt to specially patched Zend engines. Modifications can't be detached from the main PHP sources and are overridden with the next update using the "official" source repositories. Therefore, this method is generally considered bad practice and, due to its rarity, is not covered in this book.

Anterior | Inicio | Siguiente
Built-in Modules | Subir | Source Layout


Source Layout

Manual de PHP
Anterior Siguiente

Capítulo 26. Source Layout

Tabla de contenidos
Extension Conventions
Macros
Memory Management
Directory and File Functions
String Handling
Complex Types

Nota: Prior to working through the rest of this chapter, you should retrieve clean, unmodified source trees of your favorite Web server. We're working with Apache (available at http://www.apache.org/) and, of course, with PHP (available at http://www.php.net/ - does it need to be said?).

Make sure that you can compile a working PHP environment by yourself! We won't go into this issue here, however, as you should already have this most basic ability when studying this chapter.

Before we start discussing code issues, you should familiarize yourself with the source tree to be able to quickly navigate through PHP's files. This is a must-have ability to implement and debug extensions.

The following table describes the contents of the major directories.

Directory | Contents
php4 | Main PHP source files and main header files; here you'll find all of PHP's API definitions, macros, etc. (important). Everything else is below this directory.
php4/ext | Repository for dynamic and built-in modules; by default, these are the "official" PHP modules that have been integrated into the main source tree. From PHP 4.0, it's possible to compile these standard extensions as dynamic loadable modules (at least, those that support it).
php4/main | This directory contains the main php macros and definitions. (important)
php4/pear | Directory for the PHP Extension and Application Repository. This directory contains core PEAR files.
php4/sapi | Contains the code for the different server abstraction layers.
php4/TSRM | Location of the "Thread Safe Resource Manager" (TSRM) for Zend and PHP.
php4/Zend | Location of the Zend Engine files; here you'll find all of Zend's API definitions, macros, etc. (important).

Discussing all the files included in the PHP package is beyond the scope of this chapter. However, you should take a close look at the following files:

  • php4/main/php.h, located in the main PHP directory. This file contains most of PHP's macro and API definitions.

  • php4/Zend/zend.h, located in the main Zend directory. This file contains most of Zend's macros and definitions.

  • php4/Zend/zend_API.h, also located in the Zend directory, which defines Zend's API.

You should also follow some sub-inclusions from these files; for example, the ones relating to the Zend executor, the PHP initialization file support, and such. After reading these files, take the time to navigate around the package a little to see the interdependencies of all files and modules - how they relate to each other and especially how they make use of each other. This also helps you to adapt to the coding style in which PHP is authored. To extend PHP, you should quickly adapt to this style.

Extension Conventions

Zend is built using certain conventions; to avoid breaking its standards, you should follow the rules described in the following sections.

Anterior | Inicio | Siguiente
The Zend Engine | Subir | Macros


Macros

For almost every important task, Zend ships predefined macros that are extremely handy. The tables and figures in the following sections describe most of the basic functions, structures, and macros. The macro definitions can be found mainly in zend.h and zend_API.h. We suggest that you take a close look at these files after having studied this chapter. (Although you can go ahead and read them now, not everything will make sense to you yet.)

Anterior | Inicio | Siguiente
Source Layout | Subir | Memory Management


Memory Management

Resource management is a crucial issue, especially in server software. One of the most valuable resources is memory, and memory management should be handled with extreme care. Memory management has been partially abstracted in Zend, and you should stick to this abstraction for obvious reasons: Due to the abstraction, Zend gets full control over all memory allocations. Zend is able to determine whether a block is in use, automatically freeing unused blocks and blocks with lost references, and thus prevent memory leaks. The functions to be used are described in the following table:

Function | Description
emalloc() | Serves as replacement for malloc().
efree() | Serves as replacement for free().
estrdup() | Serves as replacement for strdup().
estrndup() | Serves as replacement for strndup(). Faster than estrdup() and binary-safe. This is the recommended function to use if you know the string length prior to duplicating it.
ecalloc() | Serves as replacement for calloc().
erealloc() | Serves as replacement for realloc().

emalloc(), estrdup(), estrndup(), ecalloc(), and erealloc() allocate internal memory; efree() frees these previously allocated blocks. Memory handled by the e*() functions is considered local to the current process and is discarded as soon as the script executed by this process is terminated.

Aviso

To allocate resident memory that survives termination of the current script, you can use malloc() and free(). This should only be done with extreme care, however, and only in conjunction with demands of the Zend API; otherwise, you risk memory leaks.

Zend also features a thread-safe resource manager to provide better native support for multithreaded Web servers. This requires you to allocate local structures for all of your global variables to allow concurrent threads to be run. Because the thread-safe mode of Zend was not finished back when this was written, it is not yet extensively covered here.

Anterior | Inicio | Siguiente
Macros | Subir | Directory and File Functions


Directory and File Functions

The following directory and file functions should be used in Zend modules. They behave exactly like their C counterparts, but provide virtual working directory support on the thread level.

Zend Function | Regular C Function
V_GETCWD() | getcwd()
V_FOPEN() | fopen()
V_OPEN() | open()
V_CHDIR() | chdir()
V_GETWD() | getwd()
V_CHDIR_FILE() | Takes a file path as an argument and changes the current working directory to that file's directory.
V_STAT() | stat()
V_LSTAT() | lstat()

Anterior | Inicio | Siguiente
Memory Management | Subir | String Handling


String Handling

Strings are handled a bit differently by the Zend engine than other values such as integers, Booleans, etc., which don't require additional memory allocation for storing their values. If you want to return a string from a function, introduce a new string variable to the symbol table, or do something similar, you have to make sure that the memory the string will be occupying has previously been allocated, using the aforementioned e*() functions for allocation. (This might not make much sense to you yet; just keep it somewhere in your head for now - we'll get back to it shortly.)

Anterior | Inicio | Siguiente
Directory and File Functions | Subir | Complex Types


Complex Types

Complex types such as arrays and objects require different treatment. Zend features a single API for these types - they're stored using hash tables.

Nota: To reduce complexity in the following source examples, we're only working with simple types such as integers at first. A discussion about creating more advanced types follows later in this chapter.

Anterior | Inicio | Siguiente
String Handling | Subir | PHP's Automatic Build System


PHP's Automatic Build System

Manual de PHP
Anterior Siguiente

Capítulo 27. PHP's Automatic Build System

PHP 4 features an automatic build system that's very flexible. All modules reside in a subdirectory of the ext directory. In addition to its own sources, each module consists of a config.m4 file, for extension configuration. (for example, see http://www.gnu.org/manual/m4/html_mono/m4.html)

All these stub files are generated automatically, along with .cvsignore, by a little shell script named ext_skel that resides in the ext directory. As argument it takes the name of the module that you want to create. The shell script then creates a directory of the same name, along with the appropriate stub files.

Step by step, the process looks like this:
:~/cvs/php4/ext:> ./ext_skel --extname=my_module
Creating directory my_module
Creating basic files: config.m4 .cvsignore my_module.c php_my_module.h CREDITS EXPERIMENTAL tests/001.phpt my_module.php [done].

To use your new extension, you will have to execute the following steps:

1.  $ cd ..
2.  $ vi ext/my_module/config.m4
3.  $ ./buildconf
4.  $ ./configure --[with|enable]-my_module
5.  $ make
6.  $ ./php -f ext/my_module/my_module.php
7.  $ vi ext/my_module/my_module.c
8.  $ make

Repeat steps 3-6 until you are satisfied with ext/my_module/config.m4 and
step 6 confirms that your module is compiled into PHP. Then, start writing
code and repeat the last two steps as often as necessary.
This instruction creates the aforementioned files. To include the new module in the automatic configuration and build process, you have to run buildconf, which regenerates the configure script by searching through the ext directory and including all found config.m4 files.

The default config.m4 shown in Ejemplo 27-1 is a bit more complex:

Ejemplo 27-1. The default config.m4.

dnl $Id: Extending_Zend_Build.xml,v 1.8 2002/10/10 18:13:11 imajes Exp $
dnl config.m4 for extension my_module

dnl Comments in this file start with the string 'dnl'.
dnl Remove where necessary. This file will not work
dnl without editing.

dnl If your extension references something external, use with:

dnl PHP_ARG_WITH(my_module, for my_module support,
dnl Make sure that the comment is aligned:
dnl [  --with-my_module             Include my_module support])

dnl Otherwise use enable:

dnl PHP_ARG_ENABLE(my_module, whether to enable my_module support,
dnl Make sure that the comment is aligned:
dnl [  --enable-my_module           Enable my_module support])

if test "$PHP_MY_MODULE" != "no"; then
  dnl Write more examples of tests here...

  dnl # --with-my_module -> check with-path
  dnl SEARCH_PATH="/usr/local /usr"     # you might want to change this
  dnl SEARCH_FOR="/include/my_module.h"  # you most likely want to change this
  dnl if test -r $PHP_MY_MODULE/; then # path given as parameter
  dnl   MY_MODULE_DIR=$PHP_MY_MODULE
  dnl else # search default path list
  dnl   AC_MSG_CHECKING([for my_module files in default path])
  dnl   for i in $SEARCH_PATH ; do
  dnl     if test -r $i/$SEARCH_FOR; then
  dnl       MY_MODULE_DIR=$i
  dnl       AC_MSG_RESULT(found in $i)
  dnl     fi
  dnl   done
  dnl fi
  dnl
  dnl if test -z "$MY_MODULE_DIR"; then
  dnl   AC_MSG_RESULT([not found])
  dnl   AC_MSG_ERROR([Please reinstall the my_module distribution])
  dnl fi

  dnl # --with-my_module -> add include path
  dnl PHP_ADD_INCLUDE($MY_MODULE_DIR/include)

  dnl # --with-my_module -> chech for lib and symbol presence
  dnl LIBNAME=my_module # you may want to change this
  dnl LIBSYMBOL=my_module # you most likely want to change this

  dnl PHP_CHECK_LIBRARY($LIBNAME,$LIBSYMBOL,
  dnl [
  dnl   PHP_ADD_LIBRARY_WITH_PATH($LIBNAME, $MY_MODULE_DIR/lib, MY_MODULE_SHARED_LIBADD)
  dnl   AC_DEFINE(HAVE_MY_MODULELIB,1,[ ])
  dnl ],[
  dnl   AC_MSG_ERROR([wrong my_module lib version or lib not found])
  dnl ],[
  dnl   -L$MY_MODULE_DIR/lib -lm -ldl
  dnl ])
  dnl
  dnl PHP_SUBST(MY_MODULE_SHARED_LIBADD)

  PHP_NEW_EXTENSION(my_module, my_module.c, $ext_shared)
fi

If you're unfamiliar with M4 files (now is certainly a good time to get familiar), this might be a bit confusing at first; but it's actually quite easy.

Note: Everything prefixed with dnl is treated as a comment and is not parsed.

The config.m4 file is responsible for parsing the command-line options passed to configure at configuration time. This means that it has to check for required external files and do similar configuration and setup tasks.

The default file creates two configuration directives in the configure script: --with-my_module and --enable-my_module. Use the first option when referring external files (such as the --with-apache directive that refers to the Apache directory). Use the second option when the user simply has to decide whether to enable your extension. Regardless of which option you use, you should uncomment the other, unnecessary one; that is, if you're using --enable-my_module, you should remove support for --with-my_module, and vice versa.

By default, the config.m4 file created by ext_skel accepts both directives and automatically enables your extension. Enabling the extension is done by using the PHP_EXTENSION macro. To change the default behavior to include your module into the PHP binary when desired by the user (by explicitly specifying --enable-my_module or --with-my_module), change the test for $PHP_MY_MODULE to == "yes":
if test "$PHP_MY_MODULE" == "yes"; then dnl
    Action.. PHP_EXTENSION(my_module, $ext_shared)
    fi
This would require you to use --enable-my_module each time when reconfiguring and recompiling PHP.

Note: Be sure to run buildconf every time you change config.m4!

We'll go into more details on the M4 macros available to your configuration scripts later in this chapter. For now, we'll simply use the default files.

Anterior | Inicio | Siguiente
Complex Types | Subir | Creating Extensions


Creating Extensions

Manual de PHP
Anterior Siguiente

Capítulo 28. Creating Extensions

Tabla de contenidos
Compiling Modules

We'll start with the creation of a very simple extension at first, which basically does nothing more than implement a function that returns the integer it receives as parameter. Ejemplo 28-1 shows the source.

Ejemplo 28-1. A simple extension.

/* include standard header */
#include "php.h"

/* declaration of functions to be exported */
ZEND_FUNCTION(first_module);

/* compiled function list so Zend knows what's in this module */
zend_function_entry firstmod_functions[] =
{
    ZEND_FE(first_module, NULL)
    {NULL, NULL, NULL}
};

/* compiled module information */
zend_module_entry firstmod_module_entry =
{
    STANDARD_MODULE_HEADER,
    "First Module",
    firstmod_functions,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NO_VERSION_YET,
    STANDARD_MODULE_PROPERTIES
};

/* implement standard "stub" routine to introduce ourselves to Zend */
#if COMPILE_DL_FIRST_MODULE
ZEND_GET_MODULE(firstmod)
#endif

/* implement function that is meant to be made available to PHP */
ZEND_FUNCTION(first_module)
{
    long parameter;

    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &parameter) == FAILURE) {
        return;
    }

    RETURN_LONG(parameter);
}

This code contains a complete PHP module. We'll explain the source code in detail shortly, but first we'd like to discuss the build process. (This will allow the impatient to experiment before we dive into API discussions.)

Nota: The example source makes use of some features introduced with the Zend version used in PHP 4.1.0 and above, it won't compile with older PHP 4.0.x versions.

Compiling Modules

There are basically two ways to compile modules:

  • Use the provided "make" mechanism in the ext directory, which also allows building of dynamic loadable modules.

  • Compile the sources manually.

The first method should definitely be favored, since, as of PHP 4.0, this has been standardized into a sophisticated build process. The fact that it is so sophisticated is also its drawback, unfortunately - it's hard to understand at first. We'll provide a more detailed introduction to this later in the chapter, but first let's work with the default files.

The second method is good for those who (for some reason) don't have the full PHP source tree available, don't have access to all files, or just like to juggle with their keyboard. These cases should be extremely rare, but for the sake of completeness we'll also describe this method.

Compiling Using Make. To compile the sample sources using the standard mechanism, copy all their subdirectories to the ext directory of your PHP source tree. Then run buildconf, which will create an updated configure script containing appropriate options for the new extension. By default, all the sample sources are disabled, so you don't have to fear breaking your build process.

After you run buildconf, configure --help shows the following additional modules:

--enable-array_experiments   BOOK: Enables array experiments
  --enable-call_userland       BOOK: Enables userland module
  --enable-cross_conversion    BOOK: Enables cross-conversion module
  --enable-first_module        BOOK: Enables first module
  --enable-infoprint           BOOK: Enables infoprint module
  --enable-reference_test      BOOK: Enables reference test module
  --enable-resource_test       BOOK: Enables resource test module
  --enable-variable_creation   BOOK: Enables variable-creation module

The module shown earlier in Ejemplo 28-1 can be enabled with --enable-first_module or --enable-first_module=yes.

Compiling Manually. To compile your modules manually, you need the following commands:

Action | Command
Compiling | cc -fpic -DCOMPILE_DL=1 -I/usr/local/include -I. -I.. -I../Zend -c -o <your_object_file> <your_c_file>
Linking | cc -shared -L/usr/local/lib -rdynamic -o <your_module_file> <your_object_file(s)>

The command to compile the module simply instructs the compiler to generate position-independent code (-fpic shouldn't be omitted) and additionally defines the constant COMPILE_DL to tell the module code that it's compiled as a dynamically loadable module (the test module above checks for this; we'll discuss it shortly). After these options, it specifies a number of standard include paths that should be used as the minimal set to compile the source files.

Note: All include paths in the example are relative to the directory ext. If you're compiling from another directory, change the pathnames accordingly. Required items are the PHP directory, the Zend directory, and (if necessary), the directory in which your module resides.

The link command is also a plain vanilla command instructing linkage as a dynamic module.

You can include optimization options in the compilation command, although these have been omitted in this example (but some are included in the makefile template described in an earlier section).

Note: Compiling and linking manually as a static module into the PHP binary involves very long instructions and thus is not discussed here. (It's not very efficient to type all those commands.)

Anterior | Inicio | Siguiente
PHP's Automatic Build System | Subir | Using Extensions


Using Extensions

Manual de PHP
Anterior Siguiente

Capítulo 29. Using Extensions

Depending on the build process you selected, you should either end up with a new PHP binary to be linked into your Web server (or run as CGI), or with an .so (shared object) file. If you compiled the example file first_module.c as a shared object, your result file should be first_module.so. To use it, you first have to copy it to a place from which it's accessible to PHP. For a simple test procedure, you can copy it to your htdocs directory and try it with the source in Ejemplo 29-1. If you compiled it into the PHP binary, omit the call to dl(), as the module's functionality is instantly available to your scripts.

Aviso

For security reasons, you should not put your dynamic modules into publicly accessible directories. Even though it can be done and it simplifies testing, you should put them into a separate directory in production environments.

Ejemplo 29-1. A test file for first_module.so.

<?php

// remove next comment if necessary
// dl("first_module.so");

$param = 2;
$return = first_module($param);

print("We sent '$param' and got '$return'");

?>

Calling this PHP file in your Web browser should give you the output shown in Figura 29-1.

Figura 29-1. Output of first_module.php.

If required, the dynamic loadable module is loaded by calling the dl() function. This function looks for the specified shared object, loads it, and makes its functions available to PHP. The module exports the function first_module(), which accepts a single parameter, converts it to an integer, and returns the result of the conversion.

If you've gotten this far, congratulations! You just built your first extension to PHP.

Anterior | Inicio | Siguiente
Creating Extensions | Subir | Troubleshooting


Troubleshooting

Manual de PHP
Anterior Siguiente

Capítulo 30. Troubleshooting

Actually, not much troubleshooting can be done when compiling static or dynamic modules. The only problem that could arise is that the compiler will complain about missing definitions or something similar. In this case, make sure that all header files are available and that you specified their path correctly in the compilation command. To be sure that everything is located correctly, extract a clean PHP source tree and use the automatic build in the ext directory with the fresh files; this will guarantee a safe compilation environment. If this fails, try manual compilation.

PHP might also complain about missing functions in your module. (This shouldn't happen with the sample sources if you didn't modify them.) If the names of external functions you're trying to access from your module are misspelled, they'll remain as "unlinked symbols" in the symbol table. During dynamic loading and linkage by PHP, they won't resolve because of the typing errors - there are no corresponding symbols in the main binary. Look for incorrect declarations in your module file or incorrectly written external references. Note that this problem is specific to dynamic loadable modules; it doesn't occur with static modules. Errors in static modules show up at compile time.

Anterior | Inicio | Siguiente
Using Extensions | Subir | Source Discussion


Source Discussion

Manual de PHP
Anterior Siguiente

Capítulo 31. Source Discussion

Tabla de contenidos
Module Structure
Header File Inclusions
Declaring Exported Functions
Declaration of the Zend Function Block
Declaration of the Zend Module Block
Creation of get_module()
Implementation of All Exported Functions
Summary

Now that you've got a safe build environment and you're able to include the modules into PHP files, it's time to discuss how everything works.

Module Structure

All PHP modules follow a common structure:

  • Header file inclusions (to include all required macros, API definitions, etc.)

  • C declaration of exported functions (required to declare the Zend function block)

  • Declaration of the Zend function block

  • Declaration of the Zend module block

  • Implementation of get_module()

  • Implementation of all exported functions

Anterior | Inicio | Siguiente
Troubleshooting | Subir | Header File Inclusions


Header File Inclusions

The only header file you really have to include for your modules is php.h, located in the PHP directory. This file makes all macros and API definitions required to build new modules available to your code.

Tip: It's good practice to create a separate header file for your module that contains module-specific definitions. This header file should contain all the forward definitions for exported functions and include php.h. If you created your module using ext_skel you already have such a header file prepared.

Anterior | Inicio | Siguiente
Source Discussion | Subir | Declaring Exported Functions


Declaring Exported Functions

To declare functions that are to be exported (i.e., made available to PHP as new native functions), Zend provides a set of macros. A sample declaration looks like this:
ZEND_FUNCTION ( my_function );

ZEND_FUNCTION declares a new C function that complies with Zend's internal API. This means that the function is of type void and accepts INTERNAL_FUNCTION_PARAMETERS (another macro) as parameters. Additionally, it prefixes the function name with zif. The immediately expanded version of the above definitions would look like this:
void zif_my_function ( INTERNAL_FUNCTION_PARAMETERS );
Expanding INTERNAL_FUNCTION_PARAMETERS results in the following:
void zif_my_function( int ht
                    , zval * return_value
                    , zval * this_ptr
                    , int return_value_used
                    , zend_executor_globals * executor_globals
                    );

Since the interpreter and executor core have been separated from the main PHP package, a second API defining macros and function sets has evolved: the Zend API. As the Zend API now handles quite a few of the responsibilities that previously belonged to PHP, a lot of PHP functions have been reduced to macros aliasing to calls into the Zend API. The recommended practice is to use the Zend API wherever possible, as the old API is only preserved for compatibility reasons. For example, the types zval and pval are identical. zval is Zend's definition; pval is PHP's definition (actually, pval is an alias for zval now). As the macro INTERNAL_FUNCTION_PARAMETERS is a Zend macro, the above declaration contains zval. When writing code, you should always use zval to conform to the new Zend API.

The parameter list of this declaration is very important; you should keep these parameters in mind (see Tabla 31-1 for descriptions).

Tabla 31-1. Zend's Parameters to Functions Called from PHP

Parameter | Description
ht | The number of arguments passed to the Zend function. You should not touch this directly, but instead use ZEND_NUM_ARGS() to obtain the value.
return_value | This variable is used to pass any return values of your function back to PHP. Access to this variable is best done using the predefined macros. For a description of these see below.
this_ptr | Using this variable, you can gain access to the object in which your function is contained, if it's used within an object. Use the function getThis() to obtain this pointer.
return_value_used | This flag indicates whether an eventual return value from this function will actually be used by the calling script. 0 indicates that the return value is not used; 1 indicates that the caller expects a return value. Evaluation of this flag can be done to verify correct usage of the function as well as speed optimizations in case returning a value requires expensive operations (for an example, see how array.c makes use of this).
executor_globals | This variable points to global settings of the Zend engine. You'll find this useful when creating new variables, for example (more about this later). The executor globals can also be introduced to your function by using the macro TSRMLS_FETCH().

Anterior | Inicio | Siguiente
Header File Inclusions | Subir | Declaration of the Zend Function Block


Declaration of the Zend Function Block

Now that you have declared the functions to be exported, you also have to introduce them to Zend. Introducing the list of functions is done by using an array of zend_function_entry. This array consecutively contains all functions that are to be made available externally, with the function's name as it should appear in PHP and its name as defined in the C source. Internally, zend_function_entry is defined as shown in Ejemplo 31-1.

Ejemplo 31-1. Internal declaration of zend_function_entry.

typedef struct _zend_function_entry {
    char *fname;
    void (*handler)(INTERNAL_FUNCTION_PARAMETERS);
    unsigned char *func_arg_types;
} zend_function_entry;

Entry | Description
fname | Denotes the function name as seen in PHP (for example, fopen, mysql_connect, or, in our example, first_module).
handler | Pointer to the C function responsible for handling calls to this function. For example, see the standard macro INTERNAL_FUNCTION_PARAMETERS discussed earlier.
func_arg_types | Allows you to mark certain parameters so that they're forced to be passed by reference. You usually should set this to NULL.

In the example above, the declaration looks like this:
zend_function_entry firstmod_functions[] =
{
    ZEND_FE(first_module, NULL)
    {NULL, NULL, NULL}
};
You can see that the last entry in the list always has to be {NULL, NULL, NULL}. This marker has to be set for Zend to know when the end of the list of exported functions is reached.

Nota: You cannot use the predefined macros for the end marker, as these would try to refer to a function named "NULL"!

The macro ZEND_FE (short for 'Zend Function Entry') simply expands to a structure entry in zend_function_entry. Note that these macros introduce a special naming scheme to your functions - your C functions will be prefixed with zif_, meaning that ZEND_FE(first_module) will refer to a C function zif_first_module(). If you want to mix macro usage with hand-coded entries (not a good practice), keep this in mind.

Tip: Compilation errors that refer to functions named zif_*() relate to functions defined with ZEND_FE.

Tabla 31-2 shows a list of all the macros that you can use to define functions.

Tabla 31-2. Macros for Defining Functions

Macro Name | Description
ZEND_FE(name, arg_types) | Defines a function entry of the name name in zend_function_entry. Requires a corresponding C function. arg_types needs to be set to NULL. This function uses automatic C function name generation by prefixing the PHP function name with zif_. For example, ZEND_FE("first_module", NULL) introduces a function first_module() to PHP and links it to the C function zif_first_module(). Use in conjunction with ZEND_FUNCTION.
ZEND_NAMED_FE(php_name, name, arg_types) | Defines a function that will be available to PHP by the name php_name and links it to the corresponding C function name. arg_types needs to be set to NULL. Use this function if you don't want the automatic name prefixing introduced by ZEND_FE. Use in conjunction with ZEND_NAMED_FUNCTION.
ZEND_FALIAS(name, alias, arg_types) | Defines an alias named alias for name. arg_types needs to be set to NULL. Doesn't require a corresponding C function; refers to the alias target instead.
PHP_FE(name, arg_types) | Old PHP API equivalent of ZEND_FE.
PHP_NAMED_FE(runtime_name, name, arg_types) | Old PHP API equivalent of ZEND_NAMED_FE.

Note: You can't use ZEND_FE in conjunction with PHP_FUNCTION, or PHP_FE in conjunction with ZEND_FUNCTION. However, it's perfectly legal to mix ZEND_FE and ZEND_FUNCTION with PHP_FE and PHP_FUNCTION when staying with the same macro set for each function to be declared. But mixing is not recommended; instead, you're advised to use the ZEND_* macros only.

Anterior | Inicio | Siguiente
Declaring Exported Functions | Subir | Declaration of the Zend Module Block


Declaration of the Zend Module Block

This block is stored in the structure zend_module_entry and contains all necessary information to describe the contents of this module to Zend. You can see the internal definition of this module in Ejemplo 31-2.

Ejemplo 31-2. Internal declaration of zend_module_entry.

typedef struct _zend_module_entry zend_module_entry;

    struct _zend_module_entry {
    unsigned short size;
    unsigned int zend_api;
    unsigned char zend_debug;
    unsigned char zts;
    char *name;
    zend_function_entry *functions;
    int (*module_startup_func)(INIT_FUNC_ARGS);
    int (*module_shutdown_func)(SHUTDOWN_FUNC_ARGS);
    int (*request_startup_func)(INIT_FUNC_ARGS);
    int (*request_shutdown_func)(SHUTDOWN_FUNC_ARGS);
    void (*info_func)(ZEND_MODULE_INFO_FUNC_ARGS);
    char *version;

[ Rest of the structure is not interesting here ]

};

Entry | Description
size, zend_api, zend_debug and zts | Usually filled with the "STANDARD_MODULE_HEADER", which fills these four members with the size of the whole zend_module_entry, the ZEND_MODULE_API_NO, whether it is a debug build or normal build (ZEND_DEBUG) and if ZTS is enabled (USING_ZTS).
name | Contains the module name (for example, "File functions", "Socket functions", "Crypt", etc.). This name will show up in phpinfo(), in the section "Additional Modules."
functions | Points to the Zend function block, discussed in the preceding section.
module_startup_func | This function is called once upon module initialization and can be used to do one-time initialization steps (such as initial memory allocation, etc.). To indicate a failure during initialization, return FAILURE; otherwise, SUCCESS. To mark this field as unused, use NULL. To declare a function, use the macro ZEND_MINIT.
module_shutdown_func | This function is called once upon module shutdown and can be used to do one-time deinitialization steps (such as memory deallocation). This is the counterpart to module_startup_func(). To indicate a failure during deinitialization, return FAILURE; otherwise, SUCCESS. To mark this field as unused, use NULL. To declare a function, use the macro ZEND_MSHUTDOWN.
request_startup_func | This function is called once upon every page request and can be used to do one-time initialization steps that are required to process a request. To indicate a failure here, return FAILURE; otherwise, SUCCESS. Note: As dynamic loadable modules are loaded only on page requests, the request startup function is called right after the module startup function (both initialization events happen at the same time). To mark this field as unused, use NULL. To declare a function, use the macro ZEND_RINIT.
request_shutdown_func | This function is called once after every page request and works as counterpart to request_startup_func(). To indicate a failure here, return FAILURE; otherwise, SUCCESS. Note: As dynamic loadable modules are loaded only on page requests, the request shutdown function is immediately followed by a call to the module shutdown handler (both deinitialization events happen at the same time). To mark this field as unused, use NULL. To declare a function, use the macro ZEND_RSHUTDOWN.
info_func | When phpinfo() is called in a script, Zend cycles through all loaded modules and calls this function. Every module then has the chance to print its own "footprint" into the output page. Generally this is used to dump environmental or statistical information. To mark this field as unused, use NULL. To declare a function, use the macro ZEND_MINFO.
version | The version of the module. You can use NO_VERSION_YET if you don't want to give the module a version number yet, but we really recommend that you add a version string here. Such a version string can look like this (in chronological order): "2.5-dev", "2.5RC1", "2.5" or "2.5pl3".
Remaining structure elements | These are used internally and can be prefilled by using the macro STANDARD_MODULE_PROPERTIES_EX. You should not assign any values to them. Use STANDARD_MODULE_PROPERTIES_EX only if you use global startup and shutdown functions; otherwise, use STANDARD_MODULE_PROPERTIES directly.

In our example, this structure is implemented as follows:
zend_module_entry firstmod_module_entry =
{
    STANDARD_MODULE_HEADER,
    "First Module",
    firstmod_functions,
    NULL, NULL, NULL, NULL, NULL,
    NO_VERSION_YET,
    STANDARD_MODULE_PROPERTIES,
};
This is basically the easiest and most minimal set of values you could ever use. The module name is set to First Module, then the function list is referenced, after which all startup and shutdown functions are marked as being unused.

For reference purposes, you can find a list of the macros involved in declared startup and shutdown functions in Tabla 31-3. These are not used in our basic example yet, but will be demonstrated later on. You should make use of these macros to declare your startup and shutdown functions, as these require special arguments to be passed (INIT_FUNC_ARGS and SHUTDOWN_FUNC_ARGS), which are automatically included into the function declaration when using the predefined macros. If you declare your functions manually and the PHP developers decide that a change in the argument list is necessary, you'll have to change your module sources to remain compatible.

Tabla 31-3. Macros to Declare Startup and Shutdown Functions

Macro | Description
ZEND_MINIT(module) | Declares a function for module startup. The generated name will be zend_minit_<module> (for example, zend_minit_first_module). Use in conjunction with ZEND_MINIT_FUNCTION.
ZEND_MSHUTDOWN(module) | Declares a function for module shutdown. The generated name will be zend_mshutdown_<module> (for example, zend_mshutdown_first_module). Use in conjunction with ZEND_MSHUTDOWN_FUNCTION.
ZEND_RINIT(module) | Declares a function for request startup. The generated name will be zend_rinit_<module> (for example, zend_rinit_first_module). Use in conjunction with ZEND_RINIT_FUNCTION.
ZEND_RSHUTDOWN(module) | Declares a function for request shutdown. The generated name will be zend_rshutdown_<module> (for example, zend_rshutdown_first_module). Use in conjunction with ZEND_RSHUTDOWN_FUNCTION.
ZEND_MINFO(module) | Declares a function for printing module information, used when phpinfo() is called. The generated name will be zend_info_<module> (for example, zend_info_first_module). Use in conjunction with ZEND_MINFO_FUNCTION.

Anterior | Inicio | Siguiente
Declaration of the Zend Function Block | Subir | Creation of get_module()


Implementation of All Exported Functions

Implementing the exported functions is the final step. The example function in first_module looks like this:
ZEND_FUNCTION(first_module)
{
    long parameter;

    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &parameter) == FAILURE) {
        return;
    }

    RETURN_LONG(parameter);
}
The function declaration is done using ZEND_FUNCTION, which corresponds to ZEND_FE in the function entry table (discussed earlier).

After the declaration, code for checking and retrieving the function's arguments, argument conversion, and return value generation follows (more on this later).

Anterior | Inicio | Siguiente
Creation of get_module() | Subir | Summary


Summary

That's it, basically - there's nothing more to implementing PHP modules. Built-in modules are structured similarly to dynamic modules, so, equipped with the information presented in the previous sections, you'll be able to fight the odds when encountering PHP module source files.

Now, in the following sections, read on about how to make use of PHP's internals to build powerful extensions.

Anterior | Inicio | Siguiente
Implementation of All Exported Functions | Subir | Accepting Arguments


Accepting Arguments

Manual de PHP
Anterior Siguiente

Capítulo 32. Accepting Arguments

Tabla de contenidos
Determining the Number of Arguments
Retrieving Arguments
Old way of retrieving arguments (deprecated)
Dealing with a Variable Number of Arguments/Optional Parameters
Accessing Arguments
Dealing with Arguments Passed by Reference
Assuring Write Safety for Other Parameters

One of the most important issues for language extensions is accepting and dealing with data passed via arguments. Most extensions are built to deal with specific input data (or require parameters to perform their specific actions), and function arguments are the only real way to exchange data between the PHP level and the C level. Of course, there's also the possibility of exchanging data using predefined global values (which is also discussed later), but this should be avoided by all means, as it's extremely bad practice.

PHP doesn't make use of any formal function declarations; this is why call syntax is always completely dynamic and never checked for errors. Checking for correct call syntax is left to the user code. For example, it's possible to call a function using only one argument at one time and four arguments the next time - both invocations are syntactically absolutely correct.

Determining the Number of Arguments

Since PHP doesn't have formal function definitions with support for call syntax checking, and since PHP features variable arguments, sometimes you need to find out with how many arguments your function has been called. You can use the ZEND_NUM_ARGS macro in this case. In previous versions of PHP, this macro retrieved the number of arguments with which the function has been called based on the function's hash table entry, ht, which is passed in the INTERNAL_FUNCTION_PARAMETERS list. As ht itself now contains the number of arguments that have been passed to the function, ZEND_NUM_ARGS has been stripped down to a dummy macro (see its definition in zend_API.h). But it's still good practice to use it, to remain compatible with future changes in the call interface. Note: The old PHP equivalent of this macro is ARG_COUNT.

The following code checks for the correct number of arguments:
if(ZEND_NUM_ARGS() != 2) WRONG_PARAM_COUNT;
If the function is not called with two arguments, it exits with an error message. The code snippet above makes use of the tool macro WRONG_PARAM_COUNT, which can be used to generate a standard error message (see Figura 32-1).

Figura 32-1. WRONG_PARAM_COUNT in action.

This macro prints a default error message and then returns to the caller. Its definition can also be found in zend_API.h and looks like this:
ZEND_API void wrong_param_count(void);

#define WRONG_PARAM_COUNT { wrong_param_count(); return; }
As you can see, it calls an internal function named wrong_param_count() that's responsible for printing the warning. For details on generating customized error messages, see the later section "Printing Information."

Anterior | Inicio | Siguiente
Summary | Subir | Retrieving Arguments


Retrieving Arguments

New parameter parsing API: This chapter documents the new Zend parameter parsing API introduced by Andrei Zmievski. It was introduced in the development stage between PHP 4.0.6 and 4.1.0 .

Parsing parameters is a very common operation and it may get a bit tedious. It would also be nice to have standardized error checking and error messages. Since PHP 4.1.0, there is a way to do just that by using the new parameter parsing API. It greatly simplifies the process of receiving parameteres, but it has a drawback in that it can't be used for functions that expect variable number of parameters. But since the vast majority of functions do not fall into those categories, this parsing API is recommended as the new standard way.

The prototype for parameter parsing function looks like this:
int zend_parse_parameters(int num_args TSRMLS_DC, char *type_spec, ...);
The first argument to this function is supposed to be the number of actual parameters passed to your function, so ZEND_NUM_ARGS() can be used for that. The second parameter should always be TSRMLS_CC macro. The third argument is a string that specifies the number and types of arguments your function is expecting, similar to how printf format string specifies the number and format of the output values it should operate on. And finally the rest of the arguments are pointers to variables which should receive the values from the parameters.

zend_parse_parameters() also performs type conversions whenever possible, so that you always receive the data in the format you asked for. Any type of scalar can be converted to another one, but conversions between complex types (arrays, objects, and resources) and scalar types are not allowed.

If the parameters could be obtained successfully and there were no errors during type conversion, the function will return SUCCESS, otherwise it will return FAILURE. The function will output informative error messages, if the number of received parameters does not match the requested number, or if type conversion could not be performed.

Here are some sample error messages:
Warning - ini_get_all() requires at most 1 parameter, 2 given
     Warning - wddx_deserialize() expects parameter 1 to be string, array given
Of course each error message is accompanied by the filename and line number on which it occurs.

Here is the full list of type specifiers:

  • l - long

  • d - double

  • s - string (with possible null bytes) and its length

  • b - boolean

  • r - resource, stored in zval*

  • a - array, stored in zval*

  • o - object (of any class), stored in zval*

  • O - object (of class specified by class entry), stored in zval*

  • z - the actual zval*

The following characters also have a meaning in the specifier string:

  • | - indicates that the remaining parameters are optional. The storage variables corresponding to these parameters should be initialized to default values by the extension, since they will not be touched by the parsing function if the parameters are not passed.

  • / - the parsing function will call SEPARATE_ZVAL_IF_NOT_REF() on the parameter it follows, to provide a copy of the parameter, unless it's a reference.

  • ! - the parameter it follows can be of specified type or NULL (only applies to a, o, O, r, and z). If NULL value is passed by the user, the storage pointer will be set to NULL.

The best way to illustrate the usage of this function is through examples:
/* Gets a long, a string and its length, and a zval. */
long l;
char *s;
int s_len;
zval *param;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
                          "lsz", &l, &s, &s_len, &param) == FAILURE) {
    return;
}

/* Gets an object of class specified by my_ce, and an optional double. */
zval *obj;
double d = 0.5;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
                          "O|d", &obj, my_ce, &d) == FAILURE) {
    return;
}

/* Gets an object or null, and an array.
   If null is passed for object, obj will be set to NULL. */
zval *obj;
zval *arr;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O!a", &obj, &arr) == FAILURE) {
    return;
}

/* Gets a separated array. */
zval *arr;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a/", &arr) == FAILURE) {
    return;
}

/* Get only the first three parameters (useful for varargs functions). */
zval *z;
zend_bool b;
zval *r;
if (zend_parse_parameters(3, "zbr!", &z, &b, &r) == FAILURE) {
    return;
}

Note that in the last example we pass 3 for the number of received parameters, instead of ZEND_NUM_ARGS(). What this lets us do is receive the least number of parameters if our function expects a variable number of them. Of course, if you want to operate on the rest of the parameters, you will have to use zend_get_parameters_array_ex() to obtain them.

The parsing function has an extended version that allows for an additional flags argument that controls its actions.
int zend_parse_parameters_ex(int flags, int num_args TSRMLS_DC, char *type_spec, ...);

The only flag you can pass currently is ZEND_PARSE_PARAMS_QUIET, which instructs the function to not output any error messages during its operation. This is useful for functions that expect several sets of completely different arguments, but you will have to output your own error messages.

For example, here is how you would get either a set of three longs or a string:
long l1, l2, l3;
char *s;
if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET,
                             ZEND_NUM_ARGS() TSRMLS_CC,
                             "lll", &l1, &l2, &l3) == SUCCESS) {
    /* manipulate longs */
} else if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET,
                                    ZEND_NUM_ARGS(), "s", &s, &s_len) == SUCCESS) {
    /* manipulate string */
} else {
    php_error(E_WARNING, "%s() takes either three long values or a string as argument",
              get_active_function_name(TSRMLS_C));
    return;
}

With all the abovementioned ways of receiving function parameters you should have a good handle on this process. For even more example, look through the source code for extensions that are shipped with PHP - they illustrate every conceivable situation.

Anterior | Inicio | Siguiente
Accepting Arguments | Subir | Old way of retrieving arguments (deprecated)


Old way of retrieving arguments (deprecated)

Deprecated parameter parsing API: This API is deprecated and superseded by the new ZEND parameter parsing API.

After having checked the number of arguments, you need to get access to the arguments themselves. This is done with the help of zend_get_parameters_ex():
zval **parameter;

if(zend_get_parameters_ex(1, &parameter) != SUCCESS)
  WRONG_PARAM_COUNT;
All arguments are stored in a zval container, which needs to be pointed to twice. The snippet above tries to retrieve one argument and make it available to us via the parameter pointer.

zend_get_parameters_ex() accepts at least two arguments. The first argument is the number of arguments to retrieve (which should match the number of arguments with which the function has been called; this is why it's important to check for correct call syntax). The second argument (and all following arguments) are pointers to pointers to pointers to zvals. (Confusing, isn't it?) All these pointers are required because Zend works internally with **zval; to adjust a local **zval in our function,zend_get_parameters_ex() requires a pointer to it.

The return value of zend_get_parameters_ex() can either be SUCCESS or FAILURE, indicating (unsurprisingly) success or failure of the argument processing. A failure is most likely related to an incorrect number of arguments being specified, in which case you should exit with WRONG_PARAM_COUNT.

To retrieve more than one argument, you can use a similar snippet:
zval **param1, **param2, **param3, **param4;

if(zend_get_parameters_ex(4, &param1, &param2, &param3, &param4) != SUCCESS)
    WRONG_PARAM_COUNT;

zend_get_parameters_ex() only checks whether you're trying to retrieve too many parameters. If the function is called with five arguments, but you're only retrieving three of them with zend_get_parameters_ex(), you won't get an error but will get the first three parameters instead. Subsequent calls of zend_get_parameters_ex() won't retrieve the remaining arguments, but will get the same arguments again.

Anterior | Inicio | Siguiente
Retrieving Arguments | Subir | Dealing with a Variable Number of Arguments/Optional Parameters


Dealing with a Variable Number of Arguments/Optional Parameters

If your function is meant to accept a variable number of arguments, the snippets just described are sometimes suboptimal solutions. You have to create a line calling zend_get_parameters_ex() for every possible number of arguments, which is often unsatisfying.

For this case, you can use the function zend_get_parameters_array_ex(), which accepts the number of parameters to retrieve and an array in which to store them:
zval **parameter_array[4];

/* get the number of arguments */
argument_count = ZEND_NUM_ARGS();

/* see if it satisfies our minimal request (2 arguments) */
/* and our maximal acceptance (4 arguments) */
if(argument_count < 2 || argument_count > 5)
    WRONG_PARAM_COUNT;

/* argument count is correct, now retrieve arguments */
if(zend_get_parameters_array_ex(argument_count, parameter_array) != SUCCESS)
    WRONG_PARAM_COUNT;
First, the number of arguments is checked to make sure that it's in the accepted range. After that, zend_get_parameters_array_ex() is used to fill parameter_array with valid pointers to the argument values.

A very clever implementation of this can be found in the code handling PHP's fsockopen() located in ext/standard/fsock.c, as shown in Ejemplo 32-1. Don't worry if you don't know all the functions used in this source yet; we'll get to them shortly.

Ejemplo 32-1. PHP's implementation of variable arguments in fsockopen().

pval **args[5];
int *sock=emalloc(sizeof(int));
int *sockp;
int arg_count=ARG_COUNT(ht);
int socketd = -1;
unsigned char udp = 0;
struct timeval timeout = { 60, 0 };
unsigned short portno;
unsigned long conv;
char *key = NULL;
FLS_FETCH();

if (arg_count > 5 || arg_count < 2 || zend_get_parameters_array_ex(arg_count,args)==FAILURE) {
    CLOSE_SOCK(1);
    WRONG_PARAM_COUNT;
}

switch(arg_count) {
    case 5:
        convert_to_double_ex(args[4]);
        conv = (unsigned long) (Z_DVAL_P(args[4]) * 1000000.0);
        timeout.tv_sec = conv / 1000000;
        timeout.tv_usec = conv % 1000000;
        /* fall-through */
    case 4:
        if (!PZVAL_IS_REF(*args[3])) {
            php_error(E_WARNING,"error string argument to fsockopen not passed by reference");
        }
        pval_copy_constructor(*args[3]);
        ZVAL_EMPTY_STRING(*args[3]);
        /* fall-through */
    case 3:
        if (!PZVAL_IS_REF(*args[2])) {
            php_error(E_WARNING,"error argument to fsockopen not passed by reference");
            return;
        }
        ZVAL_LONG(*args[2], 0);
        break;
}

convert_to_string_ex(args[0]);
convert_to_long_ex(args[1]);
portno = (unsigned short) Z_LVAL_P(args[1]);

key = emalloc(Z_STRLEN_P(args[0]) + 10);

fsockopen() accepts two, three, four, or five parameters. After the obligatory variable declarations, the function checks for the correct range of arguments. Then it uses a fall-through mechanism in a switch() statement to deal with all arguments. The switch() statement starts with the maximum number of arguments being passed (five). After that, it automatically processes the case of four arguments being passed, then three, by omitting the otherwise obligatory break keyword in all stages. After having processed the last case, it exits the switch() statement and does the minimal argument processing needed if the function is invoked with only two arguments.

This multiple-stage type of processing, similar to a stairway, allows convenient processing of a variable number of arguments.

Anterior | Inicio | Siguiente
Old way of retrieving arguments (deprecated) | Subir | Accessing Arguments


Accessing Arguments

To access arguments, it's necessary for each argument to have a clearly defined type. Again, PHP's extremely dynamic nature introduces some quirks. Because PHP never does any kind of type checking, it's possible for a caller to pass any kind of data to your functions, whether you want it or not. If you expect an integer, for example, the caller might pass an array, and vice versa - PHP simply won't notice.

To work around this, you have to use a set of API functions to force a type conversion on every argument that's being passed (see Tabla 32-1).

Note: All conversion functions expect a **zval as parameter.

Tabla 32-1. Argument Conversion Functions

Function | Description
convert_to_boolean_ex() | Forces conversion to a Boolean type. Boolean values remain untouched. Longs, doubles, and strings containing 0 as well as NULL values will result in Boolean 0 (FALSE). Arrays and objects are converted based on the number of entries or properties, respectively, that they have. Empty arrays and objects are converted to FALSE; otherwise, to TRUE. All other values result in a Boolean 1 (TRUE).
convert_to_long_ex() | Forces conversion to a long, the default integer type. NULL values, Booleans, resources, and of course longs remain untouched. Doubles are truncated. Strings containing an integer are converted to their corresponding numeric representation, otherwise resulting in 0. Arrays and objects are converted to 0 if empty, 1 otherwise.
convert_to_double_ex() | Forces conversion to a double, the default floating-point type. NULL values, Booleans, resources, longs, and of course doubles remain untouched. Strings containing a number are converted to their corresponding numeric representation, otherwise resulting in 0.0. Arrays and objects are converted to 0.0 if empty, 1.0 otherwise.
convert_to_string_ex() | Forces conversion to a string. Strings remain untouched. NULL values are converted to an empty string. Booleans containing TRUE are converted to "1", otherwise resulting in an empty string. Longs and doubles are converted to their corresponding string representation. Arrays are converted to the string "Array" and objects to the string "Object".
convert_to_array_ex(value) | Forces conversion to an array. Arrays remain untouched. Objects are converted to an array by assigning all their properties to the array table. All property names are used as keys, property contents as values. NULL values are converted to an empty array. All other values are converted to an array that contains the specific source value in the element with the key 0.
convert_to_object_ex(value) | Forces conversion to an object. Objects remain untouched. NULL values are converted to an empty object. Arrays are converted to objects by introducing their keys as properties into the objects and their values as corresponding property contents in the object. All other types result in an object with the property scalar , having the corresponding source value as content.
convert_to_null_ex(value) | Forces the type to become a NULL value, meaning empty.

Nota: You can find a demonstration of the behavior in cross_conversion.php on the accompanying CD-ROM. Figura 32-2 shows the output.

Figura 32-2. Cross-conversion behavior of PHP.

Using these functions on your arguments will ensure type safety for all data that's passed to you. If the supplied type doesn't match the required type, PHP forces dummy contents on the resulting value (empty strings, arrays, or objects, 0 for numeric values, FALSE for Booleans) to ensure a defined state.

Following is a quote from the sample module discussed previously, which makes use of the conversion functions:
zval **parameter;

if((ZEND_NUM_ARGS() != 1) || (zend_get_parameters_ex(1, &parameter) != SUCCESS))
{
    WRONG_PARAM_COUNT;
}

convert_to_long_ex(parameter);

RETURN_LONG(Z_LVAL_P(parameter));
After retrieving the parameter pointer, the parameter value is converted to a long (an integer), which also forms the return value of this function. Understanding access to the contents of the value requires a short discussion of the zval type, whose definition is shown in Ejemplo 32-2.

Ejemplo 32-2. PHP/Zend zval type definition.

typedef pval zval;

typedef struct _zval_struct zval;

typedef union _zvalue_value {
    long lval;					/* long value */
    double dval;				/* double value */
    struct {
        char *val;
        int len;
    } str;
    HashTable *ht;				/* hash table value */
    struct {
        zend_class_entry *ce;
        HashTable *properties;
    } obj;
} zvalue_value;

struct _zval_struct {
    /* Variable information */
    zvalue_value value;		/* value */
    unsigned char type;	/* active type */
    unsigned char is_ref;
    short refcount;
};

Actually, pval (defined in php.h) is only an alias of zval (defined in zend.h), which in turn refers to _zval_struct. This is a most interesting structure. _zval_struct is the "master" structure, containing the value structure, type, and reference information. The substructure zvalue_value is a union that contains the variable's contents. Depending on the variable's type, you'll have to access different members of this union. For a description of both structures, see Tabla 32-2, Tabla 32-3 and Tabla 32-4.

Tabla 32-2. Zend zval Structure

Entry | Description
value | Union containing this variable's contents. See Tabla 32-3 for a description.
type | Contains this variable's type. For a list of available types, see Tabla 32-4.
is_ref | 0 means that this variable is not a reference; 1 means that this variable is a reference to another variable.
refcount | The number of references that exist for this variable. For every new reference to the value stored in this variable, this counter is increased by 1. For every lost reference, this counter is decreased by 1. When the reference counter reaches 0, no references exist to this value anymore, which causes automatic freeing of the value.

Tabla 32-3. Zend zvalue_value Structure

Entry | Description
lval | Use this property if the variable is of the type IS_LONG, IS_BOOLEAN, or IS_RESOURCE.
dval | Use this property if the variable is of the type IS_DOUBLE.
str | This structure can be used to access variables of the type IS_STRING. The member len contains the string length; the member val points to the string itself. Zend uses C strings; thus, the string length contains a trailing 0x00.
ht | This entry points to the variable's hash table entry if the variable is an array.
obj | Use this property if the variable is of the type IS_OBJECT.

Tabla 32-4. Zend Variable Type Constants

Constant | Description
IS_NULL | Denotes a NULL (empty) value.
IS_LONG | A long (integer) value.
IS_DOUBLE | A double (floating point) value.
IS_STRING | A string.
IS_ARRAY | Denotes an array.
IS_OBJECT | An object.
IS_BOOL | A Boolean value.
IS_RESOURCE | A resource (for a discussion of resources, see the appropriate section below).
IS_CONSTANT | A constant (defined) value.

To access a long you access zval.value.lval, to access a double you use zval.value.dval, and so on. Because all values are stored in a union, trying to access data with incorrect union members results in meaningless output.

Accessing arrays and objects is a bit more complicated and is discussed later.

Anterior | Inicio | Siguiente
Dealing with a Variable Number of Arguments/Optional Parameters | Subir | Dealing with Arguments Passed by Reference


Dealing with Arguments Passed by Reference

If your function accepts arguments passed by reference that you intend to modify, you need to take some precautions.

What we didn't say yet is that under the circumstances presented so far, you don't have write access to any zval containers designating function parameters that have been passed to you. Of course, you can change any zval containers that you created within your function, but you mustn't change any zvals that refer to Zend-internal data!

We've only discussed the so-called *_ex() API so far. You may have noticed that the API functions we've used are called zend_get_parameters_ex() instead of zend_get_parameters(), convert_to_long_ex() instead of convert_to_long(), etc. The *_ex() functions form the so-called new "extended" Zend API. They give a minor speed increase over the old API, but as a tradeoff are only meant for providing read-only access.

Because Zend works internally with references, different variables may reference the same value. Write access to a zval container requires this container to contain an isolated value, meaning a value that's not referenced by any other containers. If a zval container were referenced by other containers and you changed the referenced zval, you would automatically change the contents of the other containers referencing this zval (because they'd simply point to the changed value and thus change their own value as well).

zend_get_parameters_ex() doesn't care about this situation, but simply returns a pointer to the desired zval containers, whether they consist of references or not. Its corresponding function in the traditional API, zend_get_parameters(), immediately checks for referenced values. If it finds a reference, it creates a new, isolated zval container; copies the referenced data into this newly allocated space; and then returns a pointer to the new, isolated value.

This action is called zval separation (or pval separation). Because the *_ex() API doesn't perform zval separation, it's considerably faster, while at the same time disabling write access.

To change parameters, however, write access is required. Zend deals with this situation in a special way: Whenever a parameter to a function is passed by reference, it performs automatic zval separation. This means that whenever you're calling a function like this in PHP, Zend will automatically ensure that $parameter is being passed as an isolated value, rendering it to a write-safe state:
my_function(&$parameter);

But this is not the case with regular parameters! All other parameters that are not passed by reference are in a read-only state.

This requires you to make sure that you're really working with a reference - otherwise you might produce unwanted results. To check for a parameter being passed by reference, you can use the macro PZVAL_IS_REF. This macro accepts a zval* to check if it is a reference or not. Examples are given in in Ejemplo 32-3.

Ejemplo 32-3. Testing for referenced parameter passing.

zval *parameter;

if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &parameter) == FAILURE)
    return;

/* check for parameter being passed by reference */
if (!PZVAL_IS_REF(*parameter)) {
{
    zend_error(E_WARNING, "Parameter wasn't passed by reference");
    RETURN_NULL();
}

/* make changes to the parameter */
ZVAL_LONG(*parameter, 10);

Anterior | Inicio | Siguiente
Accessing Arguments | Subir | Assuring Write Safety for Other Parameters


Assuring Write Safety for Other Parameters

You might run into a situation in which you need write access to a parameter that's retrieved with zend_get_parameters_ex() but not passed by reference. For this case, you can use the macro SEPARATE_ZVAL, which does a zval separation on the provided container. The newly generated zval is detached from internal data and has only a local scope, meaning that it can be changed or destroyed without implying global changes in the script context:
zval **parameter;

/* retrieve parameter */
zend_get_parameters_ex(1, &parameter);

/* at this stage, <parameter> still is connected */
/* to Zend's internal data buffers */

/* make <parameter> write-safe */
SEPARATE_ZVAL(parameter);

/* now we can safely modify <parameter> */
/* without implying global changes */
SEPARATE_ZVAL uses emalloc() to allocate the new zval container, which means that even if you don't deallocate this memory yourself, it will be destroyed automatically upon script termination. However, doing a lot of calls to this macro without freeing the resulting containers will clutter up your RAM.

Note: As you can easily work around the lack of write access in the "traditional" API (with zend_get_parameters() and so on), this API seems to be obsolete, and is not discussed further in this chapter.

Anterior | Inicio | Siguiente
Dealing with Arguments Passed by Reference | Subir | Creating Variables


Creating Variables

Manual de PHP
Anterior Siguiente

Capítulo 33. Creating Variables

Tabla de contenidos
Overview
Longs (Integers)
Doubles (Floats)
Strings
Booleans
Arrays
Objects
Resources
Macros for Automatic Global Variable Creation
Creating Constants

When exchanging data from your own extensions with PHP scripts, one of the most important issues is the creation of variables. This section shows you how to deal with the variable types that PHP supports.

Overview

To create new variables that can be seen "from the outside" by the executing script, you need to allocate a new zval container, fill this container with meaningful values, and then introduce it to Zend's internal symbol table. This basic process is common to all variable creations:

zval *new_variable;

/* allocate and initialize new container */
MAKE_STD_ZVAL(new_variable);

/* set type and variable contents here, see the following sections */

/* introduce this variable by the name "new_variable_name" into the symbol table */
ZEND_SET_SYMBOL(EG(active_symbol_table), "new_variable_name", new_variable);

/* the variable is now accessible to the script by using $new_variable_name */

The macro MAKE_STD_ZVAL allocates a new zval container using ALLOC_ZVAL and initializes it using INIT_ZVAL. As implemented in Zend at the time of this writing, initializing means setting the reference count to 1 and clearing the is_ref flag, but this process could be extended later - this is why it's a good idea to keep using MAKE_STD_ZVAL instead of only using ALLOC_ZVAL. If you want to optimize for speed (and you don't have to explicitly initialize the zval container here), you can use ALLOC_ZVAL, but this isn't recommended because it doesn't ensure data integrity.

ZEND_SET_SYMBOL takes care of introducing the new variable to Zend's symbol table. This macro checks whether the value already exists in the symbol table and converts the new symbol to a reference if so (with automatic deallocation of the old zval container). This is the preferred method if speed is not a crucial issue and you'd like to keep memory usage low.

Note that ZEND_SET_SYMBOL makes use of the Zend executor globals via the macro EG. By specifying EG(active_symbol_table), you get access to the currently active symbol table, dealing with the active, local scope. The local scope may differ depending on whether the function was invoked from within a function.

If you need to optimize for speed and don't care about optimal memory usage, you can omit the check for an existing variable with the same value and instead force insertion into the symbol table by using zend_hash_update():
zval *new_variable;

/* allocate and initialize new container */
MAKE_STD_ZVAL(new_variable);

/* set type and variable contents here, see the following sections */

/* introduce this variable by the name "new_variable_name" into the symbol table */
zend_hash_update(
    EG(active_symbol_table),
    "new_variable_name",
    strlen("new_variable_name") + 1,
    &new_variable,
    sizeof(zval *),
    NULL
);
This is actually the standard method used in most modules.

The variables generated with the snippet above will always be of local scope, so they reside in the context in which the function has been called. To create new variables in the global scope, use the same method but refer to another symbol table:
zval *new_variable;

// allocate and initialize new container
MAKE_STD_ZVAL(new_variable);

//
// set type and variable contents here
//

// introduce this variable by the name "new_variable_name" into the global symbol table
ZEND_SET_SYMBOL(&EG(symbol_table), "new_variable_name", new_variable);
The macro ZEND_SET_SYMBOL is now being called with a reference to the main, global symbol table by referring EG(symbol_table).

Note: The active_symbol_table variable is a pointer, but symbol_table is not. This is why you have to use EG(active_symbol_table) and &EG(symbol_table) as parameters to ZEND_SET_SYMBOL - it requires a pointer.

Similarly, to get a more efficient version, you can hardcode the symbol table update:
zval *new_variable;

// allocate and initialize new container
MAKE_STD_ZVAL(new_variable);

//
// set type and variable contents here
//

// introduce this variable by the name "new_variable_name" into the global symbol table
zend_hash_update(
    &EG(symbol_table),
    "new_variable_name",
    strlen("new_variable_name") + 1,
    &new_variable,
    sizeof(zval *),
    NULL
);
Ejemplo 33-1 shows a sample source that creates two variables - local_variable with a local scope and global_variable with a global scope (see Figure 9.7). The full example can be found on the CD-ROM.

Note: You can see that the global variable is actually not accessible from within the function. This is because it's not imported into the local scope using global $global_variable; in the PHP source.

Ejemplo 33-1. Creating variables with different scopes.

ZEND_FUNCTION(variable_creation)
{
    zval *new_var1, *new_var2;

    MAKE_STD_ZVAL(new_var1);
    MAKE_STD_ZVAL(new_var2);

    ZVAL_LONG(new_var1, 10);
    ZVAL_LONG(new_var2, 5);

    ZEND_SET_SYMBOL(EG(active_symbol_table), "local_variable", new_var1);
    ZEND_SET_SYMBOL(&EG(symbol_table), "global_variable", new_var2);

    RETURN_NULL();

}

Anterior | Inicio | Siguiente
Assuring Write Safety for Other Parameters | Subir | Longs (Integers)


Longs (Integers)

Now let's get to the assignment of data to variables, starting with longs. Longs are PHP's integers and are very simple to store. Looking at the zval.value container structure discussed earlier in this chapter, you can see that the long data type is directly contained in the union, namely in the lval field. The corresponding type value for longs is IS_LONG (see Ejemplo 33-2).

Ejemplo 33-2. Creation of a long.

zval *new_long;

MAKE_STD_ZVAL(new_long);

new_long->type = IS_LONG;
new_long->value.lval = 10;
Alternatively, you can use the macro ZVAL_LONG:
zval *new_long;

MAKE_STD_ZVAL(new_long);
ZVAL_LONG(new_long, 10);

Anterior | Inicio | Siguiente
Creating Variables | Subir | Doubles (Floats)


Doubles (Floats)

Doubles are PHP's floats and are as easy to assign as longs, because their value is also contained directly in the union. The member in the zval.value container is dval; the corresponding type is IS_DOUBLE.
zval *new_double;

MAKE_STD_ZVAL(new_double);

new_double->type = IS_DOUBLE;
new_double->value.dval = 3.45;
Alternatively, you can use the macro ZVAL_DOUBLE:
zval *new_double;

MAKE_STD_ZVAL(new_double);
ZVAL_DOUBLE(new_double, 3.45);

Anterior | Inicio | Siguiente
Longs (Integers) | Subir | Strings


Strings

Strings need slightly more effort. As mentioned earlier, all strings that will be associated with Zend's internal data structures need to be allocated using Zend's own memory-management functions. Referencing of static strings or strings allocated with standard routines is not allowed. To assign strings, you have to access the structure str in the zval.value container. The corresponding type is IS_STRING:
zval *new_string;
char *string_contents = "This is a new string variable";

MAKE_STD_ZVAL(new_string);

new_string->type = IS_STRING;
new_string->value.str.len = strlen(string_contents);
new_string->value.str.val = estrdup(string_contents);
Note the usage of Zend's estrdup() here. Of course, you can also use the predefined macro ZVAL_STRING:
zval *new_string;
char *string_contents = "This is a new string variable";

MAKE_STD_ZVAL(new_string);
ZVAL_STRING(new_string, string_contents, 1);
ZVAL_STRING accepts a third parameter that indicates whether the supplied string contents should be duplicated (using estrdup()). Setting this parameter to 1 causes the string to be duplicated; 0 simply uses the supplied pointer for the variable contents. This is most useful if you want to create a new variable referring to a string that's already allocated in Zend internal memory.

If you want to truncate the string at a certain position or you already know its length, you can use ZVAL_STRINGL(zval, string, length, duplicate), which accepts an explicit string length to be set for the new string. This macro is faster than ZVAL_STRING and also binary-safe.

To create empty strings, set the string length to 0 and use empty_string as contents:
new_string->type = IS_STRING;
new_string->value.str.len = 0;
new_string->value.str.val = empty_string;
Of course, there's a macro for this as well (ZVAL_EMPTY_STRING):
MAKE_STD_ZVAL(new_string);
ZVAL_EMPTY_STRING(new_string);

Anterior | Inicio | Siguiente
Doubles (Floats) | Subir | Booleans


Booleans

Booleans are created just like longs, but have the type IS_BOOL. Allowed values in lval are 0 and 1:
zval *new_bool;

MAKE_STD_ZVAL(new_bool);

new_bool->type = IS_BOOL;
new_bool->value.lval = 1;
The corresponding macros for this type are ZVAL_BOOL (allowing specification of the value) as well as ZVAL_TRUE and ZVAL_FALSE (which explicitly set the value to TRUE and FALSE, respectively).

Anterior | Inicio | Siguiente
Strings | Subir | Arrays


Arrays

Arrays are stored using Zend's internal hash tables, which can be accessed using the zend_hash_*() API. For every array that you want to create, you need a new hash table handle, which will be stored in the ht member of the zval.value container.

There's a whole API solely for the creation of arrays, which is extremely handy. To start a new array, you call array_init().
zval *new_array;

MAKE_STD_ZVAL(new_array);

array_init(new_array);
array_init() always returns SUCCESS.

To add new elements to the array, you can use numerous functions, depending on what you want to do. Tabla 33-1, Tabla 33-2 and Tabla 33-3 describe these functions. All functions return FAILURE on failure and SUCCESS on success.

Tabla 33-1. Zend's API for Associative Arrays

Function | Description
add_assoc_long(zval *array, char *key, long n);() | Adds an element of type long.
add_assoc_unset(zval *array, char *key);() | Adds an unset element.
add_assoc_bool(zval *array, char *key, int b);() | Adds a Boolean element.
add_assoc_resource(zval *array, char *key, int r);() | Adds a resource to the array.
add_assoc_double(zval *array, char *key, double d);() | Adds a floating-point value.
add_assoc_string(zval *array, char *key, char *str, int duplicate);() | Adds a string to the array. The flag duplicate specifies whether the string contents have to be copied to Zend internal memory.
add_assoc_stringl(zval *array, char *key, char *str, uint length, int duplicate); () | Adds a string with the desired length length to the array. Otherwise, behaves like add_assoc_string().
add_assoc_zval(zval *array, char *key, zval *value);() | Adds a zval to the array. Useful for adding other arrays, objects, streams, etc...

Tabla 33-2. Zend's API for Indexed Arrays, Part 1

Function | Description
add_index_long(zval *array, uint idx, long n);() | Adds an element of type long.
add_index_unset(zval *array, uint idx);() | Adds an unset element.
add_index_bool(zval *array, uint idx, int b);() | Adds a Boolean element.
add_index_resource(zval *array, uint idx, int r);() | Adds a resource to the array.
add_index_double(zval *array, uint idx, double d);() | Adds a floating-point value.
add_index_string(zval *array, uint idx, char *str, int duplicate);() | Adds a string to the array. The flag duplicate specifies whether the string contents have to be copied to Zend internal memory.
add_index_stringl(zval *array, uint idx, char *str, uint length, int duplicate);() | Adds a string with the desired length length to the array. This function is faster and binary-safe. Otherwise, behaves like add_index_string()().
add_index_zval(zval *array, uint idx, zval *value);() | Adds a zval to the array. Useful for adding other arrays, objects, streams, etc...

Tabla 33-3. Zend's API for Indexed Arrays, Part 2

Function | Description
add_next_index_long(zval *array, long n);() | Adds an element of type long.
add_next_index_unset(zval *array);() | Adds an unset element.
add_next_index_bool(zval *array, int b);() | Adds a Boolean element.
add_next_index_resource(zval *array, int r);() | Adds a resource to the array.
add_next_index_double(zval *array, double d);() | Adds a floating-point value.
add_next_index_string(zval *array, char *str, int duplicate);() | Adds a string to the array. The flag duplicate specifies whether the string contents have to be copied to Zend internal memory.
add_next_index_stringl(zval *array, char *str, uint length, int duplicate);() | Adds a string with the desired length length to the array. This function is faster and binary-safe. Otherwise, behaves like add_index_string()().
add_next_index_zval(zval *array, zval *value);() | Adds a zval to the array. Useful for adding other arrays, objects, streams, etc...

All these functions provide a handy abstraction to Zend's internal hash API. Of course, you can also use the hash functions directly - for example, if you already have a zval container allocated that you want to insert into an array. This is done using zend_hash_update()() for associative arrays (see Ejemplo 33-3) and zend_hash_index_update() for indexed arrays (see Ejemplo 33-4):

Ejemplo 33-3. Adding an element to an associative array.

zval *new_array, *new_element;
char *key = "element_key";

MAKE_STD_ZVAL(new_array);
MAKE_STD_ZVAL(new_element);

array_init(new_array);

ZVAL_LONG(new_element, 10);

if(zend_hash_update(new_array->value.ht, key, strlen(key) + 1, (void *)&new_element, sizeof(zval *), NULL) == FAILURE)
{
    // do error handling here
}

Ejemplo 33-4. Adding an element to an indexed array.

zval *new_array, *new_element;
int key = 2;

MAKE_STD_ZVAL(new_array);
MAKE_STD_ZVAL(new_element);

array_init(new_array);

ZVAL_LONG(new_element, 10);

if(zend_hash_index_update(new_array->value.ht, key, (void *)&new_element, sizeof(zval *), NULL) == FAILURE)
{
    // do error handling here
}

To emulate the functionality of add_next_index_*(), you can use this:

zend_hash_next_index_insert(ht, zval **new_element, sizeof(zval *), NULL)

Note: To return arrays from a function, use array_init() and all following actions on the predefined variable return_value (given as argument to your exported function; see the earlier discussion of the call interface). You do not have to use MAKE_STD_ZVAL on this.

Tip: To avoid having to write new_array->value.ht every time, you can use HASH_OF(new_array), which is also recommended for compatibility and style reasons.

Anterior | Inicio | Siguiente
Booleans | Subir | Objects


Objects

Since objects can be converted to arrays (and vice versa), you might have already guessed that they have a lot of similarities to arrays in PHP. Objects are maintained with the same hash functions, but there's a different API for creating them.

To initialize an object, you use the function object_init():
zval *new_object;

MAKE_STD_ZVAL(new_object);

if(object_init(new_object) != SUCCESS)
{
    // do error handling here
}
You can use the functions described in Tabla 33-4 to add members to your object.

Tabla 33-4. Zend's API for Object Creation

Function | Description
add_property_long(zval *object, char *key, long l);() | Adds a long to the object.
add_property_unset(zval *object, char *key);() | Adds an unset property to the object.
add_property_bool(zval *object, char *key, int b);() | Adds a Boolean to the object.
add_property_resource(zval *object, char *key, long r);() | Adds a resource to the object.
add_property_double(zval *object, char *key, double d);() | Adds a double to the object.
add_property_string(zval *object, char *key, char *str, int duplicate);() | Adds a string to the object.
add_property_stringl(zval *object, char *key, char *str, uint length, int duplicate);() | Adds a string of the specified length to the object. This function is faster than add_property_string() and also binary-safe.
add_property_zval(zval *obect, char *key, zval *container):() | Adds a zval container to the object. This is useful if you have to add properties which aren't simple types like integers or strings but arrays or other objects.

Anterior | Inicio | Siguiente
Arrays | Subir | Resources


Resources

Resources are a special kind of data type in PHP. The term resources doesn't really refer to any special kind of data, but to an abstraction method for maintaining any kind of information. Resources are kept in a special resource list within Zend. Each entry in the list has a correspondending type definition that denotes the kind of resource to which it refers. Zend then internally manages all references to this resource. Access to a resource is never possible directly - only via a provided API. As soon as all references to a specific resource are lost, a corresponding shutdown function is called.

For example, resources are used to store database links and file descriptors. The de facto standard implementation can be found in the MySQL module, but other modules such as the Oracle module also make use of resources.

Nota: In fact, a resource can be a pointer to anything you need to handle in your functions (e.g. pointer to a structure) and the user only has to pass a single resource variable to your function.

To create a new resource you need to register a resource destruction handler for it. Since you can store any kind of data as a resource, Zend needs to know how to free this resource if its not longer needed. This works by registering your own resource destruction handler to Zend which in turn gets called by Zend whenever your resource can be freed (whether manually or automatically). Registering your resource handler within Zend returns you the resource type handle for that resource. This handle is needed whenever you want to access a resource of this type later and is most of time stored in a global static variable within your extension. There is no need to worry about thread safety here because you only register your resource handler once during module initialization.

The Zend function to register your resource handler is defined as:
ZEND_API int zend_register_list_destructors_ex(rsrc_dtor_func_t ld, rsrc_dtor_func_t pld, char *type_name, int module_number);

There are two different kinds of resource destruction handlers you can pass to this function: a handler for normal resources and a handler for persistent resources. Persistent resources are for example used for database connection. When registering a resource, either of these handlers must be given. For the other handler just pass NULL.

zend_register_list_destructors_ex() accepts the following parameters:

ld | Normal resource destruction handler callback
pld | Pesistent resource destruction handler callback
type_name | A string specifying the name of your resource. It's always a good thing to specify an unique name within PHP for the resource type so when the user for example calls var_dump($resource); he also gets the name of the resource.
module_number | The module_number is automatically available in your PHP_MINIT_FUNCTION function and therefore you just pass it over.

The return value is an unique integer ID for your resource type.

The resource destruction handler (either normal or persistent resources) has the following prototype:
void resource_destruction_handler(zend_rsrc_list_entry *rsrc TSRMLS_DC);
The passed rsrc is a pointer to the following structure:
typedef struct _zend_rsrc_list_entry {

    void *ptr;
    int type;
    int refcount;

} zend_rsrc_list_entry;
The member void *ptr is the actual pointer to your resource.

Now we know how to start things, we define our own resource we want register within Zend. It is only a simple structure with two integer members:
typedef struct {

    int resource_link;
    int resource_type;

} my_resource;
Our resource destruction handler is probably going to look something like this:
void my_destruction_handler(zend_rsrc_list_entry *rsrc TSRMLS_DC) {

    // You most likely cast the void pointer to your structure type

    my_resource *my_rsrc = (my_resource *) rsrc->ptr;

    // Now do whatever needs to be done with you resource. Closing
    // Files, Sockets, freeing additional memory, etc.
    // Also, don't forget to actually free the memory for your resource too!

    do_whatever_needs_to_be_done_with_the_resource(my_rsrc);
}

Nota: One important thing to mention: If your resource is a rather complex structure which also contains pointers to memory you allocated during runtime you have to free them before freeing the resource itself!

Now that we have defined

  1. what our resource is and

  2. our resource destruction handler

we can go on and do the rest of the steps:

  1. create a global variable within the extension holding the resource ID so it can be accessed from every function which needs it

  2. define the resource name

  3. write the resource destruction handler

  4. and finally register the handler

// Somewhere in your extension, define the variable for your registered resources.
    // If you wondered what 'le' stands for: it simply means 'list entry'.
    static int le_myresource;

    // It's nice to define your resource name somewhere
    #define le_myresource_name  "My type of resource"

    [...]

    // Now actually define our resource destruction handler
    void my_destruction_handler(zend_rsrc_list_entry *rsrc TSRMLS_DC) {

        my_resource *my_rsrc = (my_resource *) rsrc->ptr;
        do_whatever_needs_to_be_done_with_the_resource(my_rsrc);
    }

    [...]

    PHP_MINIT_FUNCTION(my_extension) {

        // Note that 'module_number' is already provided through the
        // PHP_MINIT_FUNCTION() function definition.

        le_myresource = zend_register_resource_destructors_ex(my_destruction_handler, NULL, le_myresource_name, module_number);

        // You can register additional resources, initialize
        // your global vars, constants, whatever.
    }

To actually register a new resource you use can either use the zend_register_resource() function or the ZEND_REGISTER_RESOURE() macro, both defined in zend_list.h . Although the arguments for both map 1:1 it's a good idea to always use macros to be upwards compatible:
int ZEND_REGISTER_RESOURCE(zval *rsrc_result, void *rsrc_pointer, int rsrc_type);

rsrc_result | This is an already initialized zval * container.
rsrc_pointer | Your resource pointer you want to store.
rsrc_type | The type which you received when you registered the resource destruction handler. If you followed the naming scheme this would be le_myresource.

The return value is an unique integer identifier for that resource.

What is really going on when you register a new resource is it gets inserted in an internal list in Zend and the result is just stored in the given zval * container:
rsrc_id = zend_list_insert(rsrc_pointer, rsrc_type);

    if (rsrc_result) {
        rsrc_result->value.lval = rsrc_id;
        rsrc_result->type = IS_RESOURCE;
    }

    return rsrc_id;
The returned rsrc_id uniquly identifies the newly registered resource. You can use the macro RETURN_RESOURE to return it to the user:
RETURN_RESOURCE(rsrc_id)

Nota: It is common practice that if you want to return the resource immidiately to the user you specify the return_value as the zval * container.

Zend now keeps track of all references to this resource. As soon as all references to the resource are lost, the destructor that you previously registered for this resource is called. The nice thing about this setup is that you don't have to worry about memory leakages introduced by allocations in your module - just register all memory allocations that your calling script will refer to as resources. As soon as the script decides it doesn't need them anymore, Zend will find out and tell you.

Now that the user got his resource, at some point he is passing it back to one of your functions. The value.lval inside the zval * container contains the key to your resource and thus can be used to fetch the resource with the following macro: ZEND_FETCH_RESOURCE:
ZEND_FETCH_RESOURCE(rsrc, rsrc_type, rsrc_id, default_rsrc_id, resource_type_name, resource_type)

rsrc | This is your pointer which will point to your previously registered resource.
rsrc_type | This is the typecast argument for your pointer, e.g. myresource *.
rsrc_id | This is the address of the zval *container the user passed to your function, e.g. &z_resource if zval *z_resource is given.
default_rsrc_id | This integer specifies the default resource ID if no resource could be fetched or -1.
resource_type_name | This is the name of the requested resource. It's a string and is used when the resource can't be found or is invalid to form a meaningful error message.
resource_type | The resource_type you got back when registering the resource destruction handler. In our example this was le_myresource.

This macro has no return value. It is for the developers convenience and takes care of TSRMLS arguments passing and also does check if the resource could be fetched. It throws a warning message and returns the current PHP function with NULL if there was a problem retrieving the resource.

To force removal of a resource from the list, use the function zend_list_delete(). You can also force the reference count to increase if you know that you're creating another reference for a previously allocated value (for example, if you're automatically reusing a default database link). For this case, use the function zend_list_addref(). To search for previously allocated resource entries, use zend_list_find(). The complete API can be found in zend_list.h.

Anterior | Inicio | Siguiente
Objects | Subir | Macros for Automatic Global Variable Creation


Macros for Automatic Global Variable Creation

In addition to the macros discussed earlier, a few macros allow easy creation of simple global variables. These are nice to know in case you want to introduce global flags, for example. This is somewhat bad practice, but Table Tabla 33-5 describes macros that do exactly this task. They don't need any zval allocation; you simply have to supply a variable name and value.

Tabla 33-5. Macros for Global Variable Creation

Macro | Description
SET_VAR_STRING(name, value) | Creates a new string.
SET_VAR_STRINGL(name, value, length) | Creates a new string of the specified length. This macro is faster than SET_VAR_STRING and also binary-safe.
SET_VAR_LONG(name, value) | Creates a new long.
SET_VAR_DOUBLE(name, value) | Creates a new double.

Anterior | Inicio | Siguiente
Resources | Subir | Creating Constants


Creating Constants

Zend supports the creation of true constants (as opposed to regular variables). Constants are accessed without the typical dollar sign ($) prefix and are available in all scopes. Examples include TRUE and FALSE, to name just two.

To create your own constants, you can use the macros in Tabla 33-6. All the macros create a constant with the specified name and value.

You can also specify flags for each constant:

  • CONST_CS - This constant's name is to be treated as case sensitive.

  • CONST_PERSISTENT - This constant is persistent and won't be "forgotten" when the current process carrying this constant shuts down.

To use the flags, combine them using a inary OR:
// register a new constant of type "long"
     REGISTER_LONG_CONSTANT("NEW_MEANINGFUL_CONSTANT", 324, CONST_CS |
     CONST_PERSISTENT);
There are two types of macros - REGISTER_*_CONSTANT andREGISTER_MAIN_*_CONSTANT. The first type creates constants bound to the current module. These constants are dumped from the symbol table as soon as the module that registered the constant is unloaded from memory. The second type creates constants that remain in the symbol table independently of the module.

Tabla 33-6. Macros for Creating Constants

Macro | Description
REGISTER_LONG_CONSTANT(name, value, flags) REGISTER_MAIN_LONG_CONSTANT(name, value, flags) | Registers a new constant of type long.
REGISTER_DOUBLE_CONSTANT(name, value, flags) REGISTER_MAIN_DOUBLE_CONSTANT(name, value, flags) | Registers a new constant of type double.
REGISTER_STRING_CONSTANT(name, value, flags) REGISTER_MAIN_STRING_CONSTANT(name, value, flags) | Registers a new constant of type string. The specified string must reside in Zend's internal memory.
REGISTER_STRINGL_CONSTANT(name, value, length, flags) REGISTER_MAIN_STRINGL_CONSTANT(name, value, length, flags) | Registers a new constant of type string. The string length is explicitly set to length. The specified string must reside in Zend's internal memory.

Anterior | Inicio | Siguiente
Macros for Automatic Global Variable Creation | Subir | Duplicating Variable Contents: The Copy Constructor


Duplicating Variable Contents: The Copy Constructor

Manual de PHP
Anterior Siguiente

Capítulo 34. Duplicating Variable Contents: The Copy Constructor

Sooner or later, you may need to assign the contents of one zval container to another. This is easier said than done, since the zval container doesn't contain only type information, but also references to places in Zend's internal data. For example, depending on their size, arrays and objects may be nested with lots of hash table entries. By assigning one zval to another, you avoid duplicating the hash table entries, using only a reference to them (at most).

To copy this complex kind of data, use the copy constructor. Copy constructors are typically defined in languages that support operator overloading, with the express purpose of copying complex types. If you define an object in such a language, you have the possibility of overloading the "=" operator, which is usually responsible for assigning the contents of the lvalue (result of the evaluation of the left side of the operator) to the rvalue (same for the right side).

Overloading means assigning a different meaning to this operator, and is usually used to assign a function call to an operator. Whenever this operator would be used on such an object in a program, this function would be called with the lvalue and rvalue as parameters. Equipped with that information, it can perform the operation it intends the "=" operator to have (usually an extended form of copying).

This same form of "extended copying" is also necessary for PHP's zval containers. Again, in the case of an array, this extended copying would imply re-creation of all hash table entries relating to this array. For strings, proper memory allocation would have to be assured, and so on.

Zend ships with such a function, called zend_copy_ctor() (the previous PHP equivalent was pval_copy_constructor()).

A most useful demonstration is a function that accepts a complex type as argument, modifies it, and then returns the argument:

zval *parameter;

if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &parameter) == FAILURE)
   return;
}

// do modifications to the parameter here

// now we want to return the modified container:
*return_value == *parameter;
zval_copy_ctor(return_value);

The first part of the function is plain-vanilla argument retrieval. After the (left out) modifications, however, it gets interesting: The container of parameter is assigned to the (predefined) return_value container. Now, in order to effectively duplicate its contents, the copy constructor is called. The copy constructor works directly with the supplied argument, and the standard return values are FAILURE on failure and SUCCESS on success.

If you omit the call to the copy constructor in this example, both parameter and return_value would point to the same internal data, meaning that return_value would be an illegal additional reference to the same data structures. Whenever changes occurred in the data that parameter points to, return_value might be affected. Thus, in order to create separate copies, the copy constructor must be used.

The copy constructor's counterpart in the Zend API, the destructor zval_dtor(), does the opposite of the constructor.

Anterior | Inicio | Siguiente
Creating Constants | Subir | Returning Values


Returning Values

Manual de PHP
Anterior Siguiente

Capítulo 35. Returning Values

Returning values from your functions to PHP was described briefly in an earlier section; this section gives the details. Return values are passed via the return_value variable, which is passed to your functions as argument. The return_value argument consists of a zval container (see the earlier discussion of the call interface) that you can freely modify. The container itself is already allocated, so you don't have to run MAKE_STD_ZVAL on it. Instead, you can access its members directly.

To make returning values from functions easier and to prevent hassles with accessing the internal structures of the zval container, a set of predefined macros is available (as usual). These macros automatically set the correspondent type and value, as described in Tabla 35-1 and Tabla 35-2.

Nota: The macros in Tabla 35-1 automatically return from your function, those in Tabla 35-2 only set the return value; they don't return from your function.

Tabla 35-1. Predefined Macros for Returning Values from a Function

Macro | Description
RETURN_RESOURCE(resource) | Returns a resource.
RETURN_BOOL(bool) | Returns a Boolean.
RETURN_NULL() | Returns nothing (a NULL value).
RETURN_LONG(long) | Returns a long.
RETURN_DOUBLE(double) | Returns a double.
RETURN_STRING(string, duplicate) | Returns a string. The duplicate flag indicates whether the string should be duplicated using estrdup().
RETURN_STRINGL(string, length, duplicate) | Returns a string of the specified length; otherwise, behaves like RETURN_STRING. This macro is faster and binary-safe, however.
RETURN_EMPTY_STRING() | Returns an empty string.
RETURN_FALSE | Returns Boolean false.
RETURN_TRUE | Returns Boolean true.

Tabla 35-2. Predefined Macros for Setting the Return Value of a Function

Macro | Description
RETVAL_RESOURCE(resource) | Sets the return value to the specified resource.
RETVAL_BOOL(bool) | Sets the return value to the specified Boolean value.
RETVAL_NULL | Sets the return value to NULL.
RETVAL_LONG(long) | Sets the return value to the specified long.
RETVAL_DOUBLE(double) | Sets the return value to the specified double.
RETVAL_STRING(string, duplicate) | Sets the return value to the specified string and duplicates it to Zend internal memory if desired (see also RETURN_STRING).
RETVAL_STRINGL(string, length, duplicate) | Sets the return value to the specified string and forces the length to become length (see also RETVAL_STRING). This macro is faster and binary-safe, and should be used whenever the string length is known.
RETVAL_EMPTY_STRING | Sets the return value to an empty string.
RETVAL_FALSE | Sets the return value to Boolean false.
RETVAL_TRUE | Sets the return value to Boolean true.

Complex types such as arrays and objects can be returned by using array_init() and object_init(), as well as the corresponding hash functions on return_value. Since these types cannot be constructed of trivial information, there are no predefined macros for them.

Anterior | Inicio | Siguiente
Duplicating Variable Contents: The Copy Constructor | Subir | Printing Information


Printing Information

Manual de PHP
Anterior Siguiente

Capítulo 36. Printing Information

Tabla de contenidos
zend_printf()
zend_error()
Including Output in phpinfo()
Execution Information

Often it's necessary to print messages to the output stream from your module, just as print() would be used within a script. PHP offers functions for most generic tasks, such as printing warning messages, generating output for phpinfo(), and so on. The following sections provide more details. Examples of these functions can be found on the CD-ROM.

zend_printf()

zend_printf() works like the standard printf(), except that it prints to Zend's output stream.

Anterior | Inicio | Siguiente
Returning Values | Subir | zend_error()


Execution Information

You can also print execution information, such as the current file being executed. The name of the function currently being executed can be retrieved using the function get_active_function_name(). This function returns a pointer to the function name and doesn't accept any arguments. To retrieve the name of the file currently being executed, use zend_get_executed_filename(). This function accesses the executor globals, which are passed to it using the TSRMLS_C macro. The executor globals are automatically available to every function that's called directly by Zend (they're part of the INTERNAL_FUNCTION_PARAMETERS described earlier in this chapter). If you want to access the executor globals in another function that doesn't have them available automatically, call the macro TSRMLS_FETCH() once in that function; this will introduce them to your local scope.

Finally, the line number currently being executed can be retrieved using the function zend_get_executed_lineno(). This function also requires the executor globals as arguments. For examples of these functions, see Ejemplo 36-2.

Ejemplo 36-2. Printing execution information.

zend_printf("The name of the current function is %s<br>", get_active_function_name(TSRMLS_C));
zend_printf("The file currently executed is %s<br>", zend_get_executed_filename(TSRMLS_C));
zend_printf("The current line being executed is %i<br>", zend_get_executed_lineno(TSRMLS_C));

Anterior | Inicio | Siguiente
Including Output in phpinfo() | Subir | Startup and Shutdown Functions


Startup and Shutdown Functions

Manual de PHP
Anterior Siguiente

Capítulo 37. Startup and Shutdown Functions

Startup and shutdown functions can be used for one-time initialization and deinitialization of your modules. As discussed earlier in this chapter (see the description of the Zend module descriptor block), there are module, and request startup and shutdown events.

The module startup and shutdown functions are called whenever a module is loaded and needs initialization; the request startup and shutdown functions are called every time a request is processed (meaning that a file is being executed).

For dynamic extensions, module and request startup/shutdown events happen at the same time.

Declaration and implementation of these functions can be done with macros; see the earlier section "Declaration of the Zend Module Block" for details.

Anterior | Inicio | Siguiente
Execution Information | Subir | Calling User Functions


Calling User Functions

Manual de PHP
Anterior Siguiente

Capítulo 38. Calling User Functions

You can call user functions from your own modules, which is very handy when implementing callbacks; for example, for array walking, searching, or simply for event-based programs.

User functions can be called with the function call_user_function_ex(). It requires a hash value for the function table you want to access, a pointer to an object (if you want to call a method), the function name, return value, number of arguments, argument array, and a flag indicating whether you want to perform zval separation.

ZEND_API int call_user_function_ex(HashTable *function_table, zval *object,
zval *function_name, zval **retval_ptr_ptr,
int param_count, zval **params[],
int no_separation);

Note that you don't have to specify both function_table and object; either will do. If you want to call a method, you have to supply the object that contains this method, in which case call_user_function()automatically sets the function table to this object's function table. Otherwise, you only need to specify function_table and can set object to NULL.

Usually, the default function table is the "root" function table containing all function entries. This function table is part of the compiler globals and can be accessed using the macro CG. To introduce the compiler globals to your function, call the macro TSRMLS_FETCH once.

The function name is specified in a zval container. This might be a bit surprising at first, but is quite a logical step, since most of the time you'll accept function names as parameters from calling functions within your script, which in turn are contained in zval containers again. Thus, you only have to pass your arguments through to this function. This zval must be of type IS_STRING.

The next argument consists of a pointer to the return value. You don't have to allocate memory for this container; the function will do so by itself. However, you have to destroy this container (using zval_dtor()) afterward!

Next is the parameter count as integer and an array containing all necessary parameters. The last argument specifies whether the function should perform zval separation - this should always be set to 0. If set to 1, the function consumes less memory but fails if any of the parameters need separation.

Ejemplo 38-1 shows a small demonstration of calling a user function. The code calls a function that's supplied to it as argument and directly passes this function's return value through as its own return value. Note the use of the constructor and destructor calls at the end - it might not be necessary to do it this way here (since they should be separate values, the assignment might be safe), but this is bulletproof.

Ejemplo 38-1. Calling user functions.

zval **function_name;
zval *retval;

if((ZEND_NUM_ARGS() != 1) || (zend_get_parameters_ex(1, &function_name) != SUCCESS))
{
    WRONG_PARAM_COUNT;
}

if((*function_name)->type != IS_STRING)
{
    zend_error(E_ERROR, "Function requires string argument");
}

TSRMSLS_FETCH();

if(call_user_function_ex(CG(function_table), NULL, *function_name, &retval, 0, NULL, 0) != SUCCESS)
{
    zend_error(E_ERROR, "Function call failed");
}

zend_printf("We have %i as type<br>", retval->type);

*return_value = *retval;
zval_copy_ctor(return_value);
zval_ptr_dtor(&retval);

<?php

dl("call_userland.so");

function test_function()
{

    print("We are in the test function!<br>");

    return("hello");

}

$return_value = call_userland("test_function");

print("Return value: \"$return_value\"<br>");
?>

Anterior | Inicio | Siguiente
Startup and Shutdown Functions | Subir | Initialization File Support


Initialization File Support

Manual de PHP
Anterior Siguiente

Capítulo 39. Initialization File Support

PHP 4 features a redesigned initialization file support. It's now possible to specify default initialization entries directly in your code, read and change these values at runtime, and create message handlers for change notifications.

To create an .ini section in your own module, use the macros PHP_INI_BEGIN() to mark the beginning of such a section and PHP_INI_END() to mark its end. In between you can use PHP_INI_ENTRY() to create entries.
PHP_INI_BEGIN()
PHP_INI_ENTRY("first_ini_entry",  "has_string_value", PHP_INI_ALL, NULL)
PHP_INI_ENTRY("second_ini_entry", "2",                PHP_INI_SYSTEM, OnChangeSecond)
PHP_INI_ENTRY("third_ini_entry",  "xyz",              PHP_INI_USER, NULL)
PHP_INI_END()
The PHP_INI_ENTRY() macro accepts four parameters: the entry name, the entry value, its change permissions, and a pointer to a change-notification handler. Both entry name and value must be specified as strings, regardless of whether they really are strings or integers.

The permissions are grouped into three sections:PHP_INI_SYSTEM allows a change only directly in the php.ini file; PHP_INI_USER allows a change to be overridden by a user at runtime using additional configuration files, such as .htaccess; and PHP_INI_ALL allows changes to be made without restrictions. There's also a fourth level, PHP_INI_PERDIR, for which we couldn't verify its behavior yet.

The fourth parameter consists of a pointer to a change-notification handler. Whenever one of these initialization entries is changed, this handler is called. Such a handler can be declared using the PHP_INI_MH macro:
PHP_INI_MH(OnChangeSecond);             // handler for ini-entry "second_ini_entry"

// specify ini-entries here

PHP_INI_MH(OnChangeSecond)
{

    zend_printf("Message caught, our ini entry has been changed to %s<br>", new_value);

    return(SUCCESS);

}
The new value is given to the change handler as string in the variable new_value. When looking at the definition of PHP_INI_MH, you actually have a few parameters to use:
#define PHP_INI_MH(name) int name(php_ini_entry *entry, char *new_value,
                                  uint new_value_length, void *mh_arg1,
                                  void *mh_arg2, void *mh_arg3)
All these definitions can be found in php_ini.h. Your message handler will have access to a structure that contains the full entry, the new value, its length, and three optional arguments. These optional arguments can be specified with the additional macros PHP_INI_ENTRY1 (allowing one additional argument), PHP_INI_ENTRY2 (allowing two additional arguments), and PHP_INI_ENTRY3 (allowing three additional arguments).

The change-notification handlers should be used to cache initialization entries locally for faster access or to perform certain tasks that are required if a value changes. For example, if a constant connection to a certain host is required by a module and someone changes the hostname, automatically terminate the old connection and attempt a new one.

Access to initialization entries can also be handled with the macros shown in Tabla 39-1.

Tabla 39-1. Macros to Access Initialization Entries in PHP

Macro | Description
INI_INT(name) | Returns the current value of entry name as integer (long).
INI_FLT(name) | Returns the current value of entry name as float (double).
INI_STR(name) | Returns the current value of entry name as string. Note: This string is not duplicated, but instead points to internal data. Further access requires duplication to local memory.
INI_BOOL(name) | Returns the current value of entry name as Boolean (defined as zend_bool, which currently means unsigned char).
INI_ORIG_INT(name) | Returns the original value of entry name as integer (long).
INI_ORIG_FLT(name) | Returns the original value of entry name as float (double).
INI_ORIG_STR(name) | Returns the original value of entry name as string. Note: This string is not duplicated, but instead points to internal data. Further access requires duplication to local memory.
INI_ORIG_BOOL(name) | Returns the original value of entry name as Boolean (defined as zend_bool, which currently means unsigned char).

Finally, you have to introduce your initialization entries to PHP. This can be done in the module startup and shutdown functions, using the macros REGISTER_INI_ENTRIES() and UNREGISTER_INI_ENTRIES():
ZEND_MINIT_FUNCTION(mymodule)
{

    REGISTER_INI_ENTRIES();

}

ZEND_MSHUTDOWN_FUNCTION(mymodule)
{

    UNREGISTER_INI_ENTRIES();

}

Anterior | Inicio | Siguiente
Calling User Functions | Subir | Where to Go from Here


Where to Go from Here

Manual de PHP
Anterior Siguiente

Capítulo 40. Where to Go from Here

You've learned a lot about PHP. You now know how to create dynamic loadable modules and statically linked extensions. You've learned how PHP and Zend deal with internal storage of variables and how you can create and access these variables. You know quite a set of tool functions that do a lot of routine tasks such as printing informational texts, automatically introducing variables to the symbol table, and so on.

Even though this chapter often had a mostly "referential" character, we hope that it gave you insight on how to start writing your own extensions. For the sake of space, we had to leave out a lot; we suggest that you take the time to study the header files and some modules (especially the ones in the ext/standard directory and the MySQL module, as these implement commonly known functionality). This will give you an idea of how other people have used the API functions - particularly those that didn't make it into this chapter.

Anterior | Inicio | Siguiente
Initialization File Support | Subir | Reference: Some Configuration Macros


Reference: Some Configuration Macros

Manual de PHP
Anterior Siguiente

Capítulo 41. Reference: Some Configuration Macros

Tabla de contenidos
config.m4

config.m4

The file config.m4 is processed by buildconf and must contain all the instructions to be executed during configuration. For example, these can include tests for required external files, such as header files, libraries, and so on. PHP defines a set of macros that can be used in this process, the most useful of which are described in Tabla 41-1.

Tabla 41-1. M4 Macros for config.m4

Macro | Description
AC_MSG_CHECKING(message) | Prints a "checking <message>" text during configure.
AC_MSG_RESULT(value) | Gives the result to AC_MSG_CHECKING; should specify either yes or no as value.
AC_MSG_ERROR(message) | Prints message as error message during configure and aborts the script.
AC_DEFINE(name,value,description) | Adds #define to php_config.h with the value of value and a comment that says description (this is useful for conditional compilation of your module).
AC_ADD_INCLUDE(path) | Adds a compiler include path; for example, used if the module needs to add search paths for header files.
AC_ADD_LIBRARY_WITH_PATH(libraryname,librarypath) | Specifies an additional library to link.
AC_ARG_WITH(modulename,description,unconditionaltest,conditionaltest) | Quite a powerful macro, adding the module with description to the configure --help output. PHP checks whether the option --with-<modulename> is given to the configure script. If so, it runs the script unconditionaltest (for example, --with-myext=yes), in which case the value of the option is contained in the variable $withval. Otherwise, it executes conditionaltest.
PHP_EXTENSION(modulename, [shared]) | This macro is a must to call for PHP to configure your extension. You can supply a second argument in addition to your module name, indicating whether you intend compilation as a shared module. This will result in a definition at compile time for your source as COMPILE_DL_<modulename>.

Anterior | Inicio | Siguiente
Where to Go from Here | Subir | API Macros


API Macros

Manual de PHP
Anterior Siguiente

Capítulo 42. API Macros

A set of macros was introduced into Zend's API that simplify access to zval containers (see Tabla 42-1).

Tabla 42-1. API Macros for Accessing zval Containers

Macro | Refers to
Z_LVAL(zval) | (zval).value.lval
Z_DVAL(zval) | (zval).value.dval
Z_STRVAL(zval) | (zval).value.str.val
Z_STRLEN(zval) | (zval).value.str.len
Z_ARRVAL(zval) | (zval).value.ht
Z_LVAL_P(zval) | (*zval).value.lval
Z_DVAL_P(zval) | (*zval).value.dval
Z_STRVAL_P(zval_p) | (*zval).value.str.val
Z_STRLEN_P(zval_p) | (*zval).value.str.len
Z_ARRVAL_P(zval_p) | (*zval).value.ht
Z_LVAL_PP(zval_pp) | (**zval).value.lval
Z_DVAL_PP(zval_pp) | (**zval).value.dval
Z_STRVAL_PP(zval_pp) | (**zval).value.str.val
Z_STRLEN_PP(zval_pp) | (**zval).value.str.len
Z_ARRVAL_PP(zval_pp) | (**zval).value.ht

Anterior | Inicio | Siguiente
Reference: Some Configuration Macros | Subir | PHP API: Interfaces para autores de extensiones


PHP API: Interfaces para autores de extensiones

Manual de PHP
Anterior Siguiente

VII. PHP API: Interfaces para autores de extensiones

Tabla de contenidos
43. Streams API for PHP Extension Authors

Anterior | Inicio | Siguiente
API Macros |  | Streams API for PHP Extension Authors


Streams API for PHP Extension Authors

Manual de PHP
Anterior Siguiente

Capítulo 43. Streams API for PHP Extension Authors

Tabla de contenidos
Overview
Streams Basics
Streams as Resources
Streams Common API Reference
Streams Dir API Reference
Streams File API Reference
Streams Socket API Reference
Streams Structures
Streams Constants

Overview

The PHP Streams API introduces a unified approach to the handling of files and sockets in PHP extension. Using a single API with standard functions for common operations, the streams API allows your extension to access files, sockets, URLs, memory and script-defined objects. Streams is a run-time extensible API that allows dynamically loaded modules (and scripts!) to register new streams.

The aim of the Streams API is to make it comfortable for developers to open files, URLs and other streamable data sources with a unified API that is easy to understand. The API is more or less based on the ANSI C stdio family of functions (with identical semantics for most of the main functions), so C programmers will have a feeling of familiarity with streams.

The streams API operates on a couple of different levels: at the base level, the API defines php_stream objects to represent streamable data sources. On a slightly higher level, the API defines php_stream_wrapper objects which "wrap" around the lower level API to provide support for retrieving data and meta-data from URLs. An additional context parameter, accepted by most stream creation functions, is passed to the wrapper's stream_opener method to fine-tune the behavior of the wrapper.

Any stream, once opened, can also have any number of filters applied to it, which process data as it is read from/written to the stream.

Streams can be cast (converted) into other types of file-handles, so that they can be used with third-party libraries without a great deal of trouble. This allows those libraries to access data directly from URL sources. If your system has the fopencookie() or funopen() function, you can even pass any PHP stream to any library that uses ANSI stdio!

Nota: The functions in this chapter are for use in the PHP source code and are not PHP functions. Userland stream functions can be found in the Stream Reference.

Anterior | Inicio | Siguiente
PHP API: Interfaces para autores de extensiones | Subir | Streams Basics


Streams Basics

Using streams is very much like using ANSI stdio functions. The main difference is in how you obtain the stream handle to begin with. In most cases, you will use php_stream_open_wrapper() to obtain the stream handle. This function works very much like fopen, as can be seen from the example below:

Ejemplo 43-1. simple stream example that displays the PHP home page

php_stream * stream = php_stream_open_wrapper("http://www.php.net", "rb", REPORT_ERRORS, NULL);
if (stream) {
    while(!php_stream_eof(stream)) {
        char buf[1024];

        if (php_stream_gets(stream, buf, sizeof(buf))) {
            printf(buf);
        } else {
            break;
        }
    }
    php_stream_close(stream);
}

The table below shows the Streams equivalents of the more common ANSI stdio functions. Unless noted otherwise, the semantics of the functions are identical.

Tabla 43-1. ANSI stdio equivalent functions in the Streams API

ANSI Stdio Function | PHP Streams Function | Notes
fopen | php_stream_open_wrapper | Streams includes additional parameters
fclose | php_stream_close |
fgets | php_stream_gets |
fread | php_stream_read | The nmemb parameter is assumed to have a value of 1, so the prototype looks more like read(2)
fwrite | php_stream_write | The nmemb parameter is assumed to have a value of 1, so the prototype looks more like write(2)
fseek | php_stream_seek |
ftell | php_stream_tell |
rewind | php_stream_rewind |
feof | php_stream_eof |
fgetc | php_stream_getc |
fputc | php_stream_putc |
fflush | php_stream_flush |
puts | php_stream_puts | Same semantics as puts, NOT fputs
fstat | php_stream_stat | Streams has a richer stat structure

Anterior | Inicio | Siguiente
Streams API for PHP Extension Authors | Subir | Streams as Resources


Streams as Resources

All streams are registered as resources when they are created. This ensures that they will be properly cleaned up even if there is some fatal error. All of the filesystem functions in PHP operate on streams resources - that means that your extensions can accept regular PHP file pointers as parameters to, and return streams from their functions. The streams API makes this process as painless as possible:

Ejemplo 43-2. How to accept a stream as a parameter

PHP_FUNCTION(example_write_hello)
{
    zval *zstream;
    php_stream *stream;

    if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &zstream))
        return;

    php_stream_from_zval(stream, &zstream);

    /* you can now use the stream.  However, you do not "own" the
        stream, the script does.  That means you MUST NOT close the
        stream, because it will cause PHP to crash! */

    php_stream_write(stream, "hello\n");

    RETURN_TRUE();
}

Ejemplo 43-3. How to return a stream from a function

PHP_FUNCTION(example_open_php_home_page)
{
    php_stream *stream;

    stream = php_stream_open_wrapper("http://www.php.net", "rb", REPORT_ERRORS, NULL);

    php_stream_to_zval(stream, return_value);

    /* after this point, the stream is "owned" by the script.
        If you close it now, you will crash PHP! */
}

Since streams are automatically cleaned up, it's tempting to think that we can get away with being sloppy programmers and not bother to close the streams when we are done with them. Although such an approach might work, it is not a good idea for a number of reasons: streams hold locks on system resources while they are open, so leaving a file open after you have finished with it could prevent other processes from accessing it. If a script deals with a large number of files, the accumulation of the resources used, both in terms of memory and the sheer number of open files, can cause web server requests to fail. Sounds bad, doesn't it? The streams API includes some magic that helps you to keep your code clean - if a stream is not closed by your code when it should be, you will find some helpful debugging information in you web server error log.

Nota: Always use a debug build of PHP when developing an extension (--enable-debug when running configure), as a lot of effort has been made to warn you about memory and stream leaks.

In some cases, it is useful to keep a stream open for the duration of a request, to act as a log or trace file for example. Writing the code to safely clean up such a stream is not difficult, but it's several lines of code that are not strictly needed. To save yourself the trouble of writing the code, you can mark a stream as being OK for auto cleanup. What this means is that the streams API will not emit a warning when it is time to auto-cleanup a stream. To do this, you can use php_stream_auto_cleanup().

Anterior | Inicio | Siguiente
Streams Basics | Subir | Streams Common API Reference


Streams Common API Reference

Tabla de contenidos
php_stream_stat_path -- Gets the status for a file or URL
php_stream_stat -- Gets the status for the underlying storage associated with a stream
php_stream_open_wrapper -- Opens a stream on a file or URL
php_stream_read -- Read a number of bytes from a stream into a buffer
php_stream_write -- Write a number of bytes from a buffer to a stream
php_stream_eof -- Check for an end-of-file condition on a stream
php_stream_getc -- Read a single byte from a stream
php_stream_gets -- Read a line of data from a stream into a buffer
php_stream_close -- Close a stream
php_stream_flush -- Flush stream buffers to storage
php_stream_seek -- Reposition a stream
php_stream_tell -- Determine the position of a stream
php_stream_copy_to_stream -- Copy data from one stream to another
php_stream_copy_to_mem -- Copy data from stream and into an allocated buffer
php_stream_make_seekable -- Convert a stream into a stream is seekable
php_stream_cast -- Convert a stream into another form, such as a FILE* or socket
php_stream_can_cast -- Determines if a stream can be converted into another form, such as a FILE* or socket
php_stream_is_persistent -- Determines if a stream is a persistent stream
php_stream_is -- Determines if a stream is of a particular type
php_stream_passthru -- Outputs all remaining data from a stream
php_register_url_stream_wrapper -- Registers a wrapper with the Streams API
php_unregister_url_stream_wrapper -- Unregisters a wrapper from the Streams API
php_stream_open_wrapper_ex -- Opens a stream on a file or URL, specifying context
php_stream_open_wrapper_as_file -- Opens a stream on a file or URL, and converts to a FILE*
php_stream_filter_register_factory -- Registers a filter factory with the Streams API
php_stream_filter_unregister_factory -- Deregisters a filter factory with the Streams API

Anterior | Inicio | Siguiente
Streams as Resources | Subir | php_stream_stat_path


Streams Dir API Reference

Tabla de contenidos
php_stream_opendir -- Open a directory for file enumeration
php_stream_readdir -- Fetch the next directory entry from an opened dir
php_stream_rewinddir -- Rewind a directory stream to the first entry
php_stream_closedir -- Close a directory stream and release resources

The functions listed in this section work on local files, as well as remote files (provided that the wrapper supports this functionality!).

Anterior | Inicio | Siguiente
php_stream_filter_unregister_factory | Subir | php_stream_opendir


Streams File API Reference

Tabla de contenidos
php_stream_fopen_from_file -- Convert an ANSI FILE* into a stream
php_stream_fopen_tmpfile -- Open a FILE* with tmpfile() and convert into a stream
php_stream_fopen_temporary_file -- Generate a temporary file name and open a stream on it

Anterior | Inicio | Siguiente
php_stream_closedir | Subir | php_stream_fopen_from_file


Streams Socket API Reference

Tabla de contenidos
php_stream_sock_open_from_socket -- Convert a socket descriptor into a stream
php_stream_sock_open_host -- Open a connection to a host and return a stream
php_stream_sock_open_unix -- Open a UNIX domain socket and convert into a stream

Anterior | Inicio | Siguiente
php_stream_fopen_temporary_file | Subir | php_stream_sock_open_from_socket


Streams Structures

Tabla de contenidos
struct php_stream_statbuf -- Holds information about a file or URL
struct php_stream_dirent -- Holds information about a single file during dir scanning
struct php_stream_ops -- Holds member functions for a stream implementation
struct php_stream_wrapper -- Holds wrapper properties and pointer to operations
struct php_stream_wrapper_ops -- Holds member functions for a stream wrapper implementation
struct php_stream_filter -- Holds filter properties and pointer to operations
struct php_stream_filter_ops -- Holds member functions for a stream filter implementation

Anterior | Inicio | Siguiente
php_stream_sock_open_unix | Subir | struct php_stream_statbuf


Streams Constants

Tabla de contenidos
Stream open options -- Affects the operation of stream factory functions

Anterior | Inicio | Siguiente
struct php_stream_filter_ops | Subir | Stream open options


FAQ: Preguntas frecuentes

Manual de PHP
Anterior Siguiente

VIII. FAQ: Preguntas frecuentes

Tabla de contenidos
44. General Information
45. Mailing lists
46. Obtaining PHP
47. Database issues
48. Installation
49. Build Problems
50. Using PHP
51. PHP and HTML
52. PHP and COM
53. PHP and other languages
54. Migrating from PHP 2 to PHP 3
55. Migrating from PHP 3 to PHP 4
56. Miscellaneous Questions

Anterior | Inicio | Siguiente
Stream open options |  | General Information


General Information

Manual de PHP
Anterior Siguiente

Capítulo 44. General Information

This section holds the most general questions about PHP: what it is and what it does.

1. What is PHP?
2. What does PHP stand for?
3. What is the relation between the versions?
4. Can I run several versions of PHP at the same time?
5. What are the differences between PHP 3 and PHP 4?
6. I think I found a bug! Who should I tell?

1. What is PHP?

From the preface of the manual:

PHP is an HTML-embedded scripting language. Much of its syntax is borrowed from C, Java and Perl with a couple of unique PHP-specific features thrown in. The goal of the language is to allow web developers to write dynamically generated pages quickly.

A nice introduction to PHP by Stig Sæther Bakken can be found here on the Zend website. Also, much of the PHP Conference Material is freely available.

2. What does PHP stand for?

PHP stands for PHP: Hypertext Preprocessor. This confuses many people because the first word of the acronym is the acronym. This type of acronym is called a recursive acronym. The curious can visit Free On-Line Dictionary of Computing for more information on recursive acronyms.

3. What is the relation between the versions?

PHP/FI 2.0 is an early and no longer supported version of PHP. PHP 3 is the successor to PHP/FI 2.0 and is a lot nicer. PHP 4 is the current generation of PHP, which uses the Zend engine under the hood. PHP 5 uses Zend engine 2 which, among other things, offers many additional OOP features. PHP 5 is experimental.

4. Can I run several versions of PHP at the same time?

Yes. See the INSTALL file that is included in the PHP 4 source distribution. Also, read the related appendix.

5. What are the differences between PHP 3 and PHP 4?

There are a couple of articles written on this by the authors of PHP 4. Here's a list of some of the more important new features:

  • Extended API module

  • Generalized build process under UNIX

  • Generic web server interface that also supports multi-threaded web servers

  • Improved syntax highlighter

  • Native HTTP session support

  • Output buffering support

  • More powerful configuration system

  • Reference counting

Please see the What's new in PHP 4 overview for a detailed explanation of these features and more. If you're migrating from PHP 3 to PHP 4, also read the related appendix.

6. I think I found a bug! Who should I tell?

You should go to the PHP Bug Database and make sure the bug isn't a known bug. If you don't see it in the database, use the reporting form to report the bug. It is important to use the bug database instead of just sending an email to one of the mailing lists because the bug will have a tracking number assigned and it will then be possible for you to go back later and check on the status of the bug. The bug database can be found at http://bugs.php.net/.

Anterior | Inicio | Siguiente
FAQ: Preguntas frecuentes | Subir | Mailing lists


Mailing lists

Manual de PHP
Anterior Siguiente

Capítulo 45. Mailing lists

This section holds questions about how to get in touch with the PHP community. The best way is the mailing lists.

1. Are there any PHP mailing lists?
2. Are there any other communities?
3. Help! I can't seem to subscribe/unsubscribe to/from one of the mailing lists!
4. Is there an archive of the mailing lists anywhere?
5. What can I ask the mailing list?
6. What information should I include when posting to the mailing list?

1. Are there any PHP mailing lists?

Of course! There are many mailing lists for several subjects. A whole list of mailing lists can be found on our Support page.

The most general mailing list is php-general. To subscribe, send mail to php-general-subscribe@lists.php.net. You don't need to include anything special in the subject or body of the message. To unsubscribe, send mail to php-general-unsubscribe@lists.php.net.

You can also subscribe and unsubscribe using the web interface on our Support page.

2. Are there any other communities?

There are countless of them around the world. We have links for example to some IRC servers and foreign language mailing lists on our Support page.

3. Help! I can't seem to subscribe/unsubscribe to/from one of the mailing lists!

If you have problems subscribing to or unsubscribing from the php-general mailing list, it may be because the mailing list software can't figure out the correct mailing address to use. If your email address was joeblow@example.com, you can send your subscription request to php-general-subscribe-joeblow=example.com@lists.php.net, or your unsubscription request to php-general-unsubscribe-joeblow=example.com@lists.php.net. Use similar addresses for the other mailing lists.

4. Is there an archive of the mailing lists anywhere?

Yes, you will find a list of archive sites on the Support page. The mailing list articles are also archived as news messages. You can access the news server at news://news.php.net/ with a news client. There is also an experimental web interface for the news server at http://news.php.net/

5. What can I ask the mailing list?

Since PHP is growing more and more popular by the day the traffic has increased on the php-general mailing list and as of now the list gets about 150 to 200 posts a day. Because of this it is in everyones interest that you use the list as a last resort when you have looked everywhere else.

Before you post to the list please have a look in this FAQ and the manual to see if you can find the help there. If there is nothing to be found there try out the mailing list archives (see above). If you're having problem with installing or configuring PHP please read through all included documentation and README's. If you still can't find any information that helps you out you're more than welcome to use the mailing list.

Before asking questions, you may want to read the paper on How To Ask Questions The Smart Way as this is a good idea for everyone.

6. What information should I include when posting to the mailing list?

Posts like "I can't get PHP up and running! Help me! What is wrong?" are of absolutely no use to anyone. If you're having problems getting PHP up and running you must include what operating system you are running on, what version of PHP you're trying to set up, how you got it (pre-compiled, CVS, RPMs and so on), what you have done so far, where you got stuck and the exact error message.

This goes for any other problem as well. You have to include information on what you have done, where you got stuck, what you're trying to do and, if applicable, exact error messages. If you're having problems with your source code you need to include the part of the code that isn't working. Do not include more code than necessary though! It makes the post hard to read and a lot of people might just skip it all together because of this. If you're unsure about how much information to include in the mail it's better that you include to much than to little.

Another important thing to remember is to summarize your problem on the subject line. A subject like "HELP MEEEE!!!" or "What is the problem here?" will be ignored by the majority of the readers.

And lastly, you're encouraged to read the paper on How To Ask Questions The Smart Way as this will be a great help for everyone, especially yourself.

Anterior | Inicio | Siguiente
General Information | Subir | Obtaining PHP


Obtaining PHP

Manual de PHP
Anterior Siguiente

Capítulo 46. Obtaining PHP

This section has details about PHP download locations, and OS issues.

1. Where can I obtain PHP?
2. Are pre-compiled binary versions available?
3. Where can I get libraries needed to compile some of the optional PHP extensions?
4. How do I get these libraries to work?
5. I got the latest version of the PHP source code from the CVS repository on my Windows machine, what do I need to compile it?
6. Where do I find the Browser Capabilities File?

1. Where can I obtain PHP?

You can download PHP from any of the members of the PHP network of sites. These can be found at http://www.php.net/. You can also use anonymous CVS to get the absolute latest version of the source. For more information, go to http://www.php.net/anoncvs.php.

2. Are pre-compiled binary versions available?

We only distribute precompiled binaries for Windows systems, as we are not able to compile PHP for every major Linux/Unix platform with every extension combination. Also note, that many Linux distributions come with PHP built in these days. Windows binaries can be downloaded from our Downloads page, for Linux binaries, please visit your distributions website.

3. Where can I get libraries needed to compile some of the optional PHP extensions?

Nota: Those marked with * are not thread-safe libraries, and should not be used with PHP as a server module in the multi-threaded Windows web servers (IIS, Netscape). This does not matter in Unix environments, yet.

  • LDAP (Unix).

  • LDAP* (Unix).

  • LDAP (Unix/Win) : Netscape Directory (LDAP) SDK 1.1.

  • free LDAP server.

  • Berkeley DB2 (Unix/Win) : http://www.sleepycat.com/.

  • SNMP* (Unix): .

  • GD* (Unix/Win).

  • mSQL* (Unix).

  • PostgreSQL (Unix).

  • IMAP* (Win/Unix).

  • Sybase-CT* (Linux, libc5) : Available locally.

  • FreeType (libttf):.

  • ZLib (Unix/Win32).

  • expat XML parser (Unix/Win32).

  • PDFLib.

  • mcrypt.

  • mhash.

  • t1lib.

  • dmalloc.

  • aspell.

  • readline.

4. How do I get these libraries to work?

You will need to follow instructions provided with the library. Some of these libraries are detected automatically when you run the 'configure' script of PHP (such as the GD library), and others you will have to enable using '--with-EXTENSION' options to 'configure'. Run 'configure --help' for a listing of these.

5. I got the latest version of the PHP source code from the CVS repository on my Windows machine, what do I need to compile it?

First, you will need Microsoft Visual C++ v6 (v5 may do it also, but we do it with v6), and you will need some support files. See the manual section about building PHP from source on Windows.

6. Where do I find the Browser Capabilities File?

You can find a browscap.ini file at http://www.garykeith.com/browsers/downloads.asp.

Anterior | Inicio | Siguiente
Mailing lists | Subir | Database issues


Database issues

Manual de PHP
Anterior Siguiente

Capítulo 47. Database issues

This section holds common questions about relation between PHP and databases. Yes, PHP can access virtually any database available today.

1. I heard it's possible to access Microsoft SQL Server from PHP. How?
2. Can I access Microsoft Access databases?
3. I upgraded to PHP 4, and now mysql keeps telling me "Warning: MySQL: Unable to save result set in ...". What's up?
4. After installing shared MySQL support, Apache dumps core as soon as libphp4.so is loaded. Can this be fixed?
5. Why do I get an error that looks something like this: "Warning: 0 is not a MySQL result index in <file> on line <x>" or "Warning: Supplied argument is not a valid MySQL result resource in <file> on line <x>?

1. I heard it's possible to access Microsoft SQL Server from PHP. How?

On Windows machines, you can simply use the included ODBC support and the correct ODBC driver.

On Unix machines, you can use the Sybase-CT driver to access Microsoft SQL Servers because they are (at least mostly) protocol-compatible. Sybase has made a free version of the necessary libraries for Linux systems. For other Unix operating systems, you need to contact Sybase for the correct libraries. Also see the answer to the next question.

2. Can I access Microsoft Access databases?

Yes. You already have all the tools you need if you are running entirely under Windows 9x/Me, or NT/2000, where you can use ODBC and Microsoft's ODBC drivers for Microsoft Access databases.

If you are running PHP on a Unix box and want to talk to MS Access on a Windows box you will need Unix ODBC drivers. OpenLink Software has Unix-based ODBC drivers that can do this. There is a free pilot program where you can download an evaluation copy that doesn't expire and prices start at $675 for the commercial supported version.

Another alternative is to use an SQL server that has Windows ODBC drivers and use that to store the data, which you can then access from Microsoft Access (using ODBC) and PHP (using the built in drivers), or to use an intermediary file format that Access and PHP both understand, such as flat files or dBase databases. On this point Tim Hayes from OpenLink software writes:
Using another database as an intermediary is not a good idea, when you can
      use ODBC from PHP straight to your database - i.e. with OpenLink's drivers. If
      you do need to use an intermediary file format, OpenLink have now released
      Virtuoso (a virtual database engine) for NT, Linux and other unix platforms.
      Please visit our website for a free download.

One option that has proven successful is to use MySQL and its MyODBC drivers on Windows and synchronizing the databases. Steve Lawrence writes:

  • Install MySQL on your platform according to instructions with MySQL. Latest available from www.mysql.com (get it from your mirror!). No special configuration required except when you set up a database, and configure the user account, you should put % in the host field, or the host name of the Windows computer you wish to access MySQL with. Make a note of your server name, username, and password.

  • Download the MyODBC for Windows driver from the MySQL site. Latest release is myodbc-2_50_19-win95.zip (NT available too, as well as source code). Install it on your Windows machine. You can test the operation with the utilities included with this program.

  • Create a user or system dsn in your ODBC administrator, located in the control panel. Make up a dsn name, enter your hostname, user name, password, port, etc for you MySQL database configured in step 1.

  • Install Access with a full install, this makes sure you get the proper add-ins.. at the least you will need ODBC support and the linked table manager.

  • Now the fun part! Create a new access database. In the table window right click and select Link Tables, or under the file menu option, select Get External Data and then Link Tables. When the file browser box comes up, select files of type: ODBC. Select System dsn and the name of your dsn created in step 3. Select the table to link, press OK, and presto! You can now open the table and add/delete/edit data on your MySQL server! You can also build queries, import/export tables to MySQL, build forms and reports, etc.

Tips and Tricks:

  • You can construct your tables in Access and export them to MySQL, then link them back in. That makes table creation quick.

  • When creating tables in Access, you must have a primary key defined in order to have write access to the table in access. Make sure you create a primary key in MySQL before linking in access

  • If you change a table in MySQL, you have to re-link it in Access. Go to tools>add-ins>linked table manager, cruise to your ODBC DSN, and select the table to re-link from there. you can also move your dsn source around there, just hit the always prompt for new location checkbox before pressing OK.

3. I upgraded to PHP 4, and now mysql keeps telling me "Warning: MySQL: Unable to save result set in ...". What's up?

Most likely what has happened is, PHP 4 was compiled with the '--with-mysql' option, without specifying the path to MySQL. This means PHP is using its built-in MySQL client library. If your system is running applications, such as PHP 3 as a concurrent Apache module, or auth-mysql, that use other versions of MySQL clients, then there is a conflict between the two differing versions of those clients.

Recompiling PHP 4, and adding the path to MySQL to the flag, '--with-mysql=/your/path/to/mysql' usually solves the problem.

4. After installing shared MySQL support, Apache dumps core as soon as libphp4.so is loaded. Can this be fixed?

If your MySQL libs are linked against pthreads this will happen. Check using ldd. If they are, grab the MySQL tarball and compile from source, or recompile from the source rpm and remove the switch in the spec file that turns on the threaded client code. Either of these suggestions will fix this. Then recompile PHP with the new MySQL libs.

5. Why do I get an error that looks something like this: "Warning: 0 is not a MySQL result index in <file> on line <x>" or "Warning: Supplied argument is not a valid MySQL result resource in <file> on line <x>?

You are trying to use a result identifier that is 0. The 0 indicates that your query failed for some reason. You need to check for errors after submitting a query and before you attempt to use the returned result identifier. The proper way to do this is with code similar to the following:
$result = mysql_query("SELECT * FROM tables_priv");
if (!$result) {
    echo mysql_error();
    exit;
}
or
$result = mysql_query("SELECT * FROM tables_priv")
    or die("Bad query: ".mysql_error());

Anterior | Inicio | Siguiente
Obtaining PHP | Subir | Installation


Installation

Manual de PHP
Anterior Siguiente

Capítulo 48. Installation

This section holds common questions about the way to install PHP. PHP is available for almost any OS (except maybe for MacOS before OSX), and almost any web server.

To install PHP, follow the instructions in the INSTALL file located in the distribution. Windows users should also read the install.txt file. There are also some helpful hints for Windows users here.

1. Unix/Windows: Where should my php.ini file be located?
2. Unix: I installed PHP, but every time I load a document, I get the message 'Document Contains No Data'! What's going on here?
3. Unix: I installed PHP using RPMS, but Apache isn't processing the PHP pages! What's going on here?
4. Unix: I installed PHP 3 using RPMS, but it doesn't compile with the database support I need! What's going on here?
5. Unix: I patched Apache with the FrontPage extensions patch, and suddenly PHP stopped working. Is PHP incompatible with the Apache FrontPage extensions?
6. Unix/Windows: I have installed PHP, but when I try to access a PHP script file via my browser, I get a blank screen.
7. Unix/Windows: I have installed PHP, but when try to access a PHP script file via my browser, I get a server 500 error.
8. Some operating systems: I have installed PHP without errors, but when I try to start apache I get undefined symbol errors:
[mybox:user /src/php4] root# apachectl configtest
 apachectl: /usr/local/apache/bin/httpd Undefined symbols:
  _compress
  _uncompress
9. Windows: I have installed PHP, but when I to access a PHP script file via my browser, I get the error:
cgi error:
 The specified CGI application misbehaved by not
 returning a complete set of HTTP headers.
 The headers it did return are:
10. Windows: I've followed all the instructions, but still can't get PHP and IIS to work together!
11. When running PHP as CGI with IIS, PWS, OmniHTTPD or Xitami, I get the following error: Security Alert! PHP CGI cannot be accessed directly..
12. How do I know if my php.ini is being found and read? It seems like it isn't as my changes aren't being implemented.

1. Unix/Windows: Where should my php.ini file be located?

By default on UNIX it should be in /usr/local/lib which is <install-path>/lib. Most people will want to change this at compile-time with the --with-config-file-path flag. You would, for example, set it with something like:
--with-config-file-path=/etc
And then you would copy php.ini-dist from the distribution to /etc/php.ini and edit it to make any local changes you want.

--with-config-file-scan-dir=PATH

On Windows the default path for the php.ini file is the Windows directory. If you're using the Apache webserver, php.ini is first searched in the Apaches install directory, e.g. c:\program files\apache group\apache. This way you can have different php.ini files for different versions of Apache on the same machine.

See also the chapter about the configuration file.

2. Unix: I installed PHP, but every time I load a document, I get the message 'Document Contains No Data'! What's going on here?

This probably means that PHP is having some sort of problem and is core-dumping. Look in your server error log to see if this is the case, and then try to reproduce the problem with a small test case. If you know how to use 'gdb', it is very helpful when you can provide a backtrace with your bug report to help the developers pinpoint the problem. If you are using PHP as an Apache module try something like:

  • Stop your httpd processes

  • gdb httpd

  • Stop your httpd processes

  • > run -X -f /path/to/httpd.conf

  • Then fetch the URL causing the problem with your browser

  • > run -X -f /path/to/httpd.conf

  • If you are getting a core dump, gdb should inform you of this now

  • type: bt

  • You should include your backtrace in your bug report. This should be submitted to http://bugs.php.net/

If your script uses the regular expression functions (ereg() and friends), you should make sure that you compiled PHP and Apache with the same regular expression package. This should happen automatically with PHP and Apache 1.3.x

3. Unix: I installed PHP using RPMS, but Apache isn't processing the PHP pages! What's going on here?

Assuming you installed both Apache and PHP from RPM packages, you need to uncomment or add some or all of the following lines in your httpd.conf file:
# Extra Modules
AddModule mod_php.c
AddModule mod_php3.c
AddModule mod_perl.c

# Extra Modules
LoadModule php_module         modules/mod_php.so
LoadModule php3_module        modules/libphp3.so     /* for PHP 3 */
LoadModule php4_module        modules/libphp4.so     /* for PHP 4 */
LoadModule perl_module        modules/libperl.so
And add:
AddType application/x-httpd-php3 .php3    /* for PHP 3 */
AddType application/x-httpd-php .php      /* for PHP 4 */
... to the global properties, or to the properties of the VirtualDomain you want to have PHP support added to.

4. Unix: I installed PHP 3 using RPMS, but it doesn't compile with the database support I need! What's going on here?

Due to the way PHP 3 built, it is not easy to build a complete flexible PHP RPM. This issue is addressed in PHP 4. For PHP 3, we currently suggest you use the mechanism described in the INSTALL.REDHAT file in the PHP distribution. If you insist on using an RPM version of PHP 3, read on...

The RPM packagers are setting up the RPMS to install without database support to simplify installations and because RPMS use /usr/ instead of the standard /usr/local/ directory for files. You need to tell the RPM spec file which databases to support and the location of the top-level of your database server.

This example will explain the process of adding support for the popular MySQL database server, using the mod installation for Apache.

Of course all of this information can be adjusted for any database server that PHP supports. We will assume you installed MySQL and Apache completely with RPMS for this example as well.

  • First remove mod_php3 :
    rpm -e mod_php3

  • Then get the source rpm and INSTALL it, NOT --rebuild
    rpm -Uvh mod_php3-3.0.5-2.src.rpm

  • Then edit the /usr/src/redhat/SPECS/mod_php3.spec file

    In the %build section add the database support you want, and the path.

    For MySQL you would add
    --with-mysql=/usr \
    The %build section will look something like this:
    ./configure --prefix=/usr \
    --with-apxs=/usr/sbin/apxs \
    --with-config-file-path=/usr/lib \
    --enable-debug=no \
    --enable-safe-mode \
    --with-exec-dir=/usr/bin \
    --with-mysql=/usr \
    --with-system-regex

  • Once this modification is made then build the binary rpm as follows:
    rpm -bb /usr/src/redhat/SPECS/mod_php3.spec

  • Then install the rpm
    rpm -ivh /usr/src/redhat/RPMS/i386/mod_php3-3.0.5-2.i386.rpm

Make sure you restart Apache, and you now have PHP 3 with MySQL support using RPM's. Note that it is probably much easier to just build from the distribution tarball of PHP 3 and follow the instructions in INSTALL.REDHAT found in that distribution.

5. Unix: I patched Apache with the FrontPage extensions patch, and suddenly PHP stopped working. Is PHP incompatible with the Apache FrontPage extensions?

No, PHP works fine with the FrontPage extensions. The problem is that the FrontPage patch modifies several Apache structures, that PHP relies on. Recompiling PHP (using 'make clean ; make') after the FP patch is applied would solve the problem.

6. Unix/Windows: I have installed PHP, but when I try to access a PHP script file via my browser, I get a blank screen.

Do a 'view source' in the web browser and you will probably find that you can see the source code of your PHP script. This means that the web server did not send the script to PHP for interpretation. Something is wrong with the server configuration - double check the server configuration against the PHP installation instructions.

7. Unix/Windows: I have installed PHP, but when try to access a PHP script file via my browser, I get a server 500 error.

Something went wrong when the server tried to run PHP. To get to see a sensible error message, from the command line, change to the directory containing the PHP executable (php.exe on Windows) and run php -i. If PHP has any problems running, then a suitable error message will be displayed which will give you a clue as to what needs to be done next. If you get a screen full of html codes (the output of the phpinfo() function) then PHP is working, and your problem may be related to your server configuration which you should double check.

8. Some operating systems: I have installed PHP without errors, but when I try to start apache I get undefined symbol errors:
[mybox:user /src/php4] root# apachectl configtest
 apachectl: /usr/local/apache/bin/httpd Undefined symbols:
  _compress
  _uncompress

This has actually nothing to do with PHP, but with the MySQL client libraries. Some need --with-zlib, others do not. This is also covered in the MySQL FAQ.

9. Windows: I have installed PHP, but when I to access a PHP script file via my browser, I get the error:
cgi error:
 The specified CGI application misbehaved by not
 returning a complete set of HTTP headers.
 The headers it did return are:

This error message means that PHP failed to output anything at all. To get to see a sensible error message, from the command line, change to the directory containing the PHP executable (php.exe on Windows) and run php -i. If PHP has any problems running, then a suitable error message will be displayed which will give you a clue as to what needs to be done next. If you get a screen full of html codes (the output of the phpinfo() function) then PHP is working.

Once PHP is working at the command line, try accessing the script via the browser again. If it still fails then it could be one of the following:

  • File permissions on your PHP script, php.exe, php4ts.dll, php.ini or any PHP extensions you are trying to load are such that the anonymous internet user ISUR_<machinename> cannot access them.

  • The script file does not exist (or possibly isn't where you think it is relative to your web root directory). Note that for IIS you can trap this error by ticking the 'check file exists' box when setting up the script mappings in the Internet Services Manager. If a script file does not exist then the server will return a 404 error instead. There is also the additional benefit that IIS will do any authentication required for you based on the NTLanMan permissions on your script file.

10. Windows: I've followed all the instructions, but still can't get PHP and IIS to work together!

Make sure any user who needs to run a PHP script has the rights to run php.exe! IIS uses an anonymous user which is added at the time IIS is installed. This user needs rights to php.exe. Also, any authenticated user will also need rights to execute php.exe. And for IIS4 you need to tell it that PHP is a script engine. Also, you will want to read this faq.

11. When running PHP as CGI with IIS, PWS, OmniHTTPD or Xitami, I get the following error: Security Alert! PHP CGI cannot be accessed directly..

You must set the cgi.force_redirect directive to 0. It defaults to 1 so be sure the directive isn't commented out (with a ;). Like all directives, this is set in php.ini

Because the default is 1, it's critical that you're 100% sure that the correct php.ini file is being read. Read this faq for details.

12. How do I know if my php.ini is being found and read? It seems like it isn't as my changes aren't being implemented.

To be sure your php.ini is being read by PHP, make a call to phpinfo() and near the top will be a listing called Configuration File (php.ini). This will tell you where PHP is looking for php.ini and whether or not it's being read. If just a directory PATH exists than it's not being read and you should put your php.ini in that directory. If php.ini is included within the PATH than it is being read.

If php.ini is being read and you're running PHP as a module then be sure to restart PHP after making changes to php.ini

Anterior | Inicio | Siguiente
Database issues | Subir | Build Problems


Build Problems

Manual de PHP
Anterior Siguiente

Capítulo 49. Build Problems

This section gathers most common errors that occur at build time.

1. I got the latest version of PHP using the anonymous CVS service, but there's no configure script!
2. I'm having problems configuring PHP to work with Apache. It says it can't find httpd.h, but it's right where I said it is!
3. While configuring PHP (./configure), you come across an error similar to the following:
4. When I try to start Apache, I get the the following message:
5. When I run configure, it says that it can't find the include files or library for GD, gdbm, or some other package!
6. When it is compiling the file language-parser.tab.c, it gives me errors that say yytname undeclared.
7. When I run make, it seems to run fine but then fails when it tries to link the final application complaining that it can't find some files.
8. When linking PHP, it complains about a number of undefined references.
9. I can't figure out how to build PHP with Apache 1.3.
10. I have followed all the steps to install the Apache module version on UNIX, and my PHP scripts show up in my browser or I am being asked to save the file.
11. It says to use: --activate-module=src/modules/php4/libphp4.a, but that file doesn't exist, so I changed it to --activate-module=src/modules/php4/libmodphp4.a and it doesn't work!? What's going on?
12. When I try to build Apache with PHP as a static module using --activate-module=src/modules/php4/libphp4.a it tells me that my compiler is not ANSI compliant.
13. When I try to build PHP using --with-apxs I get strange error messages.
14. During make, I get errors in microtime, and a lot of RUSAGE_ stuff.
15. When compiling PHP with MySQL, configure runs fine but during make I get an error similar to the following: ext/mysql/libmysql/my_tempnam.o(.text+0x46): In function my_tempnam': /php4/ext/mysql/libmysql/my_tempnam.c:103: the use of tempnam' is dangerous, better use mkstemp', what's wrong?
16. I want to upgrade my PHP. Where can I find the ./configure line that was used to build my current PHP installation?
17. When building PHP with the GD library it either gives strange compile errors or segfaults on execution.

1. I got the latest version of PHP using the anonymous CVS service, but there's no configure script!

You have to have the GNU autoconf package installed so you can generate the configure script from configure.in. Just run ./buildconf in the top-level directory after getting the sources from the CVS server. (Also, unless you run configure with the --enable-maintainer-mode option, the configure script will not automatically get rebuilt when the configure.in file is updated, so you should make sure to do that manually when you notice configure.in has changed. One symptom of this is finding things like @VARIABLE@ in your Makefile after configure or config.status is run.)

2. I'm having problems configuring PHP to work with Apache. It says it can't find httpd.h, but it's right where I said it is!

You need to tell the configure/setup script the location of the top-level of your Apache source tree. This means that you want to specify --with-apache=/path/to/apache and not --with-apache=/path/to/apache/src.

3. While configuring PHP (./configure), you come across an error similar to the following:

checking lex output file root... ./configure: lex: command not found
       configure: error: cannot find output from lex; giving up

Be sure to read the installation instructions carefully and note that you need both flex and bison installed to compile PHP. Depending on your setup you will install bison and flex from either source or a package, such as a RPM.

4. When I try to start Apache, I get the the following message:

fatal: relocation error: file /path/to/libphp4.so:
       symbol ap_block_alarms: referenced symbol not found

This error usually comes up when one compiles the Apache core program as a DSO library for shared usage. Try to reconfigure apache, making sure to use at least the following flags:

--enable-shared=max --enable-rule=SHARED_CORE

For more information, read the top-level Apache INSTALL file or the Apache DSO manual page.

5. When I run configure, it says that it can't find the include files or library for GD, gdbm, or some other package!

You can make the configure script looks for header files and libraries in non-standard locations by specifying additional flags to pass to the C preprocessor and linker, such as:
CPPFLAGS=-I/path/to/include LDFLAGS=-L/path/to/library ./configure
If you're using a csh-variant for your login shell (why?), it would be:
env CPPFLAGS=-I/path/to/include LDFLAGS=-L/path/to/library ./configure

6. When it is compiling the file language-parser.tab.c, it gives me errors that say yytname undeclared.

You need to update your version of Bison. You can find the latest version at http://www.gnu.org/software/bison/bison.html.

7. When I run make, it seems to run fine but then fails when it tries to link the final application complaining that it can't find some files.

Some old versions of make that don't correctly put the compiled versions of the files in the functions directory into that same directory. Try running cp *.o functions and then re-running make to see if that helps. If it does, you should really upgrade to a recent version of GNU make.

8. When linking PHP, it complains about a number of undefined references.

Take a look at the link line and make sure that all of the appropriate libraries are being included at the end. Common ones that you might have missed are '-ldl' and any libraries required for any database support you included.

If you're linking with Apache 1.2.x, did you remember to add the appropriate information to the EXTRA_LIBS line of the Configuration file and re-rerun Apache's Configure script? See the INSTALL file that comes with the distribution for more information.

Some people have also reported that they had to add '-ldl' immediately following libphp4.a when linking with Apache.

9. I can't figure out how to build PHP with Apache 1.3.

This is actually quite easy. Follow these steps carefully:

  • Grab the latest Apache 1.3 distribution from http://www.apache.org/dist/httpd/.

  • Ungzip and untar it somewhere, for example /usr/local/src/apache-1.3.

  • Compile PHP by first running ./configure --with-apache=/<path>/apache-1.3 (substitute <path> for the actual path to your apache-1.3 directory.

  • Type make followed by make install to build PHP and copy the necessary files to the Apache distribution tree.

  • Change directories into to your /<path>/apache-1.3/src directory and edit the Configuration file. Add to the file: AddModule modules/php4/libphp4.a.

  • Type: ./configure followed by make.

  • You should now have a PHP-enabled httpd binary!

Note: You can also use the new Apache ./configure script. See the instructions in the README.configure file which is part of your Apache distribution. Also have a look at the INSTALL file in the PHP distribution.

10. I have followed all the steps to install the Apache module version on UNIX, and my PHP scripts show up in my browser or I am being asked to save the file.

This means that the PHP module is not getting invoked for some reason. Three things to check before asking for further help:

  • Make sure that the httpd binary you are running is the actual new httpd binary you just built. To do this, try running: /path/to/binary/httpd -l

    If you don't see mod_php4.c listed then you are not running the right binary. Find and install the correct binary.

  • Make sure you have added the correct Mime Type to one of your Apache .conf files. It should be: AddType application/x-httpd-php3 .php3 (for PHP 3)

    or AddType application/x-httpd-php .php (for PHP 4)

    Also make sure that this AddType line is not hidden away inside a <Virtualhost> or <Directory> block which would prevent it from applying to the location of your test script.

  • Finally, the default location of the Apache configuration files changed between Apache 1.2 and Apache 1.3. You should check to make sure that the configuration file you are adding the AddType line to is actually being read. You can put an obvious syntax error into your httpd.conf file or some other obvious change that will tell you if the file is being read correctly.

11. It says to use: --activate-module=src/modules/php4/libphp4.a, but that file doesn't exist, so I changed it to --activate-module=src/modules/php4/libmodphp4.a and it doesn't work!? What's going on?

Note that the libphp4.a file is not supposed to exist. The apache process will create it!

12. When I try to build Apache with PHP as a static module using --activate-module=src/modules/php4/libphp4.a it tells me that my compiler is not ANSI compliant.

This is a misleading error message from Apache that has been fixed in more recent versions.

13. When I try to build PHP using --with-apxs I get strange error messages.

There are three things to check here. First, for some reason when Apache builds the apxs Perl script, it sometimes ends up getting built without the proper compiler and flags variables. Find your apxs script (try the command which apxs), it's sometimes found in /usr/local/apache/bin/apxs or /usr/sbin/apxs. Open it and check for lines similar to these:
my $CFG_CFLAGS_SHLIB  = ' ';          # substituted via Makefile.tmpl
my $CFG_LD_SHLIB      = ' ';          # substituted via Makefile.tmpl
my $CFG_LDFLAGS_SHLIB = ' ';          # substituted via Makefile.tmpl
If this is what you see, you have found your problem. They may contain just spaces or other incorrect values, such as 'q()'. Change these lines to say:
my $CFG_CFLAGS_SHLIB  = '-fpic -DSHARED_MODULE'; # substituted via Makefile.tmpl
my $CFG_LD_SHLIB      = 'gcc';                   # substituted via Makefile.tmpl
my $CFG_LDFLAGS_SHLIB = q(-shared);              # substituted via Makefile.tmpl
The second possible problem should only be an issue on Red Hat 6.1 and 6.2. The apxs script Red Hat ships is broken. Look for this line:
my $CFG_LIBEXECDIR    = 'modules';         # substituted via APACI install
If you see the above line, change it to this:
my $CFG_LIBEXECDIR    = '/usr/lib/apache'; # substituted via APACI install
Last, if you reconfigure/reinstall Apache, add a make clean to the process after ./configure and before make.

14. During make, I get errors in microtime, and a lot of RUSAGE_ stuff.

During the make portion of installation, if you encounter problems that look similar to this:
microtime.c: In function `php_if_getrusage':
microtime.c:94: storage size of `usg' isn't known
microtime.c:97: `RUSAGE_SELF' undeclared (first use in this function)
microtime.c:97: (Each undeclared identifier is reported only once
microtime.c:97: for each function it appears in.)
microtime.c:103: `RUSAGE_CHILDREN' undeclared (first use in this function)
make[3]: *** [microtime.lo] Error 1
make[3]: Leaving directory `/home/master/php-4.0.1/ext/standard'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/master/php-4.0.1/ext/standard'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/master/php-4.0.1/ext'
make: *** [all-recursive] Error 1

Your system is broken. You need to fix your /usr/include files by installing a glibc-devel package that matches your glibc. This has absolutely nothing to do with PHP. To prove this to yourself, try this simple test:
$ cat >test.c <<X
#include <sys/resource.h>
X
$ gcc -E test.c >/dev/null
If that spews out errors, you know your include files are messed up.

15. When compiling PHP with MySQL, configure runs fine but during make I get an error similar to the following: ext/mysql/libmysql/my_tempnam.o(.text+0x46): In function my_tempnam': /php4/ext/mysql/libmysql/my_tempnam.c:103: the use of tempnam' is dangerous, better use mkstemp', what's wrong?

First, it's important to realize that this is a Warning and not a fatal error. Because this is often the last output seen during make, it may seem like a fatal error but it's not. Of course, if you set your compiler to die on Warnings, it will. Also keep in mind that MySQL support is enabled by default.

16. I want to upgrade my PHP. Where can I find the ./configure line that was used to build my current PHP installation?

Either you look at config.nice file, in the source tree of your current PHP installation or, if this is not available, you simply run a
<?php phpinfo(); ?>
script. On top of the output the ./configure line, that was used to build this PHP installation is shown.

17. When building PHP with the GD library it either gives strange compile errors or segfaults on execution.

Make sure your GD library and PHP are linked against the same depending libraries (e.g. libpng).

Anterior | Inicio | Siguiente
Installation | Subir | Using PHP


Using PHP

Manual de PHP
Anterior Siguiente

Capítulo 50. Using PHP

This section gathers many common errors that you may face while writing PHP scripts.

1. I would like to write a generic PHP script that can handle data coming from any form. How do I know which POST method variables are available?
2. I need to convert all single-quotes (') to a backslash followed by a single-quote (\'). How can I do this with a regular expression? I'd also like to convert " to \" and \ to \\.
3. All my " turn into \" and my ' turn into \', how do I get rid of all these unwanted backslashes? How and why did they get there?
4. When I do the following, the output is printed in the wrong order:
<?php
function myfunc($argument)
{
    echo $argument + 10;
}
$variable = 10;
echo "myfunc($variable) = " . myfunc($variable);
?>
what's going on?
5. Hey, what happened to my newlines?
<pre>
<?php echo "This should be the first line."; ?>
<?php echo "This should show up after the new line above."; ?>
</pre>
6. I get the message 'Warning: Cannot send session cookie - headers already sent...' or 'Cannot add header information - headers already sent...'.
7. I need to access information in the request header directly. How can I do this?
8. When I try to use authentication with IIS I get 'No Input file specified'.
9. My PHP script works on IE and Lynx, but on Netscape some of my output is missing. When I do a "View Source" I see the content in IE but not in Netscape.
10. How am I supposed to mix XML and PHP? It complains about my <?xml tags!
11. How can I use PHP with FrontPage or some other HTML editor that insists on moving my code around?
12. Where can I find a complete list of variables are available to me in PHP?
13. I'm trying to access one of the standard CGI variables (such as $DOCUMENT_ROOT or $HTTP_REFERER) in a user-defined function, and it can't seem to find it. What's wrong?

1. I would like to write a generic PHP script that can handle data coming from any form. How do I know which POST method variables are available?

PHP offers many predefined variables, like the superglobal $_POST. You may loop through $_POST as it's an associate array of all POSTed values. For example, let's simply loop through it with foreach, check for empty() values, and print them out.
<?php
$empty = $post = array();
foreach ($_POST as $varname => $varvalue) {
    if (empty($varvalue)) {
        $empty[$varname] = $varvalue;
    } else {
        $post[$varname] = $varvalue;
    }
}

print "<pre>";
if (empty($empty)) {
    print "None of the POSTed values are empty, posted:\n";
    var_dump($post);
} else {
    print "We have " . count($empty) . " empty values\n";
    print "Posted:\n"; var_dump($post);
    print "Empty:\n";  var_dump($empty);
    exit;
}
?>

Superglobals: Nota de disponibilidad: Desde 4.1.0, están disponibles algunas matrices superglobales tales como $_GET, $_POST, y $_SERVER, etc. Para más información puede consultar la sección superglobals

2. I need to convert all single-quotes (') to a backslash followed by a single-quote (\'). How can I do this with a regular expression? I'd also like to convert " to \" and \ to \\.

The function addslashes() will do this. See also mysql_escape_string(). You may also strip backslashes with stripslashes().

Nota de directiva: magic_quotes_gpc: La directiva PHP magic_quotes_gpc tiene por defecto el valor on. Básicamente ejecuta addslashes() en los datos obtenidos por GET, POST, y COOKIE. Se puede usar stripslashes() para quitarlos.

3. All my " turn into \" and my ' turn into \', how do I get rid of all these unwanted backslashes? How and why did they get there?

The PHP function stripslashes() will strip those backslashes from your string. Most likely the backslashes magically exist because the PHP directive magic_quotes_gpc is on.

Nota de directiva: magic_quotes_gpc: La directiva PHP magic_quotes_gpc tiene por defecto el valor on. Básicamente ejecuta addslashes() en los datos obtenidos por GET, POST, y COOKIE. Se puede usar stripslashes() para quitarlos.

4. When I do the following, the output is printed in the wrong order:
<?php
function myfunc($argument)
{
    echo $argument + 10;
}
$variable = 10;
echo "myfunc($variable) = " . myfunc($variable);
?>
what's going on?

To be able to use the results of your function in an expression (such as concatenating it with other strings in the example above), you need to return() the value, not echo() it.

5. Hey, what happened to my newlines?
<pre>
<?php echo "This should be the first line."; ?>
<?php echo "This should show up after the new line above."; ?>
</pre>

In PHP, the ending for a block of code is either "?>" or "?>\n" (where \n means a newline). So in the example above, the echoed sentences will be on one line, because PHP omits the newlines after the block ending. This means that you need to insert an extra newline after each block of PHP code to make it print out one newline.

Why does PHP do this? Because when formatting normal HTML, this usually makes your life easier because you don't want that newline, but you'd have to create extremely long lines or otherwise make the raw page source unreadable to achieve that effect.

6. I get the message 'Warning: Cannot send session cookie - headers already sent...' or 'Cannot add header information - headers already sent...'.

The functions header(), setcookie (), and the session functions need to add headers to the output stream but headers can only be sent before all other content. There can be no output before using these functions, output such as HTML. The function headers_sent() will check if your script has already sent headers and see also the Output Control functions.

7. I need to access information in the request header directly. How can I do this?

The getallheaders() function will do this if you are running PHP as an Apache module. So, the following bit of code will show you all the request headers:
<?php
$headers = getallheaders();
foreach ($headers as $name => $content) {
    echo "headers[$name] = $content<br>\n";
}
?>

See also
apache_lookup_uri(),
apache_response_headers(), and
fsockopen()

8. When I try to use authentication with IIS I get 'No Input file specified'.

The security model of IIS is at fault here. This is a problem common to all CGI programs running under IIS. A workaround is to create a plain HTML file (not parsed by PHP) as the entry page into an authenticated directory. Then use a META tag to redirect to the PHP page, or have a link to the PHP page. PHP will then recognize the authentication correctly. With the ISAPI module, this is not a problem. This should not effect other NT web servers. For more information, see: http://support.microsoft.com/support/kb/articles/q160/4/22.asp and the manual section on HTTP Authentication .

9. My PHP script works on IE and Lynx, but on Netscape some of my output is missing. When I do a "View Source" I see the content in IE but not in Netscape.

Netscape is more strict regarding html tags (such as tables) then IE. Running your html output through a html validator, such as validator.w3.org, might be helpful. For example, a missing </table> might cause this.

Also, both IE and Lynx ignore any NULs (\0) in the HTML stream, Netscape does not. The best way to check for this is to compile the command line version of PHP (also known as the CGI version) and run your script from the command line. In *nix, pipe it through od -c and look for any \0 characters. If you are on Windows you need to find an editor or some other program that lets you look at binary files. When Netscape sees a NUL in a file it will typically not output anything else on that line whereas both IE and Lynx will.

10. How am I supposed to mix XML and PHP? It complains about my <?xml tags!

In order to embed <?xml straight into your PHP code, you'll have to turn off short tags by having the PHP directive short_open_tags set to 0. You cannot set this directive with ini_set(). Regardless of short_open_tags being on or off, you can do something like: <?php echo '<?xml'; ?>. The default for this directive is on.

11. How can I use PHP with FrontPage or some other HTML editor that insists on moving my code around?

One of the easiest things to do is to enable using ASP tags in your PHP code. This allows you to use the ASP-style <% and %> code delimiters. Some of the popular HTML editors handle those more intelligently (for now). To enable the ASP-style tags, you need to set the asp_tags php.ini variable, or use the appropriate Apache directive.

12. Where can I find a complete list of variables are available to me in PHP?

Read the manual page on predefined variables as it includes a partial list of predefined variables available to your script. A complete list of available variables (and much more information) can be seen by calling the phpinfo() function. Be sure to read the manual section on variables from outside of PHP as it describes common scenerios for external variables, like from a HTML form, a Cookie, and the URL.

register_globals: Nota importante: Desde PHP 4.2.0 el valor por defecto de la directiva register_globals es off. La comunidad PHP anima a todos a no confiar en esta directiva y usar en su lugar superglobals.

13. I'm trying to access one of the standard CGI variables (such as $DOCUMENT_ROOT or $HTTP_REFERER) in a user-defined function, and it can't seem to find it. What's wrong?

It's important to realize that the PHP directive register_globals also affects server and environment variables. When register_globals = off (the default is off since PHP 4.2.0), $DOCUMENT_ROOT will not exist. Instead, use $_SERVER['DOCUMENT_ROOT'] . If register_globals = on then the variables $DOCUMENT_ROOT and $GLOBALS['DOCUMENT_ROOT'] will also exist.

If you're sure register_globals = on and wonder why $DOCUMENT_ROOT isn't available inside functions, it's because these are like any other variables and would require global $DOCUMENT_ROOT inside the function. See also the manual page on variable scope. It's preferred to code with register_globals = off.

Superglobals: Nota de disponibilidad: Desde 4.1.0, están disponibles algunas matrices superglobales tales como $_GET, $_POST, y $_SERVER, etc. Para más información puede consultar la sección superglobals

Anterior | Inicio | Siguiente
Build Problems | Subir | PHP and HTML


PHP and HTML

Manual de PHP
Anterior Siguiente

Capítulo 51. PHP and HTML

PHP and HTML interact a lot: PHP can generate HTML, and HTML can pass information to PHP. Before reading these faqs, it's important you learn how to retrieve variables from outside of PHP. The manual page on this topic includes many examples as well. Pay close attention to what register_globals means to you too.

1. What encoding/decoding do I need when I pass a value through a form/URL?
2. I'm trying to use an <input type="image"> tag, but the $foo.x and $foo.y variables aren't available. $_GET['foo.x'] isn't existing either. Where are they?
3. How do I create arrays in a HTML <form>?
4. How do I get all the results from a select multiple HTML tag?
5. How can I pass a variable from Javascript to PHP?

1. What encoding/decoding do I need when I pass a value through a form/URL?

There are several stages for which encoding is important. Assuming that you have a string $data, which contains the string you want to pass on in a non-encoded way, these are the relevant stages:

  • HTML interpretation. In order to specify a random string, you must include it in double quotes, and htmlspecialchars() the whole value.

  • URL: A URL consists of several parts. If you want your data to be interpreted as one item, you must encode it with urlencode().

Ejemplo 51-1. A hidden HTML form element

<?php
    echo "<input type=hidden value=\"" . htmlspecialchars($data) . "\">\n";
?>

Nota: It is wrong to urlencode() $data, because it's the browsers responsibility to urlencode() the data. All popular browsers do that correctly. Note that this will happen regardless of the method (i.e., GET or POST). You'll only notice this in case of GET request though, because POST requests are usually hidden.

Ejemplo 51-2. Data to be edited by the user

<?php
    echo "<textarea name=mydata>\n";
    echo htmlspecialchars($data)."\n";
    echo "</textarea>";
?>

Nota: The data is shown in the browser as intended, because the browser will interpret the HTML escaped symbols.

Upon submitting, either via GET or POST, the data will be urlencoded by the browser for transferring, and directly urldecoded by PHP. So in the end, you don't need to do any urlencoding/urldecoding yourself, everything is handled automagically.

Ejemplo 51-3. In an URL

<?php
    echo "<a href=\"" . htmlspecialchars("/nextpage.php?stage=23&data=" .
        urlencode($data)) . "\">\n";
?>

Nota: In fact you are faking a HTML GET request, therefore it's necessary to manually urlencode() the data.

Nota: You need to htmlspecialchars() the whole URL, because the URL occurs as value of an HTML-attribute. In this case, the browser will first un-htmlspecialchars() the value, and then pass the URL on. PHP will understand the URL correctly, because you urlencoded() the data.

You'll notice that the & in the URL is replaced by &amp;. Although most browsers will recover if you forget this, this isn't always possible. So even if your URL is not dynamic, you need to htmlspecialchars() the URL.

2. I'm trying to use an <input type="image"> tag, but the $foo.x and $foo.y variables aren't available. $_GET['foo.x'] isn't existing either. Where are they?

When submitting a form, it is possible to use an image instead of the standard submit button with a tag like:
<input type="image" src="image.gif" name="foo">
When the user clicks somewhere on the image, the accompanying form will be transmitted to the server with two additional variables: foo.x and foo.y.

Because foo.x and foo.y would make invalid variable names in PHP, they are automagically converted to foo_x and foo_y. That is, the periods are replaced with underscores. So, you'd access these variables like any other described within the section on retrieving variables from outside of PHP. For example, $_GET['foo_x'].

3. How do I create arrays in a HTML <form>?

To get your <form> result sent as an array to your PHP script you name the <input>, <select> or <textarea> elements like this:
<input name="MyArray[]">
<input name="MyArray[]">
<input name="MyArray[]">
<input name="MyArray[]">
Notice the square brackets after the variable name, that's what makes it an array. You can group the elements into different arrays by assigning the same name to different elements:
<input name="MyArray[]">
<input name="MyArray[]">
<input name="MyOtherArray[]">
<input name="MyOtherArray[]">
This produces two arrays, MyArray and MyOtherArray, that gets sent to the PHP script. It's also possible to assign specific keys to your arrays:
<input name="AnotherArray[]">
<input name="AnotherArray[]">
<input name="AnotherArray[email]">
<input name="AnotherArray[phone]">
The AnotherArray array will now contain the keys 0, 1, email and phone.

Nota: Specifying an arrays key is optional in HTML. If you do not specify the keys, the array gets filled in the order the elements appear in the form. Our first example will contain keys 0, 1, 2 and 3.

See also Array Functions and Variables from outside PHP.

4. How do I get all the results from a select multiple HTML tag?

The select multiple tag in an HTML construct allows users to select multiple items from a list. These items are then passed to the action handler for the form. The problem is that they are all passed with the same widget name. ie.
<select name="var" multiple>
Each selected option will arrive at the action handler as:
var=option1
var=option2
var=option3
Each option will overwrite the contents of the previous $var variable. The solution is to use PHP's "array from form element" feature. The following should be used:
<select name="var[]" multiple>
This tells PHP to treat $var as an array and each assignment of a value to var[] adds an item to the array. The first item becomes $var[0], the next $var[1], etc. The count() function can be used to determine how many options were selected, and the sort() function can be used to sort the option array if necessary.

Note that if you are using JavaScript the [] on the element name might cause you problems when you try to refer to the element by name. Use it's numerical form element ID instead, or enclose the variable name in single quotes and use that as the index to the elements array, for example:
variable = documents.forms[0].elements['var[]'];

5. How can I pass a variable from Javascript to PHP?

Since Javascript is (usually) a client-side technology, and PHP is (usually) a server-side technology, and since HTTP is a "stateless" protocol, the two languages cannot directly share variables.

It is, however, possible to pass variables between the two. One way of accomplishing this is to generate Javascript code with PHP, and have the browser refresh itself, passing specific variables back to the PHP script. The example below shows precisely how to do this -- it allows PHP code to capture screen height and width, something that is normally only possible on the client side.

<?php
if (isset($_GET['width']) AND isset($_GET['height'])) {
  // output the geometry variables
  echo "Screen width is: ". $_GET['width'] ."<br />\n";
  echo "Screen height is: ". $_GET['height'] ."<br />\n";
} else {
  // pass the geometry variables
  // (preserve the original query string
  //   -- post variables will need to handled differently)

  echo "<script language=\"javascript\">\n";
  echo "  location.href=\"${_SERVER['SCRIPT_NAME']}?${_SERVER['QUERY_STRING']}"
            . "&width=\" + screen.width + \"&height=\" + screen.height;\n";
  echo "</script>\n";
  exit();
}
?>

Anterior | Inicio | Siguiente
Using PHP | Subir | PHP and COM


PHP and COM

Manual de PHP
Anterior Siguiente

Capítulo 52. PHP and COM

PHP can be used to access COM and DCOM objects on Win32 platforms.

1. I have built a DLL to calculate something. Is there any way to run this DLL under PHP ?
2. What does 'Unsupported variant type: xxxx (0xxxxx)' mean ?
3. Is it possible manipulate visual objects in PHP ?
4. Can I store a COM object in a session ?
5. How can I trap COM errors ?
6. Can I generate DLL files from PHP scripts like i can in Perl ?
7. What does 'Unable to obtain IDispatch interface for CLSID {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}' mean ?
8. How can I run COM object from remote server ?
9. I get 'DCOM is disabled in C:\path...\scriptname.php on line 6', what can I do ?
10. Is it possible to load/manipulate an ActiveX object in a page with PHP ?
11. Is it possible to get a running instance of a component ?
12. Is there a way to handle an event sent from COM object ?
13. I'm having problems when trying to invoke a method of a COM object which exposes more than one interface. What can I do ?
14. So PHP works with COM, how about COM+ ?
15. If PHP can manipulate COM objects, can we imagine to use MTS to manage components resources, in conjunction with PHP ?

1. I have built a DLL to calculate something. Is there any way to run this DLL under PHP ?

If this is a simple DLL there is no way yet to run it from PHP. If the DLL contains a COM server you may be able to access it if it implements the IDispatch interface.

2. What does 'Unsupported variant type: xxxx (0xxxxx)' mean ?

There are dozens of VARIANT types and combinations of them. Most of them are already supported but a few still have to be implemented. Arrays are not completely supported. Only single dimensional indexed only arrays can be passed between PHP and COM. If you find other types that aren't supported, please report them as a bug (if not already reported) and provide as much information as available.

3. Is it possible manipulate visual objects in PHP ?

Generally it is, but as PHP is mostly used as a web scripting language it runs in the web servers context, thus visual objects will never appear on the servers desktop. If you use PHP for application scripting e.g. in conjunction with PHP-GTK there is no limitation in accessing and manipulating visual objects through COM.

4. Can I store a COM object in a session ?

No, you can't. COM instances are treated as resources and therefore they are only available in a single script's context.

5. How can I trap COM errors ?

Currently it's not possible to trap COM errors beside the ways provided by PHP itself (@, track_errors, ..), but we are thinking of a way to implement this.

6. Can I generate DLL files from PHP scripts like i can in Perl ?

No, unfortunately there is no such tool available for PHP.

7. What does 'Unable to obtain IDispatch interface for CLSID {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}' mean ?

This error can have multiple reasons:

  • the CLSID is wrong

  • the requested DLL is missing

  • the requested component doesn't implement the IDispatch interface

8. How can I run COM object from remote server ?

Exactly like you run local objects. You only have to pass the IP of the remote machine as second parameter to the COM constructor.

Make sure that you have set com.allow_dcom=true in your php.ini.

9. I get 'DCOM is disabled in C:\path...\scriptname.php on line 6', what can I do ?

Edit your php.ini and set com.allow_dcom=true.

10. Is it possible to load/manipulate an ActiveX object in a page with PHP ?

This has nothing to do with PHP. ActiveX objects are loaded on client side if they are requested by the HTML document. There is no relation to the PHP script and therefore there is no direct server side interaction possible.

11. Is it possible to get a running instance of a component ?

This is possible with the help of monikers. If you want to get multiple references to the same word instance you can create that instance like shown:

$word = new COM("C:\docs\word.doc");

This will create a new instance if there is no running instance available or it will return a handle to the running instance, if available.

12. Is there a way to handle an event sent from COM object ?

Starting in PHP 4.3.0, you can define an event sink and bind it as shown in the example below. You can use com_print_typeinfo() to have PHP generate a skeleton for the event sink class.

Ejemplo 52-1. COM event sink example

<?php
class IEEventSinker {
  var $terminated = false;

  function ProgressChange($progress, $progressmax) {
    echo "Download progress: $progress / $progressmax\n";
  }

  function DocumentComplete(&$dom, $url) {
    echo "Document $url complete\n";
  }

  function OnQuit() {
    echo "Quit!\n";
    $this->terminated = true;
  }
}
$ie = new COM("InternetExplorer.Application");
$sink =& new IEEventSinker();
com_event_sink($ie, $sink, "DWebBrowserEvents2");
$ie->Visible = true;
$ie->Navigate("http://www.php.net");
while(!$sink->terminated) {
  com_message_pump(4000);
}
$ie = null;
?>

13. I'm having problems when trying to invoke a method of a COM object which exposes more than one interface. What can I do ?

The answer is as simple as unsatisfying. I don't know exactly but i think you can do nothing. If someone has specific information about this, please let me know :)

14. So PHP works with COM, how about COM+ ?

COM+ extends COM by a framework for managing components through MTS and MSMQ but there is nothing special that PHP has to support to use such components.

15. If PHP can manipulate COM objects, can we imagine to use MTS to manage components resources, in conjunction with PHP ?

PHP itself doesn't handle transactions yet. Thus if an error occurs no rollback is initiated. If you use components that support transactions you will have to implement the transaction management yourself.

Anterior | Inicio | Siguiente
PHP and HTML | Subir | PHP and other languages


PHP and other languages

Manual de PHP
Anterior Siguiente

Capítulo 53. PHP and other languages

PHP is the best language for web programing, but what about other languages?

1. PHP vs. ASP?
2. Is there an ASP to PHP converter?
3. PHP vs. Cold Fusion?
4. PHP vs. Perl?

1. PHP vs. ASP?

ASP is not really a language in itself, it's an acronym for Active Server Pages, the actual language used to program ASP with is Visual Basic Script or JScript. The biggest drawback of ASP is that it's a proprietary system that is natively used only on Microsoft Internet Information Server (IIS). This limits it's availability to Win32 based servers. There are a couple of projects in the works that allows ASP to run in other environments and webservers: InstantASP from Halcyon (commercial), Chili!Soft ASP from Chili!Soft (commercial) and OpenASP from ActiveScripting.org (free). ASP is said to be a slower and more cumbersome language than PHP, less stable as well. Some of the pros of ASP is that since it primarily uses VBScript it's relatively easy to pick up the language if you're already know how to program in Visual Basic. ASP support is also enabled by default in the IIS server making it easy to get up and running. The components built in ASP are really limited, so if you need to use "advanced" features like interacting with FTP servers, you need to buy additional components.

2. Is there an ASP to PHP converter?

Yes, the server-side asp2php is the one most often referred to as well as this client-side option.

3. PHP vs. Cold Fusion?

PHP is commonly said to be faster and more efficient for complex programming tasks and trying out new ideas. PHP is generally referred to as more stable and less resource intensive as well. Cold Fusion has better error handling, database abstraction and date parsing although database abstraction is addressed in PHP 4. Another thing that is listed as one of Cold Fusion's strengths is its excellent search engine, but it has been mentioned that a search engine is not something that should be included in a web scripting language. PHP runs on almost every platform there is; Cold Fusion is only available on Win32, Solaris, Linux and HP/UX. Cold Fusion has a good IDE and is generally easier to get started with, whereas PHP initially requires more programming knowledge. Cold Fusion is designed with non-programmers in mind, while PHP is focused on programmers.

A great summary by Michael J Sheldon on this topic has been posted to the PHP mailing list. A copy can be found here.

4. PHP vs. Perl?

The biggest advantage of PHP over Perl is that PHP was designed for scripting for the web where Perl was designed to do a lot more and can because of this get very complicated. The flexibility / complexity of Perl makes it easier to write code that another author / coder has a hard time reading. PHP has a less confusing and stricter format without losing flexibility. PHP is easier to integrate into existing HTML than Perl. PHP has pretty much all the 'good' functionality of Perl: constructs, syntax and so on, without making it as complicated as Perl can be. Perl is a very tried and true language, it's been around since the late eighties, but PHP is maturing very quickly.

Anterior | Inicio | Siguiente
PHP and COM | Subir | Migrating from PHP 2 to PHP 3


Migrating from PHP 2 to PHP 3

Manual de PHP
Anterior Siguiente

Capítulo 54. Migrating from PHP 2 to PHP 3

PHP has already a long history behind him: Legendary PHP 1.0, PHP/FI, PHP 3.0 and PHP 4.0.

1. Migrating from PHP 2 to PHP 3?

1. Migrating from PHP 2 to PHP 3?

PHP/FI 2.0 is no longer supported. Please see appropriate manual section for information about migration from PHP/FI 2.0.

If you are still working with PHP 2, we strongly recommend you to upgrade straight to PHP 4.

Anterior | Inicio | Siguiente
PHP and other languages | Subir | Migrating from PHP 3 to PHP 4


Migrating from PHP 3 to PHP 4

Manual de PHP
Anterior Siguiente

Capítulo 55. Migrating from PHP 3 to PHP 4

PHP has already a long history behind him : Legendary PHP 1.0, PHP/FI, PHP 3.0 and PHP 4.0.

1. Migrating from PHP3 to PHP4
2. Do sessions work in PHP 3?
3. Incompatible functions?

1. Migrating from PHP3 to PHP4

PHP 4 was designed to be as compatible with earlier versions of PHP as possible and very little functionality was broken in the process. If you're really unsure about compatibility you should install PHP 4 in a test environment and run your scripts there.

Also see the appropriate migration appendix of this manual.

2. Do sessions work in PHP 3?

Although native session support didn't exist in PHP 3, there are third-party applications that did (and still do) offer session functionality. The most common method was by using PHPLIB.

3. Incompatible functions?

Since PHP 4 is basically a rewrite of the entire PHP engine there was very few functions that were altered and only then some of the more exotic ones.

Anterior | Inicio | Siguiente
Migrating from PHP 2 to PHP 3 | Subir | Miscellaneous Questions


Miscellaneous Questions

Manual de PHP
Anterior Siguiente

Capítulo 56. Miscellaneous Questions

There can be some questions we can't put into other categories. Here you can find them.

1. Where did the pop-ups go on the website? Can I have the code for that?
2. How can I handle the bz2 compressed manuals on Windows?

1. Where did the pop-ups go on the website? Can I have the code for that?

The yellow pop-up windows on the old site were pretty cool, but were very difficult to maintain (since some companies seem to enjoy changing the way their browsers work with every new release).

All the code for previous versions of the website is still available through CVS. Specifically, the last version of shared.inc (that had all the Javascript and DHTML to do the popups) is available here.

2. How can I handle the bz2 compressed manuals on Windows?

If you don't have an archiver-tool to handle bz2 files download the commandline tool from Redhat (please find further information below).

If you would not like to use a command line tool, you can try free tools like Stuffit Expander, UltimateZip, 7-Zip, or Quick Zip. If you have tools like WinRAR or Power Archiver, you can easily decompress the bz2 files with it. If you use Windows Commander, a bz2 plugin for that program is available freely from the Windows Commander site.

The bzip2 commandline tool from Redhat:

Win2k Sp2 users grab the latest version 1.0.2, all other Windows user should grab version 1.00. After downloading rename the executable to bzip2.exe. For convenience put it into a directory in your path, e.g. C:\Windows where C represents your windows installation drive.

Note: lang stands for your language and x for the desired format, e.g.: pdf. To uncompress the php_manual_lang.x.bz2 follow these simple instructions:

  • open a command prompt window

  • cd to the folder where you stored the downloaded php_manual_lang.x.bz2

  • invoke bzip2 -d php_manual_lang.x.bz2, extracting php_manual_lang.x in the same folder

In case you downloaded the php_manual_lang.tar.bz2 with many html-files in it, the procedure is the same. The only difference is that you got a file php_manual_lang.tar. The tar format is known to be treated with most common archivers on Windows like e.g. WinZip.

Anterior | Inicio | Siguiente
Migrating from PHP 3 to PHP 4 | Subir | Apéndices


Apéndices

Manual de PHP
Anterior Siguiente

IX. Apéndices

Tabla de contenidos
A. Historia de PHP y proyectos relacionados
B. Migración de PHP 3 a PHP 4
C. Migrando de PHP/FI 2.0 a PHP 3.0
D. El debugger de PHP
E. Desarrollo en PHP
F. Lista de alias de funciones
G. Lista de Palabras Reservadas
H. Lista de Tipos de Recurso
I. Lista de Protocolos/Envolturas Soportadas
J. Lista de Transportes de Sockets Soportados
K. Tablas de comparación de tipos PHP
L. Lista de Identificadores (tokens) del Analizador
M. Sobre el manual
N. Índice de funciones
O. Material que falta

Anterior | Inicio | Siguiente
Miscellaneous Questions |  | Historia de PHP y proyectos relacionados


Historia de PHP y proyectos relacionados

Manual de PHP
Anterior Siguiente

Apéndice A. Historia de PHP y proyectos relacionados

Tabla de contenidos
Historia de PHP
Historia de los proyectos relacionados con PHP
Libros sobre PHP
Publicaciones sobre PHP

PHP ha recorrido un largo camino en los últimos años. Crecer hasta ser uno de los más importantes lenguajes de programación en entornos Web no ha sido tarea fácil. Aquellos interesados en ver brevemente cómo creció PHP hasta lo que es hoy en día, sigan leyendo. Antiguas versiones de PHP están disponibles en el Museo PHP.

Historia de PHP

PHP/FI

PHP es el heredero de un producto anterior, llamado PHP/FI. PHP/FI fue creado por Rasmus Lerdorf en 1995, inicialmente como un simple conjunto de scripts de Perl para controlar los accesos a su trabajo online. Llamó a ese conjunto de scripts 'Personal Home Page Tools'. Según se requería más funcionalidad, Rasmus fue escribiendo una implementación C mucho mayor, que era capaz de comunicarse con bases de datos, y permitía a los usuarios desarrollar sencillas aplicaciones Web dinámicas. Rasmus eligió liberar el código fuente de PHP/FI para que cualquiera pudiese utilizarlo, así como arreglar errores y mejorar el código.

PHP/FI, que se mantuvo para páginas personales y como intérprete de formularios, incluía algunas de las funcionalidads básicas de PHP tal y como lo conocemos hoy. Tenía variables como las de Perl, interpretación automática de variables de formulario y sintaxis embebida HTML. La sintaxis por sí misma era similar a la de Perl, aunque mucho más limitada, simple y algo inconsistente.

Por 1997, PHP/FI 2.0, la segunda escritura de la implementación en C, tuvo un seguimiento estimado de varios miles de usuarios en todo el mundo, con aproximadamente 50.000 dominios informando que lo tenían instalado, sumando alrededor del 1% de los dominios de Internet. Mientras había mucha gente contribuyendo con bits de código a este proyecto, era todavía en su mayor parte el proyecto de una sola persona.

PHP/FI 2.0 no se liberó oficialmente hasta Noviembre de 1997, después de gastar la mayoría de su vida en desarrollos beta. Fue sucedido en breve tiempo por las primeras versiones alfa de PHP 3.0.

PHP 3

PHP 3.0 era la primera versión que se parecía fielmente al PHP tal y como lo conocemos hoy en día. Fue creado por Andi Gutmans y Zeev Zuraski en 1997 reescribiéndolo completamente, después de que encontraran que PHP/FI 2.0 tenía pocas posibilidades para desarrollar una aplicación comercial que estaban desarrollando para un projecto universitario. En un esfuerzo para cooperar y empezar a construir sobre la base de usuarios de PHP/FI existente, Andi, Rasmus y Zeev decidieron cooperar y anunciar PHP 3.0 como el sucesor oficial de PHP/FI 2.0, interrumpiéndose en su mayor parte el desarrollo de PHP/FI 2.0.

Una de las mejores características de PHP 3.0 era su gran extensibilidad. Además de proveer a los usuarios finales de una sólida infraestructura para muchísimas bases de datos, protocolos y APIs, las características de extensibilidad de PHP 3.0 atrajeron a docenas de desarrolladores a unirse y enviar nuevos módulos de extensión. Sin duda, ésta fue la clave del enorme éxito de PHP 3.0. Otras características clave introducidas en PHP 3.0 fueron el soporte de sintáxis orientado a objetos y una sintáxis de lenguaje mucho más potente y consistente.

Todo el nuevo lenguaje fue liberado bajo un nuevo nombre, que borraba la implicación de uso personal limitado que tenía el nombre PHP/FI 2.0. Se llamó 'PHP' a secas, con el significado de ser un acrónimo recursivo - PHP: Hypertext Preprocessor.

A finales de 1998, PHP creció hasta una base de instalación de decenas de millares de usuarios (estimados) y cientos de miles de sitios Web informando de su instalación. En su apogeo, PHP 3.0 estaba instalado en aproximadamente un 10% de los servidores Web en Internet.

PHP 3.0 se liberó oficialmente en Junio de 1998, después de haber gastado unos 9 meses en pruebas públicas.

PHP 4

En el invierno de 1998, poco después del lanzamiento oficial de PHP 3.0, Andi Gutmans y Zeev Suraski comenzaron a trabajar en la reescritura del núcleo de PHP. Los objetivos de diseño fueron mejorar la ejecución de aplicaciones complejas, y mejorar la modularidad del código base de PHP. Estas aplicaciones se hicieron posibles por las nuevas características de PHP 3.0 y el apoyo de una gran variedad de bases de datos y APIs de terceros, pero PHP 3.0 no fue diseñado para el mantenimiento tan complejo de aplicaciones eficientemente.

El nuevo motor, apodado 'Motor Zend' (comprimido de sus apellidos, Zeev y Andi), alcanzó estos objetivos de diseño satisfactoriamente, y se introdujo por primera vez a mediados de 1999. PHP 4.0, basado en este motor, y acoplado con un gran rango de nuevas características adicionales, fue oficialmente liberado en Mayo de 2000, casi dos años después que su predecesor, PHP 3.0. Además de la mejora de ejecución de esta versión, PHP 4.0 incluía otras características clave como el soporte para la mayoría de los servidores Web, sesiones HTTP, buffers de salida, formas más seguras de controlar las entradas de usuario y muchas nuevas construcciones de lenguaje.

PHP 4 es actualmente la última versión liberada de PHP. Ya se está trabajando en modificar y mejorar el motor Zend para integrar las características que se diseñarían para PHP 5.0.

Hoy, se estima que PHP es usado por cientos de miles de programadores y muchos millones de sitios informan que lo tienen instalado, sumando más del 20% de los dominios en Internet.

El equipo de desarrollo de PHP incluye docenas de programadores, así como otras docenas de personas trabajando en proyectos relacionados con PHP como PEAR y el proyecto de documentación.

PHP 5

El futuro de PHP está dirigido por su núcleo, el motor Zend. PHP 5 incluira el nuevo motor Zend 2.0. Para obtener más información sobre este motor, consultar su página web.

Anterior | Inicio | Siguiente
Apéndices | Subir | Historia de los proyectos relacionados con PHP


Historia de los proyectos relacionados con PHP

PEAR

PEAR, el PHP Extension and Application Repository (originalmente, PHP Extension and Add-on Repository) es la versión de clases de creación de PHP, y puede crecer en el futuro para ser una de las vías clave para distribuir tanto PHP como extensiones PHP basados en C entre desarrolladores.

PEAR nació de las discusiones mantenidas en el PHP Developers' Meeting (PDM) transcurrido en Enero de 2000 en Tel Aviv. Fue creado por Stig S. Bakken, y lo dedicó a su primogénita, Malin Bakken.

Hasta principios de 2000, PEAR fue creciendo hasta ser un gran y significativo proyecto con un gran número de programadores trabajando en la implementación común, funcionalidad reutilizable para el beneficio de toda la comunidad PHP. PEAR hoy incluye una gran variedad de clases de infraestructura para acceso a bases de datos, caché de contenido, cálculos matemáticos, comercio electrónico y mucho más.

Más información sobre PEAR se puede encontrar en el manual de PEAR.

Iniciativa para la Garantía de Calidad de PHP

La Iniciativa para la Garantía de Calidad de PHP se configuró en el verano de 2000 en respuesta a los que criticaban que las versiones de PHP se liberaban sin que fueran comprobadas suficientemente para entornos de producción. El equipo ahora consiste en un grupo central de desarrolladores con un buen entendimiento del código base de PHP. Estos desarrolladores gastan mucho tiempo localizando y solucionando problemas con PHP. Además, hay muchos miembros de otros equipos que testean y prueban estas soluciones usando una gran variedad de plataformas.

PHP-GTK

PHP-GTK es la solución PHP para escribir las aplicaciones GUI del lado del cliente. Andrei Zmievski recuerda la planificación y la creación del proceso de PHP-GTK:

Programar GUI siempre ha estado entre mis intereses, y he encontrado que Gtk+ es una herramienta muy buena, salvo que programar con ella en C es algo tedioso. Tras presenciar las implementaciones de PyGtk y GTK-Perl, decidí ver si PHP se podría hacer con la interfaz Gtk+, incluso mínimamente. En Agosto de 2000 empecé a tener más tiempo libre, con lo que comencé a experimentar. Mi principal guía fue la implementación PyGtk con características completas bastante buenas y con un buen interfaz orientado a objetos. James Henstridge, el autor de PyGtk, proveyó mucha ayuda adicional durante esos estados iniciales.

Escribir las interfaces de todas las funciones Gtk+ estaba fuera de cuestión, por lo que mantuve la idea de generador de código, similar a cómo PyGtk lo hizo. El generador de código es un programa PHP que lee un conjunto de ficheros .defs que contienen las clases Gtk+, constantes e información de métodos y genera código C que interactúa PHP con ellos. Lo que no se puede generar automáticamente puede escribirse a mano en ficheros .overrides.

Trabajar en el generador de código y la infraestructura llevó algo de tiempo, porque pude dedicar poco tiempo a PHP-GTK durante el otoño de 2000. Después mostré PHP-GTK a Frank Kromann, que se interesó y empezó a ayudarme con el trabajo del generador de código y con la implementación para Win32. Cuando escribimos el primer programa Hola Mundo y funcionó, fue extremadamente excitante. Llevó un par de meses más llevar el proyecto a una condición presentable y la versión inicial se liberó el 1 de Marzo de 2001. La historia rápidamente llegó a SlashDot.

Sintiendo que PHP-GTK podría extenderse, configuré listas de correo separadas y repositorios CVS para ello, así como el sitio web gtk.php.net con la ayuda de Colin Viebrock. La documentación también tuvo que hacerse y James Moore llegó para ayudar en esto.

Desde su lanzamiento PHP-GTK fue ganando popularidad. Tenemos nuestro propio equipo de documentación, el manual sigue mejorando, la gente ha comenzado a escribir extensiones para PHP-GTK, y con ello más y mejores aplicaciones.

Anterior | Inicio | Siguiente
Historia de PHP y proyectos relacionados | Subir | Libros sobre PHP


Libros sobre PHP

Según crecía PHP, empezo a ser reconocido como una popular plataforma de desarrollo web. Una de las más interesantes formas de ver esta tendencia era observando los libros sobre PHP que han ido llegando a lo largo de los años.

Por lo que nosotros sabemos, el primer libro dedicado a PHP fue 'PHP - tvorba interaktivních internetových aplikací' - un libro checo publicado en 1999, cuyo autor fue Jirka Koseksiendo. Al mes siguiente le siguio un libro alemán cuyos autores fueron Egon Schmid, Christian Cartus y Richard Blume. El primer libro en inglés sobre PHP se publicó poco después, y fue 'Core PHP Programming' de Leon Atkinson. Los dos libros cubrían PHP 3.0.

Mientras estos libros fueron los primeros de su tipo - fueron seguidos por un gran número de libros de una multitud de autores y editores. ¡Existen más 40 libros en inglés, 50 libros en alemán, y más de 20 libros en francés! Además, se pueden encontrar libros sobre PHP en la mayoría de las demás lenguas, incluyendo español, coreano, japonés y hebreo.

Evidentemente, este gran número de libros, escritos por diferentes autores, publicados por muchos editores, y su disponibilidad en tantas lenguas - son un fuerte testimonio del éxito mundial de PHP.

Anterior | Inicio | Siguiente
Historia de los proyectos relacionados con PHP | Subir | Publicaciones sobre PHP


Publicaciones sobre PHP

Por lo que sabemos, el primer artículo sobre PHP en una revista impresa se publicó en la version checa de Computerworld en la primavera de 1998, y cubría PHP 3.0. Como con los libros, fue el primero en una serie de muchos artículos publicados sobre PHP en varias revistas importantes.

Artículos sobre PHP han aparecido en Dr. Dobbs, Linux Enterprise, Linux Magazine y muchas otras. Artículos sobre migración de aplicaciones basadas en PHP bajo Windows ¡han aparecido incluso en el MSDN de Microsoft!

Anterior | Inicio | Siguiente
Libros sobre PHP | Subir | Migración de PHP 3 a PHP 4


Migración de PHP 3 a PHP 4

Manual de PHP
Anterior Siguiente

Apéndice B. Migración de PHP 3 a PHP 4

Tabla de contenidos
Qué ha cambiado en PHP 4
Ejecutar PHP 3 y PHP 4 simultáneamente
Migración de Archivos de Configuración
Comportamiento del analizador sintáctico
Reporte de errores
Inicializadores
empty("0")
Funciones faltantes
Extensiones PHP 3
Sustitución de variables en cadenas
Cookies
Gestión de variables globales

Qué ha cambiado en PHP 4

PHP 4 y el motor Zend integrado han mejorado considerablemente las capacidades y el rendimiento de PHP, pero se ha tenido mucho cuidado para evitar cualquier impacto negativo sobre el código existente. De modo que migrar su código desde PHP 3 a PHP 4 debe ser mucho más sencillo que migrar de PHP/FI 2 a PHP 3. Bastante código de PHP 3 existente debe estar listo para correr sin modificaciones, pero aun así es importante que sepa sobre las pocas diferencias, y tome las precauciones necesarias para probar su código antes de cambiar las versiones en entornos de producción. Las siguientes líneas deben propocionarle algunas pistas sobre qué tipo de cosas considerar.

Anterior | Inicio | Siguiente
Publicaciones sobre PHP | Subir | Ejecutar PHP 3 y PHP 4 simultáneamente


Ejecutar PHP 3 y PHP 4 simultáneamente

Sistemas operativos recientes ofrecen la posibilidad de realizar versionamiento y contextualización. Estas características hacen posible que PHP 3 y PHP 4 corran como módulos concurrentes en un servidor Apache.

Se conoce que esta característica funciona sobre las siguientes plataformas:

  • Linux con versión reciente de binutils (se ha probado con binutils 2.9.1.0.25)

  • Solaris 2.5 o superior

  • FreeBSD (se ha probado con 3.2, 4.0)

Para habilitarlo, configure PHP3 y PHP4 para que usen APXS (--with-apxs) y las extensiones de enlace necesarias (--enable-versioning). Por lo demás, todas las instrucciones de instalación estándar se aplican. Por ejemplo:

$ ./configure \
  --with-apxs=/apache/bin/apxs \
  --enable-versioning \
  --with-mysql \
  --enable-track-vars

Anterior | Inicio | Siguiente
Migración de PHP 3 a PHP 4 | Subir | Migración de Archivos de Configuración


Migración de Archivos de Configuración

El archivo de configuración global, php3.ini, ha cambiado su nombre a php.ini.

Para el archivo de configuración de Apache, existen unos cuantos cambios más. Los tipos MIME reconocidos por el módulo PHP han cambiado.

application/x-httpd-php3        -->    application/x-httpd-php
application/x-httpd-php3-source -->    application/x-httpd-php-source

Puede hacer que sus archivos de configuración trabajen con ambas versiones de PHP (dependiendo de cuál es la que está compilada actualmente con el servidor), usando la siguiente sintaxis:

AddType  application/x-httpd-php3        .php3
AddType  application/x-httpd-php3-source .php3s

AddType  application/x-httpd-php         .php
AddType  application/x-httpd-php-source  .phps

Adicionalmente, los nombres de directivas PHP para Apache han cambiado.

A partir de PHP 4.0, existen solo cuatro directivas Apache que se relacionan con PHP:

php_value [nombre de directiva PHP] [valor]
php_flag [nombre de directiva PHP] [On|Off]
php_admin_value [nombre de directiva PHP] [valor]
php_admin_flag [nombre de directiva PHP] [On|Off]

Existen dos diferencias entre los valores Admin y los no-admin:

  • Los valores (o banderas) admin pueden aparecer solo en los archivos de configuración globales de Apache (p.ej., httpd.conf).

  • Los valores (o banderas) estándar no pueden controlar ciertas directivas PHP, por ejemplo: safe mode (si pudiera sobrescribir los parámetros del modo seguro en los archivos .htaccess, se estropearía la gracia de safe mode). En contraste, los valores Admin pueden modificar el valor de cualquier directiva PHP.

Para hacer el proceso de transición más sencillo, PHP 4 es distribuido con scripts que convierten automáticamente su configuración en archivos Apache y .htaccess para que trabajen con PHP 3 y PHP 4. ¡Estos scripts NO convierten las líneas de tipos mime! Tendrá que convertir éstas manualmente.

Para convertir sus archivos de configuración de Apache, ejecute el script apconf-conv.sh (disponible en el directorio scripts/apache/). Por ejemplo:

~/php4/scripts/apache:#  ./apconf-conv.sh /usr/local/apache/conf/httpd.conf

Su archivo de configuración original será guardado en httpd.conf.orig.

Para convertir sus archivos .htaccess, ejecute el script aphtaccess-conv.sh (disponible así mismo en el directorio scripts/apache/):

~/php4/scripts/apache:#  find / -name .htaccess -exec ./aphtaccess-conv.sh {} \;

De modo semejante, sus archivos .htaccess antiguos serán guardados con el prefijo .orig.

Los scripts de conversión requieren que awk esté instalado.

Anterior | Inicio | Siguiente
Ejecutar PHP 3 y PHP 4 simultáneamente | Subir | Comportamiento del analizador sintáctico


Comportamiento del analizador sintáctico

El proceso de análisis sintáctico y la ejecución son ahora dos pasos completamente separados, no se procederá a la ejecución del código de cualquier archivo hasta que éste en su totalidad, así como todo el código requerido se haya analizado completa y satisfactoriamente.

Uno de los nuevos requisitos introducidos con esta separación es que todos los archivos requeridos y de inclusión tienen que ser sintácticamente completos ahora. Ya no es permitida la separación de diferentes segmentos de una estructura de control a través de varios archivos. Esto quiere decir que ahora no puede iniciar un ciclo for o while, una sentencia if o un bloque switch en un archivo, y tener el final del ciclo, sentencias else, endif, case o break en un archivo diferente.

Aun es perfectamente legal incluir código adicional al interior de ciclos u otras estructuras de control, únicamente las palabras claves de control y los corchetes correspondientes {...} tienen que estar en la misma unidad de compilación (archivo o cadena procesada por eval()).

Esto no debe generar una repercusión significativa ya que separar el código de esta manera debe ser considerado como muy mal estilo, en cualquier caso.

Algo más que ya no es posible, aunque es rara veces visto en código PHP 3, es devolver valores desde un archivo requerido. Devolver un valor desde un archivo de inclusión es posible aun.

Anterior | Inicio | Siguiente
Migración de Archivos de Configuración | Subir | Reporte de errores


Reporte de errores

Cambios de configuración

Con PHP 3 el nivel de reporte de errores estaba establecido como un valor numérico simple formado por la suma de los números relacionados con diferentes niveles de error. Algunos valores usuales eran 15 para reportar todos los errores y advertencias, o 7 para reportar todo excepto mensajes de noticias simples que indicaban mal estilo del código y cosas por el estilo.

PHP 4 tiene un conjunto de niveles de error y advertencia mayor y viene con un analizador sintáctico de configuración que permite el uso de constantes simbólicas para determinar el comportamiento deseado.

El nivel de reporte de errores debe ser ahora configurado mediante la deshabilitación explícita de niveles de advertencia que no desea que generen mensajes de error, con una sentencia lógica OR sobre la constante simbólica E_ALL. ¿Suena complicado? Bien, digamos que usted desea que el sistema de reporte de errores le haga saber sobre cualquier problema excepto por las advertencias de estilo simples que están categorizadas por la constante simbólica E_NOTICE. En ese caso, colocará lo siguiente en su php.ini: error_reporting = E_ALL & ~ ( E_NOTICE ). Si desea suprimir las advertencias también, usted agrega la constante apropiada al interior de los paréntesis usando el operador binario OR '|': error_reporting= E_ALL & ~ ( E_NOTICE | E_WARNING ).

Aviso

Cuando actualice código o servidores desde PHP 3 a PHP 4, usted debería chequear estos parámetros y llamadas a error_reporting() o puede que quiera deshabilitar el reporte de los nuevos tipos de error, especialmente E_COMPILE_ERROR. Esto puede llevar a la generación de documentos sin información alguna sobre qué ha pasado o en dónde investigar por posibles problemas.

Aviso

El uso de los valores antiguos 7 y 15 para establecer el reporte de errores es una muy mala idea ya que esto suprime algunas de las nuevas clases de errores presentes, incluyendo errores de la fase de análisis sintáctico. Esto puede producir comportamientos bastante extraños, debido a que posiblemente los scripts no trabajen más sin dejar de mostrar mensajes de error en todas partes.

Esto ha producido una cantidad enorme de reportes de fallos irreproducibles en el pasado, en donde la gente reportaba problemas con el motor de scripts que eran incapaces de rastrear, cuando lo que sucedía en realidad era usualmente algún '}' que faltaba en un archivo requerido, que el analizador sintáctico no podía reportar debido a un sistema de reporte de errores mal configurado.

Así que revisar la configuración de su reporte de errores debe ser lo primero que debe hacer siempre que sus scripts mueran silenciosamente. El motor Zend puede considerarse suficientemente maduro en la actualidad como para afirmar que éste no es el causante de estos comportamientos extraños.

Mensajes de advertencia adicionales

Una gran cantidad de código PHP 3 existente usa construcciones del lenguaje que deben ser consideradas como muy mal estilo ya que, aunque logran el efecto esperado ahora, pueden verse influenciadas por cambios en otros lugares del código. PHP 4 desplegará una enorme cantidad de mensajes de noticia en tales situaciones en donde PHP 3 no lo hacía. La solución simple es deshabilitar los mensajes E_NOTICE, pero usualmente es una buena idea arreglar el código en su lugar.

El caso más común que produce mensajes de noticia ahora es el uso de constantes de cadena sin comillas como índices de matrices. Tanto PHP 3 como PHP 4 llegarán a interpretar éstas como cadenas si no existen palabras clave o constantes con tales nombres, pero en donde sea que una constante con tal nombre haya sido definida en algún lugar del código, puede dañar el script. Esto puede convertirse incluso en un riesgo de seguridad si algún intruso logra redefinir constantes de cadena en forma tal que hace que sus scripts le den derechos de acceso que él no debía tener. Así que PHP 4 le advertirá ahora siempre que use constantes de cadena sin comillas, como por ejemplo en $_SERVER[REQUEST_METHOD]. Modificar tal expresión por $_SERVER['REQUEST_METHOD'] hará feliz al analizador sintáctico y mejorará significativamente el estilo y la seguridad de su código.

Otra cosa sobre la que PHP 4 le notificará es sobre el uso de variables o elementos de matrices sin inicializar.

Anterior | Inicio | Siguiente
Comportamiento del analizador sintáctico | Subir | Inicializadores


Inicializadores

Las variables estáticas y los inicializadores de miembros de clase aceptan únicamente valores escalares, mientras que en PHP 3 aceptaban cualquier expresión válida. Esto es, nuevamente, debido a la separación entre el análisis sintáctico y la ejecución ya que el código no ha sido ejecutado aun cuando el analizador sintáctico ve el inicializador.

Para clases, debería usar constructores para inicializar variables miembro en su lugar. Para variables estáticas, cosas diferentes a simples valores estáticos rara vez tienen sentido después de todo.

Anterior | Inicio | Siguiente
Reporte de errores | Subir | empty("0")


Funciones faltantes

Aunque PHP 4 viene con una gran cantidad de características, funciones y extensiones nuevas, puede que aun encuentre funciones de la versión 3 que hacen falta. Un número pequeño de funciones centrales han desaparecido ya que no funcionan con el nuevo esquema de separación de análisis sintáctico y ejecución que se introdujo en PHP 4 con el motor Zend. Otras funciones, e incluso extensiones completas, se han marcado obsoletas a medida que nuevas funciones y extensiones cubren las mismas tareas y en ocasiones en una forma más general. Algunas funciones simplemente no han sido portadas aun y finalmente algunas funciones o extensiones pueden faltar debido a conflictos de licencias.

Funciones faltantes debido a cambios conceptuales

Dado que PHP 4 separa ahora el análisis sintáctico de la ejecución, ya no es posible modificar el comportamiente del analizador sintáctico (embebido ahora en el motor Zend) en tiempo de ejecución, dado que el análisis ya ha ocurrido para entonces. De modo que la función short_tags() ya no existe. Aun puede modificar el comportamiento del analizador sintánctico definiendo los valores apropiados en el archivo php.ini.

Otra característica de PHP 3 que no es parte de PHP 4 es la interfaz de depuración integrada. Existen adiciones de terceros para el motor Zend que añaden funcionalidades similares.

Funciones y extensiones deprecadas

Las extensiones de bases de datos Adabas y Solid ya no existen. Larga vida a la extensión unificada ODBC en su lugar.

Status modificado para unset()

unset(), aun cuando sigue estando disponible, es implementada ahora como una construcción del lenguaje en lugar de una función.

Esto no tiene consecuencia alguna en el comportamiento de unset(), pero realizar una prueba con "unset" usando function_exists() devolverá FALSE del mismo modo que ocurriría con otras construcciones del lenguaje que tienen apariencia de funciones, como echo().

Otro cambio más práctico es que ya no es posible llamar unset() indirectamente, esto es, $func="unset"; $func($alguna_variable) no funcionará más.

Anterior | Inicio | Siguiente
empty("0") | Subir | Extensiones PHP 3


Extensiones PHP 3

Las extensiones escritas para PHP 3 no trabajarán con PHP 4, ni como binarios ni al nivel de fuente. No es difícil portar extensiones a PHP 4 si tiene acceso a las fuentes originales. Una descripción detallada de tal proceso de migración no hace parte de este documento.

Anterior | Inicio | Siguiente
Funciones faltantes | Subir | Sustitución de variables en cadenas


Sustitución de variables en cadenas

PHP 4 añade un nuevo mecanismo para la sustitución de variables en cadenas. Ahora, finalmente, puede acceder a variables miembro de objetos y elementos de matrices multidimensionales al interior de cadenas.

Para tal efecto, necesita rodear sus variables con corchetes, colocando el signo de dólar inmediatamente después del corchete de apetura: {$...}

Para embeber el valor de una variable miembro de objeto en una cadena, simplemente escriba "texto {$obj->miembro} texto", mientras que en PHP 3 debía hacer algo como "texto ".$obj->miembro." texto".

Esto debería representar código más legible, aunque podría arruinar scripts existentes escritos para PHP 3. Pero puede encontrar fácilmente este tipo de problemas, revisando el código por la combinación de caracteres {$ en su código, y reemplazándola por \{$ con su herramienta de búsqueda-y-reemplazo favorita.

Anterior | Inicio | Siguiente
Extensiones PHP 3 | Subir | Cookies


Cookies

PHP 3 tenía el mal hábito de definir cookies en el orden contrario al de las llamadas a setcookie() en su código. PHP 4 acabó con este hábito y crea las líneas de cabecera de cookies en el mismo orden exacto en el que usted define las cookies en el código.

Esto puede dañar código existente, pero el comportamiento antiguo era tan extraño de entender que merecía un cambio para prevenir posteriores problemas en el futuro.

Anterior | Inicio | Siguiente
Sustitución de variables en cadenas | Subir | Gestión de variables globales


Gestión de variables globales

Aunque el manejo de variables globales se enfocaba en la simplicidad en PHP 3 y versiones tempranas de PHP 4, éste enfoque ha cambiado para ser más seguro. Mientras que en PHP 3 el siguiente ejemplo funcionaba bien, en PHP 4 debe ser unset($GLOBALS["id"]);. Este es sólo un detalle de la gestión de variables globales. Usted debería usar siempre $GLOBALS, con versiones recientes de PHP 4 está obligado a hacerlo en la mayoría de casos. Lea más sobre este asunto en la sección de referencias global.

Ejemplo B-1. Migración de variables globales

<?php
$id = 1;
function prueba()
{
    global $id;
    unset($id);
}
prueba();
echo($id); // Esto imprime 1 en PHP 4
?>

Anterior | Inicio | Siguiente
Cookies | Subir | Migrando de PHP/FI 2.0 a PHP 3.0


Migrando de PHP/FI 2.0 a PHP 3.0

Manual de PHP
Anterior Siguiente

Apéndice C. Migrando de PHP/FI 2.0 a PHP 3.0

Tabla de contenidos
Acerca de las incompatibilidades en PHP 3.0
Tags de inicio y fin
sintáxis de if..endif
sintáxis de while (mientras)
Tipos de expresiones
Cambios en los mensajes de error
Evaluación booleana por corto-circuito
Retorno de valores en funciones verdadero/falso
Otras incompatibilidades

Acerca de las incompatibilidades en PHP 3.0

PHP 3.0 ha sido reescrito desde cero. Tiene un intérprete propio, que es mucho mas robusto y consistente que el de 2.0. 3.0 es también significativamente mas rápido, y usa menos memoria. De cualquier modo, algunas de estas mejoras no fueron posibles sin alterar la compatibilidad, tanto de sintaxis como de funcionamiento.

Además, los desarrolladores de PHP han intentado clarificar la sintaxis y la semántica de PHP 3.0, y eso ha causado también algunas incompatibilidades. Creemos que, a la larga, estos cambios serán para mejor.

Este capítulo, intentará guiarle a través de las incompatibilidades que encontrará si migra de PHP/FI 2.0 a PHP 3.0, además de ayudarle a resolverlas. No se mencionarán aquí las herramientas nuevas, hasta que sea necesario.

Existe un programa que convierte automáticamente sus viejos guiones PHP/FI 2.0. Puede hallarlo en el subdirectorio convertor de la distribucion 3.0 de PHP Este programa, solo actúa en referencia a los cambios sintácticos, así que debería leer este capítulo detenidamente, de todos modos.

Anterior | Inicio | Siguiente
Gestión de variables globales | Subir | Tags de inicio y fin


Tags de inicio y fin

Probablemente lo primero que note, es que los tags de inicio y fin de PHP han cambiado. Las vieja forma <? > ha sido reemplazada por tres nuevas formas posibles:

Ejemplo C-1. Migración: Cambio de los tags de inicio y fin

<? echo "Esto es codigo PHP/FI 2.0.\n"; >
Como en la versión 2.0, PHP/FI también soporta esta variante:

Ejemplo C-2. Migración: Nuevos tags de inicio y fin, Variante 1

<? echo "Esto es código PHP 3.0!\n"; ?>
Note que el tag de fin, consiste ahora en un signo de interrogación y un mayor-que, mientras que antes era sólo un mayor-que. Sin embargo si Ud. planea usar XML en su servidor, tendrá problemas con esta nueva variante, porque PHP tratará de ejecutar las marcas en los documentos XML, como código PHP. Es por esto que se han introducido las siguientes variantes:

Ejemplo C-3. Migración: Nuevos tags de inicio y fin, Variante 2

<?php echo "Esto es código PHP 3.0!\n"; ?>
Algunas personas han tenido problemas con editores que no reconocen del todo los tags de instrucciones de procesamiento. Microsoft FrontPage es uno de esos editores, y a modo de remedio, se ha introducido también esta otra variante:

Ejemplo C-4. Migración: Nuevos tags de inicio y fin, Variante 3

<script language="php">

  echo "Esto es código PHP 3.0!\n";

</script>

Anterior | Inicio | Siguiente
Migrando de PHP/FI 2.0 a PHP 3.0 | Subir | sintáxis de if..endif


sintáxis de if..endif

La manera `alternativa' de escribir la declaración if/elseif/else, usando if();elseif(); else; endif; no puede implementarse eficientemente sin agregar una gran complejidad al intérprete 3.0. Por eso la sintáxis ha cambiado:

Ejemplo C-5. Migración: vieja sintáxis if..endif

if ($foo);
    echo "sip\n";
elseif ($bar);
    echo "casi\n";
else;
    echo "nop\n";
endif;

Ejemplo C-6. Migración: nueva sitáxis if..endif (si...finsi)

if ($foo):
    echo "sip\n";
elseif ($bar):
    echo "casi\n";
else:
    echo "nop\n";
endif;
Nótese que los punto-y-coma, han sido reemplazados por los los dos-puntos en todas las declaraciones, excepto en la de finalización (endif).

Anterior | Inicio | Siguiente
Tags de inicio y fin | Subir | sintáxis de while (mientras)


sintáxis de while (mientras)

Al igual que para if..endif, la sintáxis de while..endwhile se ha cambiado:

Ejemplo C-7. Migración: vieja sintaxis while..endwhile

while ($more_to_come);
    ...
endwhile;

Ejemplo C-8. Migración: nueva sintáxis while..endwhile

while ($more_to_come):
    ...
endwhile;

Aviso

Si se utiliza la sintáxis vieja de mientras...fin-mientras en PHP 3.0, el resultado es un bucle infinito.

Anterior | Inicio | Siguiente
sintáxis de if..endif | Subir | Tipos de expresiones


Tipos de expresiones

PHP/FI 2.0 usó el lado izquierdo de las expresiones para determinar de qué tipo debía ser el resultado. PHP 3.0 toma ambos lados en cuenta cuando determina el tipo de resultado, y eso puede producir resultados impredecibles si ejecuta guiones 2.0 en 3.0.

Considere este ejemplo:

$a[0]=5;
$a[1]=7;

$key = key($a);
while ("" != $key) {
    echo "$keyn";
    next($a);
}

En PHP/FI 2.0, esto mostraría los dos índices de $a. En PHP 3.0, no muestra nada. El motivo es que en PHP 2.0, al ser el argumento izquierdo de tipo cadena, se comparaba cadenas, y puesto que ciertamente "" no es igual a "0", el bucle continúa. En PHP 3.0, cuando se compara una cadena con un entero, se realiza una comparación de enteros (la cadena es convertida a entero). Esto es comparar entonces atoi("") que es 0, y variablelist que tambien es 0, y como 0==0, el bucle no avanzará.

La solución a esto es simple, reemplaze la declaración while con:

while ((string)$key != "") {

Anterior | Inicio | Siguiente
sintáxis de while (mientras) | Subir | Cambios en los mensajes de error


Cambios en los mensajes de error

Los mensajes de error de PHP 3.0 son usualmente mas precisos que los de 2.0, pero ya no podrá ver el fragmento de código que causó el error. En vez de eso, se le mostrará el nombre de archivo y número de línea del error.

Anterior | Inicio | Siguiente
Tipos de expresiones | Subir | Evaluación booleana por corto-circuito


Evaluación booleana por corto-circuito

En PHP 3.0, la evaluación booleana es por cortocircuito. Eso significa que en una expresión como (1 || prueba_me()), la función prueba_me() no será ejecutada ya que nada puede cambiar el resultado de la expresión despues del 1.

Si bien es éste un detalle menor de la compatibilidad, puede provocar inesperados efectos colaterales

Anterior | Inicio | Siguiente
Cambios en los mensajes de error | Subir | Retorno de valores en funciones verdadero/falso


Retorno de valores en funciones verdadero/falso

La mayoria de las funciones internas han sido reescritas, asi que devuelven TRUE (verdadero) si hubo éxito, o FALSE (falso) si hubo falla, en oposición a los valores 0 y -1 de PHP/FI 2.0, para idénticas circunstancias. La nueva respuesta permite mas código lógico, como $fp = fopen("/su/fichero") or fail("diablos!");. Puesto que PHP/FI 2.0 no tiene reglas claras acerca de lo que devuelven las funciones cuando fallan, scripts de este tipo deberán revisarse manualmente despues de usar el conversor de 2.0 a 3.0.

Ejemplo C-9. Migración desde 2.0: Valores de retorno, codigo viejo

$fp = fopen($file, "r");
if ($fp == -1);
    echo("No se pudo abrir el fichero $file para su lectura<br>\n");
endif;

Ejemplo C-10. Migración desde 2.0: Valores de retorno, codigo nuevo

$fp = @fopen($file, "r") or print("No se pudo abrir el fichero $file para su lectura<br>\n");

Anterior | Inicio | Siguiente
Evaluación booleana por corto-circuito | Subir | Otras incompatibilidades


Otras incompatibilidades

  • El modulo Apache de 3.0 no soportará versiones de Apache anteriores a la 1.2. Es requisito Apache 1.2 o posterior.

  • echo() no soportará las cadenas de formato. Use en su lugar la función printf().

  • En PHP/FI 2.0, un efecto colateral en la implementación hacía que $foo[0] tenga el mismo efecto que $foo. Esto ya no es así en PHP 3.0.

  • La lectura de arreglos con $array[] ya no está soportada

    Esto es, no se puede recorrer un arreglo mediante un bucle que ejecute $data = $array[]. Use current() y next() en su lugar.

    Tambien, $array1[] = $array2 no agrega los valores de $array2 a $array1, pero agrega $array2 como la última entrada de $array1. Véase tambien el soporte de arreglos multidimensionales.

  • "+" ya no funciona como operador de concatenación de cadenas, sino que convierte los argumentos, a números, y realiza una suma numérica. Utilize "." en su lugar.

Ejemplo C-11. Migración desde 2.0: concatenando cadenas

echo "1" + "1";

En PHP 2.0 esto mostraría 11, en PHP 3.0 sería 2. Use en su lugar:
echo "1"."1";
$a = 1;
$b = 1;
echo $a + $b;

Esto dá 2 igualmente en PHP 2.0 y 3.0.
$a = 1;
$b = 1;
echo $a.$b;
Esto dá 11 en PHP 3.0.

Anterior | Inicio | Siguiente
Retorno de valores en funciones verdadero/falso | Subir | El debugger de PHP


El debugger de PHP

Manual de PHP
Anterior Siguiente

Apéndice D. El debugger de PHP

Tabla de contenidos
Usando el Debugger
Protocolo del debugger

Usando el Debugger

El debugger interno de PHP es útil para localizar fallos que se resisten. El debugger funciona conectandose a un puerto TCP cada vez que PHP comienza. Todos los mensajes de error de esa petición serán enviados a esta conexión TCP. Esta información se entiende que que es para un "servidor de debugger" que puede ejecutarse en un IDE o en un editor programabler (como Emacs).

Como poner en marcha el debugger:

  1. Establezca un puerto TCP para el debugger en el archivo de configuración (debugger.port) y activelo (debugger.enabled).

  2. Ponga en marcha un módulo de escucha de TCP en algun sitio (por ejemplo socket -l -s 1400 en UNIX).

  3. En su código, ejecute "debugger_on(host)", donde host es la dirección IP o el nombre de el host ejecutando un módulo de escucha de TCP.

Ahora, todos los avisos, notificaciones, etc. se mostrarán en ese módulo de escucha, incluso si lo ha desactivado con error_reporting().

Anterior | Inicio | Siguiente
Otras incompatibilidades | Subir | Protocolo del debugger


Protocolo del debugger

El protocolo del debugger está basado en líneas. Cada línea tiene un tipo, y varias línea componen un mensaje. Cada mensaje comienza con una línea del tipo start y termina con una línea del tipo end. PHP puede enviar líneas para diferentes mensajes simultaneamente.

Una línea tiene este formato:

fecha hora host(pid) tipo: datos del mensaje

fecha

Fecha en formato ISO 8601 (aaaa-mm-dd)

hora

Hora incluyendo microsegundos: hh:mm:uuuuuu

host

Nombre DNS o dirección IP del host donde el script de error fue generado.

pid

PID (id proceso) en el host del proceso en que el script de PHP generó este error.

tipo

Tipo de la línea. Dice al programa programa que recibe que debe considerar los datos siguientes como:

Tabla D-1. Tipos de línea del debugger

Nombre | Significado
start | Informa al programa que recibe que un mensaje del debugger comienza aqui. El contenido de data será el tipo del mensaje de error, listados debajo.
message | El mensaje de error de PHP.
location | Nombre del fichero y número de línea donde ocurrió el error. La primera línea con location siempre contendrá la localización de mayor nivel. data contendrá fichero:línea. Siempre habrá una línea de tipo location después de message y después de cada function.
frames | Número de marcos en la pila. Si hay cuatro marcos, espere información sobre los cuatro niveles de las funciones llamadas. Si no hay una línea de tipo "frames", la profundidad se asume que es 0 (el error ocurrió en el nivel superior).
function | Nombre de la función donde ocurrió el error. Será repetida una vez por cada nivel en la pila de funciones.
end | Informa al programa que recibe que el mensaje del debugger termina aqui.

data

Línea de datos.

Tabla D-2. Tipos de error del debugger

Debugger | PHP Internal
warning | E_WARNING
error | E_ERROR
parse | E_PARSE
notice | E_NOTICE
core-error | E_CORE_ERROR
core-warning | E_CORE_WARNING
unknown | (any other)

Ejemplo D-1. Ejemplo de mensaje del debugger

1998-04-05 23:27:400966 lucifer.guardian.no(20481) start: notice
1998-04-05 23:27:400966 lucifer.guardian.no(20481) message: Uninitialized variable
1998-04-05 23:27:400966 lucifer.guardian.no(20481) location: (NULL):7
1998-04-05 23:27:400966 lucifer.guardian.no(20481) frames: 1
1998-04-05 23:27:400966 lucifer.guardian.no(20481) function: display
1998-04-05 23:27:400966 lucifer.guardian.no(20481) location: /home/ssb/public_html/test.php3:10
1998-04-05 23:27:400966 lucifer.guardian.no(20481) end: notice

Anterior | Inicio | Siguiente
El debugger de PHP | Subir | Desarrollo en PHP


Desarrollo en PHP

Manual de PHP
Anterior Siguiente

Apéndice E. Desarrollo en PHP

Tabla de contenidos
Añadiendo funciones al PHP3
Llamando a Funciones del Usuario
Informando de errores

Añadiendo funciones al PHP3

Prototipo de Función

Todas las funciones son como esta:
void php3_algo(INTERNAL_FUNCTION_PARAMETERS) {

}
Incluso si su función no lleva argumentos, es así como se le llama.

Argumentos de Función

Los argumentos son siempre de tipo pval. Este tipo contiene una unión que es el tipo actual del argumento. Así, si su función tiene dos argumentos, deberá hacer algo como lo que sigue al principio de la misma:

Ejemplo E-1. Extrayendo argumentos de función

pval *arg1, *arg2;
if (ARG_COUNT(ht) != 2 || getParameters(ht,2,&arg1,&arg2)==FAILURE) {
   WRONG_PARAM_COUNT;
}
NOTA: Los argumentos pueden pasarse tanto por valor como por referencia. En ambos casos, necesitará pasar &(pval *) a getParameters. Si desea comprobar si el enésimo parámetro le ha sido enviado o no por referencia, puede utilizar la función ParameterPassedByReference(ht,n). Esta devolverá 1 ó 0, según corresponda.

Cuando cambie alguno de los parámetros pasados, tanto si son enviados por referencia o por valor, puede volver a comenzar con éste llamando la función pval_destructor sobre el mismo, o, si es una ARRAY a la que quiere añadir algo, puede utilizar funciones similares a las incluídas en internal_functions.h, que manipulan el valor return_value como si fuera de tipo ARRAY.

Además, si cambia un parámetro a IS_STRING, asegúrese primero de asignar el valor y el tamaño a la cadena creada por estrdup() y sólo entonces cambiar su tipo a IS_STRING. Si modifica la cadena de un parámetro que ya es IS_STRING o IS_ARRAY, deberá primero aplicarle la función pval_destructor.

Argumentos de Función Variables

Una función puede tomar un número variable de argumentos. Si su función puede tomar tanto 2 como 3 argumentos, utilice el siguiente código:

Ejemplo E-2. Argumentos de función variables

pval *arg1, *arg2, *arg3;
int arg_count = ARG_COUNT(ht);

if (arg_count < 2 || arg_count > 3 ||
    getParameters(ht,arg_count,&arg1,&arg2,&arg3)==FAILURE) {
    WRONG_PARAM_COUNT;
}

Usando los Argumentos de Función

El tipo de cada argumento se guarda en el campo type del pval. Este tipo puede ser:

Tabla E-1. Tipos Internos de PHP

IS_STRING | Cadena
IS_DOUBLE | Coma flotante de doble precisión
IS_LONG | Entero largo
IS_ARRAY | Matriz
IS_EMPTY | Nada
IS_USER_FUNCTION | ??
IS_INTERNAL_FUNCTION | ?? (N.D.: si alguno de estos no se puede pasar a una función, bórrese)
IS_CLASS | ??
IS_OBJECT | ??

Si obtiene un argumento de un tipo y desea utilizarlo como si fuera de otro, o si quiere forzar a que un argumento sea de un tipo determinado, puede usar una de las siguientes funciones de conversión:
convert_to_long(arg1);
convert_to_double(arg1);
convert_to_string(arg1);
convert_to_boolean_long(arg1); /* Si la cadena es "" o "0" pasa a ser 0; si no, vale 1 */
convert_string_to_number(arg1);  /* Convierte la cadena a LONG o a DOUBLE, dependiendo de su contenido */

Estas funciones convierten el valor in-situ. No devuelven nada.

El argumento real es almacenado en una unión cuyos miembros son:

  • IS_STRING: arg1->value.str.val

  • IS_LONG: arg1->value.lval

  • IS_DOUBLE: arg1->value.dval

Manejo de Memoria en las Funciones

La memoria necesitada por una función deberá ser asignada usando emalloc() o estrdup(). Estas son funciones abstractas de manejo de memoria que son similares a las funciones normales malloc() y strdup(). La memoria deberá liberarse con efree().

Hay dos tipos de memoria en este programa: la memoria que se devuelve al troceador (parser) en una variable, y la memoria que se necesita para almacenamiento temporal de datos en sus funciones. Cuando asigne una cadena a una variable que se devolverá al troceador deberá asegurarse previamente de asignar la memoria con emalloc() o con estrdup(). Esta memoria NUNCA debe ser liberada por usted, salvo si más adelante, en la misma función, sobreescribe la asignación original (aunque este hábito de programación no es bueno).

Para cada trozo de memoria temporal/permanente que precise en sus funciones/librería deberá utilizar las funciones emalloc(), estrdup(), y efree(). Estas se comportan EXACTAMENTE como sus funciones equivalentes. Cualquier cosa que asigne con emalloc() o estrdup() deberá liberarla con efree() en uno u otro momento, salvo que se suponga que deba permanecer activa hasta el final del programa; de otro modo, se producirá una fuga de memoria. El significado de "estas se comportan exactamente como sus funciones equivalentes" es: si llama a efree() sobre algo que no ha sido asignado previamente con emalloc() o con estrdup(), puede provocar un fallo de segmentación. Por ello debe tener cuidado y liberar toda la memoria desperdiciada.

Si compila con "-DDEBUG", el PHP3 mostrará una lista de toda la memoria que fue asignada usando emalloc() y estrdup(), pero que nunca fue liberada con efree(), al terminar de ejecutar el guión especificado.

Asignando Variables en la Tabla de Símbolos

Están disponibles una serie de macros que hacen más fácil el asignar una variale en la tabla de símbolos:

  • SET_VAR_STRING(nombre,valor) [1]

  • SET_VAR_DOUBLE(nombre,valor)

  • SET_VAR_LONG(nombre,valor)

[1]

Las tablas de símbolos en PHP 3.0 se implementan como tablas hash (con extracto). En todo momento, &symbol_table es un puntero a la tabla de símbolos 'principal', mientras que active_symbol_table apunta a la tabla de símbolos activa (pueden ser idénticas, al principio de todo, o diferentes, si se está dentro de una función).

Los ejemplos siguientes utilizan 'active_symbol_table'. Deberá reemplazarla por &symbol_table si desea trabajar específicamente con la tabla de símbolos 'principal'. También se pueden aplicar las mismas funciones a matrices, como se explica más abajo.

Ejemplo E-3. Comprobando si $algo existe en una tabla de símbolos

if (hash_exists(active_symbol_table,"algo",sizeof("algo"))) { existe... }
else { no existe }

Ejemplo E-4. Hallando el tamaño de una variable en una tabla de símbolos

hash_find(active_symbol_table,"algo",sizeof("algo"),&valptr);
check(valptr.type);
Las matrices en PHP 3.0 se implementan utilizando las mismas tablas hash que para las tablas de símbolos. Ello quiere decir que las dos funciones anteriores se pueden usar también para comprobar variables dentro de matrices.

Si desea definir un nuevo símbolo de matriz en una tabla de símbolos, deberá hacer lo que sigue.

Primero, deberá comprobar si ya existe usando hash_exists() o hash_find() y abortar la ejecución de forma apropiada.

Luego inicialice la matriz:

Ejemplo E-5. Inicializando una nueva matriz

pval matriz;

if (array_init(&matriz) == FAILURE) { falló... };
hash_update(active_symbol_table,"algo",sizeof("algo"),&matriz,sizeof(pval),NULL);
Este código declara una nueva matriz, llamada $algo, en la tabla de símbolos activa. Esta matriz está vacía.

Ahora se muestra cómo añadirle elementos:

Ejemplo E-6. Añadir entradas a una nueva matriz

pval elemento;

elemento.type = IS_LONG;
elemento.value.lval = 5;

/* define $algo["bar"] = 5 */
hash_update(matriz.value.ht,"bar",sizeof("bar"),&elemento,sizeof(pval),NULL);

/* define $algo[7] = 5 */
hash_index_update(matriz.value.ht,7,&elemento,sizeof(pval),NULL);

/* define el siguiente puesto libre en $algo[],
 * $algo[8], como 5 (funciona como en php2)
 */
hash_next_index_insert(matriz.value.ht,&elemento,sizeof(pval),NULL);
Si desea modificar un valor que ha insertado en una matriz asociativa, deberá primero extraerlo de ella. Para evitar esa sobrecarga, puede pasarle un puntero pval ** a la función para insertar en una matriz asociativa, y será actualizada con la dirección pval * del elemento insertado dentro de la matriz. Si dicho valor es NULL (como en todos los ejemplos anteriores), el parámetro se ignora.

hash_next_index_insert() usa más o menos la misma lógica que "$algo[] = bar;" en el PHP 2.0.

Si está preparando una matriz como valor devuelto por una función, puede inicializar la misma como antes, haciendo:

if (array_init(return_value) == FAILURE) { falló...; }

... y luego añadiéndole valores con las funciones auxiliares:

add_next_index_long(return_value,val_long);
add_next_index_double(return_value,val_double);
add_next_index_string(return_value,estrdup(val_cadena));

Por supuesto, si la adición no se realiza justo después de inicializar la matriz, probablemente tenga que buscarla antes:
pval *matriz;

if (hash_find(active_symbol_table,"algo",sizeof("algo"),(void **)&matriz)==FAILURE) { no se hayó... }
else { usar matriz->value.ht... }

Nótese que hash_find recibe un puntero a un puntero a pval, y no un puntero a pval.

Casi cualquier función de matrices asociativas devuelve SUCCESS o FAILURE (excepto por hash_exists(), que devuelve un valor lógico de certeza).

Devolviendo valores simples

Están disponibles varias macros para facilitar la devolución de valores de una función.

Todas las macros RETURN_* fijan el valor y retornan de la función:

  • RETURN

  • RETURN_FALSE

  • RETURN_TRUE

  • RETURN_LONG(l)

  • RETURN_STRING(s,dup) Si dup es TRUE, duplica la cadena

  • RETURN_STRINGL(s,l,dup) Devuelve la cadena (s) especificando el largo (l).

  • RETURN_DOUBLE(d)

Las macros RETVAL_* fijan el valor, pero no retornan.

  • RETVAL_FALSE

  • RETVAL_TRUE

  • RETVAL_LONG(l)

  • RETVAL_STRING(s,dup) Si dup es TRUE, duplica la cadena

  • RETVAL_STRINGL(s,l,dup) Devuelve la cadena (s) especificando el largo (l).

  • RETVAL_DOUBLE(d)

Las macros anteriores harán un estrdup() del argumento 's', de modo que puede liberar con seguridad el argumento después de llamar a la macro, o, alternativamente, utilizar memoria asignada estáticamente.

Si su función devuelve respuestas lógicas de éxito/error, use siempre RETURN_TRUE y RETURN_FALSE respectivamente.

Devolviendo valores complejos

Su función también puede devolver un tipo de datos complejo, tal como un objeto o una matriz.

Devolviendo un objeto:

  1. Llame a object_init(return_value).

  2. Rellénela con valores. Las funciones disponibles para ello son listadas más abajo.

  3. Posilemente registre funciones para este objeto. Para obtener valores del objeto, la función deberá de obtener "this" desde la active_symbol_table. Su tipo deberá ser IS_OBJECT, y básicamente se trata de una matriz asociativa estándar (es decir, que podrá usar funciones de matriz asociativa sobre .value.ht). El registro en sí de la función se puede hacer utilizando:
    add_method( return_value, nombre_func, puntero_func );

Las funciones utilizadas para rellenar un objeto son:

  • add_property_long( return_value, nombre_propiedad, l ) - Añade una propiedad llamada 'nombre_propiedad', de tipo long, y con valor 'l'

  • add_property_double( return_value, nombre_propiedad, d ) - Igual, pero añadiendo un double

  • add_property_string( return_value, nombre_propiedad, cad ) - Igual, pero añadiendo una cadena

  • add_property_stringl( return_value, nombre_propiedad, cad, l ) - Igual, pero añadiendo una cadena de longitud 'l'

Devolviendo una matriz:

  1. Llame a array_init(return_value).

  2. Rellénela con valores. Las funciones disponibles para ello son listadas más abajo.

Las funciones utilizadas para rellanar una matriz son:

  • add_assoc_long(return_value,clave,l) - añade un elemento asociativo con clave 'clave' y valor long 'l'

  • add_assoc_double(return_value,clave,d)

  • add_assoc_string(return_value,clave,cad,duplicar)

  • add_assoc_stringl(return_value,clave,cad,largo,duplicar) - especifica el largo de la cadena

  • add_index_long(return_value,indice,l) - añade un elemento en la posición 'indice' con valor long 'l'

  • add_index_double(return_value,indice,d)

  • add_index_string(return_value,indice,cad)

  • add_index_stringl(return_value,indice,cad,largo) - especifica el largo de la cadena

  • add_next_index_long(return_value,l) - añade un elemento a la matriz en la próxima posición libre con valor long 'l'

  • add_next_index_double(return_value,d)

  • add_next_index_string(return_value,cad)

  • add_next_index_stringl(return_value,cad,largo) - especifica el largo de la cadena

Usando la lista de recursos

El PHP 3.0 tiene una forma estandarizada de tratar con distintos tipos de recursos. Esto sustituye a las listas enlazadas locales del PHP 2.0.

Funciones disponibles:

  • php3_list_insert(ptr, tipo) - devuelve el 'id' del recurso recién insertado

  • php3_list_delete(id) - borra el recurso con el id especificado

  • php3_list_find(id,*tipo) - devuelve el puntero al recurso con el id especificado, y actualiza 'tipo' al tipo del mismo

Estas funciones se utilizan típicamente para controladores SQL, pero pueden utilizarse para cualquier otra cosa, como, por ejemplo, para mantener descriptores de archivo.

El código típico de un lista sería como este:

Ejemplo E-7. Añadiendo un nuevo recurso

RESOURCE *recurso;

/* ...asignar memoria para el recurso y adquirirlo... */
/* añadir un recurso a la lista */
return_value->value.lval = php3_list_insert((void *) recurso, LE_RESOURCE_TYPE);
return_value->type = IS_LONG;

Ejemplo E-8. Utilizando un recurso existente

pval *id_recurso;
RESOURCE *recurso;
int tipo;

convert_to_long(id_recurso);
recurso = php3_list_find(id_recurso->value.lval, &tipo);
if (tipo != LE_RESOURCE_TYPE) {
    php3_error(E_WARNING,"el recurso número %d tiene el tipo equivocado",id_recurso->value.lval);
    RETURN_FALSE;
}
/* ...usar recurso... */

Ejemplo E-9. Borrando un recurso

pval *id_recurso;
RESOURCE *recurso;
int tipo;

convert_to_long(id_recurso);
php3_list_delete(id_recurso->value.lval);
Los tipos de recursos deben registrarse en php3_list.h, en la enumeración list_entry_type. Además, hay que añadir código de desconexión para cada tipo de recurso definido en la función list_entry_destructor() de list.c (incluso si no hay nada que hacer para la desconexión, deberá añadir un caso vacío).

Utilizando la tabla de recursos persistentes

El PHP 3.0 tiene una forma estándar de almacenar recursos persistentes (es decir, recursos que se mantienen entre accesos). El primer módulo que utilizó esta característica fue el MySQL y tras él fue el mSQL, así que uno puede hacerse una buena idea de cómo utilizar un recurso persistente leyendo mysql.c. Las funciones a revisar son:

php3_mysql_do_connect
php3_mysql_connect()
php3_mysql_pconnect()

La idea general de los módulos persistentes es:

  1. Codifique todos sus módulos para que funcionen con la lista regulares de recursos mencionadas en la sección (9).

  2. Codifique funciones extra de conexión que comprueben si el recurso ya está en la lista de recursos persistentes. Si ya está, regístrelo en la lista regular como un puntero a la lista de recursos persistentes (debido a 1., el resto del código deberá funcionar de inmediato). Si no está en la lista, créelo, añádalo a la lista de recursos persistentes Y añada un puntero al mismo desde la lista regular de recursos. Así todo el código funcionará porque está en la lista regular, pero en la siguiente conexión el recurso ya estará en la lista persistente y podrá ser usado sin re-crearlo. Deberá registrar estos recursos con un tipo diferente (por ejemplo, LE_MYSQL_LINK para el enlace no persistente y LE_MYSQL_PLINK para un enlace persistente).

Si se leyera mysql.c, notaría que, salvo por que hay una función de conexión más compleja, no hay que cambiar nada más del resto del módulo.

Existe exactamente la misma interfaz para la lista de recursos regular y para la lista de recursos persistente, pero cambiando únicamente 'lista' por 'listap':

  • php3_plist_insert(ptr, tipo) - devuelve el 'id' del recurso recién insertado

  • php3_plist_delete(id)- borra el recurso con el id especificado

  • php3_plist_find(id,*tipo) - devuelve el puntero al recurso con el id especificado, y actualiza 'tipo' al tipo del mismo

Sin embargo, es más que probable que estas funciones se muestren inútiles cuando intente implementar un módulo persistente. Típicamente usted querrá usar el hecho de que la tabla de recursos persistentes es en realidad una matriz asociativa. Por ejemplo, en los módulos MySQL/mSQL, cuando hay una llamada a pconnect() (conexión persistente), la función combina en una cadena el servidor/usuario/clave que se pasaron a la función y codifica el enlace SQL con esta cadena como clave. La siguiente vez que alguien llame a pconnect() con el mismo servidor/usuario/clave, se generará la misma clave, y la función hayará el enlace SQL en la lista persistente.

Hasta que se documente mejor, deberá mirar en mysql.c o en msql.c para ver como utilizar las capacidades de matriz asociativa de la listap.

Una cosa importante: a los recursos que van a parar a la lista de recursos persistentes *NO* se les debe asignar memoria usando el gestor de memoria del PHP, es decir, que NO deben ser creados utilizando emalloc() o estrdup(), etc. En este caso se debe usar las funciones habituales malloc(), strdup(), etc. La razón para esto es simple: al final de la petición (final del acceso), se borran todos los trozos de memoria asignados con el gestor de memoria del PHP. Como la lista persistente se supone que no se debe borrar al final de una petición, no se debe utilizar el gestor de memoria del PHP para asignar memoria a los recursos de la misma.

Cuando registre un recuros que vaya a estar en la lista persistente, deberá añadir destructores tanto a la lista persistente como a la no persistente. El destructor de la lista no persistente no deberá hacer nada. El de la lista persistente deberá liberar adecuadamente los recursos obtenidos por dicho tipo (por ejemplo, memoria, enlaces SQL, etc.). Tal y como pasa para los recursos no persistentes, DEBERÁ añadir destructores para cada recurso aunque no sean necesarios y estén vacíos. Recuerde que como no se pueden usar emalloc() y similares en conjunción con la lista persistente, tampoco podrá utilizar efree() aquí.

Añadiendo directivas de configuración en tiempo de ejecución

Muchas de las características del PHP3 pueden ser configuradas en tiempo de ejecución. Estas directivas de configuración pueden aparecer tanto en el fichero php3.ini o, en el caso de la versión de módulo del Apache, en los archivos .conf del propio Apache. La ventaja de tenerlos en los archivos .conf del Apache es que se puden configurar directorio por directorio. Esto quiere decir que cada uno puede tener un cierto safemodeexecdir, por ejemplo, mientras otro directorio puede tener otro. Esta granularidad en la configuración es especialmente útil cuando un servidor soporta múltiples servidores virtuales.

Los pasos necesarios para añadir una nueva directiva:

  1. Añada la directiva a la estructura php3_ini_structure en mod_php3.h.

  2. En main.c, edite la función php3_module_startup y añada la llamada a cfg_get_string() o a cfg_get_long() según se requiera.

  3. Añada la directiva, las restricciones y un comentario a la estructura php3_commands en mod_php3.c. Cuidado con la parte de restricciones. Las de tipo RSRC_CONF sólo puede aparecer en los archivos .conf del Apache. Las directivas de tipo OR_OPTIONS pueden aparecer en cualquier parte, incluso en los habituales archivos .htaccess.

  4. Añada el elemento apropiado para su directiva, bien en php3take1handler(), bien en php3flaghandler().

  5. Necesita añadir su nueva directiva a la sección de configuración de la función _php3_info() en functions/info.c.

  6. Y finalmente, por supuesto, deberá utilizar su nueva directiva en algún sitio. Estará accesible como php3_ini.directiva.

Notas

[1]

Tenga cuidado aquí. El valor a usar se debe asignar dinámicamente y de forma manual, pues el código de manejo de memoria intentará liberar este puntero más adelante. Nunca pase memoria asignada de forma estática a SET_VAR_STRING.

Anterior | Inicio | Siguiente
Protocolo del debugger | Subir | Llamando a Funciones del Usuario


Llamando a Funciones del Usuario

Para llamar a funciones del usuario desde una función interna, deberá usar la función call_user_function().

call_user_function() devuelve SUCCESS si tiene éxito y FAILURE en caso de que la función no sea hallada. ¡Deberá comprobar ese valor de retorno! Si devuelve SUCCESS, debe usted ocuparse de destruir el pval devuelto (o devolverlo como el valor de retorno de su función). Si devuelve FAILURE, el valor de valret no está definido y no debe tocarlo.

Todas las funciones internas que llaman a funciones de usuario deben ser reentrantes. Entre otras cosas, esto quiere decir que no se utilicen variables globales ni estáticas.

call_user_function() lleva 6 argumentos:

HashTable *tabla_funciones

Esta es la matriz asociativa en la que se buscará la función.

pval *objeto

Este es un puntero a un objeto sobre el que se invoca la función. Deberá valer NULL si se llama a una función global. Si no es NULL (es decir, si apunta a un objeto), el argumento tabla_funciones se ignora y se toma su valor a partir de la codificación del objeto. El objeto *puede* ser modificado por dicha función (ésta accede a él a través de $this). Si por alguna razón no desea que eso ocurra, envíe entonces una copia del objeto.

pval *nombre_func

El nombre de la función a llamar. Debe ser un pval de tipo IS_STRING, con nombre_func.str.val y nombre_func.str.len fijados a los valores apropiados. El nombre_func es modificado por call_user_function(), que lo convierte a minúsculas. Si necesita preservar el nombre, envíe una copia del mismo.

pval *valret

Un puntero a una estructura pval, en la que se guarda el valor de returno de la función. Hay que asignar espacio a la estructura previamente, porque la función call_user_function() NO lo asigna por sí misma.

int num_params

El número de parámetros que se pasan a la función.

pval *params[]

Una matriz de punteros a los valores que se pasarán como argumentos a la función. El primer argumento está en el elemento 0, el segundo en el elemento 1, etc. La matriz es una matriz de punteros a pval. Los punteros se envían tal cual a la función, lo que quiere decir que si la función modifica sus argumentos, se modifican los valores originales (paso por referencia). Si no desea ese comportamiento, pase una copia.

Anterior | Inicio | Siguiente
Desarrollo en PHP | Subir | Informando de errores


Informando de errores

Para informar de errores desde una función interna, deberá llamar la función php3_error(). Esta lleva al menos dos parámetros: el primero el es nivel del error, y el segundo es la cadena de formato para el mensaje de error (como en una llamada estándar a printf()). Cualquiera de los argumentos siguientes son para la cadena de formato. Los niveles de error son:

E_NOTICE

Por defecto se visualizan las noticas, e indican que el guión encontró algo que podría indicar un error, pero que también podría ocurrir durante el curso normal de la ejecución del mismo. Por ejemplo, al intentar acceder al valor de una variable que no ha sido fijado, o llamar a stat() sobre un fichero que no existe.

E_WARNING

Por defecto se visualizan los avisos, pero no se interrumpe la ejecución del guión. Estos indican un problema que debiera haberse interceptado en el guión antes de la llamada. Por ejemplo, llamar ereg() con una expresión regular no válida.

E_ERROR

Por defecto se visualizan los errores y la ejecución del guión se detiene cuando la función retorna. Estos indican errores irrecuperables, como un problema de asignación de memoria.

E_PARSE

Los errores de troceo sólo debe generarlos el troceador. El código se lista aquí con objeto de ser exhaustivos.

E_CORE_ERROR

Este es similar al E_ERROR, pero generado por el núcleo del PHP. Las funciones no deben generar este tipo de error.

E_CORE_WARNING

Este es similar al E_WARNING, pero generado por el núcleo del PHP. Las funciones no deben generar este tipo de error.

Nota: "N.D.:" significa Nota del Documentador y es un texto interno

Anterior | Inicio | Siguiente
Llamando a Funciones del Usuario | Subir | Lista de alias de funciones


Lista de alias de funciones

Manual de PHP
Anterior Siguiente

Apéndice F. Lista de alias de funciones

Aqui teneis la lista de alias de funciones. Todos loas alias están listados aqui. en general es una mala idea usar alias, ya que pueden ser modificados o renombrados, por lo que tu código no podra utilizarse. Esta lista se provee para que quien quiera actualizar su código antiguo a la sintaxis actual.

De todas maneras, algunas funciones tienen dos nombres, sin preferencia por uno u otro. (Por ejemplo, is_int() y is_integer() som válidas indistintamente)

Esta lista es consistente con PHP 4.0.6. Para obtener una lista actualizada todos los dias, pasaros por aqui.

Tabla F-1. Alias

Alias | Función principal | Extensión usada
_ | gettext() | Gettext
add | swfmovie_add() | Ming (flash)
add | swfsprite_add() | Ming (flash)
add_root | domxml_add_root() | DOM XML
addaction | swfbutton_addAction() | Ming (flash)
addcolor | swfdisplayitem_addColor() | Ming (flash)
addentry | swfgradient_addEntry() | Ming (flash)
addfill | swfshape_addfill() | Ming (flash)
addshape | swfbutton_addShape() | Ming (flash)
addstring | swftext_addString() | Ming (flash)
addstring | swftextfield_addString() | Ming (flash)
align | swftextfield_align() | Ming (flash)
attributes | domxml_attributes() | DOM XML
children | domxml_children() | DOM XML
chop | rtrim() | Base syntax
close | closedir() | Base syntax
com_get | com_propget() | COM
com_propset | com_propput() | COM
com_set | com_propput() | COM
cv_add | ccvs_add() | CCVS
cv_auth | ccvs_auth() | CCVS
cv_command | ccvs_command() | CCVS
cv_count | ccvs_count() | CCVS
cv_delete | ccvs_delete() | CCVS
cv_done | ccvs_done() | CCVS
cv_init | ccvs_init() | CCVS
cv_lookup | ccvs_lookup() | CCVS
cv_new | ccvs_new() | CCVS
cv_report | ccvs_report() | CCVS
cv_return | ccvs_return() | CCVS
cv_reverse | ccvs_reverse() | CCVS
cv_sale | ccvs_sale() | CCVS
cv_status | ccvs_status() | CCVS
cv_textvalue | ccvs_textvalue() | CCVS
cv_void | ccvs_void() | CCVS
die | exit() | Miscellaneous functions
dir | getdir() | Base syntax
diskfreespace | disk_free_space() | Filesystem
domxml_getattr | domxml_get_attribute() | DOM XML
domxml_setattr | domxml_set_attribute() | DOM XML
doubleval | floatval() | Base syntax
drawarc | swfshape_drawarc() | Ming (flash)
drawcircle | swfshape_drawcircle() | Ming (flash)
drawcubic | swfshape_drawcubic() | Ming (flash)
drawcubicto | swfshape_drawcubicto() | Ming (flash)
drawcurve | swfshape_drawcurve() | Ming (flash)
drawcurveto | swfshape_drawcurveto() | Ming (flash)
drawglyph | swfshape_drawglyph() | Ming (flash)
drawline | swfshape_drawline() | Ming (flash)
drawlineto | swfshape_drawlineto() | Ming (flash)
dtd | domxml_intdtd() | DOM XML
dumpmem | domxml_dumpmem() | DOM XML
fbsql | fbsql_db_query() | FrontBase
fputs | fwrite() | Base syntax
get_attribute | domxml_get_attribute() | DOM XML
getascent | swffont_getAscent() | Ming (flash)
getascent | swftext_getAscent() | Ming (flash)
getattr | domxml_get_attribute() | DOM XML
getdescent | swffont_getDescent() | Ming (flash)
getdescent | swftext_getDescent() | Ming (flash)
getheight | swfbitmap_getHeight() | Ming (flash)
getleading | swffont_getLeading() | Ming (flash)
getleading | swftext_getLeading() | Ming (flash)
getshape1 | swfmorph_getShape1() | Ming (flash)
getshape2 | swfmorph_getShape2() | Ming (flash)
getwidth | swfbitmap_getWidth() | Ming (flash)
getwidth | swffont_getWidth() | Ming (flash)
getwidth | swftext_getWidth() | Ming (flash)
gzputs | gzwrite() | Zlib
i18n_convert | mb_convert_encoding() | Multi-bytes Strings
i18n_discover_encoding | mb_detect_encoding() | Multi-bytes Strings
i18n_http_input | mb_http_input() | Multi-bytes Strings
i18n_http_output | mb_http_output() | Multi-bytes Strings
i18n_internal_encoding | mb_internal_encoding() | Multi-bytes Strings
i18n_ja_jp_hantozen | mb_convert_kana() | Multi-bytes Strings
i18n_mime_header_decode | mb_decode_mimeheader() | Multi-bytes Strings
i18n_mime_header_encode | mb_encode_mimeheader() | Multi-bytes Strings
imap_create | imap_createmailbox() | IMAP
imap_fetchtext | imap_body() | IMAP
imap_getmailboxes | imap_list_full() | IMAP
imap_getsubscribed | imap_lsub_full() | IMAP
imap_header | imap_headerinfo() | IMAP
imap_listmailbox | imap_list() | IMAP
imap_listsubscribed | imap_lsub() | IMAP
imap_rename | imap_renamemailbox() | IMAP
imap_scan | imap_listscan() | IMAP
imap_scanmailbox | imap_listscan() | IMAP
ini_alter | ini_set() | Base syntax
is_double | is_float() | Base syntax
is_integer | is_int() | Base syntax
is_long | is_int() | Base syntax
is_real | is_float() | Base syntax
is_writeable | is_writable() | Base syntax
join | implode() | Base syntax
labelframe | swfmovie_labelFrame() | Ming (flash)
labelframe | swfsprite_labelFrame() | Ming (flash)
last_child | domxml_last_child() | DOM XML
lastchild | domxml_last_child() | DOM XML
ldap_close | ldap_unbind() | LDAP
magic_quotes_runtime | set_magic_quotes_runtime() | Base syntax
mbstrcut | mb_strcut() | Multi-bytes Strings
mbstrlen | mb_strlen() | Multi-bytes Strings
mbstrpos | mb_strpos() | Multi-bytes Strings
mbstrrpos | mb_strrpos() | Multi-bytes Strings
mbsubstr | mb_substr() | Multi-bytes Strings
ming_setcubicthreshold | ming_setCubicThreshold() | Ming (flash)
ming_setscale | ming_setScale() | Ming (flash)
move | swfdisplayitem_move() | Ming (flash)
movepen | swfshape_movepen() | Ming (flash)
movepento | swfshape_movepento() | Ming (flash)
moveto | swfdisplayitem_moveTo() | Ming (flash)
moveto | swffill_moveTo() | Ming (flash)
moveto | swftext_moveTo() | Ming (flash)
msql | msql_db_query() | mSQL
msql_createdb | msql_create_db() | mSQL
msql_dbname | msql_result() | mSQL
msql_dropdb | msql_drop_db() | mSQL
msql_fieldflags | msql_field_flags() | mSQL
msql_fieldlen | msql_field_len() | mSQL
msql_fieldname | msql_field_name() | mSQL
msql_fieldtable | msql_field_table() | mSQL
msql_fieldtype | msql_field_type() | mSQL
msql_freeresult | msql_free_result() | mSQL
msql_listdbs | msql_list_dbs() | mSQL
msql_listfields | msql_list_fields() | mSQL
msql_listtables | msql_list_tables() | mSQL
msql_numfields | msql_num_fields() | mSQL
msql_numrows | msql_num_rows() | mSQL
msql_regcase | sql_regcase() | mSQL
msql_selectdb | msql_select_db() | mSQL
msql_tablename | msql_result() | mSQL
mssql_affected_rows | sybase_affected_rows() | Sybase
mssql_affected_rows | sybase_affected_rows() | Sybase
mssql_close | sybase_close() | Sybase
mssql_close | sybase_close() | Sybase
mssql_connect | sybase_connect() | Sybase
mssql_connect | sybase_connect() | Sybase
mssql_data_seek | sybase_data_seek() | Sybase
mssql_data_seek | sybase_data_seek() | Sybase
mssql_fetch_array | sybase_fetch_array() | Sybase
mssql_fetch_array | sybase_fetch_array() | Sybase
mssql_fetch_field | sybase_fetch_field() | Sybase
mssql_fetch_field | sybase_fetch_field() | Sybase
mssql_fetch_object | sybase_fetch_object() | Sybase
mssql_fetch_object | sybase_fetch_object() | Sybase
mssql_fetch_row | sybase_fetch_row() | Sybase
mssql_fetch_row | sybase_fetch_row() | Sybase
mssql_field_seek | sybase_field_seek() | Sybase
mssql_field_seek | sybase_field_seek() | Sybase
mssql_free_result | sybase_free_result() | Sybase
mssql_free_result | sybase_free_result() | Sybase
mssql_get_last_message | sybase_get_last_message() | Sybase
mssql_get_last_message | sybase_get_last_message() | Sybase
mssql_min_client_severity | sybase_min_client_severity() | Sybase
mssql_min_error_severity | sybase_min_error_severity() | Sybase
mssql_min_message_severity | sybase_min_message_severity() | Sybase
mssql_min_server_severity | sybase_min_server_severity() | Sybase
mssql_num_fields | sybase_num_fields() | Sybase
mssql_num_fields | sybase_num_fields() | Sybase
mssql_num_rows | sybase_num_rows() | Sybase
mssql_num_rows | sybase_num_rows() | Sybase
mssql_pconnect | sybase_pconnect() | Sybase
mssql_pconnect | sybase_pconnect() | Sybase
mssql_query | sybase_query() | Sybase
mssql_query | sybase_query() | Sybase
mssql_result | sybase_result() | Sybase
mssql_result | sybase_result() | Sybase
mssql_select_db | sybase_select_db() | Sybase
mssql_select_db | sybase_select_db() | Sybase
multcolor | swfdisplayitem_multColor() | Ming (flash)
mysql | mysql_db_query() | MySQL
mysql_createdb | mysql_create_db() | MySQL
mysql_db_name | mysql_result() | MySQL
mysql_dbname | mysql_result() | MySQL
mysql_dropdb | mysql_drop_db() | MySQL
mysql_fieldflags | mysql_field_flags() | MySQL
mysql_fieldlen | mysql_field_len() | MySQL
mysql_fieldname | mysql_field_name() | MySQL
mysql_fieldtable | mysql_field_table() | MySQL
mysql_fieldtype | mysql_field_type() | MySQL
mysql_freeresult | mysql_free_result() | MySQL
mysql_listdbs | mysql_list_dbs() | MySQL
mysql_listfields | mysql_list_fields() | MySQL
mysql_listtables | mysql_list_tables() | MySQL
mysql_numfields | mysql_num_fields() | MySQL
mysql_numrows | mysql_num_rows() | MySQL
mysql_selectdb | mysql_select_db() | MySQL
mysql_tablename | mysql_result() | MySQL
name | domxml_attrname() | DOM XML
new_child | domxml_new_child() | DOM XML
new_xmldoc | domxml_new_xmldoc() | DOM XML
nextframe | swfmovie_nextFrame() | Ming (flash)
nextframe | swfsprite_nextFrame() | Ming (flash)
node | domxml_node() | DOM XML
oci8append | ocicollappend() | OCI8
oci8assign | ocicollassign() | OCI8
oci8assignelem | ocicollassignelem() | OCI8
oci8close | ocicloselob() | OCI8
oci8free | ocifreecoll() | OCI8
oci8free | ocifreedesc() | OCI8
oci8getelem | ocicollgetelem() | OCI8
oci8load | ociloadlob() | OCI8
oci8max | ocicollmax() | OCI8
oci8ocifreecursor | ocifreestatement() | OCI8
oci8save | ocisavelob() | OCI8
oci8savefile | ocisavelobfile() | OCI8
oci8size | ocicollsize() | OCI8
oci8trim | ocicolltrim() | OCI8
oci8writetemporary | ociwritetemporarylob() | OCI8
oci8writetofile | ociwritelobtofile() | OCI8
odbc_do | odbc_exec() | OCI8
odbc_field_precision | odbc_field_len() | OCI8
output | swfmovie_output() | Ming (flash)
parent | domxml_parent() | DOM XML
pdf_add_outline | pdf_add_bookmark() | PDF
pg_clientencoding | pg_client_encoding() | PostgreSQL
pg_setclientencoding | pg_set_client_encoding() | PostgreSQL
pos | current() | Base syntax
recode | recode_string() | Recode
remove | swfmovie_remove() | Ming (flash)
remove | swfsprite_remove() | Ming (flash)
rewind | rewinddir() | Base syntax
root | domxml_root() | DOM XML
rotate | swfdisplayitem_rotate() | Ming (flash)
rotateto | swfdisplayitem_rotateTo() | Ming (flash)
rotateto | swffill_rotateTo() | Ming (flash)
save | swfmovie_save() | Ming (flash)
savetofile | swfmovie_saveToFile() | Ming (flash)
scale | swfdisplayitem_scale() | Ming (flash)
scaleto | swfdisplayitem_scaleTo() | Ming (flash)
scaleto | swffill_scaleTo() | Ming (flash)
set_attribute | domxml_set_attribute() | DOM XML
set_content | domxml_set_content() | DOM XML
setaction | swfbutton_setAction() | Ming (flash)
setattr | domxml_set_attribute() | DOM XML
setbackground | swfmovie_setBackground() | Ming (flash)
setbounds | swftextfield_setBounds() | Ming (flash)
setcolor | swftext_setColor() | Ming (flash)
setcolor | swftextfield_setColor() | Ming (flash)
setdepth | swfdisplayitem_setDepth() | Ming (flash)
setdimension | swfmovie_setDimension() | Ming (flash)
setdown | swfbutton_setDown() | Ming (flash)
setfont | swftext_setFont() | Ming (flash)
setfont | swftextfield_setFont() | Ming (flash)
setframes | swfmovie_setFrames() | Ming (flash)
setframes | swfsprite_setFrames() | Ming (flash)
setheight | swftext_setHeight() | Ming (flash)
setheight | swftextfield_setHeight() | Ming (flash)
sethit | swfbutton_setHit() | Ming (flash)
setindentation | swftextfield_setIndentation() | Ming (flash)
setleftfill | swfshape_setleftfill() | Ming (flash)
setleftmargin | swftextfield_setLeftMargin() | Ming (flash)
setline | swfshape_setline() | Ming (flash)
setlinespacing | swftextfield_setLineSpacing() | Ming (flash)
setmargins | swftextfield_setMargins() | Ming (flash)
setmatrix | swfdisplayitem_setMatrix() | Ming (flash)
setname | swfdisplayitem_setName() | Ming (flash)
setname | swftextfield_setName() | Ming (flash)
setover | swfbutton_setOver() | Ming (flash)
setrate | swfmovie_setRate() | Ming (flash)
setratio | swfdisplayitem_setRatio() | Ming (flash)
setrightfill | swfshape_setrightfill() | Ming (flash)
setrightmargin | swftextfield_setRightMargin() | Ming (flash)
setspacing | swftext_setSpacing() | Ming (flash)
setup | swfbutton_setUp() | Ming (flash)
show_source | highlight_file () | Base syntax
sizeof | count() | Base syntax
skewx | swfdisplayitem_skewX() | Ming (flash)
skewxto | swfdisplayitem_skewXTo() | Ming (flash)
skewxto | swffill_skewXTo() | Ming (flash)
skewy | swfdisplayitem_skewY() | Ming (flash)
skewyto | swfdisplayitem_skewYTo() | Ming (flash)
skewyto | swffill_skewYTo() | Ming (flash)
snmpwalkoid | snmprealwalk() | SNMP
strchr | strstr() | Base syntax
streammp3 | swfmovie_streamMp3() | Ming (flash)
swfaction | swfaction_init() | Ming (flash)
swfbitmap | swfbitmap_init() | Ming (flash)
swfbutton | swfbutton_init() | Ming (flash)
swffill | swffill_init() | Ming (flash)
swffont | swffont_init() | Ming (flash)
swfgradient | swfgradient_init() | Ming (flash)
swfmorph | swfmorph_init() | Ming (flash)
swfmovie | swfmovie_init() | Ming (flash)
swfshape | swfshape_init() | Ming (flash)
swfsprite | swfsprite_init() | Ming (flash)
swftext | swftext_init() | Ming (flash)
swftextfield | swftextfield_init() | Ming (flash)
unlink | domxml_unlink_node() | DOM XML
xptr_new_context | xpath_new_context() | DOM XML

Anterior | Inicio | Siguiente
Informando de errores | Subir | Lista de Palabras Reservadas


Lista de Palabras Reservadas

Manual de PHP
Anterior Siguiente

Apéndice G. Lista de Palabras Reservadas

Tabla de contenidos
Lista de Palabras Clave
Variables Predefinidas
Clases Predefinidas
Constantes predefinidas

El siguiente es un listado de identificadores predefinidos en PHP. Ninguno de los identificadores listados aquí deben ser usados como identificadores en sus scripts. Estas listas incluyen palabras clave y nombres de variable, constantes y clases predefinidas. Estas listas no son ni exhaustivas ni completas.

Lista de Palabras Clave

Estas palabras tienen un significado especial en PHP. Algunas de ellas representan cosas que lucen como funciones, o algunas se ven como constantes, y así sucesivamente--pero no lo son, en realidad: son construcciones del lenguaje. Usted no puede usar ninguna de las siguientes palabras como constantes, nombres de clase, o nombres de función. Usarlas como nombres de variables está bien, generalmente, pero puede conducir a confusiones.

Tabla G-1. Palabras Clave de PHP

and | or | xor | __FILE__ | exception | php_user_filter
__LINE__ | array() | as | break | case
cfunction | class | const | continue | declare
default | die() | do | echo() | else
elseif | empty() | enddeclare | endfor | endforeach
endif | endswitch | endwhile | eval | exit()
extends | for | foreach | function | global
if | include() | include_once() | isset() | list()
new | old_function | print() | require() | require_once()
return() | static | switch | unset() | use
var | while | __FUNCTION__ | __CLASS__ | __METHOD__

Anterior | Inicio | Siguiente
Lista de alias de funciones | Subir | Variables Predefinidas


Variables Predefinidas

A partir de PHP 4.1.0, el método preferido para recuperar variables externas es mediante las superglobales mencionadas más adelante. Antes de este punto, la gente recaía en register_globals o las matrices largas predefinidas en PHP ($HTTP_*_VARS). A partir de PHP 5.0.0, las matrices de tipo "long" de variables predefinidas, se pueden desactivar con la directiva register_long_arrays.

Variables de servidor: $_SERVER

Nota: Aparecieron en 4.1.0. En versiones anteriores, utilice $HTTP_SERVER_VARS.

$_SERVER es una matriz que contiene información tal como cabeceras, rutas y ubicaciones de scripts. Las entradas de esta matriz son creadas por el servidor web. No existen garantías de que cada servidor vaya a proveer alguno de estos valores; puede que los servidores omitan algunos, o provean otros que no se listan aquí. Hecha esta aclaración, un gran número de estas variables hacen parte de la especificación CGI 1.1, así que puede esperar que sean definidas por el servidor.

Esta es una variable 'superglobal', o global automática. Esto simplemente quiere decir que está disponible en todos los contextos a lo largo de un script. No necesita hacer global $_SERVER; para acceder a ella dentro de funciones o métodos, como lo hace con $HTTP_SERVER_VARS.

$HTTP_SERVER_VARS contiene la misma información inicial, pero no es autoglobal. (Note que $HTTP_SERVER_VARS y $_SERVER son variables diferentes y que PHP las trata como tal)

Si la directiva register_globals está definida, entonces estas variables también estarán disponibles en el contexto global del script; esto quiere decir, por separado de las matrices $_SERVER y $HTTP_SERVER_VARS. Para información relacionada, vea el capítulo de seguridad titulado Uso de Registros Globales. Estas variables globales individuales no son autoglobales.

Usted puede encontrar o no cualquiera de los siguientes elementos en $_SERVER. Note que algunos de éstos, si es que los hay, estarán disponibles (o tendrán algún significado después de todo) si se ejecuta PHP en la línea de comandos.

'PHP_SELF'

El nombre de archivo del script ejecutándose actualmente, relativo a la raíz de documentos. Por ejemplo, $_SERVER['PHP_SELF'] en un script en la dirección http://example.com/test.php/foo.bar sería /test.php/foo.bar.

Si PHP está siendo ejecutado como un procesador de línea de comandos, esta variable no está disponible.

'argv'

Matriz de argumentos pasados al script. Cuando el script es ejecutado en la línea de comandes, ésta entrega acesso al estilo C a los parámetros de la línea de comandos. Cuando es llamado mediante el método GET, ésta contendrá la cadena de consulta (query).

'argc'

Contiene el número de parámetros de línea de comandos pasados al script (si se ejecuta en la línea de comandos).

'GATEWAY_INTERFACE'

Qué revisión de la especificación CGI está usando el servidor; i.e. 'CGI/1.1'.

'SERVER_NAME'

El nombre del servidor anfitrión bajo el que está siendo ejecutado el script actual. Si el script está corriendo en un host virtual, éste será el valor definido para tal host virtual.

'SERVER_SOFTWARE'

Cadena de identificación del servidor, dada en las cabeceras cuando se responde a peticiones.

'SERVER_PROTOCOL'

Nombre y revisión del protocolo de información mediante el cual fue solicitada la página; i.e. 'HTTP/1.0';

'REQUEST_METHOD'

Cuál método de petición fue usado para acceder a la página; i.e. 'GET', 'HEAD', 'POST', 'PUT'.

'QUERY_STRING'

La cadena de consulta, si existe, mediante la cual se accedió a la página.

'DOCUMENT_ROOT'

El directorio raíz de documentos bajo el que está siendo ejecutado el script actual, tal y como se define en el archivo de configuración del servidor.

'HTTP_ACCEPT'

Contenidos de la cabecera Accept: de la petición actual, si existe.

'HTTP_ACCEPT_CHARSET'

Contenidos de la cabecera Accept-Charset: de la petición actual, si existe. Ejemplo: 'iso-8859-1,*,utf-8'.

'HTTP_ACCEPT_ENCODING'

Contenidos de la cabecera Accept-Encoding: de la petición actual, si existe. Ejemplo: 'gzip'.

'HTTP_ACCEPT_LANGUAGE'

Contenidos de la cabecera Accept-Language: de la petición actual, si existe. Ejemplo: 'en'.

'HTTP_CONNECTION'

Contenidos de la cabecera Connection: de la petición actual, si existe. Ejemplo: 'Keep-Alive'.

'HTTP_HOST'

Contenidos de la cabecera Host: de la petición actual, si existe.

'HTTP_REFERER'

La dirección de la página (si la hay) la cual refirió al agente de usuario a la página actual. Este valor es definido por el agente de usuario. No todos los agentes de usuario lo definen, y algunos proveen la capacidad de modificar HTTP_REFERER como una característica del software. En resumen, no se puede confiar realmente en este valor.

'HTTP_USER_AGENT'

Contenidos de la cabecera User_Agent: de la petición actual, si existe. Esta es una cadena que denota el agente de usuario que está accediendo a la página. Un ejemplo típico es: Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586). Entre otras cosas, puede usar este valor con get_browser() para personalizar la salida de su página a las capacidades del agente de usuario.

'REMOTE_ADDR'

La dirección IP desde donde el usuario está observado la página actual.

'REMOTE_HOST'

El nombre Host desde donde el usuario está viendo la página actual. La consulta dns de vuelta está basada en el valor REMOTE_ADDR del usuario.

Nota: Su servidor web debe estar configurado para crear esta variable. Por ejemplo, en Apache necesitará HostnameLookups On dentro de httpd.conf para que exista. Vea también gethostbyaddr().

'REMOTE_PORT'

Es puerto que está siendo usado en la máquina del usuario para comunicarse con el servidor web.

'SCRIPT_FILENAME'

La ruta absoluta del nombre del script siendo ejecutado actualmente.

'SERVER_ADMIN'

El valor dado a la directiva SERVER_ADMIN (para Apache) en el archivo de configuración del servidor web. Si el script está siendo ejecutado en un host virtual, éste será el valor definido para ese host virtual.

'SERVER_PORT'

El puerto en el equipo servidor que está siendo usado por el servidor web para comunicación. En configuraciones predeterminadas, ese valor será '80'; usando SSL, por ejemplo, este valor cambiará a cualquiera que sea el puerto que esté definido para HTTP seguro.

'SERVER_SIGNATURE'

Cadena que contiene la versión del servidor y el nombre de host virtual que es agregado a las páginas generadas por el servidor, si está habilitada esta funcionalidad.

'PATH_TRANSLATED'

Ruta sobre el sistema de archivos (no la raíz de documentos) al script actual, luego de que el servidor haya realizado cualquier asignación al vuelo virtual-a-real.

'SCRIPT_NAME'

Contiene la ruta del script actual. Ésta es útil para páginas que necesitan apuntar a ellas mismas.

'REQUEST_URI'

El URI que fue dado para acceder a esta página; por ejemplo, '/index.html'.

'PHP_AUTH_USER'

Cuando se corre sobre Apache como módulo realizando autenticación HTTP, ésta variable es definida con el nombre de usuario definido por el cliente.

'PHP_AUTH_PW'

Cuando se corre sobre Apache como módulo realizando autenticación HTTP, ésta variable es definida con la contraseña entregada por el usuario.

'AUTH_TYPE'

Cuando se corre sobre Apache como módulo realizando autenticación HTTP, ésta variable es definida con el tipo de autenticación.

Variables de entorno: $_ENV

Nota: Introducidas en 4.1.0. En versiones anteriores, use $HTTP_ENV_VARS.

Estas variables son importadas en el espacio de nombres global de PHP desde el entorno bajo el que está siendo ejecutado el intérprete PHP. Muchas son entregadas por el intérprete de comandos bajo el que PHP está corriendo y diferentes sistemas suelen tener diferentes tipos de intérpretes de comandos, una lista definitiva es imposible. Por favor consulte la documentación de su intérprete de comandos por una lista de varibles de entorno que resultan definidas.

Otras variables de entorno incluyen las variables CGI, colocadas allí independientemente de que PHP esté siendo ejecutado como módulo del servidor o procesador CGI.

Esta es una variable 'superglobal', o global automática. Esto simplemente quiere decir que está disponible en todos los contextos a lo largo del script. No necesita hacer global $_ENV; para acceder a ella desde funciones o métodos, tal y como lo hace con $HTTP_ENV_VARS.

$HTTP_ENV_VARS contiene la misma información inicial, pero no es autoglobal. (Note que HTTP_ENV_VARS y $_ENV son variables diferentes y que PHP las trata como tal)

Si la directiva register_globals está definida, entonces estas variables también se harán disponibles en el entorno global del script; i.e., por separado de las matrices $_ENV y $HTTP_ENV_VARS. Para información relacionada, consulte el capítulo de seguridad titulado Uso de Registros Globales. Estas globales individuales no son autoglobales.

Cookies HTTP: $_COOKIE

Nota: Introducidas en 4.1.0. En versiones anteriores, use $HTTP_COOKIE_VARS.

Una matriz asociativa de variables pasadas al script actual a través de cookies HTTP. Global automáticamente en cualquier contexto.

Esta es una variable 'superglobal', o global automática. Esto simplemente quiere decir que está disponible en todos los contextos a lo largo de un script. No necesita hacer global $_COOKIE; para acceder a ella dentro de funciones o métodos, como lo hace con $HTTP_COOKIE_VARS.

$HTTP_COOKIE_VARS contiene la misma información inicial, pero no es autoglobal. (Note que HTTP_COOKIE_VARS y $_COOKIE son variables diferentes y que PHP las trata como tal)

Si la directiva register_globals está definida, entonces éstas variables también estarán disponibles en el contexto global del script; i.e., por separado de las matrices $_COOKIE y $HTTP_COOKIE_VARS. Para información relacionada, consulte el capítulo de seguridad titulado Uso de Registros Globales. Estas globales individuales no son autoglobales.

Variables HTTP GET: $_GET

Nota: Introducidas en 4.1.0. En versiones anteriores, use $HTTP_GET_VARS.

Una matriz asociativa de variables pasadas al script actual a través del método HTTP GET. Global automáticamente en cualquier contexto.

Esta es una variable 'superglobal', o global automática. Esto simplemente quiere decir que está disponible en todos los contextos a lo largo de un script. No necesita hacer global $_GET; para acceder a ella dentro de funciones o métodos, como lo hace con $HTTP_GET_VARS.

$HTTP_GET_VARS contiene la misma información inicial, pero no es autoglobal. (Note que HTTP_GET_VARS y $_GET son variables diferentes y que PHP las trata como tal)

Si la directiva register_globals está definida, entonces éstas variables también estarán disponibles en el contexto global del script; i.e., por separado de las matrices $_GET y $HTTP_GET_VARS. Para información relacionada, consulte el capítulo de seguridad titulado Uso de Registros Globales. Estas globales individuales no son autoglobales.

Variables HTTP POST: $_POST

Nota: Introducidas en 4.1.0. En versiones anteriores, use $HTTP_POST_VARS.

Una matriz asociativa de variables pasadas al script actual a través del método HTTP POST. Global automáticamente en cualquier contexto.

Esta es una variable 'superglobal', o global automática. Esto simplemente quiere decir que está disponible en todos los contextos a lo largo de un script. No necesita hacer global $_POST; para acceder a ella dentro de funciones o métodos, como lo hace con $HTTP_POST_VARS.

$HTTP_POST_VARS contiene la misma información inicial, pero no es autoglobal. (Note que HTTP_POST_VARS y $_POST son variables diferentes y que PHP las trata como tal)

Si la directiva register_globals está definida, entonces éstas variables también estarán disponibles en el contexto global del script; i.e., por separado de las matrices $_POST y $HTTP_POST_VARS. Para información relacionada, consulte el capítulo de seguridad titulado Uso de Registros Globales. Estas globales individuales no son autoglobales.

Variables de carga de archivos HTTP: $_FILES

Nota: Introducidas en 4.1.0. En versiones anteriores, use $HTTP_POST_FILES.

Una matriz asociativa de elementos cargados al script actual a través del método HTTP POST. Global automáticamente en cualquier contexto.

Esta es una variable 'superglobal', o global automática. Esto simplemente quiere decir que está disponible en todos los contextos a lo largo de un script. No necesita hacer global $_FILES; para acceder a ella dentro de funciones o métodos, como lo hace con $HTTP_POST_FILES.

$HTTP_POST_FILES contiene la misma información inicial, pero no es autoglobal.

Si la directiva register_globals está definida, entonces éstas variables también estarán disponibles en el contexto global del script; i.e., por separado de las matrices $_FILES y $HTTP_POST_FILES. Para información relacionada, consulte el capítulo de seguridad titulado Uso de Registros Globales. Estas globales individuales no son autoglobales.

Variables de petición: $_REQUEST

Nota: Introducidas en 4.1.0. No existe una matriz equivalente en versiones anteriores.

Nota: Antes de PHP 4.3.0, la información de $_FILES también era incluida en $_REQUEST.

Una matriz asociativa que consiste en los contenidos de $_GET, $_POST, y $_COOKIE.

Esta es una variable 'superglobal', o global automática. Esto simplemente quiere decir que está disponible en todos los contextos a lo largo de un script. No necesita hacer global $_REQUEST; para acceder a ella dentro de funciones o métodos.

Si la directiva register_globals está definida, entonces éstas variables también estarán disponibles en el contexto global del script; i.e., por separado de la matriz $_REQUEST. Para información relacionada, consulte el capítulo de seguridad titulado Uso de Registros Globales. Estas globales individuales no son autoglobales.

Variables de sesión: $_SESSION

Nota: Introducidas en 4.1.0. En versiones anteriores, use $HTTP_SESSION_VARS.

Una matriz asociativa que contiene las variables de sesión disponibles en el script actual. Consulte la documentación sobre Funciones de Sesión para más información sobre cómo es usada ésta matriz.

Esta es una variable 'superglobal', o global automática. Esto simplemente quiere decir que está disponible en todos los contextos a lo largo de un script. No necesita hacer global $_SESSION; para acceder a ella dentro de funciones o métodos, como lo hace con $HTTP_SESSION_VARS.

$HTTP_SESSION_VARS contiene la misma información, pero no es autoglobal.

Si la directiva register_globals está definida, entonces éstas variables también estarán disponibles en el contexto global del script; i.e., por separado de las matrices $_SESSION y $HTTP_SESSION_VARS. Para información relacionada, consulte el capítulo de seguridad titulado Uso de Registros Globales. Estas globales individuales no son autoglobales.

Variables globales: $GLOBALS

Nota: $GLOBALS ha estado disponible desde PHP 3.0.0.

Una matriz asociativa que contiene referencias a todas las variables que están definidas actualmente en el contexto global del script. Los nombres de las variables son las claves de la matriz.

Esta es una variable 'superglobal', o global automática. Esto simplemente quiere decir que está disponible en todos los contextos a lo largo de un script. No necesita hacer global $_GLOBALS; para acceder a ella dentro de funciones o métodos.

El mensaje de error previo: $php_errormsg

$php_errormsg es una variable que contiene el texto del último mensaje de error generado por PHP. Esta variable solo estará disponibles dentro del contexto en el que el error ocurrió, y solo si la opción de configuración track_errors está habilitada (por defecto está definida como off).

Anterior | Inicio | Siguiente
Lista de Palabras Reservadas | Subir | Clases Predefinidas


Clases Predefinidas

Clases Estándar Predefinidas

Estas clases están definidas en el juego de funciones estándar incluidas en la distribuición de PHP.

Directory

La clase a partir de la cual dir es instanciada.

stdClass

__PHP_Incomplete_Class

Clases predefinidas en PHP 5

Estas clases predefinidas adicionales fueron introducidas en PHP 5.0.0

exception

php_user_filter

Clases Ming Definidas

Estas clases están definidas en la extensión Ming, y solo estarán disponibles cuando tal extensión haya sido compilada junto con PHP o cargada dinámicamente en tiempo de ejecución.

swfshape

swffill

swfgradient

swfbitmap

swftext

swftextfield

swffont

swfdisplayitem

swfmovie

swfbutton

swfaction

swfmorph

swfsprite

Clases Oracle 8 Definidas

Estas clases están definidas en la extensión Oracle 8, y solo estarán disponibles cuando tal extensión haya sido compilada junto con PHP o cargada dinámicamente en tiempo de ejecución.

OCI-Lob

OCI-Collection

Clases qtdom Definidas

Estas clases están definidas en la extensión qtdom, y solo estarán disponibles cuando tal extensión haya sido compilada junto con PHP o cargada dinámicamente en tiempo de ejecución.

QDomDocument

QDomNode

Anterior | Inicio | Siguiente
Variables Predefinidas | Subir | Constantes predefinidas


Constantes predefinidas

Tabla de contenidos
Constantes Base Predefinidas -- Constantes definidas en el núcleo de PHP, Zend, y módulos SAPI
Constantes Estándar Predefinidas -- Constantes definidas en PHP por defecto

Anterior | Inicio | Siguiente
Clases Predefinidas | Subir | Constantes Base Predefinidas


Lista de Tipos de Recurso

Manual de PHP
Anterior Siguiente

Apéndice H. Lista de Tipos de Recurso

La siguiente es una lista de las funciones que crean, usan o destruyen recursos PHP. La función is_resource() puede ser usada para determinar si una variable es un recurso y get_resource_type() devolverá el tipo de recurso que es.

Tabla H-1. Tipos de Recurso

Nombre del Tipo de Recurso | Creado Por | Usado Por | Destruido Por | Definición
aspell | aspell_new() | aspell_check(), aspell_check_raw(), aspell_suggest() | Nadie | Diccionario aspell
bzip2 | bzopen() | bzerrno(), bzerror(), bzerrstr(), bzflush(), bzread(), bzwrite() | bzclose() | Archivo bzip2
COM | com_load() | com_invoke(), com_propget(), com_get(), com_propput(), com_set(), com_propput() | Nadie | Referencia a objeto COM
VARIANT
cpdf | cpdf_open() | cpdf_page_init(), cpdf_finalize_page(), cpdf_finalize(), cpdf_output_buffer(), cpdf_save_to_file(), cpdf_set_current_page(), cpdf_begin_text(), cpdf_end_text(), cpdf_show(), cpdf_show_xy(), cpdf_text(), cpdf_set_font(), cpdf_set_leading(), cpdf_set_text_rendering(), cpdf_set_horiz_scaling(), cpdf_set_text_rise(), cpdf_set_text_matrix(), cpdf_set_text_pos(), cpdf_set_text_pos(), cpdf_set_word_spacing(), cpdf_continue_text(), cpdf_stringwidth(), cpdf_save(), cpdf_translate(), cpdf_restore(), cpdf_scale(), cpdf_rotate(), cpdf_setflat(), cpdf_setlinejoin(), cpdf_setlinecap(), cpdf_setmiterlimit(), cpdf_setlinewidth(), cpdf_setdash(), cpdf_moveto(), cpdf_rmoveto(), cpdf_curveto(), cpdf_lineto(), cpdf_rlineto(), cpdf_circle(), cpdf_arc(), cpdf_rect(), cpdf_closepath(), cpdf_stroke(), cpdf_closepath_fill_stroke(), cpdf_fill_stroke(), cpdf_clip(), cpdf_fill(), cpdf_setgray_fill(), cpdf_setgray_stroke(), cpdf_setgray(), cpdf_setrgbcolor_fill(), cpdf_setrgbcolor_stroke(), cpdf_setrgbcolor(), cpdf_add_outline(), cpdf_set_page_animation(), cpdf_import_jpeg(), cpdf_place_inline_image(), cpdf_add_annotation() | cpdf_close() | Documento PDF con la librería CPDF
cpdf outline
curl | curl_init() | curl_init(), curl_exec() | curl_close() | Sesión curl
dbm | dbmopen() | dbmexists(), dbmfetch(), dbminsert(), dbmreplace(), dbmdelete(), dbmfirstkey(), dbmnextkey() | dbmclose() | Enlace a base de datos DBM
dba | dba_open() | dba_delete(), dba_exists(), dba_fetch(), dba_firstkey(), dba_insert(), dba_nextkey(), dba_optimize(), dba_replace(), dba_sync() | dba_close() | Enlace a base de datos DBA
dba persistent | dba_popen() | dba_delete(), dba_exists(), dba_fetch(), dba_firstkey(), dba_insert(), dba_nextkey(), dba_optimize(), dba_replace(), dba_sync() | Nadie | Enlace persistente a base de datos DBA
dbase | dbase_open() | dbase_pack(), dbase_add_record(), dbase_replace_record(), dbase_delete_record(), dbase_get_record(), dbase_get_record_with_names(), dbase_numfields(), dbase_numrecords() | dbase_close() | Enlace a base de datos Dbase
dbx_link_object | dbx_connect() | dbx_query() | dbx_close() | dbx connection
dbx_result_object | dbx_query() | Nadie | Resultado dbx
domxml attribute
domxml document
domxml node
xpath context
xpath object
fbsql database | fbsql_select_db() | Nadie | fbsql database
fbsql link | fbsql_change_user(), fbsql_connect() | fbsql_autocommit(), fbsql_change_user(), fbsql_create_db(), fbsql_data_seek(), fbsql_db_query(), fbsql_drop_db(), (), fbsql_select_db(), fbsql_errno(), fbsql_error(), fbsql_insert_id(), fbsql_list_dbs() | fbsql_close() | Enlace a base de datos fbsql
fbsql plink | fbsql_change_user(), fbsql_pconnect() | fbsql_autocommit(), fbsql_change_user(), fbsql_create_db(), fbsql_data_seek(), fbsql_db_query(), fbsql_drop_db(), (), fbsql_select_db(), fbsql_errno(), fbsql_error(), fbsql_insert_id(), fbsql_list_dbs() | Nadie | Enlace persistente con base de datos fbsql
fbsql result | fbsql_db_query(), fbsql_list_dbs(), fbsql_query(), fbsql_list_fields(), fbsql_list_tables(), fbsql_tablename() | fbsql_affected_rows(), fbsql_fetch_array(), fbsql_fetch_assoc(), fbsql_fetch_field(), fbsql_fetch_lengths(), fbsql_fetch_object(), fbsql_fetch_row(), fbsql_field_flags(), fbsql_field_name(), fbsql_field_len(), fbsql_field_seek(), fbsql_field_table(), fbsql_field_type(), fbsql_next_result(), fbsql_num_fields(), fbsql_num_rows(), fbsql_result(), fbsql_num_rows() | fbsql_free_result() | fbsql result
fdf | fdf_open() | fdf_create(), fdf_save(), fdf_get_value(), fdf_set_value(), fdf_next_field_name(), fdf_set_ap(), fdf_set_status(), fdf_get_status(), fdf_set_file(), fdf_get_file(), fdf_set_flags(), fdf_set_opt(), fdf_set_submit_form_action(), fdf_set_javascript_action() | fdf_close() | Archivo FDF
ftp | ftp_connect() | ftp_login(), ftp_pwd(), ftp_cdup(), ftp_chdir(), ftp_mkdir(), ftp_rmdir(), ftp_nlist(), ftp_rawlist(), ftp_systype(), ftp_pasv(), ftp_get(), ftp_fget(), ftp_put(), ftp_fput(), ftp_size(), ftp_mdtm(), ftp_rename(), ftp_delete(), ftp_site() | ftp_quit() | Secuencia FTP
gd | imagecreate(), imagecreatefromgif(), imagecreatefromjpeg(), imagecreatefrompng(), imagecreatefromwbmp(), imagecreatefromstring(), imagecreatetruecolor() | imagearc(), imagechar(), imagecharup(), imagecolorallocate(), imagecolorat(), imagecolorclosest(), imagecolorexact(), imagecolorresolve(), imagegammacorrect(), imagegammacorrect(), imagecolorset(), imagecolorsforindex(), imagecolorstotal(), imagecolortransparent(), imagecopy(), imagecopyresized(), imagedashedline(), imagefill(), imagefilledpolygon(), imagefilledrectangle(), imagefilltoborder(), imagegif(), imagepng(), imagejpeg(), imagewbmp(), imageinterlace(), imageline(), imagepolygon(), imagepstext(), imagerectangle(), imagesetpixel(), imagestring(), imagestringup(), imagesx(), imagesy(), imagettftext(), imagefilledarc(), imageellipse(), imagefilledellipse(), imagecolorclosestalpha(), imagecolorexactalpha(), imagecolorresolvealpha(), imagecopymerge(), imagecopymergegray(), imagecopyresampled(), imagetruecolortopalette(), imagesetbrush(), imagesettile(), imagesetthickness() | imagedestroy() | Imagen GD
gd font | imageloadfont() | imagechar(), imagecharup(), imagefontheight() | Nadie | Fuente para GD
gd PS encoding
gd PS font | imagepsloadfont() | imagepstext(), imagepsslantfont(), imagepsextendfont(), imagepsencodefont(), imagepsbbox() | imagepsfreefont() | Fuente PS para GD
GMP integer | gmp_init() | gmp_intval(), gmp_strval(), gmp_add(), gmp_sub(), gmp_mul(), gmp_div_q(), gmp_div_r(), gmp_div_qr(), gmp_div(), gmp_mod(), gmp_divexact(), gmp_cmp(), gmp_neg(), gmp_abs(), gmp_sign(), gmp_fact(), gmp_sqrt(), gmp_sqrtrm(), gmp_perfect_square(), gmp_pow(), gmp_powm(), gmp_prob_prime(), gmp_gcd(), gmp_gcdext(), gmp_invert(), gmp_legendre(), gmp_jacobi(), gmp_random(), gmp_and(), gmp_or(), gmp_xor(), gmp_setbit(), gmp_clrbit(), gmp_scan0(), gmp_scan1(), gmp_popcount(), gmp_hamdist() | Nadie | Número GMP
hyperwave document | hw_cp(), hw_docbyanchor(), hw_getremote(), hw_getremotechildren() | hw_children(), hw_childrenobj(), hw_getparents(), hw_getparentsobj(), hw_getchildcoll(), hw_getchildcollobj(), hw_getremote(), hw_getsrcbydestobj(), hw_getandlock(), hw_gettext(), hw_getobjectbyquerycoll(), hw_getobjectbyquerycollobj(), hw_getchilddoccoll(), hw_getchilddoccollobj(), hw_getanchors(), hw_getanchorsobj(), hw_inscoll(), hw_pipedocument(), hw_unlock() | hw_deleteobject() | Objeto hyperwave
hyperwave link | hw_connect() | hw_children(), hw_childrenobj(), hw_cp(), hw_deleteobject(), hw_docbyanchor(), hw_docbyanchorobj(), hw_errormsg(), hw_edittext(), hw_error(), hw_getparents(), hw_getparentsobj(), hw_getchildcoll(), hw_getchildcollobj(), hw_getremote(), hw_getremotechildren(), hw_getsrcbydestobj(), hw_getobject(), hw_getandlock(), hw_gettext(), hw_getobjectbyquery(), hw_getobjectbyqueryobj(), hw_getobjectbyquerycoll(), hw_getobjectbyquerycollobj(), hw_getchilddoccoll(), hw_getchilddoccollobj(), hw_getanchors(), hw_getanchorsobj(), hw_mv(), hw_incollections(), hw_info(), hw_inscoll(), hw_insdoc(), hw_insertdocument(), hw_insertobject(), hw_mapid(), hw_modifyobject(), hw_pipedocument(), hw_unlock(), hw_who(), hw_getusername() | hw_close(), hw_free_document() | Enlace con servidor Hyperwave
hyperwave link persistent | hw_pconnect() | hw_children(), hw_childrenobj(), hw_cp(), hw_deleteobject(), hw_docbyanchor(), hw_docbyanchorobj(), hw_errormsg(), hw_edittext(), hw_error(), hw_getparents(), hw_getparentsobj(), hw_getchildcoll(), hw_getchildcollobj(), hw_getremote(), hw_getremotechildren(), hw_getsrcbydestobj(), hw_getobject(), hw_getandlock(), hw_gettext(), hw_getobjectbyquery(), hw_getobjectbyqueryobj(), hw_getobjectbyquerycoll(), hw_getobjectbyquerycollobj(), hw_getchilddoccoll(), hw_getchilddoccollobj(), hw_getanchors(), hw_getanchorsobj(), hw_mv(), hw_incollections(), hw_info(), hw_inscoll(), hw_insdoc(), hw_insertdocument(), hw_insertobject(), hw_mapid(), hw_modifyobject(), hw_pipedocument(), hw_unlock(), hw_who(), hw_getusername() | Nadie | Enlace persistente con servidor Hyperwave
icap | icap_open() | icap_fetch_event(), icap_list_events(), icap_store_event(), icap_snooze(), icap_list_alarms(), icap_delete_event() | icap_close() | Enlace con servidor icap
imap | imap_open() | imap_append(), imap_body(), imap_check(), imap_createmailbox(), imap_delete(), imap_deletemailbox(), imap_expunge(), imap_fetchbody(), imap_fetchstructure(), imap_headerinfo(), imap_header(), imap_headers(), imap_listmailbox(), imap_getmailboxes(), imap_get_quota(), imap_status(), imap_listsubscribed(), imap_set_quota(), imap_set_quota(), imap_getsubscribed(), imap_mail_copy(), imap_mail_move(), imap_num_msg(), imap_num_recent(), imap_ping(), imap_renamemailbox(), imap_reopen(), imap_subscribe(), imap_undelete(), imap_unsubscribe(), imap_scanmailbox(), imap_mailboxmsginfo(), imap_fetchheader(), imap_uid(), imap_msgno(), imap_search(), imap_fetch_overview() | imap_close() | Enlace con servidor IMAP, POP3
imap chain persistent
imap persistent
ingres | ingres_connect() | ingres_query(), ingres_num_rows(), ingres_num_fields(), ingres_field_name(), ingres_field_type(), ingres_field_nullable(), ingres_field_length(), ingres_field_precision(), ingres_field_scale(), ingres_fetch_array(), ingres_fetch_row(), ingres_fetch_object(), ingres_rollback(), ingres_commit(), ingres_autocommit() | ingres_close() | Enlace con base ingresII
ingres persistent | ingres_pconnect() | ingres_query(), ingres_num_rows(), ingres_num_fields(), ingres_field_name(), ingres_field_type(), ingres_field_nullable(), ingres_field_length(), ingres_field_precision(), ingres_field_scale(), ingres_fetch_array(), ingres_fetch_row(), ingres_fetch_object(), ingres_rollback(), ingres_commit(), ingres_autocommit() | Nadie | Enlace persistente con base ingresII
interbase blob
interbase link | ibase_connect() | ibase_query(), ibase_prepare(), ibase_trans() | ibase_close() | Enlace con base de datos Interbase
interbase link persistent | ibase_pconnect() | ibase_query(), ibase_prepare(), ibase_trans() | Nadie | Enlace persistente con base de datos Interbase
interbase query | ibase_prepare() | ibase_execute() | ibase_free_query() | Consulta Interbase
interbase result | ibase_query() | ibase_fetch_row(), ibase_fetch_object(), ibase_field_info(), ibase_num_fields() | ibase_free_result() | Resultado Interbase
interbase transaction | ibase_trans() | ibase_commit() | ibase_rollback() | Transacción Interbase
java
ldap link | ldap_connect(), ldap_search() | ldap_count_entries(), ldap_first_attribute(), ldap_first_entry(), ldap_get_attributes(), ldap_get_dn(), ldap_get_entries(), ldap_get_values(), ldap_get_values_len(), ldap_next_attribute(), ldap_next_entry() | ldap_close() | Conexión ldap
ldap result | ldap_read() | ldap_add(), ldap_compare(), ldap_bind(), ldap_count_entries(), ldap_delete(), ldap_errno(), ldap_error(), ldap_first_attribute(), ldap_first_entry(), ldap_get_attributes(), ldap_get_dn(), ldap_get_entries(), ldap_get_values(), ldap_get_values_len(), ldap_get_option(), ldap_list(), ldap_modify(), ldap_mod_add(), ldap_mod_replace(), ldap_next_attribute(), ldap_next_entry(), ldap_mod_del(), ldap_set_option(), ldap_unbind() | ldap_free_result() | Resultado de búsqueda ldap
ldap result entry
mcal | mcal_open(), mcal_popen() | mcal_create_calendar(), mcal_rename_calendar(), mcal_rename_calendar(), mcal_delete_calendar(), mcal_fetch_event(), mcal_list_events(), mcal_append_event(), mcal_store_event(), mcal_delete_event(), mcal_list_alarms(), mcal_event_init(), mcal_event_set_category(), mcal_event_set_title(), mcal_event_set_description(), mcal_event_set_start(), mcal_event_set_end(), mcal_event_set_alarm(), mcal_event_set_class(), mcal_next_recurrence(), mcal_event_set_recur_none(), mcal_event_set_recur_daily(), mcal_event_set_recur_weekly(), mcal_event_set_recur_monthly_mday(), mcal_event_set_recur_monthly_wday(), mcal_event_set_recur_yearly(), mcal_fetch_current_stream_event(), mcal_event_add_attribute(), mcal_expunge() | mcal_close() | Enlace a servidor de calendario
SWFAction
SWFBitmap
SWFButton
SWFDisplayItem
SWFFill
SWFFont
SWFGradient
SWFMorph
SWFMovie
SWFShape
SWFSprite
SWFText
SWFTextField
mnogosearch agent
mnogosearch result
msql link | msql_connect() | msql(), msql_create_db(), msql_createdb(), msql_drop_db(), msql_drop_db(), msql_select_db(), msql_select_db() | msql_close() | Enlace a base de datos mSQL
msql link persistent | msql_pconnect() | msql(), msql_create_db(), msql_createdb(), msql_drop_db(), msql_drop_db(), msql_select_db(), msql_select_db() | Nadie | Enlace persistente con mSQL
msql query | msql_query() | msql(), msql_affected_rows(), msql_data_seek(), msql_dbname(), msql_fetch_array(), msql_fetch_field(), msql_fetch_object(), msql_fetch_row(), msql_fieldname(), msql_field_seek(), msql_fieldtable(), msql_fieldtype(), msql_fieldflags(), msql_fieldlen(), msql_num_fields(), msql_num_rows(), msql_numfields(), msql_numrows(), msql_result() | msql_free_result(), msql_free_result() | Resultado mSQL
mssql link | mssql_connect() | mssql_query(), mssql_select_db() | mssql_close() | Enlace con base de datos Microsft SQL Server
mssql link persistent | mssql_pconnect() | mssql_query(), mssql_select_db() | Nadie | Enlace persistente con Microsft SQL Server
mssql result | mssql_query() | mssql_data_seek(), mssql_fetch_array(), mssql_fetch_field(), mssql_fetch_object(), mssql_fetch_row(), mssql_field_length(), mssql_field_name(), mssql_field_seek(), mssql_field_type(), mssql_num_fields(), mssql_num_rows(), mssql_result() | mssql_free_result() | Rasultado de Microsft SQL Server
mysql link | mysql_connect() | mysql_affected_rows(), mysql_change_user(), mysql_create_db(), mysql_data_seek(), mysql_db_name(), mysql_db_query(), mysql_drop_db(), mysql_errno(), mysql_error(), mysql_insert_id(), mysql_list_dbs(), mysql_list_fields(), mysql_list_tables(), mysql_query(), mysql_result(), mysql_select_db(), mysql_tablename(), mysql_get_host_info(), mysql_get_proto_info(), mysql_get_server_info() | mysql_close() | Enlace con base de datos MySQL
mysql link persistent | mysql_pconnect() | mysql_affected_rows(), mysql_change_user(), mysql_create_db(), mysql_data_seek(), mysql_db_name(), mysql_db_query(), mysql_drop_db(), mysql_errno(), mysql_error(), mysql_insert_id(), mysql_list_dbs(), mysql_list_fields(), mysql_list_tables(), mysql_query(), mysql_result(), mysql_select_db(), mysql_tablename(), mysql_get_host_info(), mysql_get_proto_info(), mysql_get_server_info() | Nadie | Enlace persistente con base de datos MySQL
mysql result | mysql_db_query(), mysql_list_dbs(), mysql_list_fields(), mysql_list_tables(), mysql_query() | mysql_data_seek(), mysql_db_name(), mysql_fetch_array(), mysql_fetch_assoc(), mysql_fetch_field(), mysql_fetch_lengths(), mysql_fetch_object(), mysql_fetch_row(), mysql_fetch_row(), mysql_field_flags(), mysql_field_name(), mysql_field_len(), mysql_field_seek(), mysql_field_table(), mysql_field_type(), mysql_num_fields(), mysql_num_rows(), mysql_result(), mysql_tablename() | mysql_free_result() | Resultado MySQL
oci8 collection
oci8 connection | ocilogon(), ociplogon(), ocinlogon() | ocicommit(), ociserverversion(), ocinewcursor(), ociparse(), ocierror() | ocilogoff() | Enlace con base de datos Oracle
oci8 descriptor
oci8 server
oci8 session
oci8 statement | ocinewdescriptor() | ocirollback(), ocinewdescriptor(), ocirowcount(), ocidefinebyname(), ocibindbyname(), ociexecute(), ocinumcols(), ociresult(), ocifetch(), ocifetchinto(), ocifetchstatement(), ocicolumnisnull(), ocicolumnname(), ocicolumnsize(), ocicolumntype(), ocistatementtype(), ocierror() | ocifreestatement() | Cursor Oracle
odbc link | odbc_connect() | odbc_autocommit(), odbc_commit(), odbc_error(), odbc_errormsg(), odbc_exec(), odbc_tables(), odbc_tableprivileges(), odbc_do(), odbc_prepare(), odbc_columns(), odbc_columnprivileges(), odbc_procedurecolumns(), odbc_specialcolumns(), odbc_rollback(), odbc_setoption(), odbc_gettypeinfo(), odbc_primarykeys(), odbc_foreignkeys(), odbc_procedures(), odbc_statistics() | odbc_close() | Enlace con base de datos ODBC
odbc link persistent | odbc_connect() | odbc_autocommit(), odbc_commit(), odbc_error(), odbc_errormsg(), odbc_exec(), odbc_tables(), odbc_tableprivileges(), odbc_do(), odbc_prepare(), odbc_columns(), odbc_columnprivileges(), odbc_procedurecolumns(), odbc_specialcolumns(), odbc_rollback(), odbc_setoption(), odbc_gettypeinfo(), odbc_primarykeys(), odbc_foreignkeys(), odbc_procedures(), odbc_statistics() | Nadie | Enlace persistente con base de datos ODBC
odbc result | odbc_prepare() | odbc_binmode(), odbc_cursor(), odbc_execute(), odbc_fetch_into(), odbc_fetch_row(), odbc_field_name(), odbc_field_num(), odbc_field_type(), odbc_field_len(), odbc_field_precision(), odbc_field_scale(), odbc_longreadlen(), odbc_num_fields(), odbc_num_rows(), odbc_result(), odbc_result_all(), odbc_setoption() | odbc_free_result() | Resultado ODBC
birdstep link
birdstep result
OpenSSL key | openssl_get_privatekey(), openssl_get_publickey() | openssl_sign(), openssl_seal(), openssl_open(), openssl_verify() | openssl_free_key() | Llave OpenSSL
OpenSSL X.509 | openssl_x509_read() | openssl_x509_parse(), openssl_x509_checkpurpose() | openssl_x509_free() | Llave pública
oracle Cursor | ora_open() | ora_bind(), ora_columnname(), ora_columnsize(), ora_columntype(), ora_error(), ora_errorcode(), ora_exec(), ora_fetch(), ora_fetch_into(), ora_getcolumn(), ora_numcols(), ora_numrows(), ora_parse() | ora_close() | Cursor Oracle
oracle link | ora_logon() | ora_do(), ora_error(), ora_errorcode(), ora_rollback(), ora_commitoff(), ora_commiton(), ora_open(), ora_commit() | ora_logoff() | Enlace con base de datos oracle
oracle link persistent | ora_plogon() | ora_do(), ora_error(), ora_errorcode(), ora_rollback(), ora_commitoff(), ora_commiton(), ora_open(), ora_commit() | Nadie | Enlace persistente con base de datos oracle
pdf document | pdf_new() | pdf_add_bookmark(), pdf_add_launchlink(), pdf_add_locallink(), pdf_add_note(), pdf_add_pdflink(), pdf_add_weblink(), pdf_arc(), pdf_attach_file(), pdf_begin_page(), pdf_circle(), pdf_clip(), pdf_closepath(), pdf_closepath_fill_stroke(), pdf_closepath_stroke(), pdf_concat(), pdf_continue_text(), pdf_curveto(), pdf_end_page(), pdf_endpath(), pdf_fill(), pdf_fill_stroke(), pdf_findfont(), pdf_get_buffer(), pdf_get_image_height(), pdf_get_image_width(), pdf_get_parameter(), pdf_get_value(), pdf_lineto(), pdf_moveto(), pdf_open_ccitt(), pdf_open_file(), pdf_open_image_file(), pdf_place_image(), pdf_rect(), pdf_restore(), pdf_rotate(), pdf_save(), pdf_scale(), pdf_setdash(), pdf_setflat(), pdf_setfont(), pdf_setgray(), pdf_setgray_fill(), pdf_setgray_stroke(), pdf_setlinecap(), pdf_setlinejoin(), pdf_setlinewidth(), pdf_setmiterlimit(), pdf_setpolydash(), pdf_setrgbcolor(), pdf_setrgbcolor_fill(), pdf_setrgbcolor_stroke(), pdf_set_border_color(), pdf_set_border_dash(), pdf_set_border_style(), pdf_set_char_spacing(), pdf_set_duration(), pdf_set_font(), pdf_set_horiz_scaling(), pdf_set_parameter(), pdf_set_text_pos(), pdf_set_text_rendering(), pdf_set_value(), pdf_set_word_spacing(), pdf_show(), pdf_show_boxed(), pdf_show_xy(), pdf_skew(), pdf_stringwidth(), pdf_stroke(), pdf_translate(), pdf_open_memory_image() | pdf_close(), pdf_delete() | Documento PDF
pdf image | pdf_open_image(), pdf_open_image_file(), pdf_open_memory_image() | pdf_get_image_height(), pdf_get_image_width(), pdf_open_CCITT(), pdf_place_image() | pdf_close_image() | Imagen en archivo PDF
pdf object
pdf outline
pgsql large object | pg_lo_open() | pg_lo_open(), pg_lo_create(), pg_lo_read(), pg_lo_read_all(), pg_lo_seek(), pg_lo_tell(), pg_lo_unlink(), pg_lo_write() | pg_lo_close() | Objato Largo PostgreSQL
pgsql link | pg_connect() | pg_affected_rows(), pg_query(), pg_send_query(), pg_get_result(), pg_connection_busy(), pg_connection_reset(), pg_connection_status(), pg_last_error(), pg_last_notice(), pg_lo_create(), pg_lo_export(), pg_lo_import(), pg_lo_open(), pg_lo_unlink(), pg_host(), pg_port(), pg_dbname(), pg_options(), pg_copy_from(), pg_copy_to(), pg_end_copy(), pg_put_line(), pg_tty(), pg_trace(), pg_untrace(), pg_set_client_encoding(), pg_client_encoding(), pg_metadata(), pg_convert(), pg_insert(), pg_select(), pg_delete(), pg_update() | pg_close() | Enlace con base de datos PostgreSQL
pgsql link persistent | pg_pconnect() | pg_affected_rows(), pg_query(), pg_send_query(), pg_get_result(), pg_connection_busy(), pg_connection_reset(), pg_connection_status(), pg_last_error(), pg_last_notice(), pg_lo_create(), pg_lo_export(), pg_lo_import(), pg_lo_open(), pg_lo_unlink(), pg_host(), pg_port(), pg_dbname(), pg_options(), pg_copy_from(), pg_copy_to(), pg_end_copy(), pg_put_line(), pg_tty(), pg_trace(), pg_untrace(), pg_set_client_encoding(), pg_client_encoding(), pg_metadata(), pg_convert(), pg_insert(), pg_select(), pg_delete(), pg_update() | Nadie | Enlace persistente con base de datos PostgreSQL
pgsql result | pg_query(), pg_get_result() | pg_fetch_array(), pg_fetch_object(), pg_fetch_result(), pg_fetch_row(), pg_field_is_null(), pg_field_name(), pg_field_num(), pg_field_prtlen(), pg_field_size(), pg_field_type(), pg_last_oid(), pg_num_fields(), pg_num_rows(), pg_result_error(), pg_result_status() | pg_free_result() | Resultado PostgreSQL
pgsql string
printer
printer brush
printer font
printer pen
pspell | pspell_new(), pspell_new_config(), pspell_new_personal() | pspell_add_to_personal(), pspell_add_to_session(), pspell_check(), pspell_clear_session(), pspell_config_ignore(), pspell_config_mode(), pspell_config_personal(), pspell_config_repl(), pspell_config_runtogether(), pspell_config_save_repl(), pspell_save_wordlist(), pspell_store_replacement(), pspell_suggest() | Nadie | Diccionario pspell
pspell config | pspell_config_create() | pspell_new_config() | Nadie | Configuración pspell
Sablotron XSLT | xslt_create() | xslt_closelog(), xslt_openlog(), xslt_run(), xslt_set_sax_handler(), xslt_errno(), xslt_error(), xslt_fetch_result(), xslt_free() | xslt_free() | Analizador sintáctico XSLT
shmop | shmop_open() | shmop_read(), shmop_write(), shmop_size(), shmop_delete() | shmop_close()
sockets file descriptor set | socket() | accept_connect(), bind(), connect(), listen(), read(), write() | close() | Socket
sockets i/o vector
dir | dir() | readdir(), rewinddir() | closedir() | Gestor de directorio
file | fopen() | feof(), fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), flock(), fpassthru(), fputs(), fwrite(), fread(), fseek(), ftell(), fstat(), ftruncate(), set_file_buffer(), rewind() | fclose() | Gestor de archivo
pipe | popen() | feof(), fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), fpassthru(), fputs(), fwrite(), fread() | pclose() | Gestor de proceso
socket | fsockopen() | fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), fpassthru(), fputs(), fwrite(), fread() | fclose() | Gestor de socket
stream
sybase-db link | sybase_connect() | sybase_query(), sybase_select_db() | sybase_close() | Enlace a base de datos Sybase usando la librería DB
sybase-db link persistent | sybase_pconnect() | sybase_query(), sybase_select_db() | Nadie | Enlace persistente con base de datos Sybase usando la librería DB
sybase-db result | sybase_query() | sybase_data_seek(), sybase_fetch_array(), sybase_fetch_field(), sybase_fetch_object(), sybase_fetch_row(), sybase_field_seek(), sybase_num_fields(), sybase_num_rows(), sybase_result() | sybase_free_result() | Resultado Sybase usando la librería DB
sybase-ct link | sybase_connect() | sybase_affected_rows(), sybase_query(), sybase_select_db() | sybase_close() | Enlace a base de datos Sybase usando la librería CT
sybase-ct link persistent | sybase_pconnect() | sybase_affected_rows(), sybase_query(), sybase_select_db() | Nadie | Enlace persistente con base de datos Sybase usando la librería CT
sybase-ct result | sybase_query() | sybase_data_seek(), sybase_fetch_array(), sybase_fetch_field(), sybase_fetch_object(), sybase_fetch_row(), sybase_field_seek(), sybase_num_fields(), sybase_num_rows(), sybase_result() | sybase_free_result() | Resultado Sybase usando la librería CT
sysvsem | sem_get() | sem_acquire() | sem_release() | Semáforo de Sistema V
sysvshm | shm_attach() | shm_remove(), shm_put_var(), shm_get_var(), shm_remove_var() | shm_detach() | Memoria Compartida de Sistema V
wddx | wddx_packet_start() | wddx_add_vars() | wddx_packet_end() | Paquete WDDX
xml | xml_parser_create() | xml_set_object(), xml_set_element_handler(), xml_set_character_data_handler(), xml_set_processing_instruction_handler(), xml_set_default_handler(), xml_set_unparsed_entity_decl_handler(), xml_set_notation_decl_handler(), xml_set_external_entity_ref_handler(), xml_parse(), xml_get_error_code(), xml_error_string(), xml_get_current_line_number(), xml_get_current_column_number(), xml_get_current_byte_index(), xml_parse_into_struct(), xml_parser_set_option(), xml_parser_get_option() | xml_parser_free() | Analizador sintáctico XML
zlib | gzopen() | gzeof(), gzgetc(), gzgets(), gzgetss(), gzpassthru(), gzputs(), gzread(), gzrewind(), gzseek(), gztell(), gzwrite() | gzclose() | Archivo comprimido gz

Anterior | Inicio | Siguiente
Constantes Estándar Predefinidas | Subir | Lista de Protocolos/Envolturas Soportadas


Lista de Protocolos/Envolturas Soportadas

Manual de PHP
Anterior Siguiente

Apéndice I. Lista de Protocolos/Envolturas Soportadas

Tabla de contenidos
HTTP y HTTPS
FTP y FTPS
Secuencias de entrada/salida PHP
Secuencias de Compresión

La siguiente es una lista de los varios protocolos estilo URL que PHP tiene integrado para su uso con las funciones del sistema de archivos, tales como fopen() y copy(). Adicionalmente a estas envolturas, y a partir de PHP 4.3.0, usted puede escribir sus propias envolturas usando scripts PHP y stream_wrapper_register().

HTTP y HTTPS

PHP 3, PHP 4. https:// a partir de PHP 4.3.0

  • http://example.com

  • http://usuario:contrasenya@example.com

  • https://example.com

  • https://usuario:contrasenya@example.com

Permite acceso de sólo-lectura a archivos/recursos a través de HTTP 1.0, usando el método HTTP GET. Una cabecera Host: es enviada con la petición para gestionar hosts virtuales basados en nombres. Si ha configurado una cadena user_agent usando su archivo ini o en el contexto de secuencia, también ésta será usada en la petición.

Las redirecciones han sido soportadas desde PHP 4.0.5; si se encuentra usando una versión anterior, necesitará incluir barras de cierre en sus URLs. Si es importante conocer el url del recurso del cual proviene su documento (luego de que todas las redirecciones han sido procesadas), necesitará trabajar con la serie de cabeceras de respuesta devueltas por la secuencia.

<?php
$url = 'http://www.example.com/pagina_de_redireccion.php';

$da = fopen($url, 'r');

/* Antes de PHP 4.3.0, use $http_response_header
   en lugar de stream_get_meta_data() */
foreach(stream_get_meta_data($da) as $respuesta) {

  /* Fuimos redireccionados? */
  if (substr(strtolower($respuesta), 0, 10) == 'location: ') {
    /* actualizar $url con la ubicacion desde donde fuimos
       redireccionados */
    $url = substr($respuesta, 10);
  }

}

?>

La secuencia permite acceso al cuerpo del recurso; las cabeceras son almacenadas en la variable $http_response_header. A partir de PHP 4.3.0, las cabeceras están disponibles mediante el uso de stream_get_meta_data().

Las conexiones HTTP son de sólo-lectura; no puede escribir datos o copiar archivos hacia un recurso HTTP.

Nota: HTTPS es soportado a partir de PHP 4.3.0, si ha compilado el soporte para OpenSSL.

Tabla I-1. Resumen de Envoltura

Atributo | Soporte
Restricción por allow_url_fopen. | Si
Permite Lectura | Si
Permite Escritura | No
Permite Adición | No
Permite Lectura y Escritura Simultánea | N/D
Soporte stat() | No
Soporte unlink() | No

Tabla I-2. Opciones de contexto (a la altura de PHP 5.0.0)

Nombre | Uso | Predeterminado
method | GET, POST, u otro método HTTP soportado por el servidor remoto. | GET
header | Cabeceras adicionales a ser enviadas durante la petición. Los valores en esta opción sobrescribirán otros valores (tales como User-agent:, Host:, y Authentication:). |
user_agent | Valor a enviar con la cabecera User-Agent:. Este valor solo será usado si user-agent no es especificado en la opción de contexto header anterior. | Parámetro php.ini: user_agent
content | Datos adicionales a ser enviados después de las cabeceras. Típicamente usados con peticiones POST o PUT. |
proxy | URI que especifica la dirección del servidor proxy. (p.ej. tcp://proxy.example.com:5100 ). |

Opciones de contexto de las secuencias de socket interno: Puede que se soporten opciones de contexto adicionales por el transporte implícito. Para secuencias http://, refiérase a las opciones de contexto para el transporte tcp://. Para secuencias https://, refiérase a las opciones de contexto del transporte ssl://.

Anterior | Inicio | Siguiente
Lista de Tipos de Recurso | Subir | FTP y FTPS


FTP y FTPS

PHP 3, PHP 4. ftps:// a partir de PHP 4.3.0

  • ftp://example.com/pub/archivo.txt

  • ftp://usuario:contrasenya@example.com/pub/archivo.txt

  • ftps://example.com/pub/archivo.txt

  • ftps://usuario:contrasenya@example.com/pub/archivo.txt

Permite acceso de lectura a archivos exsistentes y la creación de nuevos archivos mediante FTP. Si el servidor no soporta el modo pasivo de ftp, la conexión fallará.

Puede abrir archivos para lectura o para escritura, pero no en los dos modos simultáneamente. Si el archivo remoto existe previamente en el servidor ftp e intenta abrirlo para escritura, pero no tiene especificada la opción de contexto overwrite, la conexión fallará. Si necesita sobrescribir archivos existentes sobre ftp, especifique la opción overwrite en el contexto y abra el archivo para escritura. Alternativamente, puede usar la extensión FTP.

Adición: En PHP 5.0.0, los archivos pueden ser extendidos, agregando nuevos datos al final, mediante la envoltura de url ftp://. En versiones anteriores, al intentar adicionar datos a un archivo mediante ftp:// se producirá un fallo.

ftps:// se ha introducido en PHP 4.3.0. Es igual a ftp://, pero intenta negociar una conexión segura con el servidor ftp. Si el servidor no soporta SSL, entonces la conexión recae sobre el ftp corriente, sin encripción.

Nota: FTPS es soportado desde PHP 4.3.0, si ha compilado el soporte para OpenSSL.

Tabla I-3. Resumen de Envoltura

Atributo | Soporte
Restricción por allow_url_fopen. | Si
Permite Lectura | Si
Permite Escritura | Si (Antes de PHP 5.0.0: sólo nuevos archivos. PHP 5.0.0 y superior: sobrescritura permitida con opción de contexto)
Permite Adición | Si (PHP 5.0.0 o superior)
Permite Lectura y Escritura Simultánea | No
Soporte stat() | No
Soporte unlink() | Si (PHP 5.0.0 o superior)

Tabla I-4. Opciones de contexto (a la altura de PHP 5.0.0)

Nombre | Uso | Predeterminado
overwrite | Permite la sobrescritura de archivos previamente existentes en el servidor remoto. Se aplica al modo de escritura (carga de archivos) solamente. | FALSE (Deshabilitada)
resume_pos | Desplazamiento de archivo para iniciar la transferencia. Se aplica únicamente al modo de lectura (descarga de archivos). | 0 (Comienzo del Archivo)

Opciones de contexto de las secuencias de socket interno: Puede que se soporten opciones de contexto adicionales por el transporte implícito. Para secuencias ftp://, refiérase a las opciones de contexto para el transporte tcp://. Para secuencias ftps://, refiérase a las opciones de contexto del transporte ssl://.

Anterior | Inicio | Siguiente
Lista de Protocolos/Envolturas Soportadas | Subir | Secuencias de entrada/salida PHP


Secuencias de entrada/salida PHP

PHP 3.0.13 y superior, php://output y php://input a partir de PHP 4.3.0, php://filter desde PHP 5.0.0

  • php://stdin

  • php://stdout

  • php://stderr

  • php://output

  • php://input

  • php://filter

php://stdin, php://stdout y php://stderr le ofrecen acceso a las secuencias de entrada o salida correspondientes del proceso PHP.

php://output le permite escribir sobre el mecanismo de búfer de salida en la misma manera que lo hacen print() y echo().

php://input le permite leer datos POST en su forma primitiva. Es una alternativa que consume menos memoria que $HTTP_RAW_POST_DATA y no requiere de directivas php.ini especiales.

php://stdin y php://input son de sólo-lectura, mientras que php://stdout, php://stderr y php://output son de sólo-escritura.

php://filter es una especie de meta-envoltura diseñada para permitir el uso de filtros sobre una secuencia al momento de su apertura. Resulta útil con aquellas funciones de archivos todo-en-uno, como readfile(), file(), y file_get_contents() en donde de otro modo no habría forma de aplicar filtros a la secuencia antes de que los contenidos fueran leídos.

El destino php://filter recibe los siguientes 'parámetros' como partes de su 'ruta'.

  • /resource=<secuencia a ser filtrada> (requerido) Este parámetro debe estar ubicado el final de su especificación php://filter y debe apuntar a la secuencia que desea filtrar.

    <?php
/* Esto es equivalente a simplemente:
   readfile("http://www.example.com");
   ya que no se aplica filtro alguno */

readfile("php://filter/resource=http://www.example.com");
?>

  • /read=<lista de filtros a aplicar a la cadena de lectura> (opcional) Este parámetro toma uno o más nombres de filtros separados por el caracter |.

    <?php
/* Esto produce como salida el contenido de
   www.example.com enteramente en mayusculas */
readfile("php://filter/read=string.toupper/resource=http://www.example.com");

/* Esto hace lo mismo pero tambien codifica la salida con  ROT13 */
readfile("php://filter/read=string.toupper|string.rot13/resource=http://www.example.com");
?>

  • /write=<lista de filtros a aplicar a la cadena de escritura> (opcional) Este parámetro toma uno o más nombres de filtro separados por el caracter |.

    <?php
/* Esto filtra la cadena "Hola Mundo" a traves del filtro rot13,
   luego escribe al archivo ejemplo.txt en el directorio actual */
file_set_contents("php://filter/write=string.rot13/resource=ejemplo.txt","Hola Mundo");
?>

  • /<lista de filtros a aplicar a ambas cadenas> (opcional) Cualquier lista de filtros que no esté precedida por read= o write= será aplicada tanto a la cadena de lectura como a la de escritura (según sea el caso).

Tabla I-5. Resumen de Envoltura (Para php://filter, refiérase al resumen de la envoltura siendo filtrada.)

Atributo | Soporte
Restricción por allow_url_fopen. | No
Permite Lectura | php://stdin y php://input únicamente.
Permite Escritura | php://stdout, php://stderr, y php://output únicamente.
Permite Adición | php://stdout, php://stderr, y php://output únicamente. (Equivalente a la escritura)
Permite Lectura y Escritura Simultánea | No. Estas envolturas son unidireccionales.
Soporte stat() | No
Soporte unlink() | No

Anterior | Inicio | Siguiente
FTP y FTPS | Subir | Secuencias de Compresión


Secuencias de Compresión

zlib: PHP 4.0.4 - PHP 4.2.3 (sólo sistemas con fopencookie)

compress.zlib:// y compress.bzip2:// PHP 4.3.0 y superior

  • zlib:

  • compress.zlib://

  • compress.bzip2://

zlib: funciona como gzopen(), con la excepción de que la secuencia puede ser usada con fread() y otras funciones del sistema de archivos. Esto se ha hecho oblsoleto en PHP 4.3.0 debido a las ambigüedades presentes con nombres de archivos que contienen caracteres ':'; use compress.zlib:// en su lugar.

compress.zlib:// y compress.bzip2:// son equivalentes a gzopen() y bzopen() respectivamente, y operan incluso sobre sistemas que no tienen soporte para fopencookie.

Tabla I-6. Resumen de Envoltura

Atributo | Soporte
Restricción por allow_url_fopen. | No
Permite Lectura | Si
Permite Escritura | Si
Permite Adición | Si
Permite Lectura y Escritura Simultánea | No
Soporte stat() | No, use la envoltura file:// normal para realizar stat sobre archivos comprimidos.
Soporte unlink() | No, use la envoltura file:// normal para eliminar archivos comprimidos.

Anterior | Inicio | Siguiente
Secuencias de entrada/salida PHP | Subir | Lista de Transportes de Sockets Soportados


Lista de Transportes de Sockets Soportados

Manual de PHP
Anterior Siguiente

Apéndice J. Lista de Transportes de Sockets Soportados

Tabla de contenidos
Dominio de Internet: TCP, UDP, SSL, y TLS
Dominio Unix: UNIX y UDG

La siguiente es una lista de los varios transportes de socket estilo URL que PHP tiene integrados para su uso con funciones de sockets basados en secuencias, tales como fsockopen(), y stream_socket_client(). Estos transportes no se aplican a la Extensión de Sockets.

Para una lista de transportes instalados con su versión de PHP use stream_get_transports().

Dominio de Internet: TCP, UDP, SSL, y TLS

PHP 3, PHP 4. ssl:// & tls:// a partir de PHP 4.3

Nota: Si no se especifica un transporte, se asumirá tcp://

  • 127.0.0.1

  • fe80::1

  • www.example.com

  • tcp://127.0.0.1

  • tcp://fe80::1

  • tcp://www.example.com

  • udp://www.example.com

  • ssl://www.example.com

  • tls://www.example.com

Los sockets del Dominio de Internet esperan un número de puerto junto con una dirección de destino. En el caso de fsockopen(), éste es especificado en un segundo parámetro y por lo tanto no tiene impacto sobre el formato del URL de transporte. Sin embargo, en el caso de stream_socket_client() y funciones relacionadas, así como ocurre con URLs tradicionales, el número de puerto se especifica como un sufijo del URL de transporte delimitado con el signo dos puntos.

  • tcp://127.0.0.1:80

  • tcp://[fe80::1]:80

  • tcp://www.example.com:80

Direcciones IPv6 numéricas con números de puerto: En el segundo ejemplo anterior, mientras que los ejemplos IPv4 y con nombre de dominio fueron modificados solo ligeramente con la adición de sus dos puntos y número de puerto, la dirección IPv6 es rodeada por corchetes cuadrados: [fe80::1]. Esto es para poder distinguir entre los dos puntos usados en una dirección IPv6 y aquellos usados para delimitar el número de puerto.

Los transportes ssl:// y tls:// (disponibles únicamente cuando se compila el soporte para openssl con PHP) son extensiones del transporte tcp:// el cual incluye encripción SSL. A partir de PHP 4.3.0 el soporte OpenSSL debe ser compilado estáticamente con PHP, a partir de PHP 5.0.0 puede ser compilado como módulo o estáticamente.

Tabla J-1. Opciones de contexto para los transportes ssl:// y tls:// (a partir de PHP 4.3.2)

Nombre | Uso | Predeterminado
verify_peer | TRUE o FALSE. Requerir verificación del certificado SSL usado. | FALSE
allow_self_signed | TRUE o FALSE. Permitir certificados firmados por uno mismo. | FALSE
cafile | Ubicación del archivo de Autoridad de Certificado en un sistema de archivos local, el cual debe ser usado con la opción de contexto verify_peer para verificar la identidad del conector remoto. |
capath | Si no se especifica cafile o el certificado no se encuentra allí, el directorio apuntado por capath es usado para buscar un certificado apropiado. capath debe ser un directorio de certificados correctamente habilitado mediante resumen criptográfico. |
local_cert | Ruta al archivo de certificado local en el sistema de archivos. Debe ser un archivo codificado mediante PEM, el cual contenga su certificado y llave privada. Opcionalmente, puede contener la cadena de expendedores del certificado. |
passphrase | La contraseña con la que el archivo local_cert fue codificado. |
CN_match | El nombre común (Common Name) que estamos esperando. PHP realizará comparaciones limitadas de comodines. Si el nombre común no produce coincidencias, el intento de conexión fallará. |

Nota: Debido a que ssl:// es el transporte base para las envolturas https:// y ftps://, cualquier opción de contexto que se aplique a ssl:// también se aplica a https:// y ftps://.

Anterior | Inicio | Siguiente
Secuencias de Compresión | Subir | Dominio Unix: UNIX y UDG


Dominio Unix: UNIX y UDG

unix:// a partir de PHP 3, udg:// a partir de PHP 5

  • unix:///tmp/misock

  • udg:///tmp/misock

unix:// provee acceso a una conexión secuencial de sockets en el dominio unix. udg:// provee un transporte alternativo a un socket del dominio unix, usando el protocolo de datagramas de usuario.

Los sockets de Dominio Unix, a diferencia de los sockets del Dominio de Internet, no esperan un número de puerto. En el caso de fsockopen(), el parámetro num_puerto debe ser definido como 0.

Anterior | Inicio | Siguiente
Lista de Transportes de Sockets Soportados | Subir | Tablas de comparación de tipos PHP


Tablas de comparación de tipos PHP

Manual de PHP
Anterior Siguiente

Apéndice K. Tablas de comparación de tipos PHP

Las siguientes tablas demuestran los comportamientos de los tipos en PHP y los operadores de comparación, tanto para comparaciones flexibles como estrictas. Este suplemento se encuentra relacionado también con la sección del manual sobre manipulación de tipos. La inspiración ha provenido de varios comentarios de usuarios, y del trabajo realizado en BlueShoes.

Antes de usar estas tablas, es importante entender los tipos y sus significados. Por ejemplo, "42" es string mientras que 42 es un integer. FALSE es un boolean mientras "false" es string.

Nota: Los Formularios HTML no pasan enteros, reales, o valores booleanos, ellos pasan cadenas. Para saber si una cadena es numérica, usted puede usar is_numeric().

Nota: Hacer un simple if ($x) cuando $x no esté definido, generará un error de nivel E_NOTICE. En lugar de esto, considere el uso de empty() o isset(), o inicializar sus variables.

Tabla K-1. Comparaciones de $x con funciones PHP

Expresión | gettype() | empty() | is_null() | isset() | boolean : if($x)
$x = ""; | string | TRUE | FALSE | TRUE | FALSE
$x = NULL | NULL | TRUE | TRUE | FALSE | FALSE
var $x; | NULL | TRUE | TRUE | FALSE | FALSE
$x no se encuentra definida | NULL | TRUE | TRUE | FALSE | FALSE
$x = array(); | array | TRUE | FALSE | TRUE | FALSE
$x = false; | boolean | TRUE | FALSE | TRUE | FALSE
$x = true; | boolean | FALSE | FALSE | TRUE | TRUE
$x = 1; | integer | FALSE | FALSE | TRUE | TRUE
$x = 42; | integer | FALSE | FALSE | TRUE | TRUE
$x = 0; | integer | TRUE | FALSE | TRUE | FALSE
$x = -1; | integer | FALSE | FALSE | TRUE | TRUE
$x = "1"; | string | FALSE | FALSE | TRUE | TRUE
$x = "0"; | string | TRUE | FALSE | TRUE | FALSE
$x = "-1"; | string | FALSE | FALSE | TRUE | TRUE
$x = "php"; | string | FALSE | FALSE | TRUE | TRUE
$x = "true"; | string | FALSE | FALSE | TRUE | TRUE
$x = "false"; | string | FALSE | FALSE | TRUE | TRUE

Tabla K-2. Comparaciones flexibles con ==

 | TRUE | FALSE | 1 | 0 | -1 | "1" | "0" | "-1" | NULL | array() | "php"
TRUE | TRUE | FALSE | TRUE | FALSE | TRUE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE
FALSE | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | TRUE | TRUE | FALSE
1 | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE
0 | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | TRUE | FALSE | TRUE
-1 | TRUE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE
"1" | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE
"0" | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE
"-1" | TRUE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE
NULL | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | TRUE | TRUE | FALSE
array() | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE
"php" | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE

Tabla K-3. Comparaciones estrictas con ===

 | TRUE | FALSE | 1 | 0 | -1 | "1" | "0" | "-1" | NULL | array() | "php"
TRUE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
1 | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
0 | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
-1 | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
"1" | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE
"0" | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE
"-1" | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE
NULL | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE
array() | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE
"php" | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE

Nota de PHP 3.0: El valor de cadena "0" fue considerado como no-vacío en PHP 3, este comportamiento cambió en PHP 4 en donde es visto ahora como vacío.

Anterior | Inicio | Siguiente
Dominio Unix: UNIX y UDG | Subir | Lista de Identificadores (tokens) del Analizador


Lista de Identificadores (tokens) del Analizador

Manual de PHP
Anterior Siguiente

Apéndice L. Lista de Identificadores (tokens) del Analizador

Varias partes del lenguaje PHP están representadas internamente por cosas tales como T_SR. El PHP muestra identificadores como éste en los errores durante el análisis gramatical, como por ejemplo: "Parse error: unexpected T_SR, expecting ',' or ';' in script.php on line 10." ("Error de análisis: T_SR inesperado, se esperaba ',' o ';' en la línea 10 de script.php.").

Suponemos que sabeis que significa T_SR. Para quienes no lo conocen, aquí hay una tabla con esos identificadores, la sintaxis de PHP, y referencias a lugares apropiados del manual.

Tabla L-1. Identificadores (Tokens)

Identificador | Sintaxis | Referencia
T_AND_EQUAL | &= | Operadores de Asignación
T_ARRAY | array() | array(), Sintaxis de array
T_ARRAY_CAST | (array) | Forzado de Tipos
T_AS | as | foreach
T_BAD_CHARACTER |  | cualquier caracter debajo del ASCII 32, excepto \t (0x09), \n (0x0a) y \r (0x0d)
T_BOOLEAN_AND | && | Operadores Lógicos
T_BOOLEAN_OR | || | Operadores Lógicos
T_BOOL_CAST | (bool) o (boolean) | Forzado de Tipos
T_BREAK | break | break
T_CASE | case | switch
T_CHARACTER |  |
T_CLASS | class | Clases y Objetos
T_CLOSE_TAG | ?> o %> |
T_COMMENT | // o # | Comentarios
T_CONCAT_EQUAL | .= | Operadores de Asignación
T_CONST | const |
T_CONSTANT_ENCAPSED_STRING | "foo" o 'bar' | Sintasis de Cadenas
T_CONTINUE | continue |
T_CURLY_OPEN |  |
T_DEC | -- | Operadores de Incremento/decremento
T_DECLARE | declare | declare
T_DEFAULT | default | switch
T_DIV_EQUAL | /= | Operadores de Asignación
T_DNUMBER | 0.12, etc. | Números en Punto Flotante
T_DO | do | do..while
T_DOLLAR_OPEN_CURLY_BRACES | ${ | Sintaxis de Variables Complejas Analizadas
T_DOUBLE_ARROW | => | Sintaxis de Arreglos
T_DOUBLE_CAST | (real), (double) or (float) | Forzado de Tipos
T_ECHO | echo | echo()
T_ELSE | else | else
T_ELSEIF | elseif | elseif
T_EMPTY | empty | empty()
T_ENCAPSED_AND_WHITESPACE |  |
T_ENDDECLARE | enddeclare | declare, Sintaxis Alternativa
T_ENDFOR | endfor | for, Sintaxis Alternativa
T_ENDFOREACH | endforeach | foreach, Sintaxis Alternativa
T_ENDIF | endif | if, Sintaxis Alternativa
T_ENDSWITCH | endswitch | switch, Sintaxis Alternativa
T_ENDWHILE | endwhile | while, Sintaxis Alternativa
T_END_HEREDOC |  | heredoc
T_EVAL | eval() | eval()
T_EXIT | exit o die | exit(), die()
T_EXTENDS | extends | extends, Clases y Objetos
T_FILE | __FILE__ | Constantes
T_FOR | for | for
T_FOREACH | foreach | foreach
T_FUNCTION | function o cfunction | Funciones
T_GLOBAL | global | Ambito de Variables
T_IF | if | if
T_INC | ++ | Operadores de Incremento/decremento
T_INCLUDE | include() | include()
T_INCLUDE_ONCE | include_once() | include_once()
T_INLINE_HTML |  |
T_INT_CAST | (int) o (integer) | Forzado de Tipos
T_ISSET | isset() | isset()
T_IS_EQUAL | == | Operadores de Comparación
T_IS_GREATER_OR_EQUAL | >= | Operadores de Comparación
T_IS_IDENTICAL | === | Operadores de Comparación
T_IS_NOT_EQUAL | != o <> | Operadores de Comparación
T_IS_NOT_IDENTICAL | !== | Operadores de Comparación
T_SMALLER_OR_EQUAL | <= | Operadores de Comparación
T_LINE | __LINE__ | Constantes
T_LIST | list() | list()
T_LNUMBER | 123, 012, 0x1ac, etc. | Enteros
T_LOGICAL_AND | and | Operadores Lógicos
T_LOGICAL_OR | or | Operadores Lógicos
T_LOGICAL_XOR | xor | Operadores Lógicos
T_MINUS_EQUAL | -= | Operadores de Asignación
T_ML_COMMENT | /* y */ | Comentarios
T_MOD_EQUAL | %= | Operadores de Asignación
T_MUL_EQUAL | *= | Operadores de Asignación
T_NEW | new | Clases y Objetos
T_NUM_STRING |  |
T_OBJECT_CAST | (object) | Forzado de Tipos
T_OBJECT_OPERATOR | -> | Clases y Objetos
T_OLD_FUNCTION | old_function | old_function
T_OPEN_TAG | <?php, <? o <% | Saliendo de HTML
T_OPEN_TAG_WITH_ECHO | <?= o <%= | Saliendo de HTML
T_OR_EQUAL | |= | Operadores de Asignación
T_PAAMAYIM_NEKUDOTAYIM | :: | ::
T_PLUS_EQUAL | += | Operadores de Asignación
T_PRINT | print() | print()
T_REQUIRE | require() | require()
T_REQUIRE_ONCE | require_once() | require_once()
T_RETURN | return | Retorno de Valores
T_SL | << | Operadores a Nivel de Bits
T_SL_EQUAL | <<= | Operadores de Asignación
T_SR | >> | Operadores a Nivel de Bits
T_SR_EQUAL | >>= | Operadores de Asignación
T_START_HEREDOC | <<< | heredoc
T_STATIC | static | Ambito de las Variables
T_STRING |  |
T_STRING_CAST | (string) | Forzado de Variables
T_STRING_VARNAME |  |
T_SWITCH | switch | switch
T_UNSET | unset() | unset()
T_UNSET_CAST | (unset) | (no documentado; arroja a NULL)
T_USE | use | (no implementado)
T_VAR | var | Clases y Objetos
T_VARIABLE | $foo | Variables
T_WHILE | while | while, do..while
T_WHITESPACE |  |
T_XOR_EQUAL | ^= | Operadores de Asignación
T_FUNC_C | __FUNCTION__ | constants, desde PHP 4.3.0
T_CLASS_C | __CLASS__ | constants, desde PHP 4.3.0

Anterior | Inicio | Siguiente
Tablas de comparación de tipos PHP | Subir | Sobre el manual


Sobre el manual

Manual de PHP
Anterior Siguiente

Apéndice M. Sobre el manual

Tabla de contenidos
Formatos
Sobre las notas de usuarios
Como interpretar la definición de una función (prototipo)
Versiones de PHP documentadas en este manual
Como encontrar más información sobre PHP
Como ayudar a mejorar la documentación
Como generamos los formatos
Traducciones
Sobre la traducción al español

Formatos

El manual de PHP se encuentra disponible en diferentes formatos. Estos formatos se pueden dividir en dos grupos: formatos accesible en línea (online) y ficheros que se pueden bajar a tu ordenador.

Nota: Algunos editores han publicado versiones impresas de este manual. No podemos recomendar ninguna de ellas, ya que suelen quedarse obsoletas rápidamente.

Podeis leer el manual en linea (online) en http://www.php.net/ y en numerosos servidores espejo. Para mejorar la respuesta, deberiais utilizar el servidor espejo más cercano a vosotros. Podeis consultar el manual en formato HTML -impresión amigable- ó en formato HTML que integra el manual en el diseno de la página web del proyecto PHP.

Una ventaja del manual en línea sobre la mayoria de formatos fuera de línea es la integración de los comentarios/notas de usuarios. Una desventaja es que teneis que estar conectados para ver consultar las versiones en línea.

Existen varios formatos fuera de línea y el más apropiado para cada usuario depende del sistema operativo que se use y de tus preferencias a la hora de leer. Informacion sobre como el manual es generado en tantos formatos diferentes se puede obtener en la seccion de este apendice titulada 'Como generamos los dierentes formatos'.

Los formatos más accesibles desde diferentes plataformas son HTML y texto plano. el manual en HTML se proporciona como un unico fichero en HTML ó como un paquete con un fichero HTML por sección. Los formatos HTML y texto plano se distribuyen como ficheros tar y con compresión bz2.

Otro formato muy popular y el más adecuado para imprimir, es PDF (Adobe Acrobat). Tenemos que advertir antes que empeceis a imprimir que el manual contiene casi 2000 páginas y se revisa constantemente.

Nota: Si no teneis un programa capaz de presentar ficheros PDF, podeis bajaros Adobe Acrobat Reader.

Los usuarios de ordenadores de mano compatibles con Palm, tienen los formatos Palm doc y iSilo. Podreis utlizar un lector de documentos DOC ó iSilo para consultar la documentación de PHP o como referencia rápida.

Para plataformas Windows, la versión Windows HTML Ayuda proporciona el formato HTML usado con la aplicacion de ayuda Windows HTML. Esta versión proporciona busqueda completa de texto, indice completo y marcas (bookmarks). Muchos entornos de desarrollo para PHP en Windows integran esta versión.

Anterior | Inicio | Siguiente
Lista de Identificadores (tokens) del Analizador | Subir | Sobre las notas de usuarios


Sobre las notas de usuarios

Las notas de usuarios juegan un importante papael en el desarrollo de este manual. Permitiendo a los lectores del manual contribuir con ejemplos y aclaraciones desde su navegador, podemos incorporar estas aclaraciones en el manual. Hasta que las notas son incorporadas en el manual, pueden ser accedidas desde el manual en línea y algunos formatos fuera de línea.

Nota: Las notas de usuario no son moderadas antes de estar disponibles en línea, asi que la calidad de lo escrito asi como los ejemplos ó incluso la veracidad de lo expuesto en la nota no puede ser garantizada.

Nota: Las notas contribuidas por los usuarios son consideradas parte del manual de PHP. Por lo tanto estan cubiertas por la misma licencia que se aplica a esta documentacion (Por el momento GPL). Para mas detalles, podeis consultar el Copyright del manual.

Anterior | Inicio | Siguiente
Sobre el manual | Subir | Como interpretar la definición de una función (prototipo)


Como interpretar la definición de una función (prototipo)

Cada función está documentada para una obtener una referencia rápida, si sabemos como interpretar y entender el manual podremos usar PHP de una manera más sencilla. En vez de confiar en ejemplos ó cortar y pegar, podeis aprender como interpretar las definiciones de funciones. Empecemos:

Prerequisitos: Comprensión básica de los diferentes tipos: Aunque PHP es un lenguaje de programación relajado en lo referente a los tipos de variables/valores, es importante entender básicamente los diferentes tipos, ya que son importantes.

Las definiciones de funciones nos dicen que tipo de valores es retornado. Usemos la definición de la función strlen() en nuestro primer ejemplo:

strlen

(PHP 3, PHP 4 >= 4.0.0)
strlen -- Obtiene la longitud de una cadena.

Descripción
int strlen ( string str )

Retorna la longitud de una cadena.

Tabla M-1. Explicación de la definición de una función

Parte | Descripción
strlen | El nombre de la función.
(PHP 3, PHP 4 >= 4.0.0) | strlen() está disponible tanto en PHP 3 como en PHP 4
int | Tipo de valor devuelto por esta función, en este caso un entero (La longitud de una cadena es medida en numeros)
( string str ) | El primer (y en este caso el único) parámetro/argumento de la función strlen() se llama str y es una cadena.

Podriamos escribir la definicion de esta función de un modo genérico:

Tipo de valor retornado - nombre de función (tipo de parametro - nombre del parametro)

Muchas funciones tiene multiples parametros, por ejemplo in_array(). Su definición seria:

bool in_array ( mixed needle, array haystack [, bool strict])

Esto significa lo siguiente, in_array() retorna un valor boolean, TRUE si termina con exito (el parametro needle fue encontrado en la matriz haystack) ó FALSE si falla (el parametro needle no fue encontrado en la matriz haystack). El primer parametro se llama needle y puede tener valores de diferente tipo, asi que lo llamamos de tipo "mixed". Este parametro needle (lo que estamos buscando) puede ser un valor escalar (cadena (string), entero (integer) o flotante(float)), ó una matriz. haystack, (la matriz en la que estamos buscando) es el segundo parámetro. El tercer parametro opcional se llama strict. Todos los parámetros opcionales se encuentran entre [ corchetes ]. El manual define que el parametro strict por defecto retorna FALSE. Consultar el manual para obtener detalles de como las diferentes funciones funcionan.

Anterior | Inicio | Siguiente
Sobre las notas de usuarios | Subir | Versiones de PHP documentadas en este manual


Versiones de PHP documentadas en este manual

Esta documentación contiene informacion sobre PHP 4, con algunas notas adicionales sobre migración y compatibilidad con PHP 3. Comportamientos, parámetros, valores retornados y otros cambios entre diferentes versiones de PHP se encuentran documentados en notas en este manual.

Podeis encontrar trozos de documentación para la versión CVS de PHP, esto significa la última versión de desarrollo disponible por el momento. Si no eres un desarrollador de PHP ó no utilizas la última versión de PHP en el CVS, no tendras disponibles las características marcadas con "disponible en el CVS". De todas maneras, estas características estarán probablemente disponibles en la proxima versión estable de PHP. Si deseais bajaros la versión del CVS, consultar la página sobre acceso anónimo al CVS.

También podeis encontrar documentación sobre una versión de PHP que no esté publicada todavia (p.ej PHP 5.0.0 cuando la última versión estable es 4.3.0). La mayoria de las veces no es un fallo. La explicación es añadida para características que se sabe estarán disponibles en una versión futura de PHP.

Anterior | Inicio | Siguiente
Como interpretar la definición de una función (prototipo) | Subir | Como encontrar más información sobre PHP


Como encontrar más información sobre PHP

Este manual no pretende explicar practicas generales de programación. Si vas a empezar a programar ó eres un programador principiante, seguramente tendras dificultades para aprender a programar en PHP usando solamente este manual. Te será de gran ayuda utilizar otros textos más orientados a principiantes. Una lista con libros sobre PHP puede encontrarse en http://www.php.net/books.php.

Existen una serie de listas de correo en donde se puede discutir sobre diferentes aspectos relacionados con la programación en PHP. Si tienes un problema, el cual no puedes solucionar, puedes usar estas listas para preguntar y obtener ayuda. Una lista con las listas de correo disponibles puede encontrarse en http://www.php.net/support.php, asi como enlaces a los archivos historicos de estas listas y otros recursos de ayuda en línea. Además en http://www.php.net/links.php puedes encontrar información sobre servidores web dedicados a PHP, artículos, foros y galerias de código.

Anterior | Inicio | Siguiente
Versiones de PHP documentadas en este manual | Subir | Como ayudar a mejorar la documentación


Como ayudar a mejorar la documentación

Se pueden ayudar de tres maneras a mejorar esta documentción.

Si encontrais errores en este manual, en cualquier lenguaje, podeis informar sobre el mismo, usando el sistema de informes de errores en http://bugs.php.net/. Clasificar el error como "Documentation Problem". Problemas encontrados con los diferentes formatos tambien se pueden mandar usando este sistema.

Nota: Por favor, no abusar del sistema de informes de errores mandando peticiones de ayuda. Utilizar las listas de correos y recursos mencionados anteriormente.

Contribuyendo con notas/comentarios, podeis dar ejemplos adicionales y aclaraciones a otros lectores. Pero no mandar informes de errores mediante el sistema de notas/comentarios. Podeis leer más sobre notas/comentarios en la sección 'Sobre las notas de usuarios' de este apendice.

Si sabes ingles y otro idioma, podeis ayudar en las traducciones. Si te interesa comenzar una nueva traducción o ayudar una existente, pasate por http://cvs.php.net/co.php/phpdoc/howto/howto.html.tar.gz.

Anterior | Inicio | Siguiente
Como encontrar más información sobre PHP | Subir | Como generamos los formatos


Como generamos los formatos

This manual is written in XML using the DocBook XML DTD, using DSSSL (Document Style and Semantics Specification Language) for formatting, and experimentally the XSLT (Extensible Stylesheet Language Transformations) for maintenance and formatting.

Usando XML como código fuente, podemos generar diferentes formatos, manteniendo solamente un solo código fuente para todos los formatos. Las herramientas utilizadas para crear las versiones HTML y TeX son Jade, escrito por James Clark y The Modular DocBook Stylesheets, escrito por Norman Walsh. Usamos Microsoft HTML Help Workshop para generar el formato de ayuda Windows HTML y por supuesto PHP para algunas conversiones y preprocesado.

Puedes bajarte el manual en diferentes idiomas y formatos, incluyendo texto plano, HTML,PDF, PalmPilot DOC, PalmPilot iSilo y Windows HTML Help, de http://www.php.net/docs.php. Los manuales son generados automaticamente a medida que el código fuente se va actualizando.

Más información sobre como bajarse el código fuente en XML en http://cvs.php.net/. La documentación se encuentra en el módulo phpdoc

Anterior | Inicio | Siguiente
Como ayudar a mejorar la documentación | Subir | Traducciones


Traducciones

El manual de PHP no está disponible solamente en diferentes formatos, tambien se encuentra en diferentes idiomas. El manual es escrito primero en ingles y luego grupos de traductores de todo el mundo se encargan de mantener la traducción a su idioma sincronizada con la versión inglesa. Si la traducción de algún apartado del manual no ha sido realizada todavia por el equipo de traductores, este aparecerá en ingles hasta que sea traducido.

Las personas involucradas en las traducciones, utilizan el código fuente en XML disponible en http://cvs.php.net/ y lo traducen a su idioma. No utilizan la versión en HTML, texto plano ó PDF. Es el sistema de generación de formatos el que se encarga de producirlos a partir de XML.

Nota: Si te interesa ayudar ó participar en la traducción de la documentación a tu idioma, ponte en contacto con el equipo de traducción/documentación apuntandote la la lista de correo phpdoc. Manda un mensaje vacio a phpdoc-subscribe@lists.php.net. La dirección de la esta lista de correo es phpdoc@lists.php.net. Explica que estás interesado en traducir el manual a un idioma y nos pondremos en contacto contigo, te mandaremos información para que puedas empezar una nueva traducción o para que pases a formar parte del equipo de traducción de tu idioma, si este ya existe.

Por el momento existen traducciones, completas o parciales, en los siguientes idiomas: Brasileño, Portugues, Chino (simplificado), Chino (Hong Kong Cantonese),Chino (Tradicional), Checo, Holandés, Finlandés, Frances, Alemán, Hebreo, Hungaro, Italiano, Japones, Koreano, Polaco, Rumano, Ruso, Eslovaco, Español, Sueco y Turco.

Todas ellas se pueden bajar de: http://www.php.net/docs.php.

Anterior | Inicio | Siguiente
Como generamos los formatos | Subir | Sobre la traducción al español


Sobre la traducción al español

El proyecto de traducción de la documantación de PHP al español tiene una página web en la que podrás encontrar información sobre el mismo, historia, que se necesita para colaborar, guia para los colaboradores, reglas y convenciones de traducción, listas de correos, acceso a la documentación y a los colaboradores de la traducción, etc. La dirección es http://www.linux-es.com/PHP/

La traducción del manual de PHP al español ha sido posible gracias a la colaboración de un gran número de traductores, que desinteresadamente han usado su tiempo para que todos podamos tener una versión en nuestra lengua de esta documentación.

El coordinador de la traducción es Rafael Martinez podeis contactar con el, para cualquier duda relacionada con el proyecto de traducción. Los colaboradores los podeis encontrar en esta lista:

Anterior | Inicio | Siguiente
Traducciones | Subir | Índice de funciones


Índice de funciones

Manual de PHP
Anterior Siguiente

Apéndice N. Índice de funciones

Tabla de contenidos
Índice de funciones

Anterior | Inicio | Siguiente
Sobre la traducción al español | Subir | Índice de funciones


Índice de funciones

A

abs()
acos()
acosh()
addcslashes()
addslashes()
aggregate()
aggregate_info()
aggregate_methods()
aggregate_methods_by_list()
aggregate_methods_by_regexp()
aggregate_properties()
aggregate_properties_by_list()
aggregate_properties_by_regexp()
aggregation_info()
apache_child_terminate()
apache_lookup_uri()
apache_note()
apache_request_headers()
apache_response_headers()
apache_setenv()
array()
array_change_key_case()
array_chunk()
array_combine()
array_count_values()
array_diff()
array_diff_assoc()
array_fill()
array_filter()
array_flip()
array_intersect()
array_intersect_assoc()
array_key_exists()
array_keys()
array_map()
array_merge()
array_merge_recursive()
array_multisort()
array_pad()
array_pop()
array_push()
array_rand()
array_reduce()
array_reverse()
array_search()
array_shift()
array_slice()
array_splice()
array_sum()
array_unique()
array_unshift()
array_values()
array_walk()
arsort()
ascii2ebcdic()
asin()
asinh()
asort()
aspell_check()
aspell_check_raw()
aspell_new()
aspell_suggest()
assert()
assert_options()
atan()
atan2()
atanh()

B

base64_decode()
base64_encode()
base_convert()
basename()
bcadd()
bccomp()
bcdiv()
bcmod()
bcmul()
bcpow()
bcpowmod()
bcscale()
bcsqrt()
bcsub()
bin2hex()
bind_textdomain_codeset()
bindec()
bindtextdomain()
bzclose()
bzcompress()
bzdecompress()
bzerrno()
bzerror()
bzerrstr()
bzflush()
bzopen()
bzread()
bzwrite()

C

cal_days_in_month()
cal_from_jd()
cal_info()
cal_to_jd()
call_user_func()
call_user_func_array()
call_user_method()
call_user_method_array()
ccvs_add()
ccvs_auth()
ccvs_command()
ccvs_count()
ccvs_delete()
ccvs_done()
ccvs_init()
ccvs_lookup()
ccvs_new()
ccvs_report()
ccvs_return()
ccvs_reverse()
ccvs_sale()
ccvs_status()
ccvs_textvalue()
ccvs_void()
ceil()
chdir()
checkdate()
checkdnsrr()
chgrp()
chmod()
chop()
chown()
chr()
chroot()
chunk_split()
class_exists()
clearstatcache()
closedir()
closelog()
com()
com_addref()
com_get()
com_invoke()
com_isenum()
com_load()
com_load_typelib()
com_propget()
com_propput()
com_propset()
com_release()
com_set()
compact()
connection_aborted()
connection_status()
connection_timeout()
constant()
convert_cyr_string()
copy()
cos()
cosh()
count()
count_chars()
cpdf_add_annotation()
cpdf_add_outline()
cpdf_arc()
cpdf_begin_text()
cpdf_circle()
cpdf_clip()
cpdf_close()
cpdf_closepath()
cpdf_closepath_fill_stroke()
cpdf_closepath_stroke()
cpdf_continue_text()
cpdf_curveto()
cpdf_end_text()
cpdf_fill()
cpdf_fill_stroke()
cpdf_finalize()
cpdf_finalize_page()
cpdf_global_set_document_limits()
cpdf_import_jpeg()
cpdf_lineto()
cpdf_moveto()
cpdf_newpath()
cpdf_open()
cpdf_output_buffer()
cpdf_page_init()
cpdf_place_inline_image()
cpdf_rect()
cpdf_restore()
cpdf_rlineto()
cpdf_rmoveto()
cpdf_rotate()
cpdf_rotate_text()
cpdf_save()
cpdf_save_to_file()
cpdf_scale()
cpdf_set_action_url()
cpdf_set_char_spacing()
cpdf_set_creator()
cpdf_set_current_page()
cpdf_set_font()
cpdf_set_font_directories()
cpdf_set_font_map_file()
cpdf_set_horiz_scaling()
cpdf_set_keywords()
cpdf_set_leading()
cpdf_set_page_animation()
cpdf_set_subject()
cpdf_set_text_matrix()
cpdf_set_text_pos()
cpdf_set_text_rendering()
cpdf_set_text_rise()
cpdf_set_title()
cpdf_set_viewer_preferences()
cpdf_set_word_spacing()
cpdf_setdash()
cpdf_setflat()
cpdf_setgray()
cpdf_setgray_fill()
cpdf_setgray_stroke()
cpdf_setlinecap()
cpdf_setlinejoin()
cpdf_setlinewidth()
cpdf_setmiterlimit()
cpdf_setrgbcolor()
cpdf_setrgbcolor_fill()
cpdf_setrgbcolor_stroke()
cpdf_show()
cpdf_show_xy()
cpdf_stringwidth()
cpdf_stroke()
cpdf_text()
cpdf_translate()
crack_check()
crack_closedict()
crack_getlastmessage()
crack_opendict()
crc32()
create_function()
crypt()
ctype_alnum()
ctype_alpha()
ctype_cntrl()
ctype_digit()
ctype_graph()
ctype_lower()
ctype_print()
ctype_punct()
ctype_space()
ctype_upper()
ctype_xdigit()
curl_close()
curl_errno()
curl_error()
curl_exec()
curl_getinfo()
curl_init()
curl_multi_add_handle()
curl_multi_close()
curl_multi_exec()
curl_multi_getcontent()
curl_multi_info_read()
curl_multi_init()
curl_multi_remove_handle()
curl_multi_select()
curl_setopt()
curl_version()
current()
cybercash_base64_decode()
cybercash_base64_encode()
cybercash_decr()
cybercash_encr()
cyrus_authenticate()
cyrus_bind()
cyrus_close()
cyrus_connect()
cyrus_query()
cyrus_unbind()

D

date()
dba_close()
dba_delete()
dba_exists()
dba_fetch()
dba_firstkey()
dba_handlers()
dba_insert()
dba_list()
dba_nextkey()
dba_open()
dba_optimize()
dba_popen()
dba_replace()
dba_sync()
dbase_add_record()
dbase_close()
dbase_create()
dbase_delete_record()
dbase_get_record()
dbase_get_record_with_names()
dbase_numfields()
dbase_numrecords()
dbase_open()
dbase_pack()
dbase_replace_record()
dblist()
dbmclose()
dbmdelete()
dbmexists()
dbmfetch()
dbmfirstkey()
dbminsert()
dbmnextkey()
dbmopen()
dbmreplace()
dbplus_add()
dbplus_aql()
dbplus_chdir()
dbplus_close()
dbplus_curr()
dbplus_errcode()
dbplus_errno()
dbplus_find()
dbplus_first()
dbplus_flush()
dbplus_freealllocks()
dbplus_freelock()
dbplus_freerlocks()
dbplus_getlock()
dbplus_getunique()
dbplus_info()
dbplus_last()
dbplus_lockrel()
dbplus_next()
dbplus_open()
dbplus_prev()
dbplus_rchperm()
dbplus_rcreate()
dbplus_rcrtexact()
dbplus_rcrtlike()
dbplus_resolve()
dbplus_restorepos()
dbplus_rkeys()
dbplus_ropen()
dbplus_rquery()
dbplus_rrename()
dbplus_rsecindex()
dbplus_runlink()
dbplus_rzap()
dbplus_savepos()
dbplus_setindex()
dbplus_setindexbynumber()
dbplus_sql()
dbplus_tcl()
dbplus_tremove()
dbplus_undo()
dbplus_undoprepare()
dbplus_unlockrel()
dbplus_unselect()
dbplus_update()
dbplus_xlockrel()
dbplus_xunlockrel()
dbx_close()
dbx_compare()
dbx_connect()
dbx_error()
dbx_escape_string()
dbx_query()
dbx_sort()
dcgettext()
dcngettext()
deaggregate()
debug_backtrace()
debug_print_backtrace()
debugger_off()
debugger_on()
decbin()
dechex()
decoct()
define()
define_syslog_variables()
defined()
deg2rad()
delete()
dgettext()
die()
dio_close()
dio_fcntl()
dio_open()
dio_read()
dio_seek()
dio_stat()
dio_tcsetattr()
dio_truncate()
dio_write()
dir()
dirname()
disk_free_space()
disk_total_space()
diskfreespace()
dl()
dngettext()
dns_check_record()
dns_get_mx()
dns_get_record()
domattribute->name()
domattribute->specified()
domattribute->value()
domdocument->add_root [deprecated]()
domdocument->create_attribute()
domdocument->create_cdata_section()
domdocument->create_comment()
domdocument->create_element()
domdocument->create_element_ns()
domdocument->create_entity_reference()
domdocument->create_processing_instruction()
domdocument->create_text_node()
domdocument->doctype()
domdocument->document_element()
domdocument->dump_file()
domdocument->dump_mem()
domdocument->get_element_by_id()
domdocument->get_elements_by_tagname()
domdocument->html_dump_mem()
domdocument->xinclude()
domdocumenttype->entities()
domdocumenttype->internal_subset()
domdocumenttype->name()
domdocumenttype->notations()
domdocumenttype->public_id()
domdocumenttype->system_id()
domelement->get_attribute()
domelement->get_attribute_node()
domelement->get_elements_by_tagname()
domelement->has_attribute()
domelement->remove_attribute()
domelement->set_attribute()
domelement->tagname()
domnode->add_namespace()
domnode->append_child()
domnode->append_sibling()
domnode->attributes()
domnode->child_nodes()
domnode->clone_node()
domnode->dump_node()
domnode->first_child()
domnode->get_content()
domnode->has_attributes()
domnode->has_child_nodes()
domnode->insert_before()
domnode->is_blank_node()
domnode->last_child()
domnode->next_sibling()
domnode->node_name()
domnode->node_type()
domnode->node_value()
domnode->owner_document()
domnode->parent_node()
domnode->prefix()
domnode->previous_sibling()
domnode->remove_child()
domnode->replace_child()
domnode->replace_node()
domnode->set_content()
domnode->set_name()
domnode->set_namespace()
domnode->unlink_node()
domprocessinginstruction->data()
domprocessinginstruction->target()
domxml_new_doc()
domxml_open_file()
domxml_open_mem()
domxml_version()
domxml_xmltree()
domxml_xslt_stylesheet()
domxml_xslt_stylesheet_doc()
domxml_xslt_stylesheet_file()
domxsltstylesheet->process()
domxsltstylesheet->result_dump_file()
domxsltstylesheet->result_dump_mem()
dotnet_load()
doubleval()

E

each()
easter_date()
easter_days()
ebcdic2ascii()
echo()
empty()
end()
ereg()
ereg_replace()
eregi()
eregi_replace()
error_log()
error_reporting()
escapeshellarg()
escapeshellcmd()
eval()
exec()
exif_imagetype()
exif_read_data()
exif_thumbnail()
exit()
exp()
explode()
expm1()
extension_loaded()
extract()
ezmlm_hash()

F

fbsql_affected_rows()
fbsql_autocommit()
fbsql_change_user()
fbsql_close()
fbsql_commit()
fbsql_connect()
fbsql_create_blob()
fbsql_create_clob()
fbsql_create_db()
fbsql_data_seek()
fbsql_database()
fbsql_database_password()
fbsql_db_query()
fbsql_db_status()
fbsql_drop_db()
fbsql_errno()
fbsql_error()
fbsql_fetch_array()
fbsql_fetch_assoc()
fbsql_fetch_field()
fbsql_fetch_lengths()
fbsql_fetch_object()
fbsql_fetch_row()
fbsql_field_flags()
fbsql_field_len()
fbsql_field_name()
fbsql_field_seek()
fbsql_field_table()
fbsql_field_type()
fbsql_free_result()
fbsql_get_autostart_info()
fbsql_hostname()
fbsql_insert_id()
fbsql_list_dbs()
fbsql_list_fields()
fbsql_list_tables()
fbsql_next_result()
fbsql_num_fields()
fbsql_num_rows()
fbsql_password()
fbsql_pconnect()
fbsql_query()
fbsql_read_blob()
fbsql_read_clob()
fbsql_result()
fbsql_rollback()
fbsql_select_db()
fbsql_set_lob_mode()
fbsql_set_transaction()
fbsql_start_db()
fbsql_stop_db()
fbsql_tablename()
fbsql_username()
fbsql_warnings()
fclose()
fdf_add_doc_javascript()
fdf_add_template()
fdf_close()
fdf_create()
fdf_enum_values()
fdf_errno()
fdf_error()
fdf_get_ap()
fdf_get_attachment()
fdf_get_encoding()
fdf_get_file()
fdf_get_flags()
fdf_get_opt()
fdf_get_status()
fdf_get_value()
fdf_get_version()
fdf_header()
fdf_next_field_name()
fdf_open()
fdf_open_string()
fdf_remove_item()
fdf_save()
fdf_save_string()
fdf_set_ap()
fdf_set_encoding()
fdf_set_file()
fdf_set_flags()
fdf_set_javascript_action()
fdf_set_opt()
fdf_set_status()
fdf_set_submit_form_action()
fdf_set_target_frame()
fdf_set_value()
fdf_set_version()
feof()
fflush()
fgetc()
fgetcsv()
fgets()
fgetss()
file()
file_exists()
file_get_contents()
file_put_contents()
fileatime()
filectime()
filegroup()
fileinode()
filemtime()
fileowner()
fileperms()
filepro()
filepro_fieldcount()
filepro_fieldname()
filepro_fieldtype()
filepro_fieldwidth()
filepro_retrieve()
filepro_rowcount()
filesize()
filetype()
floatval()
flock()
floor()
flush()
fmod()
fnmatch()
fopen()
fpassthru()
fprintf()
fputs()
fread()
frenchtojd()
fribidi_log2vis()
fscanf()
fseek()
fsockopen()
fstat()
ftell()
ftok()
ftp_cdup()
ftp_chdir()
ftp_chmod()
ftp_close()
ftp_connect()
ftp_delete()
ftp_exec()
ftp_fget()
ftp_fput()
ftp_get()
ftp_get_option()
ftp_login()
ftp_mdtm()
ftp_mkdir()
ftp_nb_continue()
ftp_nb_fget()
ftp_nb_fput()
ftp_nb_get()
ftp_nb_put()
ftp_nlist()
ftp_pasv()
ftp_put()
ftp_pwd()
ftp_quit()
ftp_raw()
ftp_rawlist()
ftp_rename()
ftp_rmdir()
ftp_set_option()
ftp_site()
ftp_size()
ftp_ssl_connect()
ftp_systype()
ftruncate()
func_get_arg()
func_get_args()
func_num_args()
function_exists()
fwrite()

G

gd_info()
get_browser()
get_cfg_var()
get_class()
get_class_methods()
get_class_vars()
get_current_user()
get_declared_classes()
get_defined_constants()
get_defined_functions()
get_defined_vars()
get_extension_funcs()
get_html_translation_table()
get_include_path()
get_included_files()
get_loaded_extensions()
get_magic_quotes_gpc()
get_magic_quotes_runtime()
get_meta_tags()
get_object_vars()
get_parent_class()
get_required_files()
get_resource_type()
getallheaders()
getcwd()
getdate()
getenv()
gethostbyaddr()
gethostbyname()
gethostbynamel()
getimagesize()
getlastmod()
getmxrr()
getmygid()
getmyinode()
getmypid()
getmyuid()
getopt()
getprotobyname()
getprotobynumber()
getrandmax()
getrusage()
getservbyname()
getservbyport()
gettext()
gettimeofday()
gettype()
glob()
gmdate()
gmmktime()
gmp_abs()
gmp_add()
gmp_and()
gmp_clrbit()
gmp_cmp()
gmp_com()
gmp_div()
gmp_div_q()
gmp_div_qr()
gmp_div_r()
gmp_divexact()
gmp_fact()
gmp_gcd()
gmp_gcdext()
gmp_hamdist()
gmp_init()
gmp_intval()
gmp_invert()
gmp_jacobi()
gmp_legendre()
gmp_mod()
gmp_mul()
gmp_neg()
gmp_or()
gmp_perfect_square()
gmp_popcount()
gmp_pow()
gmp_powm()
gmp_prob_prime()
gmp_random()
gmp_scan0()
gmp_scan1()
gmp_setbit()
gmp_sign()
gmp_sqrt()
gmp_sqrtrm()
gmp_strval()
gmp_sub()
gmp_xor()
gmstrftime()
gregoriantojd()
gzclose()
gzcompress()
gzdeflate()
gzencode()
gzeof()
gzfile()
gzgetc()
gzgets()
gzgetss()
gzinflate()
gzopen()
gzpassthru()
gzputs()
gzread()
gzrewind()
gzseek()
gztell()
gzuncompress()
gzwrite()

H

header()
headers_sent()
hebrev()
hebrevc()
hexdec()
highlight_file()
highlight_string()
html_entity_decode()
htmlentities()
htmlspecialchars()
hw_api->checkin()
hw_api->checkout()
hw_api->children()
hw_api->content()
hw_api->copy()
hw_api->dbstat()
hw_api->dcstat()
hw_api->dstanchors()
hw_api->dstofsrcanchors()
hw_api->find()
hw_api->ftstat()
hw_api->hwstat()
hw_api->identify()
hw_api->info()
hw_api->insert()
hw_api->insertanchor()
hw_api->insertcollection()
hw_api->insertdocument()
hw_api->link()
hw_api->lock()
hw_api->move()
hw_api->object()
hw_api->objectbyanchor()
hw_api->parents()
hw_api->remove()
hw_api->replace()
hw_api->setcommitedversion()
hw_api->srcanchors()
hw_api->srcsofdst()
hw_api->unlock()
hw_api->user()
hw_api->userlist()
hw_api_attribute()
hw_api_attribute->key()
hw_api_attribute->langdepvalue()
hw_api_attribute->value()
hw_api_attribute->values()
hw_api_content()
hw_api_content->mimetype()
hw_api_content->read()
hw_api_error->count()
hw_api_error->reason()
hw_api_object()
hw_api_object->assign()
hw_api_object->attreditable()
hw_api_object->count()
hw_api_object->insert()
hw_api_object->remove()
hw_api_object->title()
hw_api_object->value()
hw_api_reason->description()
hw_api_reason->type()
hw_array2objrec()
hw_changeobject()
hw_children()
hw_childrenobj()
hw_close()
hw_connect()
hw_connection_info()
hw_cp()
hw_deleteobject()
hw_docbyanchor()
hw_docbyanchorobj()
hw_document_attributes()
hw_document_bodytag()
hw_document_content()
hw_document_setcontent()
hw_document_size()
hw_dummy()
hw_edittext()
hw_error()
hw_errormsg()
hw_free_document()
hw_getanchors()
hw_getanchorsobj()
hw_getandlock()
hw_getchildcoll()
hw_getchildcollobj()
hw_getchilddoccoll()
hw_getchilddoccollobj()
hw_getobject()
hw_getobjectbyquery()
hw_getobjectbyquerycoll()
hw_getobjectbyquerycollobj()
hw_getobjectbyqueryobj()
hw_getparents()
hw_getparentsobj()
hw_getrellink()
hw_getremote()
hw_getremotechildren()
hw_getsrcbydestobj()
hw_gettext()
hw_getusername()
hw_identify()
hw_incollections()
hw_info()
hw_inscoll()
hw_insdoc()
hw_insertanchors()
hw_insertdocument()
hw_insertobject()
hw_mapid()
hw_modifyobject()
hw_mv()
hw_new_document()
hw_objrec2array()
hw_output_document()
hw_pconnect()
hw_pipedocument()
hw_root()
hw_setlinkroot()
hw_stat()
hw_unlock()
hw_who()
hwapi_hgcsp()
hypot()

I

ibase_add_user()
ibase_blob_add()
ibase_blob_cancel()
ibase_blob_close()
ibase_blob_create()
ibase_blob_echo()
ibase_blob_get()
ibase_blob_import()
ibase_blob_info()
ibase_blob_open()
ibase_close()
ibase_commit()
ibase_connect()
ibase_delete_user()
ibase_errmsg()
ibase_execute()
ibase_fetch_assoc()
ibase_fetch_object()
ibase_fetch_row()
ibase_field_info()
ibase_free_query()
ibase_free_result()
ibase_modify_user()
ibase_num_fields()
ibase_pconnect()
ibase_prepare()
ibase_query()
ibase_rollback()
ibase_timefmt()
ibase_trans()
iconv()
iconv_get_encoding()
iconv_set_encoding()
ifx_affected_rows()
ifx_blobinfile_mode()
ifx_byteasvarchar()
ifx_close()
ifx_connect()
ifx_copy_blob()
ifx_create_blob()
ifx_create_char()
ifx_do()
ifx_error()
ifx_errormsg()
ifx_fetch_row()
ifx_fieldproperties()
ifx_fieldtypes()
ifx_free_blob()
ifx_free_char()
ifx_free_result()
ifx_get_blob()
ifx_get_char()
ifx_getsqlca()
ifx_htmltbl_result()
ifx_nullformat()
ifx_num_fields()
ifx_num_rows()
ifx_pconnect()
ifx_prepare()
ifx_query()
ifx_textasvarchar()
ifx_update_blob()
ifx_update_char()
ifxus_close_slob()
ifxus_create_slob()
ifxus_free_slob()
ifxus_open_slob()
ifxus_read_slob()
ifxus_seek_slob()
ifxus_tell_slob()
ifxus_write_slob()
ignore_user_abort()
image2wbmp()
image_type_to_mime_type()
imagealphablending()
imageantialias()
imagearc()
imagechar()
imagecharup()
imagecolorallocate()
imagecolorallocatealpha()
imagecolorat()
imagecolorclosest()
imagecolorclosestalpha()
imagecolorclosesthwb()
imagecolordeallocate()
imagecolorexact()
imagecolorexactalpha()
imagecolormatch()
imagecolorresolve()
imagecolorresolvealpha()
imagecolorset()
imagecolorsforindex()
imagecolorstotal()
imagecolortransparent()
imagecopy()
imagecopymerge()
imagecopymergegray()
imagecopyresampled()
imagecopyresized()
imagecreate()
imagecreatefromgd()
imagecreatefromgd2()
imagecreatefromgd2part()
imagecreatefromgif()
imagecreatefromjpeg()
imagecreatefrompng()
imagecreatefromstring()
imagecreatefromwbmp()
imagecreatefromxbm()
imagecreatefromxpm()
imagecreatetruecolor()
imagedashedline()
imagedestroy()
imageellipse()
imagefill()
imagefilledarc()
imagefilledellipse()
imagefilledpolygon()
imagefilledrectangle()
imagefilltoborder()
imagefontheight()
imagefontwidth()
imageftbbox()
imagefttext()
imagegammacorrect()
imagegd()
imagegd2()
imagegif()
imageinterlace()
imageistruecolor()
imagejpeg()
imageline()
imageloadfont()
imagepalettecopy()
imagepng()
imagepolygon()
imagepsbbox()
imagepscopyfont()
imagepsencodefont()
imagepsextendfont()
imagepsfreefont()
imagepsloadfont()
imagepsslantfont()
imagepstext()
imagerectangle()
imagerotate()
imagesavealpha()
imagesetbrush()
imagesetpixel()
imagesetstyle()
imagesetthickness()
imagesettile()
imagestring()
imagestringup()
imagesx()
imagesy()
imagetruecolortopalette()
imagettfbbox()
imagettftext()
imagetypes()
imagewbmp()
imap_8bit()
imap_alerts()
imap_append()
imap_base64()
imap_binary()
imap_body()
imap_bodystruct()
imap_check()
imap_clearflag_full()
imap_close()
imap_createmailbox()
imap_delete()
imap_deletemailbox()
imap_errors()
imap_expunge()
imap_fetch_overview()
imap_fetchbody()
imap_fetchheader()
imap_fetchstructure()
imap_get_quota()
imap_get_quotaroot()
imap_getmailboxes()
imap_getsubscribed()
imap_header()
imap_headerinfo()
imap_headers()
imap_last_error()
imap_list()
imap_listmailbox()
imap_listscan()
imap_listsubscribed()
imap_lsub()
imap_mail()
imap_mail_compose()
imap_mail_copy()
imap_mail_move()
imap_mailboxmsginfo()
imap_mime_header_decode()
imap_msgno()
imap_num_msg()
imap_num_recent()
imap_open()
imap_ping()
imap_qprint()
imap_renamemailbox()
imap_reopen()
imap_rfc822_parse_adrlist()
imap_rfc822_parse_headers()
imap_rfc822_write_address()
imap_scanmailbox()
imap_search()
imap_set_quota()
imap_setacl()
imap_setflag_full()
imap_sort()
imap_status()
imap_subscribe()
imap_thread()
imap_uid()
imap_undelete()
imap_unsubscribe()
imap_utf7_decode()
imap_utf7_encode()
imap_utf8()
implode()
import_request_variables()
in_array()
ingres_autocommit()
ingres_close()
ingres_commit()
ingres_connect()
ingres_fetch_array()
ingres_fetch_object()
ingres_fetch_row()
ingres_field_length()
ingres_field_name()
ingres_field_nullable()
ingres_field_precision()
ingres_field_scale()
ingres_field_type()
ingres_num_fields()
ingres_num_rows()
ingres_pconnect()
ingres_query()
ingres_rollback()
ini_alter()
ini_get()
ini_get_all()
ini_restore()
ini_set()
intval()
ip2long()
iptcembed()
iptcparse()
ircg_channel_mode()
ircg_disconnect()
ircg_fetch_error_msg()
ircg_get_username()
ircg_html_encode()
ircg_ignore_add()
ircg_ignore_del()
ircg_is_conn_alive()
ircg_join()
ircg_kick()
ircg_lookup_format_messages()
ircg_msg()
ircg_nick()
ircg_nickname_escape()
ircg_nickname_unescape()
ircg_notice()
ircg_part()
ircg_pconnect()
ircg_register_format_messages()
ircg_set_current()
ircg_set_file()
ircg_set_on_die()
ircg_topic()
ircg_whois()
is_a()
is_array()
is_bool()
is_callable()
is_dir()
is_double()
is_executable()
is_file()
is_finite()
is_float()
is_infinite()
is_int()
is_integer()
is_link()
is_long()
is_nan()
is_null()
is_numeric()
is_object()
is_readable()
is_real()
is_resource()
is_scalar()
is_string()
is_subclass_of()
is_uploaded_file()
is_writable()
is_writeable()
isset()

J

java_last_exception_clear()
java_last_exception_get()
jddayofweek()
jdmonthname()
jdtofrench()
jdtogregorian()
jdtojewish()
jdtojulian()
jdtounix()
jewishtojd()
join()
jpeg2wbmp()
juliantojd()

K

key()
krsort()
ksort()

L

lcg_value()
ldap_8859_to_t61()
ldap_add()
ldap_bind()
ldap_close()
ldap_compare()
ldap_connect()
ldap_count_entries()
ldap_delete()
ldap_dn2ufn()
ldap_err2str()
ldap_errno()
ldap_error()
ldap_explode_dn()
ldap_first_attribute()
ldap_first_entry()
ldap_first_reference()
ldap_free_result()
ldap_get_attributes()
ldap_get_dn()
ldap_get_entries()
ldap_get_option()
ldap_get_values()
ldap_get_values_len()
ldap_list()
ldap_mod_add()
ldap_mod_del()
ldap_mod_replace()
ldap_modify()
ldap_next_attribute()
ldap_next_entry()
ldap_next_reference()
ldap_parse_reference()
ldap_parse_result()
ldap_read()
ldap_rename()
ldap_search()
ldap_set_option()
ldap_set_rebind_proc()
ldap_sort()
ldap_start_tls()
ldap_t61_to_8859()
ldap_unbind()
levenshtein()
link()
linkinfo()
list()
localeconv()
localtime()
log()
log10()
log1p()
long2ip()
lstat()
ltrim()

M

mail()
mailparse_determine_best_xfer_encoding()
mailparse_msg_create()
mailparse_msg_extract_part()
mailparse_msg_extract_part_file()
mailparse_msg_free()
mailparse_msg_get_part()
mailparse_msg_get_part_data()
mailparse_msg_get_structure()
mailparse_msg_parse()
mailparse_msg_parse_file()
mailparse_rfc822_parse_addresses()
mailparse_stream_encode()
mailparse_uudecode_all()
main()
max()
mb_convert_case()
mb_convert_encoding()
mb_convert_kana()
mb_convert_variables()
mb_decode_mimeheader()
mb_decode_numericentity()
mb_detect_encoding()
mb_detect_order()
mb_encode_mimeheader()
mb_encode_numericentity()
mb_ereg()
mb_ereg_match()
mb_ereg_replace()
mb_ereg_search()
mb_ereg_search_getpos()
mb_ereg_search_getregs()
mb_ereg_search_init()
mb_ereg_search_pos()
mb_ereg_search_regs()
mb_ereg_search_setpos()
mb_eregi()
mb_eregi_replace()
mb_get_info()
mb_http_input()
mb_http_output()
mb_internal_encoding()
mb_language()
mb_output_handler()
mb_parse_str()
mb_preferred_mime_name()
mb_regex_encoding()
mb_regex_set_options()
mb_send_mail()
mb_split()
mb_strcut()
mb_strimwidth()
mb_strlen()
mb_strpos()
mb_strrpos()
mb_strtolower()
mb_strtoupper()
mb_strwidth()
mb_substitute_character()
mb_substr()
mb_substr_count()
mcal_append_event()
mcal_close()
mcal_create_calendar()
mcal_date_compare()
mcal_date_valid()
mcal_day_of_week()
mcal_day_of_year()
mcal_days_in_month()
mcal_delete_calendar()
mcal_delete_event()
mcal_event_add_attribute()
mcal_event_init()
mcal_event_set_alarm()
mcal_event_set_category()
mcal_event_set_class()
mcal_event_set_description()
mcal_event_set_end()
mcal_event_set_recur_daily()
mcal_event_set_recur_monthly_mday()
mcal_event_set_recur_monthly_wday()
mcal_event_set_recur_none()
mcal_event_set_recur_weekly()
mcal_event_set_recur_yearly()
mcal_event_set_start()
mcal_event_set_title()
mcal_expunge()
mcal_fetch_current_stream_event()
mcal_fetch_event()
mcal_is_leap_year()
mcal_list_alarms()
mcal_list_events()
mcal_next_recurrence()
mcal_open()
mcal_popen()
mcal_rename_calendar()
mcal_reopen()
mcal_snooze()
mcal_store_event()
mcal_time_valid()
mcal_week_of_year()
mcrypt_cbc()
mcrypt_cfb()
mcrypt_create_iv()
mcrypt_decrypt()
mcrypt_ecb()
mcrypt_enc_get_algorithms_name()
mcrypt_enc_get_block_size()
mcrypt_enc_get_iv_size()
mcrypt_enc_get_key_size()
mcrypt_enc_get_modes_name()
mcrypt_enc_get_supported_key_sizes()
mcrypt_enc_is_block_algorithm()
mcrypt_enc_is_block_algorithm_mode()
mcrypt_enc_is_block_mode()
mcrypt_enc_self_test()
mcrypt_encrypt()
mcrypt_generic()
mcrypt_generic_deinit()
mcrypt_generic_end()
mcrypt_generic_init()
mcrypt_get_block_size()
mcrypt_get_cipher_name()
mcrypt_get_iv_size()
mcrypt_get_key_size()
mcrypt_list_algorithms()
mcrypt_list_modes()
mcrypt_module_close()
mcrypt_module_get_algo_block_size()
mcrypt_module_get_algo_key_size()
mcrypt_module_get_supported_key_sizes()
mcrypt_module_is_block_algorithm()
mcrypt_module_is_block_algorithm_mode()
mcrypt_module_is_block_mode()
mcrypt_module_open()
mcrypt_module_self_test()
mcrypt_ofb()
mcve_adduser()
mcve_adduserarg()
mcve_bt()
mcve_checkstatus()
mcve_chkpwd()
mcve_chngpwd()
mcve_completeauthorizations()
mcve_connect()
mcve_connectionerror()
mcve_deleteresponse()
mcve_deletetrans()
mcve_deleteusersetup()
mcve_deluser()
mcve_destroyconn()
mcve_destroyengine()
mcve_disableuser()
mcve_edituser()
mcve_enableuser()
mcve_force()
mcve_getcell()
mcve_getcellbynum()
mcve_getcommadelimited()
mcve_getheader()
mcve_getuserarg()
mcve_getuserparam()
mcve_gft()
mcve_gl()
mcve_gut()
mcve_initconn()
mcve_initengine()
mcve_initusersetup()
mcve_iscommadelimited()
mcve_liststats()
mcve_listusers()
mcve_maxconntimeout()
mcve_monitor()
mcve_numcolumns()
mcve_numrows()
mcve_override()
mcve_parsecommadelimited()
mcve_ping()
mcve_preauth()
mcve_preauthcompletion()
mcve_qc()
mcve_responseparam()
mcve_return()
mcve_returncode()
mcve_returnstatus()
mcve_sale()
mcve_setblocking()
mcve_setdropfile()
mcve_setip()
mcve_setssl()
mcve_setssl_files()
mcve_settimeout()
mcve_settle()
mcve_text_avs()
mcve_text_code()
mcve_text_cv()
mcve_transactionauth()
mcve_transactionavs()
mcve_transactionbatch()
mcve_transactioncv()
mcve_transactionid()
mcve_transactionitem()
mcve_transactionssent()
mcve_transactiontext()
mcve_transinqueue()
mcve_transnew()
mcve_transparam()
mcve_transsend()
mcve_ub()
mcve_uwait()
mcve_verifyconnection()
mcve_verifysslcert()
mcve_void()
md5()
md5_file()
mdecrypt_generic()
memory_get_usage()
metaphone()
method_exists()
mhash()
mhash_count()
mhash_get_block_size()
mhash_get_hash_name()
mhash_keygen_s2k()
microtime()
mime_content_type()
min()
ming_setcubicthreshold()
ming_setscale()
ming_useswfversion()
mkdir()
mktime()
money_format()
move_uploaded_file()
msession_connect()
msession_count()
msession_create()
msession_destroy()
msession_disconnect()
msession_find()
msession_get()
msession_get_array()
msession_getdata()
msession_inc()
msession_list()
msession_listvar()
msession_lock()
msession_plugin()
msession_randstr()
msession_set()
msession_set_array()
msession_setdata()
msession_timeout()
msession_uniq()
msession_unlock()
msg_get_queue()
msg_receive()
msg_remove_queue()
msg_send()
msg_set_queue()
msg_stat_queue()
msql()
msql_affected_rows()
msql_close()
msql_connect()
msql_create_db()
msql_createdb()
msql_data_seek()
msql_dbname()
msql_drop_db()
msql_dropdb()
msql_error()
msql_fetch_array()
msql_fetch_field()
msql_fetch_object()
msql_fetch_row()
msql_field_seek()
msql_fieldflags()
msql_fieldlen()
msql_fieldname()
msql_fieldtable()
msql_fieldtype()
msql_free_result()
msql_freeresult()
msql_list_dbs()
msql_list_fields()
msql_list_tables()
msql_listdbs()
msql_listfields()
msql_listtables()
msql_num_fields()
msql_num_rows()
msql_numfields()
msql_numrows()
msql_pconnect()
msql_query()
msql_regcase()
msql_result()
msql_select_db()
msql_selectdb()
msql_tablename()
mssql_bind()
mssql_close()
mssql_connect()
mssql_data_seek()
mssql_execute()
mssql_fetch_array()
mssql_fetch_assoc()
mssql_fetch_batch()
mssql_fetch_field()
mssql_fetch_object()
mssql_fetch_row()
mssql_field_length()
mssql_field_name()
mssql_field_seek()
mssql_field_type()
mssql_free_result()
mssql_free_statement()
mssql_get_last_message()
mssql_guid_string()
mssql_init()
mssql_min_error_severity()
mssql_min_message_severity()
mssql_next_result()
mssql_num_fields()
mssql_num_rows()
mssql_pconnect()
mssql_query()
mssql_result()
mssql_rows_affected()
mssql_select_db()
mt_getrandmax()
mt_rand()
mt_srand()
muscat_close()
muscat_get()
muscat_give()
muscat_setup()
muscat_setup_net()
mysql_affected_rows()
mysql_change_user()
mysql_client_encoding()
mysql_close()
mysql_connect()
mysql_create_db()
mysql_data_seek()
mysql_db_name()
mysql_db_query()
mysql_drop_db()
mysql_errno()
mysql_error()
mysql_escape_string()
mysql_fetch_array()
mysql_fetch_assoc()
mysql_fetch_field()
mysql_fetch_lengths()
mysql_fetch_object()
mysql_fetch_row()
mysql_field_flags()
mysql_field_len()
mysql_field_name()
mysql_field_seek()
mysql_field_table()
mysql_field_type()
mysql_free_result()
mysql_get_client_info()
mysql_get_host_info()
mysql_get_proto_info()
mysql_get_server_info()
mysql_info()
mysql_insert_id()
mysql_list_dbs()
mysql_list_fields()
mysql_list_processes()
mysql_list_tables()
mysql_num_fields()
mysql_num_rows()
mysql_pconnect()
mysql_ping()
mysql_query()
mysql_real_escape_string()
mysql_result()
mysql_select_db()
mysql_stat()
mysql_tablename()
mysql_thread_id()
mysql_unbuffered_query()
mysqli_affected_rows()
mysqli_autocommit()
mysqli_bind_param()
mysqli_bind_result()
mysqli_change_user()
mysqli_character_set_name()
mysqli_close()
mysqli_commit()
mysqli_connect()
mysqli_data_seek()
mysqli_debug()
mysqli_disable_reads_from_master()
mysqli_disable_rpl_parse()
mysqli_dump_debug_info()
mysqli_enable_reads_from_master()
mysqli_enable_rpl_parse()
mysqli_errno()
mysqli_error()
mysqli_execute()
mysqli_fetch()
mysqli_fetch_array()
mysqli_fetch_assoc()
mysqli_fetch_field()
mysqli_fetch_field_direct()
mysqli_fetch_fields()
mysqli_fetch_lengths()
mysqli_fetch_object()
mysqli_fetch_row()
mysqli_field_count()
mysqli_field_seek()
mysqli_field_tell()
mysqli_free_result()
mysqli_get_client_info()
mysqli_get_host_info()
mysqli_get_proto_info()
mysqli_get_server_info()
mysqli_get_server_version()
mysqli_info()
mysqli_init()
mysqli_insert_id()
mysqli_kill()
mysqli_master_query()
mysqli_num_fields()
mysqli_num_rows()
mysqli_options()
mysqli_param_count()
mysqli_ping()
mysqli_prepare()
mysqli_prepare_result()
mysqli_profiler()
mysqli_query()
mysqli_read_query_result()
mysqli_real_connect()
mysqli_real_escape_string()
mysqli_real_query()
mysqli_reload()
mysqli_rollback()
mysqli_rpl_parse_enabled()
mysqli_rpl_probe()
mysqli_rpl_query_type()
mysqli_select_db()
mysqli_send_long_data()
mysqli_send_query()
mysqli_slave_query()
mysqli_ssl_set()
mysqli_stat()
mysqli_stmt_affected_rows()
mysqli_stmt_close()
mysqli_stmt_errno()
mysqli_stmt_error()
mysqli_stmt_store_result()
mysqli_store_result()
mysqli_thread_id()
mysqli_thread_safe()
mysqli_use_result()
mysqli_warning_count()

N

natcasesort()
natsort()
ncurses_addch()
ncurses_addchnstr()
ncurses_addchstr()
ncurses_addnstr()
ncurses_addstr()
ncurses_assume_default_colors()
ncurses_attroff()
ncurses_attron()
ncurses_attrset()
ncurses_baudrate()
ncurses_beep()
ncurses_bkgd()
ncurses_bkgdset()
ncurses_border()
ncurses_bottom_panel()
ncurses_can_change_color()
ncurses_cbreak()
ncurses_clear()
ncurses_clrtobot()
ncurses_clrtoeol()
ncurses_color_content()
ncurses_color_set()
ncurses_curs_set()
ncurses_def_prog_mode()
ncurses_def_shell_mode()
ncurses_define_key()
ncurses_del_panel()
ncurses_delay_output()
ncurses_delch()
ncurses_deleteln()
ncurses_delwin()
ncurses_doupdate()
ncurses_echo()
ncurses_echochar()
ncurses_end()
ncurses_erase()
ncurses_erasechar()
ncurses_filter()
ncurses_flash()
ncurses_flushinp()
ncurses_getch()
ncurses_getmaxyx()
ncurses_getmouse()
ncurses_getyx()
ncurses_halfdelay()
ncurses_has_colors()
ncurses_has_ic()
ncurses_has_il()
ncurses_has_key()
ncurses_hide_panel()
ncurses_hline()
ncurses_inch()
ncurses_init()
ncurses_init_color()
ncurses_init_pair()
ncurses_insch()
ncurses_insdelln()
ncurses_insertln()
ncurses_insstr()
ncurses_instr()
ncurses_isendwin()
ncurses_keyok()
ncurses_keypad()
ncurses_killchar()
ncurses_longname()
ncurses_meta()
ncurses_mouse_trafo()
ncurses_mouseinterval()
ncurses_mousemask()
ncurses_move()
ncurses_move_panel()
ncurses_mvaddch()
ncurses_mvaddchnstr()
ncurses_mvaddchstr()
ncurses_mvaddnstr()
ncurses_mvaddstr()
ncurses_mvcur()
ncurses_mvdelch()
ncurses_mvgetch()
ncurses_mvhline()
ncurses_mvinch()
ncurses_mvvline()
ncurses_mvwaddstr()
ncurses_napms()
ncurses_new_panel()
ncurses_newpad()
ncurses_newwin()
ncurses_nl()
ncurses_nocbreak()
ncurses_noecho()
ncurses_nonl()
ncurses_noqiflush()
ncurses_noraw()
ncurses_pair_content()
ncurses_panel_above()
ncurses_panel_below()
ncurses_panel_window()
ncurses_pnoutrefresh()
ncurses_prefresh()
ncurses_putp()
ncurses_qiflush()
ncurses_raw()
ncurses_refresh()
ncurses_replace_panel()
ncurses_reset_prog_mode()
ncurses_reset_shell_mode()
ncurses_resetty()
ncurses_savetty()
ncurses_scr_dump()
ncurses_scr_init()
ncurses_scr_restore()
ncurses_scr_set()
ncurses_scrl()
ncurses_show_panel()
ncurses_slk_attr()
ncurses_slk_attroff()
ncurses_slk_attron()
ncurses_slk_attrset()
ncurses_slk_clear()
ncurses_slk_color()
ncurses_slk_init()
ncurses_slk_noutrefresh()
ncurses_slk_refresh()
ncurses_slk_restore()
ncurses_slk_set()
ncurses_slk_touch()
ncurses_standend()
ncurses_standout()
ncurses_start_color()
ncurses_termattrs()
ncurses_termname()
ncurses_timeout()
ncurses_top_panel()
ncurses_typeahead()
ncurses_ungetch()
ncurses_ungetmouse()
ncurses_update_panels()
ncurses_use_default_colors()
ncurses_use_env()
ncurses_use_extended_names()
ncurses_vidattr()
ncurses_vline()
ncurses_waddch()
ncurses_waddstr()
ncurses_wattroff()
ncurses_wattron()
ncurses_wattrset()
ncurses_wborder()
ncurses_wclear()
ncurses_wcolor_set()
ncurses_werase()
ncurses_wgetch()
ncurses_whline()
ncurses_wmouse_trafo()
ncurses_wmove()
ncurses_wnoutrefresh()
ncurses_wrefresh()
ncurses_wstandend()
ncurses_wstandout()
ncurses_wvline()
next()
ngettext()
nl2br()
nl_langinfo()
notes_body()
notes_copy_db()
notes_create_db()
notes_create_note()
notes_drop_db()
notes_find_note()
notes_header_info()
notes_list_msgs()
notes_mark_read()
notes_mark_unread()
notes_nav_create()
notes_search()
notes_unread()
notes_version()
nsapi_request_headers()
nsapi_response_headers()
nsapi_virtual()
number_format()

O

ob_clean()
ob_end_clean()
ob_end_flush()
ob_flush()
ob_get_clean()
ob_get_contents()
ob_get_length()
ob_get_level()
ob_get_status()
ob_gzhandler()
ob_iconv_handler()
ob_implicit_flush()
ob_start()
ocibindbyname()
ocicancel()
ocicollappend()
ocicollassign()
ocicollassignelem()
ocicollgetelem()
ocicollmax()
ocicollsize()
ocicolltrim()
ocicolumnisnull()
ocicolumnname()
ocicolumnprecision()
ocicolumnscale()
ocicolumnsize()
ocicolumntype()
ocicolumntyperaw()
ocicommit()
ocidefinebyname()
ocierror()
ociexecute()
ocifetch()
ocifetchinto()
ocifetchstatement()
ocifreecollection()
ocifreecursor()
ocifreedesc()
ocifreestatement()
ociinternaldebug()
ociloadlob()
ocilogoff()
ocilogon()
ocinewcollection()
ocinewcursor()
ocinewdescriptor()
ocinlogon()
ocinumcols()
ociparse()
ociplogon()
ociresult()
ocirollback()
ocirowcount()
ocisavelob()
ocisavelobfile()
ociserverversion()
ocisetprefetch()
ocistatementtype()
ociwritelobtofile()
octdec()
odbc_autocommit()
odbc_binmode()
odbc_close()
odbc_close_all()
odbc_columnprivileges()
odbc_columns()
odbc_commit()
odbc_connect()
odbc_cursor()
odbc_data_source()
odbc_do()
odbc_error()
odbc_errormsg()
odbc_exec()
odbc_execute()
odbc_fetch_array()
odbc_fetch_into()
odbc_fetch_object()
odbc_fetch_row()
odbc_field_len()
odbc_field_name()
odbc_field_num()
odbc_field_precision()
odbc_field_scale()
odbc_field_type()
odbc_foreignkeys()
odbc_free_result()
odbc_gettypeinfo()
odbc_longreadlen()
odbc_next_result()
odbc_num_fields()
odbc_num_rows()
odbc_pconnect()
odbc_prepare()
odbc_primarykeys()
odbc_procedurecolumns()
odbc_procedures()
odbc_result()
odbc_result_all()
odbc_rollback()
odbc_setoption()
odbc_specialcolumns()
odbc_statistics()
odbc_tableprivileges()
odbc_tables()
opendir()
openlog()
openssl_csr_export()
openssl_csr_export_to_file()
openssl_csr_new()
openssl_csr_sign()
openssl_error_string()
openssl_free_key()
openssl_get_privatekey()
openssl_get_publickey()
openssl_open()
openssl_pkcs7_decrypt()
openssl_pkcs7_encrypt()
openssl_pkcs7_sign()
openssl_pkcs7_verify()
openssl_pkey_export()
openssl_pkey_export_to_file()
openssl_pkey_get_private()
openssl_pkey_get_public()
openssl_pkey_new()
openssl_private_decrypt()
openssl_private_encrypt()
openssl_public_decrypt()
openssl_public_encrypt()
openssl_seal()
openssl_sign()
openssl_verify()
openssl_x509_check_private_key()
openssl_x509_checkpurpose()
openssl_x509_export()
openssl_x509_export_to_file()
openssl_x509_free()
openssl_x509_parse()
openssl_x509_read()
ora_bind()
ora_close()
ora_columnname()
ora_columnsize()
ora_columntype()
ora_commit()
ora_commitoff()
ora_commiton()
ora_do()
ora_error()
ora_errorcode()
ora_exec()
ora_fetch()
ora_fetch_into()
ora_getcolumn()
ora_logoff()
ora_logon()
ora_numcols()
ora_numrows()
ora_open()
ora_parse()
ora_plogon()
ora_rollback()
ord()
overload()
ovrimos_close()
ovrimos_commit()
ovrimos_connect()
ovrimos_cursor()
ovrimos_exec()
ovrimos_execute()
ovrimos_fetch_into()
ovrimos_fetch_row()
ovrimos_field_len()
ovrimos_field_name()
ovrimos_field_num()
ovrimos_field_type()
ovrimos_free_result()
ovrimos_longreadlen()
ovrimos_num_fields()
ovrimos_num_rows()
ovrimos_prepare()
ovrimos_result()
ovrimos_result_all()
ovrimos_rollback()

P

pack()
parse_ini_file()
parse_str()
parse_url()
passthru()
pathinfo()
pattern modifiers()
pattern syntax()
pclose()
pcntl_exec()
pcntl_fork()
pcntl_signal()
pcntl_waitpid()
pcntl_wexitstatus()
pcntl_wifexited()
pcntl_wifsignaled()
pcntl_wifstopped()
pcntl_wstopsig()
pcntl_wtermsig()
pdf_add_annotation()
pdf_add_bookmark()
pdf_add_launchlink()
pdf_add_locallink()
pdf_add_note()
pdf_add_outline()
pdf_add_pdflink()
pdf_add_thumbnail()
pdf_add_weblink()
pdf_arc()
pdf_arcn()
pdf_attach_file()
pdf_begin_page()
pdf_begin_pattern()
pdf_begin_template()
pdf_circle()
pdf_clip()
pdf_close()
pdf_close_image()
pdf_close_pdi()
pdf_close_pdi_page()
pdf_closepath()
pdf_closepath_fill_stroke()
pdf_closepath_stroke()
pdf_concat()
pdf_continue_text()
pdf_curveto()
pdf_delete()
pdf_end_page()
pdf_end_pattern()
pdf_end_template()
pdf_endpath()
pdf_fill()
pdf_fill_stroke()
pdf_findfont()
pdf_get_buffer()
pdf_get_font()
pdf_get_fontname()
pdf_get_fontsize()
pdf_get_image_height()
pdf_get_image_width()
pdf_get_majorversion()
pdf_get_minorversion()
pdf_get_parameter()
pdf_get_pdi_parameter()
pdf_get_pdi_value()
pdf_get_value()
pdf_initgraphics()
pdf_lineto()
pdf_makespotcolor()
pdf_moveto()
pdf_new()
pdf_open()
pdf_open_ccitt()
pdf_open_file()
pdf_open_gif()
pdf_open_image()
pdf_open_image_file()
pdf_open_jpeg()
pdf_open_memory_image()
pdf_open_pdi()
pdf_open_pdi_page()
pdf_open_png()
pdf_open_tiff()
pdf_place_image()
pdf_place_pdi_page()
pdf_rect()
pdf_restore()
pdf_rotate()
pdf_save()
pdf_scale()
pdf_set_border_color()
pdf_set_border_dash()
pdf_set_border_style()
pdf_set_char_spacing()
pdf_set_duration()
pdf_set_font()
pdf_set_horiz_scaling()
pdf_set_info()
pdf_set_info_author()
pdf_set_info_creator()
pdf_set_info_keywords()
pdf_set_info_subject()
pdf_set_info_title()
pdf_set_leading()
pdf_set_parameter()
pdf_set_text_matrix()
pdf_set_text_pos()
pdf_set_text_rendering()
pdf_set_text_rise()
pdf_set_value()
pdf_set_word_spacing()
pdf_setcolor()
pdf_setdash()
pdf_setflat()
pdf_setfont()
pdf_setgray()
pdf_setgray_fill()
pdf_setgray_stroke()
pdf_setlinecap()
pdf_setlinejoin()
pdf_setlinewidth()
pdf_setmatrix()
pdf_setmiterlimit()
pdf_setpolydash()
pdf_setrgbcolor()
pdf_setrgbcolor_fill()
pdf_setrgbcolor_stroke()
pdf_show()
pdf_show_boxed()
pdf_show_xy()
pdf_skew()
pdf_stringwidth()
pdf_stroke()
pdf_translate()
pfpro_cleanup()
pfpro_init()
pfpro_process()
pfpro_process_raw()
pfpro_version()
pfsockopen()
pg_affected_rows()
pg_cancel_query()
pg_client_encoding()
pg_close()
pg_connect()
pg_connection_busy()
pg_connection_reset()
pg_connection_status()
pg_convert()
pg_copy_from()
pg_copy_to()
pg_dbname()
pg_delete()
pg_end_copy()
pg_escape_bytea()
pg_escape_string()
pg_fetch_all()
pg_fetch_array()
pg_fetch_assoc()
pg_fetch_object()
pg_fetch_result()
pg_fetch_row()
pg_field_is_null()
pg_field_name()
pg_field_num()
pg_field_prtlen()
pg_field_size()
pg_field_type()
pg_free_result()
pg_get_notify()
pg_get_pid()
pg_get_result()
pg_host()
pg_insert()
pg_last_error()
pg_last_notice()
pg_last_oid()
pg_lo_close()
pg_lo_create()
pg_lo_export()
pg_lo_import()
pg_lo_open()
pg_lo_read()
pg_lo_read_all()
pg_lo_seek()
pg_lo_tell()
pg_lo_unlink()
pg_lo_write()
pg_meta_data()
pg_num_fields()
pg_num_rows()
pg_options()
pg_pconnect()
pg_ping()
pg_port()
pg_put_line()
pg_query()
pg_result_error()
pg_result_seek()
pg_result_status()
pg_select()
pg_send_query()
pg_set_client_encoding()
pg_trace()
pg_tty()
pg_unescape_bytea()
pg_untrace()
pg_update()
php_ini_scanned_files()
php_logo_guid()
php_sapi_name()
php_uname()
phpcredits()
phpinfo()
phpversion()
pi()
png2wbmp()
popen()
pos()
posix_ctermid()
posix_get_last_error()
posix_getcwd()
posix_getegid()
posix_geteuid()
posix_getgid()
posix_getgrgid()
posix_getgrnam()
posix_getgroups()
posix_getlogin()
posix_getpgid()
posix_getpgrp()
posix_getpid()
posix_getppid()
posix_getpwnam()
posix_getpwuid()
posix_getrlimit()
posix_getsid()
posix_getuid()
posix_isatty()
posix_kill()
posix_mkfifo()
posix_setegid()
posix_seteuid()
posix_setgid()
posix_setpgid()
posix_setsid()
posix_setuid()
posix_strerror()
posix_times()
posix_ttyname()
posix_uname()
pow()
preg_grep()
preg_match()
preg_match_all()
preg_quote()
preg_replace()
preg_replace_callback()
preg_split()
prev()
print()
print_r()
printer_abort()
printer_close()
printer_create_brush()
printer_create_dc()
printer_create_font()
printer_create_pen()
printer_delete_brush()
printer_delete_dc()
printer_delete_font()
printer_delete_pen()
printer_draw_bmp()
printer_draw_chord()
printer_draw_elipse()
printer_draw_line()
printer_draw_pie()
printer_draw_rectangle()
printer_draw_roundrect()
printer_draw_text()
printer_end_doc()
printer_end_page()
printer_get_option()
printer_list()
printer_logical_fontheight()
printer_open()
printer_select_brush()
printer_select_font()
printer_select_pen()
printer_set_option()
printer_start_doc()
printer_start_page()
printer_write()
printf()
proc_close()
proc_get_status()
proc_nice()
proc_open()
proc_terminate()
pspell_add_to_personal()
pspell_add_to_session()
pspell_check()
pspell_clear_session()
pspell_config_create()
pspell_config_ignore()
pspell_config_mode()
pspell_config_personal()
pspell_config_repl()
pspell_config_runtogether()
pspell_config_save_repl()
pspell_new()
pspell_new_config()
pspell_new_personal()
pspell_save_wordlist()
pspell_store_replacement()
pspell_suggest()
putenv()

Q

qdom_error()
qdom_tree()
quoted_printable_decode()
quotemeta()

R

rad2deg()
rand()
range()
rawurldecode()
rawurlencode()
read_exif_data()
readdir()
readfile()
readgzfile()
readline()
readline_add_history()
readline_clear_history()
readline_completion_function()
readline_info()
readline_list_history()
readline_read_history()
readline_write_history()
readlink()
realpath()
recode()
recode_file()
recode_string()
register_shutdown_function()
register_tick_function()
rename()
reset()
restore_error_handler()
restore_include_path()
rewind()
rewinddir()
rmdir()
round()
rsort()
rtrim()

S

scandir()
sem_acquire()
sem_get()
sem_release()
sem_remove()
serialize()
sesam_affected_rows()
sesam_commit()
sesam_connect()
sesam_diagnostic()
sesam_disconnect()
sesam_errormsg()
sesam_execimm()
sesam_fetch_array()
sesam_fetch_result()
sesam_fetch_row()
sesam_field_array()
sesam_field_name()
sesam_free_result()
sesam_num_fields()
sesam_query()
sesam_rollback()
sesam_seek_row()
sesam_settransaction()
session_cache_expire()
session_cache_limiter()
session_decode()
session_destroy()
session_encode()
session_get_cookie_params()
session_id()
session_is_registered()
session_module_name()
session_name()
session_regenerate_id()
session_register()
session_save_path()
session_set_cookie_params()
session_set_save_handler()
session_start()
session_unregister()
session_unset()
session_write_close()
set_error_handler()
set_file_buffer()
set_include_path()
set_magic_quotes_runtime()
set_time_limit()
setcookie()
setlocale()
settype()
sha1()
sha1_file()
shell_exec()
shm_attach()
shm_detach()
shm_get_var()
shm_put_var()
shm_remove()
shm_remove_var()
shmop_close()
shmop_delete()
shmop_open()
shmop_read()
shmop_size()
shmop_write()
show_source()
shuffle()
similar_text()
sin()
sinh()
sizeof()
sleep()
snmp_get_quick_print()
snmp_set_quick_print()
snmpget()
snmprealwalk()
snmpset()
snmpwalk()
snmpwalkoid()
socket_accept()
socket_bind()
socket_clear_error()
socket_close()
socket_connect()
socket_create()
socket_create_listen()
socket_create_pair()
socket_get_option()
socket_get_status()
socket_getpeername()
socket_getsockname()
socket_iovec_add()
socket_iovec_alloc()
socket_iovec_delete()
socket_iovec_fetch()
socket_iovec_free()
socket_iovec_set()
socket_last_error()
socket_listen()
socket_read()
socket_readv()
socket_recv()
socket_recvfrom()
socket_recvmsg()
socket_select()
socket_send()
socket_sendmsg()
socket_sendto()
socket_set_block()
socket_set_blocking()
socket_set_nonblock()
socket_set_option()
socket_set_timeout()
socket_shutdown()
socket_strerror()
socket_write()
socket_writev()
sort()
soundex()
split()
spliti()
sprintf()
sql_regcase()
sqlite_array_query()
sqlite_busy_timeout()
sqlite_changes()
sqlite_close()
sqlite_column()
sqlite_create_aggregate()
sqlite_create_function()
sqlite_current()
sqlite_error_string()
sqlite_escape_string()
sqlite_fetch_array()
sqlite_fetch_single()
sqlite_fetch_string()
sqlite_field_name()
sqlite_has_more()
sqlite_last_error()
sqlite_last_insert_rowid()
sqlite_libencoding()
sqlite_libversion()
sqlite_next()
sqlite_num_fields()
sqlite_num_rows()
sqlite_open()
sqlite_popen()
sqlite_query()
sqlite_rewind()
sqlite_seek()
sqlite_udf_decode_binary()
sqlite_udf_encode_binary()
sqlite_unbuffered_query()
sqrt()
srand()
sscanf()
stat()
str_ireplace()
str_pad()
str_repeat()
str_replace()
str_rot13()
str_shuffle()
str_split()
str_word_count()
strcasecmp()
strchr()
strcmp()
strcoll()
strcspn()
stream_context_create()
stream_context_get_options()
stream_context_set_option()
stream_context_set_params()
stream_copy_to_stream()
stream_filter_append()
stream_filter_prepend()
stream_filter_register()
stream_get_filters()
stream_get_line()
stream_get_meta_data()
stream_get_transports()
stream_get_wrappers()
stream_register_wrapper()
stream_select()
stream_set_blocking()
stream_set_timeout()
stream_set_write_buffer()
stream_socket_accept()
stream_socket_client()
stream_socket_get_name()
stream_socket_server()
stream_wrapper_register()
strftime()
strip_tags()
stripcslashes()
stripos()
stripslashes()
stristr()
strlen()
strnatcasecmp()
strnatcmp()
strncasecmp()
strncmp()
strpos()
strrchr()
strrev()
strripos()
strrpos()
strspn()
strstr()
strtok()
strtolower()
strtotime()
strtoupper()
strtr()
strval()
substr()
substr_count()
substr_replace()
swf_actiongeturl()
swf_actiongotoframe()
swf_actiongotolabel()
swf_actionnextframe()
swf_actionplay()
swf_actionprevframe()
swf_actionsettarget()
swf_actionstop()
swf_actiontogglequality()
swf_actionwaitforframe()
swf_addbuttonrecord()
swf_addcolor()
swf_closefile()
swf_definebitmap()
swf_definefont()
swf_defineline()
swf_definepoly()
swf_definerect()
swf_definetext()
swf_endbutton()
swf_enddoaction()
swf_endshape()
swf_endsymbol()
swf_fontsize()
swf_fontslant()
swf_fonttracking()
swf_getbitmapinfo()
swf_getfontinfo()
swf_getframe()
swf_labelframe()
swf_lookat()
swf_modifyobject()
swf_mulcolor()
swf_nextid()
swf_oncondition()
swf_openfile()
swf_ortho()
swf_ortho2()
swf_perspective()
swf_placeobject()
swf_polarview()
swf_popmatrix()
swf_posround()
swf_pushmatrix()
swf_removeobject()
swf_rotate()
swf_scale()
swf_setfont()
swf_setframe()
swf_shapearc()
swf_shapecurveto()
swf_shapecurveto3()
swf_shapefillbitmapclip()
swf_shapefillbitmaptile()
swf_shapefilloff()
swf_shapefillsolid()
swf_shapelinesolid()
swf_shapelineto()
swf_shapemoveto()
swf_showframe()
swf_startbutton()
swf_startdoaction()
swf_startshape()
swf_startsymbol()
swf_textwidth()
swf_translate()
swf_viewport()
swfaction()
swfbitmap()
swfbitmap->getheight()
swfbitmap->getwidth()
swfbutton()
swfbutton->addaction()
swfbutton->addshape()
swfbutton->setaction()
swfbutton->setdown()
swfbutton->sethit()
swfbutton->setover()
swfbutton->setup()
swfbutton_keypress()
swfdisplayitem()
swfdisplayitem->addcolor()
swfdisplayitem->move()
swfdisplayitem->moveto()
swfdisplayitem->multcolor()
swfdisplayitem->remove()
swfdisplayitem->rotate()
swfdisplayitem->rotateto()
swfdisplayitem->scale()
swfdisplayitem->scaleto()
swfdisplayitem->setdepth()
swfdisplayitem->setname()
swfdisplayitem->setratio()
swfdisplayitem->skewx()
swfdisplayitem->skewxto()
swfdisplayitem->skewy()
swfdisplayitem->skewyto()
swffill()
swffill->moveto()
swffill->rotateto()
swffill->scaleto()
swffill->skewxto()
swffill->skewyto()
swffont()
swffont->getwidth()
swfgradient()
swfgradient->addentry()
swfmorph()
swfmorph->getshape1()
swfmorph->getshape2()
swfmovie()
swfmovie->add()
swfmovie->nextframe()
swfmovie->output()
swfmovie->remove()
swfmovie->save()
swfmovie->setbackground()
swfmovie->setdimension()
swfmovie->setframes()
swfmovie->setrate()
swfmovie->streammp3()
swfshape()
swfshape->addfill()
swfshape->drawcurve()
swfshape->drawcurveto()
swfshape->drawline()
swfshape->drawlineto()
swfshape->movepen()
swfshape->movepento()
swfshape->setleftfill()
swfshape->setline()
swfshape->setrightfill()
swfsprite()
swfsprite->add()
swfsprite->nextframe()
swfsprite->remove()
swfsprite->setframes()
swftext()
swftext->addstring()
swftext->getwidth()
swftext->moveto()
swftext->setcolor()
swftext->setfont()
swftext->setheight()
swftext->setspacing()
swftextfield()
swftextfield->addstring()
swftextfield->align()
swftextfield->setbounds()
swftextfield->setcolor()
swftextfield->setfont()
swftextfield->setheight()
swftextfield->setindentation()
swftextfield->setleftmargin()
swftextfield->setlinespacing()
swftextfield->setmargins()
swftextfield->setname()
swftextfield->setrightmargin()
sybase_affected_rows()
sybase_close()
sybase_connect()
sybase_data_seek()
sybase_deadlock_retry_count()
sybase_fetch_array()
sybase_fetch_assoc()
sybase_fetch_field()
sybase_fetch_object()
sybase_fetch_row()
sybase_field_seek()
sybase_free_result()
sybase_get_last_message()
sybase_min_client_severity()
sybase_min_error_severity()
sybase_min_message_severity()
sybase_min_server_severity()
sybase_num_fields()
sybase_num_rows()
sybase_pconnect()
sybase_query()
sybase_result()
sybase_select_db()
sybase_set_message_handler()
sybase_unbuffered_query()
symlink()
syslog()
system()

T

tan()
tanh()
tempnam()
textdomain()
time()
tmpfile()
token_get_all()
token_name()
touch()
trigger_error()
trim()

U

uasort()
ucfirst()
ucwords()
udm_add_search_limit()
udm_alloc_agent()
udm_api_version()
udm_cat_list()
udm_cat_path()
udm_check_charset()
udm_check_stored()
udm_clear_search_limits()
udm_close_stored()
udm_crc32()
udm_errno()
udm_error()
udm_find()
udm_free_agent()
udm_free_ispell_data()
udm_free_res()
udm_get_doc_count()
udm_get_res_field()
udm_get_res_param()
udm_load_ispell_data()
udm_open_stored()
udm_set_agent_param()
uksort()
umask()
uniqid()
unixtojd()
unlink()
unpack()
unregister_tick_function()
unserialize()
unset()
urldecode()
urlencode()
user_error()
usleep()
usort()
utf8_decode()
utf8_encode()

V

var_dump()
var_export()
variant()
version_compare()
virtual()
vpopmail_add_alias_domain()
vpopmail_add_alias_domain_ex()
vpopmail_add_domain()
vpopmail_add_domain_ex()
vpopmail_add_user()
vpopmail_alias_add()
vpopmail_alias_del()
vpopmail_alias_del_domain()
vpopmail_alias_get()
vpopmail_alias_get_all()
vpopmail_auth_user()
vpopmail_del_domain()
vpopmail_del_domain_ex()
vpopmail_del_user()
vpopmail_error()
vpopmail_passwd()
vpopmail_set_user_quota()
vprintf()
vsprintf()

W

w32api_deftype()
w32api_init_dtype()
w32api_invoke_function()
w32api_register_function()
w32api_set_call_method()
wddx_add_vars()
wddx_deserialize()
wddx_packet_end()
wddx_packet_start()
wddx_serialize_value()
wddx_serialize_vars()
wordwrap()

X

xml_error_string()
xml_get_current_byte_index()
xml_get_current_column_number()
xml_get_current_line_number()
xml_get_error_code()
xml_parse()
xml_parse_into_struct()
xml_parser_create()
xml_parser_create_ns()
xml_parser_free()
xml_parser_get_option()
xml_parser_set_option()
xml_set_character_data_handler()
xml_set_default_handler()
xml_set_element_handler()
xml_set_end_namespace_decl_handler()
xml_set_external_entity_ref_handler()
xml_set_notation_decl_handler()
xml_set_object()
xml_set_processing_instruction_handler()
xml_set_start_namespace_decl_handler()
xml_set_unparsed_entity_decl_handler()
xmlrpc_decode()
xmlrpc_decode_request()
xmlrpc_encode()
xmlrpc_encode_request()
xmlrpc_get_type()
xmlrpc_parse_method_descriptions()
xmlrpc_server_add_introspection_data()
xmlrpc_server_call_method()
xmlrpc_server_create()
xmlrpc_server_destroy()
xmlrpc_server_register_introspection_callback()
xmlrpc_server_register_method()
xmlrpc_set_type()
xpath_eval()
xpath_eval_expression()
xpath_new_context()
xptr_eval()
xptr_new_context()
xslt_create()
xslt_errno()
xslt_error()
xslt_free()
xslt_process()
xslt_set_base()
xslt_set_encoding()
xslt_set_error_handler()
xslt_set_log()
xslt_set_sax_handler()
xslt_set_sax_handlers()
xslt_set_scheme_handler()
xslt_set_scheme_handlers()

Y

yaz_addinfo()
yaz_ccl_conf()
yaz_ccl_parse()
yaz_close()
yaz_connect()
yaz_database()
yaz_element()
yaz_errno()
yaz_error()
yaz_get_option()
yaz_hits()
yaz_itemorder()
yaz_present()
yaz_range()
yaz_record()
yaz_scan()
yaz_scan_result()
yaz_schema()
yaz_search()
yaz_set_option()
yaz_sort()
yaz_syntax()
yaz_wait()
yp_all()
yp_cat()
yp_err_string()
yp_errno()
yp_first()
yp_get_default_domain()
yp_master()
yp_match()
yp_next()
yp_order()

Z

zend_logo_guid()
zend_version()
zip_close()
zip_entry_close()
zip_entry_compressedsize()
zip_entry_compressionmethod()
zip_entry_filesize()
zip_entry_name()
zip_entry_open()
zip_entry_read()
zip_open()
zip_read()
zlib_get_coding_type()

Anterior | Inicio | Siguiente
Índice de funciones | Subir | Material que falta


Material que falta

Manual de PHP
Anterior Siguiente

Apéndice O. Material que falta

Anterior | Inicio | Siguiente
Índice de funciones | Subir | Edición HTML Help


Manual de PHP

Copyright

© Copyright 1997 - 2003 por el Grupo de documentación de PHP. Este manual puede ser distribuido solamente bajo los términos y condiciones definidos en la "Open Publication License" version 1.0 ó posterior. (La última versión se encuentra disponible en http://www.opencontent.org/openpub/).

La distribución de versiones modificadas de este documento está prohibida sin el permiso explícito del titular de este copyright.

La distribución de la documentación ó cualquier derivado de la misma, en cualquier tipo de formato escrito, está prohibido a menos que se obtenga permiso del titular de este copyright.

Los miembros del equipo de documentación de PHP están mencionados en la página primera de este manual. en caso de querer contactar con el grupo, escribir a phpdoc@lists.php.net.

La sección 'Extendiendo PHP 4.0' de este manual es copyright © 2000 por Zend Technologies, Ltd. Esta sección puede ser distribuida solamente bajo los términos y condiciones de la "Open Publication License", versión 1.0 ó posterior (la última versión se encuentra disponible en http://www.opencontent.org/openpub/).

Inicio


About This Edition

Manual de PHP
Anterior Siguiente

Capítulo 57. About This Edition

The Windows HTML Help Edition of the PHP Manual is aimed at developers, who want the manual at hand every time, and would like to read manual pages and user notes without waiting for a remote webpage to download. This edition gives you the full content of the manual plus the user notes, with some great features provided by the viewer application by the scripts we use to generate this format and by other contributors in the form of skins.

This distribution of the PHP Manual contains many files, including the main manual file php_manual_en.chm. You can view the manual by double clicking on this file (as you already guessed). The user notes are in php_manual_notes.chm. You only need to have one copy of this file on your computer, regardless of how many languages you use to read the PHP Manual. The only requirement is that you need to have all php_manual_LANG.chm files in one directory with php_manual_notes.chm. You may also see a php_manual_en.chw file in the directory, it's generated the first time you use the index tab, and it contains an index with the manual's pages.

For those interested in technical details about Microsoft HTML Help, http://www.helpware.net/ is a great resource. For more information and positioning of Windows HTML Help in the Microsoft help formats and services history, see this WinWriters article.

Anterior | Inicio | Siguiente
Edición HTML Help | Subir | Using PHP Manual CHM Edition


CHM Edition Credits

Manual de PHP
Anterior

Capítulo 63. CHM Edition Credits

This enhanced version of the PHP Manual would never come to existence, if the following people would not help with their contribution to the project (in no particular order):

  • Holger Eggert, who created the two default designs, and provided many useability tips

  • Gonzalo De la Pena Andreu, who added many comments on how it would be ideal to provide the skinnable interface

  • Olexandr Vynnychenko added countless comments and testing all the time

  • Brendan Ferguson, who provided many optimizations, improvements to the HTML and JS codes behind the manual pages

  • Sandor Hojtsy, who coded the manual preferences desktop application

  • And at last but not least, everybody, who provided feedback through our mailing list, and in the user survey

Anterior | Inicio
CSS classes | Subir


Integrating the PHP Manual

Manual de PHP
Anterior Siguiente

Capítulo 61. Integrating the PHP Manual

Nota: The information provided here is mainly aimed at IDE authors, or advanced users who would like to integrate this CHM file to their favorite IDEs or other production environment components.

There are several editors out there with support for CHM integration, but you may need to know a few things about what the CHM contains to successfully integrate the manual into your environment.

The CHM is built using XSL style sheets from XML sources. This is unique currently in the PHP Manual family, as all other versions are generated using DSSSL style sheets. This also means, that non-intentional rendering differences may come up. A special conversion script is run on the XSLT output, adding several cute features, and packing up the manual with the preferences files and skin examples.

If you never worked with CHMs, you can think of them as compressed files with OS supported access for files inside and some added search and index support. However CHMs can only be viewed using the HTML Help Viewer, you can directly access files inside them using a special URL prefix, the CHM file name and the file you request from inside. As all the help content is stored in HTML files, you can show pages of the CHM in Internet Explorer.

Assume that you placed your php_manual_en.chm to c:\phpmanual the index file in the manual (which you see the first time) can be accessed with the following URL: mk:@MSITStore:C:\phpmanual\php_manual_en.chm::/_index.html. Here mk:@MSITStore: is the special "protocol", C:\phpmanual\php_manual_en.chm is the CHM with it's full path. The /_index.html part is the path to the index file inside the CHM and :: is just what you need to put between the CHM path and this file path.

Nota: All files are in the root directory of the CHM, unlike the previous CHM versions which included a language directory. Images, style sheets and other supplemental files have names starting with an underscore (like the main index shown above), to avoid name collisions.

The names of generated files follow the same rules as the online manual, except that the extension is .html and not .php. The most important is that function documentation files are named function.FUNCNAME.html where FUNCNAME is the function name, with all underscores converted to hyphens. Some examples are function.echo.html, function.mysql-close.html, function.imagecopy.html.

Using all this information, you can show a manual page for a function requested by a user. A simple example is included in the distribution, named php_quickref.hta. This is a HTML Application to demonstrate the simple process of showing a manual page for a function. The quickRef() function defined therein does the job.

If you would like to integrate the manual into an IDE without direct support for the PHP manual (actually the underscore to hyphen conversion), you can use the included _function.html file to access a function page. This file is simply a redirector, and can be parameterized via the URL, as _function.html#mysql_close. This page will redirect you to the mysql_close function page (function.mysql-close.html) automatically. You can provide the full path of this file if your IDE supports context sensitive help, and provide the IDE specified string as the parameter. An example for this is the UltraEdit 9 intergation (see the edition's website).

The index of the manual (accessible via the index tab on the navigation pane) can also be used for integrational purposes. All the HTML pages are included in the index with their titles as index terms (including function description pages).

If you are a desktop application developer and would like to tightly integrate the CHM into your program (such as displaying the TOC tree in your IDE's help box), you can find more information at http://www.helpware.net/, as well as links to other useful resources. The official site for HTML Help is at http://msdn.microsoft.com/library/en-us/htmlhelp/html/vsconhh1start.asp.

Anterior | Inicio | Siguiente
Presentational Specialities | Subir | Skin development


The Full Text Search

Manual de PHP
Anterior Siguiente

Capítulo 59. The Full Text Search

Tabla de contenidos
General searching rules
Searching for words or phrases
Defining search terms
Using nested expressions when searching
Manual Content and User Note Separation

This edition of the PHP Manual includes an advanced full text search possibility provided by the viewer application. This enables users to to search through every word in the help file to find a match. For example, if a user does a full-text search on the word "Apache", every topic that contains the word "Apache" will be listed. Advanced full-text search allows a user to search using boolean, wildcard, and nested expressions. A user can also limit the search to previous results, match similar words, or search topic titles only.

The usage of the search feature is fairly straightforward. Click on the search tab, type in the desired words and press ENTER (or click on "List Topics"). Then you'll receive a list of matches from the PHP Manual (and the notes). You can use the button with a right arrow on it to add boolean operators to your search (or you can type them in). As you see the results, you can use the column headings (Title, Location and Rank) to sort the topic list. The default order is by Rank. You can also adjust some parameters at the bottom of this tab.

The words found are highlighted on the current page in the Topic pane by default. You can turn off this feature by choosing the "Search Highlight Off" menu item in the Options menu. To can get this feature back similarly. If you are viewing a long topic, only the first 500 instances of a search word or phrase will be highlighted, due to a limitation of the viewer.

General searching rules

A basic search consists of the word or phrase you want to find. You can use wildcard expressions, nested expressions, boolean operators, similar word matches, a previous results list, or topic titles to further define your search.

The basic rules for formulating queries are as follows:

  • Searches are not case-sensitive, so you can type your search in uppercase or lowercase characters.

  • You may search for any combination of letters (a-z) and numbers (0-9). You cannot search for single letters (a, b, c, etc.) and common words, like: an, and, as, at, be, but, by, do, for, from, have, he, in, it, not, of, on, or, she, that, the, there, they, this, to, we, which, with, you.

  • Punctuation marks such as the period (.), colon (:), semicolon (;), comma (,), and hyphen (-) are ignored during a search.

  • Group the elements of your search using double quotes or parentheses to set apart each element. You cannot search for quotation marks.

Nota: If you are searching for a file name with an extension, you should group the entire string in double quotes, ("filename.ext"). Otherwise, the period will break the file name into two separate terms. The default operation between terms is AND, so you will create the logical equivalent to "filename AND ext."

Anterior | Inicio | Siguiente
Keyboard Shortcuts | Subir | Searching for words or phrases


Using nested expressions when searching

Nested expressions allow you to create complex searches for information. For example, "html AND ((smtp OR pop3) NEAR mail)" finds topics containing the word "html" along with the words "smtp" and "mail" close together, or containing "html" along with the words "pop3" and "mail" close together.

The basic rules for searching help topics using nested expressions are as follows:

  • You can use parentheses to nest expressions within a query. The expressions in parentheses are evaluated before the rest of the query.

  • If a query does not contain a nested expression, it is evaluated from left to right. For example: "mail NOT pop3 OR smtp" finds topics containing the word "mail" without the word "pop3" or topics containing the word "smtp". On the other hand, "mail NOT (pop3 OR smtp)" finds topics containing the word "mail" without either of the words "pop3" or "smtp".

  • You cannot nest expressions more than five levels deep.

Anterior | Inicio | Siguiente
Defining search terms | Subir | Manual Content and User Note Separation


Manual Content and User Note Separation

The manual content and the user notes are separated to php_manual_LANG.chm and php_manual_notes.chm. There were several resons to do this, including:

  • This way you can update the user notes and the manual independently as you need.

  • You can have more than one language of the manual, while only need to have one notes file. All the CHM files need to be in the same directory, and all translations need to share the same preferences if you would not like to have more then one notes file.

  • You can bookmark manual pages with notes, or just a notes part of a page separately.

  • You can "turn off" user note display and user note search results by simply deleting php_manual_notes.chm, moving it out of the directory or renaming it.

All these benefits lead us to provide the manual the way you can see it right now. This distribution had the effect on the full text search that you get search results from the manual content and from the user notes as separate ones. The "Location" column shows the source of the result, also enabling you to "add precedence" to manual content results with ordering the results by "Location". User note page titles are also prefixed with "N:" to make them easily distinguishable in the favorites list (there's no location info in the favorites list).

Anterior | Inicio | Siguiente
Using nested expressions when searching | Subir | Specialities of this Edition


Defining search terms

The AND, OR, NOT, and NEAR operators enable you to precisely define your search by creating a relationship between search terms. The following table shows how you can use each of these operators. If no operator is specified, AND is used. For example, the query "server cgi security" is equivalent to "server AND cgi AND security".

Tabla 59-2. Search operators

Search for | Example | Results
Both terms in the same topic | http AND apache | Topics containing both the words "http" and "apache".
Either term in a topic | ming OR swflib | Topics containing either the word "ming" or the word "swflib" or both.
The first term without the second term | xml NOT expat | Topics containing the word "xml" but not the word "expat".
Both terms in the same topic, close together | database NEAR security | Topics containing the word "database" within eight words of the word "security".

Nota: The |, &, and ! characters can also be used in place of OR AND and NOT respectively. This may not work if you use a very old version of the viewer.

Anterior | Inicio | Siguiente
Searching for words or phrases | Subir | Using nested expressions when searching


Searching for words or phrases

You can search for words or phrases and use wildcard expressions. Wildcard expressions allow you to search for one or more characters using a question mark or asterisk. The table below describes the results of these different kinds of searches.

Tabla 59-1. Word and phrase searches

Search for | Example | Results
A single word | select | Topics that contain the word "select". (You will also find its grammatical variations, such as "selector" and "selection".)
A phrase "new operator" or new operator

Topics that contain the literal phrase "new operator" and all its grammatical variations.

Without the quotation marks, the query is equivalent to specifying "new AND operator," which will find topics containing both of the individual words, instead of the phrase.

Wildcard expressions esc* or HT??

Results for the first example include topics that contain the terms "ESC", "escape", "escalation", and so on. The asterisk cannot be the only character in the term.

Results for the second example include topics that contain the terms "HTTP", "HTML" and so on. The question mark cannot be the only character in the term.

Nota: Select the Match similar words check box to include minor grammatical variations for the phrase you search. This feature only locates variations of the word with common suffixes. For example, a search on the word "add" will find "added," but it will not find "additive". This option is independent of other options or syntax. If you do a titles-only search, variations in titles will be matched. If you use quotes (or any other query operator) any variation of the word can appear; for example, "stemmed search" will also match "stemming search".

Anterior | Inicio | Siguiente
The Full Text Search | Subir | Defining search terms


Skin development

Manual de PHP
Anterior Siguiente

Capítulo 62. Skin development

Tabla de contenidos
Page Display Process
Page Elements
CSS classes

This edition of the PHP Manual allows users to choose from skins to display the contents, as well as develop custom skins to meet some special needs. We decided to support skins because we realized that one skin cannot satisfy everybodies needs in a such heavily used edition.

We included two skins by default inside the CHM. These cannot be modified or removed, so if you have the CHM, you have these two skins inside. The Low skin is optimized for small window display, the High skin is a variation of the Low one with some graphics added to spice it up.

A skin must have at least two files, a skin loader JavaScript file and a CSS file. The two inline skins have these files inside the CHM. The skin loader JS should at least load in the CSS file and display the page contents to the viewer. Theoretically there are two kinds of skins: CSS skins and Full skins. CSS skins only modify the CSS and does not amend the page layout. Full skins also modify the page layout. We have included sample skins for both the CSS skin type and the Full skin type ("greenlinks" and "headernostalgia" respectively).

Aviso

Note that though the current skin development methods are quite final, there may be heavy changes in used CSS classes or page elements while we refine the skin development ideas. As this edition is currently in development stage, the information described herein is not to be considered completely stable.

Page Display Process

If you are going to develop your own skin, you should know how one page is loaded and displayed to the user, and how a skin fits in this process. For these paragraphs, we assume that you have put your CHM into c:\phpmanual, so it's accessible as c:\phpmanual\php_manual_LANG.chm (where LANG is the language code), and you would like to see the function page of "echo", which is function.echo.html inside the CHM. See the sections about integration for more information on CHM contents.

  • First of all the HTML content is loaded in from function.echo.html from inside the CHM.

  • At the top of this file, there is a HTML <script> tag, which loads in the _script.js file from the CHM. This file contains all the JS code needed to move on with the process. Most importantly this JS defines many variables (like where the CHM is, or what is the actual page viewed) and many functions to print out the context menu or handle online functions.

  • At last _script.js loads in the preferences file from outside the CHM (c:\phpmanual\php_manual_prefs.js in our example). This JS file defines the preference variables, and calls back prefHandler() which is also defined in _script.js.

  • That function loads in the skin JS file as the preferences dictate. The skin JS file should load in the needed CSS file, and define a displayPage() function, which displays the page if called.

  • The HTML file (function.echo.html in this example) also contains a function call to load in the user notes, which simply puts the notes into this HTML file using DHTML to be displayed as if they were here before...

  • The HTML file also contains a body onload attribute which calls the skin-defined displayPage() function to show the page to the user. This is the last function called, it should present the page in it's complete form to the user.

Every action is synchronized with calling back a function in the previously loaded file when the JS is in memory. The notes loading and skin JS loading is only synchronized with the page's onload event (which as the Microsoft documentation says only fires if the page is completely loaded).

This load and callback chain may seem to be too complicated, but so far this seemed to be the best way to do as many things as possible parallel, while also synchronize some calls.

As you can see your skin JavaScript file is loaded in by _script.js and it's displayPage() function is called by the body onload event.

Anterior | Inicio | Siguiente
Integrating the PHP Manual | Subir | Page Elements


CSS classes

We cannot provide accurate documentation currently on useable CSS classes, as some of the DocBook XSL sheets classes are not used and some classes are added. Please see the sample CSS files included for first time reference.

Anterior | Inicio | Siguiente
Page Elements | Subir | CHM Edition Credits


Page Elements

The PHP Manual pages are all HTML files with several HTML tags in them for both presentational and divisional purposes. The HTML pages contain divisions to be used for skinning purposes and misc divisions added by the DocBook XSL sheets.

A HTML page can be either a function reference page or another kind of page (like a feature description). Skins should get ready to skin these two kinds of pages separately most of the time (depending on the actual design).

The pages are structured using <div> tags with appropriate IDs to ease the skin writers work. A page consists of these parts:

  • <div id="pageContent"></div> contains all the page contents. This begins right after <body> and ends just before </body>. This division is hidden by default, you need to show it after you are ready with the page rewriting process.

  • <div id="pageHeaders"></div> contains the page header parts. This includes the text only main title (in a <span id="pageTitle"></span>) and function properties, in case this is a function page (contained in <span id="funcPurpose"></span>, <span id="funcAvail"></span> and <span id="funcUsage"></span>). In case one of these three is not available, the current page is not a function page.

  • <div id="pageText"></div> contains the majority of the page contents, including examples, manual notes, warnings, etc. This also includes see also parts for now, as we still cannot differentiate between see also and normal text parts (may be a thing to change in the future).

  • <div id="pageNotes"></div> contains the user notes (itself loaded in from another HTML file by JS). It contains a heading, and then a <div> without ID for every user note and spans in that divs for every element of a user note (with "email", "date" and "text" IDs respectively).

  • <div id="pageNav"></div> contains the
navigation table, which is further divided into spans (<span
id="navPrev"></span>, <span
id="navPath"></span>, <span
id="navNext"></span>, <span
id="navOnline"></span>, <span
id="navThisOnline"></span> and <span
id="navReportBug"></span>), where navThisOnline
and navReportBug is inside navOnline.

If you would like to rewrite the page, you should first read in the parts you need from the page to JS variables, then clear the contents of pageContent (or just the part you would like to rewrite), write in the new content and show the pageContent div for the user. If you would not like to make any structural changes, you can simply display the pageContent div and only specify a special style sheet in your skin JS file (see the "greenlinks" skin for an example).

You can find a "Full skin" developed to show you how to make skins built on top of this structure. The skin name is "headernostalgia". It rewrites the header part and removes the footer navigational table.

Anterior | Inicio | Siguiente
Skin development | Subir | CSS classes


Specialities of this Edition

Manual de PHP
Anterior Siguiente

Capítulo 60. Specialities of this Edition

Tabla de contenidos
User Preferences
Presentational Specialities

The Windows HTML Help Edition of the PHP Manual overperforms the presentational and interactive capabilities offered by other editions (including the online manual). This was possible because currently CHMs can only be viewed on Windows using Internet explorer, so we can develop for one browser family and one operating system. Viewers for other OSes may be developed in the future by third parties.

User Preferences

Most of the interactive features of this manual are provided by the viewer application (including full text search, index, favorites list), but we extended this list with PHP Manual specific tools. All these can be adjusted to your needs using a simple desktop application named php_manual_prefs.exe. If you run this program you can see three groups of settings: Online Functions, Context Menu, and Skin. All your settings are stored in php_manual_prefs.js.

Online functions enable you to have elements connected to websites. The two ones you can see on all manual pages are "This page online" and "Report a bug". As you can figure out the first one shows you the same page in the online manual, the second one opens a page from http://bugs.php.net/ and prefills some bug data for you. You need to select a mirror site to use for "php.net sensitive" online functions. We recommend choosing a close mirror site to get the best speed. Other components that may be limited by this online functions setting include context menu items opening new websites ("Google search selection" for example). Custom designs may also include elements restricted by this setting.

The context menu settings enables you to choose which context menu you prefer. This application provides you with an option to define your own context menu adding elements to it from a predefined set. You can have this custom context menu for the right click of your mouse, and have the original menu for CTRL+right click, or the opposite way. Three special types of custom context menu items exist:

Tabla 60-1. Context menu items

Type | Examples | Comments
Page Jump | Function Reference, Function Index | These items jump to a specific page in the CHM. Page Jump options are not restricted to point inside the CHM though. They can point to websites or other resources. Page jump options with a protocol part in the URL open in new window.
Function Call | Print page, Select all, Copy selection to clipboard, Google Search Selection | These are "function calls" for internally defined context menu functions. The last two examples have the speciality that they only show up in the menu if you rightclicked on a selection. Currently there is no way to extend the context menu with skin defined functions.
Special display | Google SearchBox, AlltheWeb SearchBox | These are displayed as HTML forms, where you can enter search keywords, press ENTER, and receive a new window with the search issued in the appropriate search engine. Currently there is no way to extend the set of specially displayed context menu items.
Possible context menu elements and their "abstract implementations" are stored in context.ini. You have the ability to add possible page jump options there, but there is no way currently to extend the context menu system with user (skin) defined functions. The possible mirror sites are listed in mirrors.ini. Feel free to suggest more bundled context menu items to us at php-doc-chm@lists.php.net.

The skins setting enables you to choose from the two bundled default skins, or from any user defined skins. The Low skin is optimized to display correctly at any small size, the High skin is optimized for your viewing pleasure. Other skins may be developed according to our skins development guide. The recommended place for skins on the file system is the skins/SKINNAME subfolder of the PHP Manual directory. Though this is not required, some skins may define other rules (not recommended). We included sample skins for you to see examples of how to develop skins for the PHP Manual.

You have three buttons to choose from at the bottom. The Apply button applies your changes without exiting, the OK button applies and closes the application, the Cancel button does not modify your settings and closes the program.

Anterior | Inicio | Siguiente
Manual Content and User Note Separation | Subir | Presentational Specialities


Presentational Specialities

This edition of the PHP Manual is highly optimized for screen presentation. Skins may be developed to better support printing, as this was not the goal of the included skins. This approach allowed us to make many modifications to the presentation of different parts of the manual.

The first thing you'll notice is that all examples are color coded, using the PHP function show_source(). The actual colors used are defined by CSS classes. Examples also have links to PHP functions used in them to provide quick access to reference material. All code examples have a "copy to clipboard" link by the side of them with which you can copy the text contents of the example to the clipboard.

External links are marked with a special » sign, and open in a new browser window. We also included the "path to this page" information on all pages for you to easily identify where you are and navigate as needed.

Other parts of the manual are quite similar to the online ones by default, though custom skins can modify many elements on the pages.

Anterior | Inicio | Siguiente
Specialities of this Edition | Subir | Integrating the PHP Manual


Using PHP Manual CHM Edition

Manual de PHP
Anterior Siguiente

Capítulo 58. Using PHP Manual CHM Edition

Tabla de contenidos
The HTML Help Toolbar
The Navigation Pane
Keyboard Shortcuts

When you double click on a CHM, a HTML Help Viewer window opens with three panes. On the left side of the window is the Navigation pane. It contains four navigational tabs: the Contents, Index, Search and Favorites tabs. On the right side of the window is the Topic pane. It displays the selected help topic, or the default help topic on startup. The help pages are all separate HTML files, your Internet Explorer displays the pages in the Topic pane. The third pane is the toolbar, which is located below the help window title bar. You can adjust the horizontal layout with dragging the vertical border between the Navigation pane and the Topic pane.

Note, that when you open the CHM the first time, it may appear in a strange position and size. From then, Windows remembers the window position, size and the last opened tab. All these including your favorites are stored in a file named hh.dat. If you move your file to another directory, all these remembered settings will be lost (including your favorites listing!). If you replace your CHM file with a new one, with the same name, this is not a problem though. The file names and path values are stored in hh.dat.

The HTML Help Toolbar

The HTML Help Toolbar contains the following icons, when you view the PHP Manual:

  • Hide/Show - Hides/shows the navigation pane.

  • Locate - Locates a topic in the contents tab (in case you reached a topic with search, index or favorites, and would like to see where it is in the table of contents tree view).

  • Back - Goes back in the history.

  • Forward - Goes forward in the history.

  • Refresh - Reloads the current page.

  • Home - Opens the startup page of the CHM.

  • Print - Opens the print dialog box.

  • Options - Provides a dropdown with more options.

Using this toolbar is really easy, many of the toolbar icons are strongly related to their Internet Explorer equivalents.

Anterior | Inicio | Siguiente
About This Edition | Subir | The Navigation Pane


Keyboard Shortcuts

There are many keyboard shortcuts you can use to increase your productivity. Many users find it more appropriate to use these keyboard shortcuts to access topics, instead of clicking.

Tabla 58-1. General Help Viewer Shortcuts

To | Press
Close the Help Viewer | ALT+F4
Display the Options menu | ALT+O
Hide or show the Navigation pane | ALT+O, and then T
Print a topic | ALT+O, and then P
Move back to the previous topic | ALT+LEFT ARROW
Move forward to the next topic (provided you have viewed it just previously) | ALT+RIGHT ARROW
Turn on or off search highlighting. | ALT+O, and then O
Return to the help file home page | ALT+O, and then H
Switch between the Navigation pane and the Topic pane | F6
Scroll through all the links in a topic or through all the options on a Navigation pane tab | TAB
Display context (right click) menu [see the User Preferences section] | SHIFT+F10

Tabla 58-2. Contents Tab Shortcuts

To | Press
Display the Contents tab | ALT+C
Open and close a book or folder | PLUS SIGN and MINUS SIGN, or LEFT ARROW and RIGHT ARROW
Select a topic | DOWN ARROW and UP ARROW
Display the selected topic | ENTER

Tabla 58-3. Index Tab Shortcuts

To | Press
Display the Index tab | ALT+N
Type a keyword to search for | ALT+W, and then type the word
Select a keyword in the list | UP ARROW and DOWN ARROW
Display the associated topic | ENTER or ALT+D

Tabla 58-4. Search Tab shortcuts

To | Press
Display the Search tab | ALT+S
Type a keyword to search for | ALT+W, and then type the word
Start a search | ALT+L
Select a topic in the results list | ALT+T, and then UP ARROW and DOWN ARROW
Display the selected topic | ENTER or ALT+D
Search for a keyword in the result list of a prior search | ALT+U
Search for words similar to the keyword. For example, to find words like "running" and "runs" for the keyword "run" | ALT+M
Only search through topic titles | ALT+R

Tabla 58-5. Favorites Tab Shortcuts

To | Press
Display the Favorites tab | ALT+I
Add the currently displayed topic to the Favorites list | ALT+A
Select a topic in the Favorites list | ALT+P, and then UP ARROW and DOWN ARROW
Display the selected topic | ENTER or ALT+D
Remove the selected topic from the list | ALT+R

Tabla 58-6. Topic Pane Shortcuts

To | Press
Index Lookup | Select the words you would like to look up and press F1
Find on page | CTRL+F, and then adjust options
Refresh page | F5

Anterior | Inicio | Siguiente
The Navigation Pane | Subir | The Full Text Search


The Navigation Pane

The Navigation Pane contains four navigational tabs: the Contents, Index, Search and Favorites tabs. These all provide different methods to access a topic in the help file.

  • The contents tab reveals a tree like table of contents, where you can navigate to the desired topic by opening and closing parts of the tree. You can even access the deepest sections using this TOC. If you right click on an item here and choose "Print...", you'll have the option to print the selected topic or the selected topic and all subtopics. However printing is not the initial goal of this representation of the manual (the PDF version is suitable for printing).

  • The index tab lists a huge number of "keywords" (actually manual page titles). You can pick one, or start to type a keyword, see the list adjusting to your input, and then click on a topic, or press enter if the selected topic is the one you would like to see.

  • The search tab shows one of the most powerful features of the HTML Help Viewer, the full text search (also known as FTS). Here you can type in your search expression, optionally connecting words with AND/OR/NEAR/NOT. Before you click 'List topics', you can also set some options at the bottom. After the search results are displayed, you'll realize that manual text and user note results are separated. To sort out the two types, click on the 'Location' column header. Now from the search results list, you can pick a topic, and see it's page. The keywords you searched for are highlighted on the page.

  • The favorites tab enables you to store your most used topics in a list, easily accessible. Here you can see the list, add the current topic to it, remove one, or display a selected item. You can also specify your own title for the favorite, by typing it into the 'Current topic:' box. The user note page titles are prepended with a 'N:' string so you can distinguish them from normal manual pages in the favorites listing.

Anterior | Inicio | Siguiente
Using PHP Manual CHM Edition | Subir | Keyboard Shortcuts


Edición HTML Help

Manual de PHP
Anterior Siguiente

X. Edición HTML Help

Tabla de contenidos
57. About This Edition
58. Using PHP Manual CHM Edition
59. The Full Text Search
60. Specialities of this Edition
61. Integrating the PHP Manual
62. Skin development
63. CHM Edition Credits

Anterior | Inicio | Siguiente
Material que falta |  | About This Edition


break

break escapa de la estructuras de control iterante (bucle) actuales for, while, o switch.

break accepta un parámetro opcional, el cual determina cuantas estructuras de control hay que escapar.

<?php
$arr = array ('one', 'two', 'three', 'four', 'stop', 'five');
while (list (, $val) = each ($arr)) {
    if ($val == 'stop') {
        break;    /* You could also write 'break 1;' here. */
    }
    echo "$val<br>\n";
}

/* Using the optional argument. */

$i = 0;
while (++$i) {
    switch ($i) {
    case 5:
        echo "At 5<br>\n";
        break 1;  /* Exit only the switch. */
    case 10:
        echo "Al 10; saliendo<br>\n";
        break 2;  /* Exit the switch and the while. */
    default:
        break;
    }
}
?>

Anterior | Inicio | Siguiente
foreach | Subir | continue


continue

continue se usa dentro de la estructura del bucle para saltar el resto de la iteración actual del bucle y continuar la ejecución al comienzo de la siguiente iteración.

Nota: Tener en cuenta que en PHP la declaración switch es considerada una estructura de bucle por continue.

continue accepta un parámetro opcional, el cual determina cuantos niveles (bluces) hay que saltar antes de continuar con la ejecución.

<?php
while (list ($key, $value) = each ($arr)) {
    if (!($key % 2)) { // skip odd members
        continue;
    }
    do_something_odd ($value);
}

$i = 0;
while ($i++ < 5) {
    echo "Outer<br>\n";
    while (1) {
        echo "&nbsp;&nbsp;Middle<br>\n";
        while (1) {
            echo "&nbsp;&nbsp;Inner<br>\n";
            continue 3;
        }
        echo "Esto nunca se imprime.<br>\n";
    }
    echo "Y esto tampoco.<br>\n";
}
?>

Anterior | Inicio | Siguiente
break | Subir | switch


declare

La construcción declare es usada para definir directivas de ejecución para un bloque de código. La sintaxis de declare es similar a la de las otras estructuras de control:

declare (directiva) sentencia

Directiva permite asignar el comportamiento del bloque declare. Actualmente una sola directiva es reconocida: la directiva ticks (Consultar más abajo la información sobre la directiva ticks)

La sentencia es lo que se ejecuta -- Como se ejecuta y que efectos secundarios tiene depende de la directiva definida en la directiva.

El constructor declare se puede usar tambien globalmente, afectando a todo el código que le sigue.

<?php
// Estos son lo mismo:

// se puede usar este:
declare(ticks=1) {
    // script completo aqui
}

// o este:
declare(ticks=1);
// script completo aqui
?>

Ticks

Un "tick" es un evento que ocurre por cada N sentencias de bajo nivel ejecutadas dentro del bloque declare. El valor de N es especificado por ticks=N como directiva dentro de declare.

El evento que ocurre en cada "tick" es especificado usando la función register_tick_function(). Ver el ejemplo más abajo para más detalles. Tener en cuenta que mas de un evento puede ocurrir por cada "tick"

Ejemplo 11-1. Perfilar una sección de código PHP

<?php
// A function that records the time when it is called
function profile ($dump = FALSE)
{
    static $profile;

    // Return the times stored in profile, then erase it
    if ($dump) {
        $temp = $profile;
        unset ($profile);
        return ($temp);
    }

    $profile[] = microtime ();
}

// Set up a tick handler
register_tick_function("profile");

// Initialize the function before the declare block
profile ();

// Run a block of code, throw a tick every 2nd statement
declare (ticks=2) {
    for ($x = 1; $x < 50; ++$x) {
        echo similar_text (md5($x), md5($x*$x)), "<br />;";
    }
}

// Display the data stored in the profiler
print_r (profile (TRUE));
?>
Este ejemplo perfila el código PHP dentro del bloque 'declare', grabando la hora, una sentencia si y otra no, cuando fue ejecutada. Esta información puede ser usada para encontrar areas en donde el codigo es lento. Este proceso se puede implementar de diferentes maneras: usando "ticks" es más conveniente y facil de implementar.

"Ticks" es una manera muy buena de eliminar errores, implementando simples trabajos en paralelo, I/O en modo desatendido y otras tareas.

Ver también register_tick_function() y unregister_tick_function().

Anterior | Inicio | Siguiente
switch | Subir | return


do..while

Los bucles do..while son muy similares a los bucles while, excepto que las condiciones se comprueban al final de cada iteración en vez de al principio. La principal diferencia frente a los bucles regulares while es que se garantiza la ejecución de la primera iteración de un bucle do..while (la condición se comprueba sólo al final de la iteración), mientras que puede no ser necesariamente ejecutada con un bucle while regular (la condición se comprueba al principio de cada iteración, si esta se evalúa como FALSE desde el principio la ejecución del bucle finalizará inmediatamente).

Hay una sola sintaxis para los bucles do..while:

<?php
 $i = 0;
 do {
     print $i;
 } while ($i>0);
?>

El bucle de arriba se ejecutaría exactamente una sola vez, después de la primera iteración, cuando la condición se comprueba, se evalúa como FALSE ($i no es más grande que 0) y la ejecución del bucle finaliza.

Los usuarios avanzados de C pueden estar familiarizados con un uso distinto del bucle do..while, para permitir parar la ejecución en medio de los bloques de código, encapsulandolos con do..while(0), y usando la sentencia break. El siguiente fragmento de código demuestra esto:

<?php
do {
     if ($i < 5) {
         print "i no es lo suficientemente grande";
         break;
     }
     $i *= $factor;
     if ($i < $minimum_limit) {
         break;
     }
     print "i es correcto";
     /* procesa i */
 } while(0);
?>

No se preocupes si no entiende esto completamente o en absoluto. Se pueden codificar archivos de comandos e incluso archivos de comandos potentes sin usar esta 'propiedad'.

Anterior | Inicio | Siguiente
while | Subir | for


else

A menudo queremos ejecutar una sentencia si se cumple una cierta condicion, y una sentencia distinta si la condición no se cumple. Esto es para lo que sirve else. else extiende una sentencia if para ejecutar una sentencia en caso de que la expresión en la sentencia if se evalúe como FALSE. Por ejemplo, el siguiente código mostraría a es mayor que b si $a fuera mayor que $b, y a NO es mayor que b en cualquier otro caso:

<?php
 if ($a > $b) {
     print "a es mayor que b";
 } else {
     print "a NO es mayor que b";
 }
?>

La sentencia else se ejecuta solamente si la expresión if se evalúa como FALSE, y si hubiera alguna expresión elseif - sólo si se evaluaron también a FALSE (Ver elseif).

Anterior | Inicio | Siguiente
Estructuras de Control | Subir | elseif


elseif

elseif, como su nombre sugiere, es una combinación de if y else. Como else, extiende una sentencia if para ejecutar una sentencia diferente en caso de que la expresión if original se evalúa como FALSE. No obstante, a diferencia de else, ejecutará esa expresión alternativa solamente si la expresión condicional elseif se evalúa como TRUE. Por ejemplo, el siguiente código mostraría a es mayor que b, a es igual a b o a es menor que b:

<?php
 if ($a > $b) {
     print "a es mayor que b";
 } elseif ($a == $b) {
     print "a es igual que b";
 } else {
     print "a es mayor que b";
 }
?>

Puede haber varios elseifs dentro de la misma sentencia if. La primera expresión elseif (si hay alguna) que se evalúe como TRUE se ejecutaría. En PHP, también se puede escribir 'else if' (con dos palabras) y el comportamiento sería idéntico al de un 'elseif' (una sola palabra). El significado sintáctico es ligeramente distinto (si estas familiarizado con C, es el mismo comportamiento) pero la línea básica es que ambos resultarían tener exactamente el mismo comportamiento.

La sentencia elseif se ejecuta sólo si la expresión if precedente y cualquier expresión elseif precedente se evalúan como FALSE, y la expresión elseif actual se evalúa como TRUE.

Anterior | Inicio | Siguiente
else | Subir | Sintaxis Alternativa de Estructuras de Control


for

Los bucles for son los bucles más complejos en PHP. Se comportan como su contrapartida en C. La sintaxis de un bucle for es:

for (expr1; expr2; expr3) sentencia

La primera expresión (expr1) se evalúa (ejecuta) incondicionalmente una vez al principio del bucle.

Al comienzo de cada iteración, se evalúa expr2 . Si se evalúa como TRUE, el bucle continúa y las sentencias anidadas se ejecutan. Si se evalúa como FALSE, la ejecución del bucle finaliza.

Al final de cada iteración, se evalúa (ejecuta) expr3.

Cada una de las expresiones puede estar vacía. Que expr2 esté vacía significa que el bucle debería correr indefinidamente (PHP implicitamente lo considera como TRUE, al igual que C). Esto puede que no sea tan inútil como se podría pensar, puesto que a menudo se quiere salir de un bucle usando una sentencia break condicional en vez de usar la condición de for.

Considera los siguientes ejemplos. Todos ellos muestran números del 1 al 10:

<?php
 /* ejemplo 1 */

 for ($i = 1; $i <= 10; $i++) {
     print $i;
 }

 /* ejemplo 2 */

 for ($i = 1; ;$i++) {
     if ($i > 10) {
         break;
     }
     print $i;
 }

 /* ejemplo 3 */

 $i = 1;
 for (;;) {
     if ($i > 10) {
         break;
     }
     print $i;
     $i++;
 }

 /* ejemplo 4 */

 for ($i = 1; $i <= 10; print $i, $i++) ;
?>

Por supuesto, el primer ejemplo parece ser el mas elegante (o quizás el cuarto), pero uno puede descubrir que ser capaz de usar expresiones vacías en bucles for resulta útil en muchas ocasiones.

PHP también soporta la "sintaxis de dos puntos" alternativa para bucles for.

for (expr1; expr2; expr3): sentencia; ...; endfor;

Otros lenguajes poseen una sentencia foreach para traducir un array o una tabla hash. PHP3 no posee tal construcción; PHP4 sí (ver foreach). En PHP3, se puede combinar while con las funciones list() y each() para conseguir el mismo efecto. Mirar la documentación de estas funciones para ver un ejemplo.

Anterior | Inicio | Siguiente
do..while | Subir | foreach


foreach

PHP 4 (PHP3 no) incluye una construcción foreach, tal como perl y algunos otros lenguajes. Esto simplemente da un modo fácil de iterar sobre matrices. foreach funciona solamente con matrices y devolverá un error si se intenta utilizar con otro tipo de datos ó variables no inicializadas. Hay dos sintaxis; la segunda es una extensión menor, pero útil de la primera:

foreach(expresion_array as $value) sentencia
foreach(expresion_array as $key => $value) sentencia

La primera forma recorre el array dado por expresion_array. En cada iteración, el valor del elemento actual se asigna a $value y el puntero interno del array se avanza en una unidad (así en el siguiente paso, se estará mirando el elemento siguiente).

La segunda manera hace lo mismo, salvo que la clave del elemento actual será asignada a la variable $key en cada iteración.

Nota: Cuando foreach comienza su primera ejecución, el puntero interno a la matriz se reinicia automáticamente al primer elemento de la matriz. Esto significa que no se necesita llamar a reset() antes de un bucle foreach.

Nota: Hay que tener en cuenta queforeach trabaja con una copia de la matriz especificada y no la lista en si, por ello el puntero de la lista no es modificado como en la función each(), y los cambios en el elemento de la matriz retornado no afectan a la matriz original. De todas maneras el puntero interno a la matriz original avanza al procesar la matriz. suponiendo que bucle foreach se ejecuta hasta el final, el puntero interno a la matriz estar/aacute; al final de la matriz.

Nota: foreach no soporta la caracteristica de suprimir mensajes de error con '@'.

Puede haber observado que las siguientes son funcionalidades idénticas:

<?php
$arr = array("one", "two", "three");
reset ($arr);
while (list(, $value) = each ($arr)) {
    echo "Value: $value<br>\n";
}

foreach ($arr as $value) {
    echo "Value: $value<br>\n";
}
?>

Las siguientes también son funcionalidades idénticas:

<?php
reset( $arr );
while( list( $key, $value ) = each( $arr ) ) {
   echo "Key: $key; Valor: $value&lt;br&gt;\n";
}

foreach( $arr as $key => $value ) {
   echo "Key: $key; Valor: $value&lt;br&gt;\n";
}
?>

Algunos ejemplos más para demostrar su uso:

<?php
/* foreach ejemplo 1: s&oacute;lo valor*/
$a = array(1, 2, 3, 17);

foreach($a as $v) {
   print "Valor actual de \$a: $v.\n";
}

/* foreach ejemplo 2: valor (con clave impresa para ilustrar) */
$a = array(1, 2, 3, 17);

$i = 0; /* s&oacute;lo para prop&oacute;sitos demostrativos */

foreach($a as $v) {
   print "\$a[$i] => $v.\n";
   $i++;
}

/* foreach ejemplo 3: clave y valor */
$a = array(
   "uno" => 1,
   "dos" => 2,
   "tres" => 3,
   "diecisiete" => 17
);

foreach($a as $k => $v) {
   print "\$a[$k] => $v.\n";
}

/* foreach ejemplo 4: matriz multi-dimensional */

$a[0][0] = "a";
$a[0][1] = "b";
$a[1][0] = "y";
$a[1][1] = "z";

foreach($a as $v1) {
    foreach ($v1 as $v2) {
        print "$v2\n";
    }
}

/* foreach ejemplo 5: matriz din&aacute;mica */

foreach(array(1, 2, 3, 4, 5) as $v) {
    print "$v\n";
}
?>

Anterior | Inicio | Siguiente
for | Subir | break


switch

La sentencia switch es similar a una serie de sentencias IF en la misma expresión. En muchas ocasiones, se quiere comparar la misma variable (o expresión) con nuchos valores diferentes, y ejecutar una parte de código distinta dependiendo de a qué valor es igual. Para ello sirve la sentencia switch.

Nota: Tener en cuenta que al contrario que otros lenguajes de programación, continue se aplica a switch y funciona de manera similar a break. Si teneis un switch dentro de un bucle y deseais continuar con el paso siguiente en el bucle externo, usar continue 2.

Los siguientes dos ejemplos son dos modos distintos de escribir la misma cosa, uno usa una serie de sentencias if, y el otro usa la sentencia switch:

<?php
if ($i == 0) {
    print "i equals 0";
} elseif ($i == 1) {
    print "i equals 1";
} elseif ($i == 2) {
    print "i equals 2";
}

switch ($i) {
    case 0:
        print "i equals 0";
        break;
    case 1:
        print "i equals 1";
        break;
    case 2:
        print "i equals 2";
        break;
}
?>

Es importante entender cómo se ejecuta la sentencia switch para evitar errores. La sentencia switch ejecuta línea por línea (realmente, sentencia a sentencia). Al comienzo, no se ejecuta código. Sólo cuando se encuentra una sentencia case con un valor que coincide con el valor de la expresión switch PHP comienza a ejecutar las sentencias. PHP continúa ejecutando las sentencias hasta el final del bloque switch, o la primera vez que vea una sentencia break. Si no se escribe una sentencia break al final de una lista de sentencias case, PHP seguirá ejecutando las sentencias del siguiente case. Por ejemplo:

<?php
 switch ($i) {
     case 0:
         print "i es igual a 0";
     case 1:
         print "i es igual a 1";
     case 2:
         print "i es igual a 2";
 }
?>

Aquí, si $i es igual a 0, ¡PHP ejecutaría todas las sentecias print! Si $i es igual a 1, PHP ejecutaría las últimas dos sentencias print y sólo si $i es igual a 2, se obtendría la conducta 'esperada' y solamente se mostraría 'i es igual a 2'. Así, es importante no olvidar las sentencias break (incluso aunque pueda querer evitar escribirlas intencionadamente en ciertas circunstancias).

En una sentencia switch, la condición se evalúa sólo una vez y el resultado se compara a cada sentencia case. En una sentencia elseif, la condición se evalúa otra vez. Si tu condición es más complicada que una comparación simple y/o está en un bucle estrecho, un switch puede ser más rápido.

La lista de sentencias de un case puede también estar vacía, lo cual simplemente pasa el control a la lista de sentencias del siguiente case.

<?php
switch ($i) {
     case 0:
     case 1:
     case 2:
         print "i es menor que 3, pero no negativo";
         break;
     case 3:
         print "i es 3";
 }
?>

Un caso especial es el default case". Este "case" coincide con todo lo que no coincidan los otros case. Por ejemplo:

<?php
 switch ($i) {
     case 0:
         print "i es igual a 0";
         break;
     case 1:
         print "i es igual a 1";
         break;
     case 2:
         print "i es igual a 2";
         break;
     default:
         print "i no es igual a 0, 1 o 2";
 }
?>

La expresión case puede ser cualquier expresión que se evalúe a un tipo simple, es decir, números enteros o de punto flotante y cadenas de texto. No se pueden usar aquí ni arrays ni objetos a menos que se conviertan a un tipo simple.

La sintaxis alternativa para las estructuras de control está también soportada con switch. Para más información, ver Sintaxis alternativa para estructuras de control.

<?php
switch ($i):
     case 0:
         print "i es igual 0";
         break;
     case 1:
         print "i es igual a 1";
         break;
     case 2:
         print "i es igual a 2";
         break;
     default:
         print "i no es igual a 0, 1 o 2";
 endswitch;
?>

Anterior | Inicio | Siguiente
continue | Subir | declare


while

Los bucles while son los tipos de bucle más simples en PHP. Se comportan como su contrapartida en C. La forma básica de una sentencia while es:

while (expr) sentencia

El significado de una sentencia while es simple. Le dice a PHP que ejecute la(s) sentencia(s) anidada(s) repetidamente, mientras la expresión while se evalúe como TRUE. El valor de la expresión es comprobado cada vez al principio del bucle, así que incluso si este valor cambia durante la ejecución de la(s) sentencia(s) anidada(s), la ejecución no parará hasta el fin de la iteración (cada vez que PHP ejecuta las sentencias en el bucle es una iteración). A veces, si la expresión while se evalúa como FALSE desde el principio de todo, la(s) sentencia(s) anidada(s) no se ejecutarán ni siquiera una vez.

Como con la sentencia if, se pueden agrupar multiples sentencias dentro del mismo bucle while encerrando un grupo de sentencias con llaves, o usando la sintaxis alternativa:

while (expr): sentencia ... endwhile;

Los siguientes ejemplos son idénticos, y ambos imprimen números del 1 al 10:

<?php
/* ejemplo 1 */

 $i = 1;
 while ($i <= 10) {
     print $i++;  /* el valor impreso ser&iacute;a
                     $i antes del incremento
                     (post-incremento) */
 }

 /* ejemplo 2 */

 $i = 1;
 while ($i <= 10):
     print $i;
     $i++;
 endwhile;
?>

Anterior | Inicio | Siguiente
Sintaxis Alternativa de Estructuras de Control | Subir | do..while


include

Manual de PHP
Anterior Capítulo 11. Estructuras de Control Siguiente

include()

La sentencia include() incluye y evalúa el archivo especificado.

Esta documentación también se aplica a la función require(). require() y include() son idénticas en todos los aspectos excepto en el modo de actuar ante un error. include() produce un Warning mientras que require() produce un Error Fatal. En otras palabras, no dude en utilizar require() si quiere que un fichero no encontrado cuelgue el procesamiento de la página. include() no se comporta de esta manera, el script seguirá funcionando de todas maneras. Asegurarse que include_path este configurado bien.

Cuando un fichero es incluido, el código que contiene hereda la variable scope de la linea en donde el include ocurre. Cualquier variable disponible en esa linea en el fichero desde donde se hace la inclusión estará disponible en el fichero incluido a partir de ese momento.

Ejemplo 11-3. Ejemplo básico de la funcióninclude()

vars.php
<?php

$color = 'green';
$fruit = 'apple';

?>

test.php
<?php

echo "A $color $fruit"; // A

include 'vars.php';

echo "A $color $fruit"; // A green apple

?>

Si la inclusión ocurre dentro de una función en el fichero donde se incluye, todo el código contenido en el fichero incluido se comportará como si hubiese sido definido dentro de esta función.

Ejemplo 11-4. Incluyendo desde funciones

<?php

function foo()
{
    global $color;

    include 'vars.php';

    echo "A $color $fruit";
}

/* vars.php is in the scope of foo() so     *
 * $fruit is NOT available outside of this  *
 * scope.  $color is because we declared it *
 * as global.                               */

foo();                    // A green apple
echo "A $color $fruit";   // A green

?>

Cuando un fichero es incluido, el intérprete sale del modo PHP y entra en modo HTML al principio del archivo referenciado, y vuelve de nuevo al modo PHP al final. Por esta razón, cualquier código dentro del archivo referenciado que debiera ser ejecutado como código PHP debe ser encerrado dentro de etiquetas válidas de comienzo y fin de PHP.

Si "URL fopen wrappers" esta activada en PHP (como está en la configuración inicial), se puede especificar el fichero que se va a incluir usando una URL (via HTTP u otro mecanismo soportado, consultar Apéndice I) en vez de un fichero local. Si el servidor destino interpreta el fichero destino como código PHP, variables pueden ser mandadas al fichero incluido usando una cadena URL de petición, tal como se hace con HTTP GET. Esto no es lo mismo que incluir un fichero y que este fichero herede las variables del fichero padre; el script es ejecutado en el servidor remoto y el resultado es incluido en en script local.

Aviso

Versiones de PHP para Windows anteriores a 4.3.0, no soportan el acceso remoto a archivos para esta función, no funcionará ni activando siquiera allow_url_fopen.

Ejemplo 11-5. include() a traves de HTTP

<?php

/* This example assumes that www.example.com is configured to parse .php
 * files and not .txt files. Also, 'Works' here means that the variables
 * $foo and $bar are available within the included file.*/

// Won't work; file.txt wasn't handled by www.example.com as PHP
include 'http://www.example.com/file.txt?foo=1&bar=2';

// Won't work; looks for a file named 'file.php?foo=1&bar=2' on the
// local filesystem.
include 'file.php?foo=1&bar=2';

// Works.
include 'http://www.example.com/file.php?foo=1&bar=2';

$foo = 1;
$bar = 2;
include 'file.txt';  // Works.
include 'file.php';  // Works.

?>
Ver también Ficheros remotos, fopen() y file() para obtener información adicional.

Ya que include() y require() son contructores especiales del lenguaje, se deben de incluir dentro del bloque de una sentencia, si están dentro de un bloque condicional.

Ejemplo 11-6. include() y bloques condicionales

<?php

// This is WRONG and will not work as desired.
if ($condition)
    include $file;
else
    include $other;

// This is CORRECT.
if ($condition) {
    include $file;
} else {
    include $other;
}

?>

Es posible ejecutar una sentencia return dentro de un archivo incluido para terminar el procesado de ese archivo y volver al archivo de comandos que lo llamó. Tambien es posible retornar valores de ficheros incluidos. Se puede coger el valor de la llamada "include" como se haría con una función normal.

Nota: En PHP3, return no puede aparecer dentro de un bloque a menos que sea un bloque de función, en el cual return se aplica a esa función y no al archivo completo.

Ejemplo 11-7. include() y return()

return.php
<?php

$var = 'PHP';

return $var;

?>

noreturn.php
<?php

$var = 'PHP';

?>

testreturns.php
<?php

$foo = include 'return.php';

echo $foo; // prints 'PHP'

$bar = include 'noreturn.php';

echo $bar; // prints 1

?>

$bar es igual a 1 porque la inclusión salio bien. Notar la diferencia entre los dos ejemplos anteriores. el primero usa return() dentro del fichero incluido y el segundo no. Otras maneras de incluir ficheros en variables es con fopen(), file() ó usando include()con Funciones de control de salida.

Nota: Puesto que esto es una construcción del lenguaje y no una función, no puede ser llamado usando funciones variables

Ver también require(),
require_once(),
include_once(), readfile(),
virtual(), y include_path.


include_once

Manual de PHP
Anterior Capítulo 11. Estructuras de Control Siguiente

include_once()

La función include_once() incluye y evalua el fichero especificado durante la ejecución del script. Se comporta de manera similar a include(), con la única diferencia que si el código ha sido ya incluido, no se volverá a incluir.

include_once() debería de usarse en casos en los que, un mismo fichero puede ser incluido y evaluado más de una vez durante la ejecución de un script, y se quiere estar seguro que se incluye una sola vez para evitar problemas con redefiniciones de funciones, valores de funciones, etc.

Para consultar ejemplos que usen include_once() e require_once(), ver el código de PEAR incluido con las últimas versiones de PHP.

Nota: include_once() fue incorporado en PHP 4.0.1pl2

Nota: El comportamiento de de include_once() y require_once() puede que no sea el esperado en sistemas operativos en los que mayúsculas y minúsculas se traten igual (como en Windows)

Ejemplo 11-9. Con include_once() no importan las mayúsculas y minúsculas en Windows

<?php
include_once("a.php"); // this will include a.php
include_once("A.php"); // this will include a.php again on Windows!
?>

Aviso

Versiones de PHP para Windows anteriores a 4.3.0, no soportan el acceso remoto a archivos para esta función, no funcionará ni activando siquiera allow_url_fopen.

Ver también include(),
require(), require_once(),
get_required_files(),
get_included_files(),
readfile(), y virtual().

Anterior | Inicio | Siguiente
require_once() | Subir | Funciones


require

Manual de PHP
Anterior Capítulo 11. Estructuras de Control Siguiente

require()

La sentencia require() incluye y evalua el archivo especificado.

require() incluye y evalua el archivo especificado. Información detallada de como esta inclusión funciona se puede encontrar en la documentación de la función include().

require() y include() son idénticas en todos los aspectos excepto en el modo de actuar ante un error. include() produce un Warning mientras que require() produce un Error Fatal. En otras palabras, no dude en utilizar require() si quiere que un fichero no encontrado cuelgue el procesamiento de la página. include() no se comporta de esta manera, el script seguirá funcionando de todas maneras. Asegurarse que include_path este configurado bien.

Ejemplo 11-2. ejemplos básicos de require()

<?php

require 'prepend.php';

require $somefile;

require ('somefile.txt');

?>

consultar la documentación de include() para más ejemplos.

Nota: Con anterioridad a PHP 4.0.2, se aplica lo siguiente: require() siempre intentará leer el fichero a incluir, incluso si la linea donde se encuentra require() nunca es ejecutada. Sin embargo, si la linea donde se encuentra require() no es ejecutada, tampoco lo hará el código incluido.

Nota: Puesto que esto es una construcción del lenguaje y no una función, no puede ser llamado usando funciones variables

Aviso

Versiones de PHP para Windows anteriores a 4.3.0, no soportan el acceso remoto a archivos para esta función, no funcionará ni activando siquiera allow_url_fopen.

Ver también include(),
 require_once(),
 include_once(), eval(),
 file(), readfile(),
 virtual() y include_path.

Anterior | Inicio | Siguiente
return | Subir | include()


require_once

Manual de PHP
Anterior Capítulo 11. Estructuras de Control Siguiente

require_once()

La función require_once() incluye y evalua el fichero especificado durante la ejecución del script. Se comporta de manera similar a require(), con la única diferencia que si el código ha sido ya incluido, no se volverá a incluir. Consultar la documentación de la función require() para obtener más información.

require_once() debería de usarse en casos en los que un mismo fichero puede ser incluido y evaluado más de una vez durante la ejecución de un script, y se quiere estar seguro que se incluye una sola vez para evitar problemas con redefiniciones de funciones, valores de funciones, etc.

Para consultar ejemplos que usen require_once() y include_once(), ver el código de PEAR incluido con las últimas versiones de PHP.

Nota: require_once() fue incorporado en PHP 4.0.1pl2

Nota: El comportamiento de de require_once() y include_once() puede que no sea el esperado en sistemas operativos en los que mayúsculas y minúsculas se traten igual (como en Windows)

Ejemplo 11-8. Con require_once() no importan las mayúsculas y minúsculas en Windows

<?php
require_once("a.php"); // this will include a.php
require_once("A.php"); // this will include a.php again on Windows!
?>

Aviso

Versiones de PHP para Windows anteriores a 4.3.0, no soportan el acceso remoto a archivos para esta función, no funcionará ni activando siquiera allow_url_fopen.

Ver también require(),
include(), include_once(),
get_required_files(),
get_included_files(),
readfile(), y virtual().


empty("0")

Quizás el cambio de comportamiento más controversial ha ocurrido con el modo en que trabaja empty(). Una cadena que contenga solo el caracter '0' (cero) es considerada vacía, mientras que en PHP 3 era así.

Este nuevo comportamiento tiene sentido en aplicaciones web, dado que todos los campos de entrada devuelven cadenas incluso si se solicitan valores numéricos, y dadas las capacidades de conversión automática de tipos de PHP. Pero, por otra parte, puede dañar su código en formas sutiles, causando comportamientos exóticos que son difíciles de rastrear si no sabe qué buscar.

Anterior | Inicio | Siguiente
Inicializadores | Subir | Funciones faltantes


Constantes Base Predefinidas

Constantes Base Predefinidas -- Constantes definidas en el núcleo de PHP, Zend, y módulos SAPI

Descripción

Estas constantes son definidas por el núcleo de PHP. Esto incluye PHP, el motor Zend, y los módulos SAPI.

PHP_VERSION (string)

PHP_OS (string)

DEFAULT_INCLUDE_PATH (string)

PEAR_INSTALL_DIR (string)

PEAR_EXTENSION_DIR (string)

PHP_EXTENSION_DIR (string)

PHP_BINDIR (string)

PHP_LIBDIR (string)

PHP_DATADIR (string)

PHP_SYSCONFDIR (string)

PHP_LOCALSTATEDIR (string)

PHP_CONFIG_FILE_PATH (string)

PHP_OUTPUT_HANDLER_START (integer)

PHP_OUTPUT_HANDLER_CONT (integer)

PHP_OUTPUT_HANDLER_END (integer)

E_ERROR (integer)

E_WARNING (integer)

E_PARSE (integer)

E_NOTICE (integer)

E_CORE_ERROR (integer)

E_CORE_WARNING (integer)

E_COMPILE_ERROR (integer)

E_COMPILE_WARNING (integer)

E_USER_ERROR (integer)

E_USER_WARNING (integer)

E_USER_NOTICE (integer)

E_ALL (integer)

Anterior | Inicio | Siguiente
Constantes predefinidas | Subir | Constantes Estándar Predefinidas


Constantes Estándar Predefinidas

Constantes Estándar Predefinidas -- Constantes definidas en PHP por defecto

Descripción

Estas constantes están definidas en PHP por defecto.

EXTR_OVERWRITE (integer)

EXTR_SKIP (integer)

EXTR_PREFIX_SAME (integer)

EXTR_PREFIX_ALL (integer)

EXTR_PREFIX_INVALID (integer)

EXTR_PREFIX_IF_EXISTS (integer)

EXTR_IF_EXISTS (integer)

SORT_ASC (integer)

SORT_DESC (integer)

SORT_REGULAR (integer)

SORT_NUMERIC (integer)

SORT_STRING (integer)

CASE_LOWER (integer)

CASE_UPPER (integer)

COUNT_NORMAL (integer)

COUNT_RECURSIVE (integer)

ASSERT_ACTIVE (integer)

ASSERT_CALLBACK (integer)

ASSERT_BAIL (integer)

ASSERT_WARNING (integer)

ASSERT_QUIET_EVAL (integer)

CONNECTION_ABORTED (integer)

CONNECTION_NORMAL (integer)

CONNECTION_TIMEOUT (integer)

INI_USER (integer)

INI_PERDIR (integer)

INI_SYSTEM (integer)

INI_ALL (integer)

M_E (float)

M_LOG2E (float)

M_LOG10E (float)

M_LN2 (float)

M_LN10 (float)

M_PI (float)

M_PI_2 (float)

M_PI_4 (float)

M_1_PI (float)

M_2_PI (float)

M_2_SQRTPI (float)

M_SQRT2 (float)

M_SQRT1_2 (float)

CRYPT_SALT_LENGTH (integer)

CRYPT_STD_DES (integer)

CRYPT_EXT_DES (integer)

CRYPT_MD5 (integer)

CRYPT_BLOWFISH (integer)

DIRECTORY_SEPARATOR (string)

SEEK_SET (integer)

SEEK_CUR (integer)

SEEK_END (integer)

LOCK_SH (integer)

LOCK_EX (integer)

LOCK_UN (integer)

LOCK_NB (integer)

HTML_SPECIALCHARS (integer)

HTML_ENTITIES (integer)

ENT_COMPAT (integer)

ENT_QUOTES (integer)

ENT_NOQUOTES (integer)

INFO_GENERAL (integer)

INFO_CREDITS (integer)

INFO_CONFIGURATION (integer)

INFO_MODULES (integer)

INFO_ENVIRONMENT (integer)

INFO_VARIABLES (integer)

INFO_LICENSE (integer)

INFO_ALL (integer)

CREDITS_GROUP (integer)

CREDITS_GENERAL (integer)

CREDITS_SAPI (integer)

CREDITS_MODULES (integer)

CREDITS_DOCS (integer)

CREDITS_FULLPAGE (integer)

CREDITS_QA (integer)

CREDITS_ALL (integer)

STR_PAD_LEFT (integer)

STR_PAD_RIGHT (integer)

STR_PAD_BOTH (integer)

PATHINFO_DIRNAME (integer)

PATHINFO_BASENAME (integer)

PATHINFO_EXTENSION (integer)

CHAR_MAX (integer)

LC_CTYPE (integer)

LC_NUMERIC (integer)

LC_TIME (integer)

LC_COLLATE (integer)

LC_MONETARY (integer)

LC_ALL (integer)

LC_MESSAGES (integer)

ABDAY_1 (integer)

ABDAY_2 (integer)

ABDAY_3 (integer)

ABDAY_4 (integer)

ABDAY_5 (integer)

ABDAY_6 (integer)

ABDAY_7 (integer)

DAY_1 (integer)

DAY_2 (integer)

DAY_3 (integer)

DAY_4 (integer)

DAY_5 (integer)

DAY_6 (integer)

DAY_7 (integer)

ABMON_1 (integer)

ABMON_2 (integer)

ABMON_3 (integer)

ABMON_4 (integer)

ABMON_5 (integer)

ABMON_6 (integer)

ABMON_7 (integer)

ABMON_8 (integer)

ABMON_9 (integer)

ABMON_10 (integer)

ABMON_11 (integer)

ABMON_12 (integer)

MON_1 (integer)

MON_2 (integer)

MON_3 (integer)

MON_4 (integer)

MON_5 (integer)

MON_6 (integer)

MON_7 (integer)

MON_8 (integer)

MON_9 (integer)

MON_10 (integer)

MON_11 (integer)

MON_12 (integer)

AM_STR (integer)

PM_STR (integer)

D_T_FMT (integer)

D_FMT (integer)

T_FMT (integer)

T_FMT_AMPM (integer)

ERA (integer)

ERA_YEAR (integer)

ERA_D_T_FMT (integer)

ERA_D_FMT (integer)

ERA_T_FMT (integer)

ALT_DIGITS (integer)

INT_CURR_SYMBOL (integer)

CURRENCY_SYMBOL (integer)

CRNCYSTR (integer)

MON_DECIMAL_POINT (integer)

MON_THOUSANDS_SEP (integer)

MON_GROUPING (integer)

POSITIVE_SIGN (integer)

NEGATIVE_SIGN (integer)

INT_FRAC_DIGITS (integer)

FRAC_DIGITS (integer)

P_CS_PRECEDES (integer)

P_SEP_BY_SPACE (integer)

N_CS_PRECEDES (integer)

N_SEP_BY_SPACE (integer)

P_SIGN_POSN (integer)

N_SIGN_POSN (integer)

DECIMAL_POINT (integer)

RADIXCHAR (integer)

THOUSANDS_SEP (integer)

THOUSEP (integer)

GROUPING (integer)

YESEXPR (integer)

NOEXPR (integer)

YESSTR (integer)

NOSTR (integer)

CODESET (integer)

LOG_EMERG (integer)

LOG_ALERT (integer)

LOG_CRIT (integer)

LOG_ERR (integer)

LOG_WARNING (integer)

LOG_NOTICE (integer)

LOG_INFO (integer)

LOG_DEBUG (integer)

LOG_KERN (integer)

LOG_USER (integer)

LOG_MAIL (integer)

LOG_DAEMON (integer)

LOG_AUTH (integer)

LOG_SYSLOG (integer)

LOG_LPR (integer)

LOG_NEWS (integer)

LOG_UUCP (integer)

LOG_CRON (integer)

LOG_AUTHPRIV (integer)

LOG_LOCAL0 (integer)

LOG_LOCAL1 (integer)

LOG_LOCAL2 (integer)

LOG_LOCAL3 (integer)

LOG_LOCAL4 (integer)

LOG_LOCAL5 (integer)

LOG_LOCAL6 (integer)

LOG_LOCAL7 (integer)

LOG_PID (integer)

LOG_CONS (integer)

LOG_ODELAY (integer)

LOG_NDELAY (integer)

LOG_NOWAIT (integer)

LOG_PERROR (integer)

Anterior | Inicio | Siguiente
Constantes Base Predefinidas | Subir | Lista de Tipos de Recurso


Stream open options

Stream open options -- Affects the operation of stream factory functions

Description

One or more of these values can be combined using the OR operator.

IGNORE_PATH

This is the default option for streams; it requests that the include_path is not to be searched for the requested file.

USE_PATH

Requests that the include_path is to be searched for the requested file.

IGNORE_URL

Requests that registered URL wrappers are to be ignored when opening the stream. Other non-URL wrappers will be taken into consideration when decoding the path. There is no opposite form for this flag; the streams API will use all registered wrappers by default.

IGNORE_URL_WIN

On Windows systems, this is equivalent to IGNORE_URL. On all other systems, this flag has no effect.

ENFORCE_SAFE_MODE

Requests that the underlying stream implementation perform safe_mode checks on the file before opening the file. Omitting this flag will skip safe_mode checks and allow opening of any file that the PHP process has rights to access.

REPORT_ERRORS

If this flag is set, and there was an error during the opening of the file or URL, the streams API will call the php_error function for you. This is useful because the path may contain username/password information that should not be displayed in the browser output (it would be a security risk to do so). When the streams API raises the error, it first strips username/password information from the path, making the error message safe to display in the browser.

STREAM_MUST_SEEK

This flag is useful when your extension really must be able to randomly seek around in a stream. Some streams may not be seekable in their native form, so this flag asks the streams API to check to see if the stream does support seeking. If it does not, it will copy the stream into temporary storage (which may be a temporary file or a memory stream) which does support seeking. Please note that this flag is not useful when you want to seek the stream and write to it, because the stream you are accessing might not be bound to the actual resource you requested.

Nota: If the requested resource is network based, this flag will cause the opener to block until the whole contents have been downloaded.

STREAM_WILL_CAST

If your extension is using a third-party library that expects a FILE* or file descriptor, you can use this flag to request the streams API to open the resource but avoid buffering. You can then use php_stream_cast() to retrieve the FILE* or file descriptor that the library requires.

The is particularly useful when accessing HTTP URLs where the start of the actual stream data is found after an indeterminate offset into the stream.

Since this option disables buffering at the streams API level, you may experience lower performance when using streams functions on the stream; this is deemed acceptable because you have told streams that you will be using the functions to match the underlying stream implementation. Only use this option when you are sure you need it.

Anterior | Inicio | Siguiente
Streams Constants | Subir | FAQ: Preguntas frecuentes


php_register_url_stream_wrapper

(no version information, might be only in CVS)

php_register_url_stream_wrapper -- Registers a wrapper with the Streams API

Description

int php_register_url_stream_wrapper ( char * protocol, php_stream_wrapper * wrapper, TSRMLS_DC )

php_register_url_stream_wrapper() registers wrapper as the handler for the protocol specified by protocol.

Nota: If you call this function from a loadable module, you *MUST* call php_unregister_url_stream_wrapper() in your module shutdown function, otherwise PHP will crash.

Anterior | Inicio | Siguiente
php_stream_passthru | Subir | php_unregister_url_stream_wrapper


php_stream_can_cast

(no version information, might be only in CVS)

php_stream_can_cast -- Determines if a stream can be converted into another form, such as a FILE* or socket

Description

int php_stream_can_cast ( php_stream * stream, int castas)

This function is equivalent to calling php_stream_cast() with ret set to NULL and flags set to 0. It returns SUCCESS if the stream can be converted into the form requested, or FAILURE if the conversion cannot be performed.

Nota: Although this function will not perform the conversion, some internal stream state *might* be changed by this call.

Nota: You must explicitly compare the return value of this function with one of the constants, as described in php_stream_cast().

See also php_stream_cast() and php_stream_is().

Anterior | Inicio | Siguiente
php_stream_cast | Subir | php_stream_is_persistent


php_stream_cast

(no version information, might be only in CVS)

php_stream_cast -- Convert a stream into another form, such as a FILE* or socket

Description

int php_stream_cast ( php_stream * stream, int castas, void ** ret, int flags)

php_stream_cast() attempts to convert stream into a resource indicated by castas. If ret is NULL, the stream is queried to find out if such a conversion is possible, without actually performing the conversion (however, some internal stream state *might* be changed in this case). If flags is set to REPORT_ERRORS, an error message will be displayed is there is an error during conversion.

Nota: This function returns SUCCESS for success or FAILURE for failure. Be warned that you must explicitly compare the return value with SUCCESS or FAILURE because of the underlying values of those constants. A simple boolean expression will not be interpreted as you intended.

Tabla 43-1. Resource types for castas

Value | Meaning
PHP_STREAM_AS_STDIO | Requests an ANSI FILE* that represents the stream
PHP_STREAM_AS_FD | Requests a POSIX file descriptor that represents the stream
PHP_STREAM_AS_SOCKETD | Requests a network socket descriptor that represents the stream

In addition to the basic resource types above, the conversion process can be altered by using the following flags by using the OR operator to combine the resource type with one or more of the following values:

Tabla 43-2. Resource types for castas

Value | Meaning
PHP_STREAM_CAST_TRY_HARD | Tries as hard as possible, at the expense of additional resources, to ensure that the conversion succeeds
PHP_STREAM_CAST_RELEASE | Informs the streams API that some other code (possibly a third party library) will be responsible for closing the underlying handle/resource. This causes the stream to be closed in such a way the underlying handle is preserved and returned in ret. If this function succeeds, stream should be considered closed and should no longer be used.

Nota: If your system supports fopencookie() (systems using glibc 2 or later), the streams API will always be able to synthesize an ANSI FILE* pointer over any stream. While this is tremendously useful for passing any PHP stream to any third-party libraries, such behaviour is not portable. You are requested to consider the portability implications before distributing you extension. If the fopencookie synthesis is not desirable, you should query the stream to see if it naturally supports FILE* by using php_stream_is()

Nota: If you ask a socket based stream for a FILE*, the streams API will use fdopen() to create it for you. Be warned that doing so may cause data that was buffered in the streams layer to be lost if you intermix streams API calls with ANSI stdio calls.

See also php_stream_is() and php_stream_can_cast().

Anterior | Inicio | Siguiente
php_stream_make_seekable | Subir | php_stream_can_cast


php_stream_close

(no version information, might be only in CVS)

php_stream_close -- Close a stream

Description

int php_stream_close ( php_stream * stream)

php_stream_close() safely closes stream and releases the resources associated with it. After stream has been closed, it's value is undefined and should not be used.

php_stream_close() returns 0 if the stream was closed or EOF to indicate an error. Regardless of the success of the call, stream is undefined and should not be used after a call to this function.

Anterior | Inicio | Siguiente
php_stream_gets | Subir | php_stream_flush


php_stream_closedir

(no version information, might be only in CVS)

php_stream_closedir -- Close a directory stream and release resources

Description

int php_stream_closedir ( php_stream * dirstream)

php_stream_closedir() closes a directory stream and releases resources associated with it. Returns 0 on success, but -1 on failure.

Anterior | Inicio | Siguiente
php_stream_rewinddir | Subir | Streams File API Reference


php_stream_copy_to_mem

(no version information, might be only in CVS)

php_stream_copy_to_mem -- Copy data from stream and into an allocated buffer

Description

size_t php_stream_copy_to_mem ( php_stream * src, char ** buf, size_t maxlen, int persistent)

php_stream_copy_to_mem() allocates a buffer maxlen+1 bytes in length using pemalloc() (passing persistent). It then reads maxlen bytes from src and stores them in the allocated buffer.

The allocated buffer is returned in buf, and the number of bytes successfully read. You, the caller, are responsible for freeing the buffer by passing it and persistent to pefree().

If you want to copy all remaining data from the src stream, pass the constant PHP_STREAM_COPY_ALL as the value of maxlen.

Nota: This function will attempt to copy the data in the most efficient manner, using memory mapped files when possible.

Anterior | Inicio | Siguiente
php_stream_copy_to_stream | Subir | php_stream_make_seekable


php_stream_copy_to_stream

(no version information, might be only in CVS)

php_stream_copy_to_stream -- Copy data from one stream to another

Description

size_t php_stream_copy_to_stream ( php_stream * src, php_stream * dest, size_t maxlen)

php_stream_copy_to_stream() attempts to read up to maxlen bytes of data from src and write them to dest, and returns the number of bytes that were successfully copied.

If you want to copy all remaining data from the src stream, pass the constant PHP_STREAM_COPY_ALL as the value of maxlen.

Nota: This function will attempt to copy the data in the most efficient manner, using memory mapped files when possible.

Anterior | Inicio | Siguiente
php_stream_tell | Subir | php_stream_copy_to_mem


php_stream_eof

(no version information, might be only in CVS)

php_stream_eof -- Check for an end-of-file condition on a stream

Description

int php_stream_eof ( php_stream * stream)

php_stream_eof() checks for an end-of-file condition on stream.

php_stream_eof() returns the 1 to indicate EOF, 0 if there is no EOF and -1 to indicate an error.

Anterior | Inicio | Siguiente
php_stream_write | Subir | php_stream_getc


php_stream_filter_register_factory

(no version information, might be only in CVS)

php_stream_filter_register_factory -- Registers a filter factory with the Streams API

Description

int php_stream_filter_register_factory ( const char * filterpattern, php_stream_filter_factory * factory)

Use this function to register a filter factory with the name given by filterpattern. filterpattern can be either a normal string name (i.e. myfilter) or a global pattern (i.e. myfilterclass.*) to allow a single filter to perform different operations depending on the exact name of the filter invoked (i.e. myfilterclass.foo, myfilterclass.bar, etc...)

Nota: Filters registered by a loadable extension must be certain to call php_stream_filter_unregister_factory() during MSHUTDOWN.

Anterior | Inicio | Siguiente
php_stream_open_wrapper_as_file | Subir | php_stream_filter_unregister_factory


php_stream_filter_unregister_factory

(no version information, might be only in CVS)

php_stream_filter_unregister_factory -- Deregisters a filter factory with the Streams API

Description

int php_stream_filter_unregister_factory ( const char * filterpattern)

Deregisters the filterfactory specified by the filterpattern making it no longer available for use.

Nota: Filters registered by a loadable extension must be certain to call php_stream_filter_unregister_factory() during MSHUTDOWN.

Anterior | Inicio | Siguiente
php_stream_filter_register_factory | Subir | Streams Dir API Reference


php_stream_flush

(no version information, might be only in CVS)

php_stream_flush -- Flush stream buffers to storage

Description

int php_stream_flush ( php_stream * stream)

php_stream_flush() causes any data held in write buffers in stream to be committed to the underlying storage.

php_stream_flush() returns 0 if the buffers were flushed, or if the buffers did not need to be flushed, but returns EOF to indicate an error.

Anterior | Inicio | Siguiente
php_stream_close | Subir | php_stream_seek


php_stream_fopen_from_file

(no version information, might be only in CVS)

php_stream_fopen_from_file -- Convert an ANSI FILE* into a stream

Description

php_stream * php_stream_fopen_from_file ( FILE * file, char * mode)

php_stream_fopen_from_file() returns a stream based on the file. mode must be the same as the mode used to open file, otherwise strange errors may occur when trying to write when the mode of the stream is different from the mode on the file.

Anterior | Inicio | Siguiente
Streams File API Reference | Subir | php_stream_fopen_tmpfile


php_stream_fopen_temporary_file

(no version information, might be only in CVS)

php_stream_fopen_temporary_file -- Generate a temporary file name and open a stream on it

Description

php_stream * php_stream_fopen_temporary_file ( const char * dir, const char * pfx, char ** opened)

php_stream_fopen_temporary_file() generates a temporary file name in the directory specified by dir and with a prefix of pfx. The generated file name is returns in the opened parameter, which you are responsible for cleaning up using efree(). A stream is opened on that generated filename in "w+b" mode. The file is NOT automatically deleted; you are responsible for unlinking or moving the file when you have finished with it.

Anterior | Inicio | Siguiente
php_stream_fopen_tmpfile | Subir | Streams Socket API Reference


php_stream_fopen_tmpfile

(no version information, might be only in CVS)

php_stream_fopen_tmpfile -- Open a FILE* with tmpfile() and convert into a stream

Description

php_stream * php_stream_fopen_tmpfile ( void )

php_stream_fopen_from_file() returns a stream based on a temporary file opened with a mode of "w+b". The temporary file will be deleted automatically when the stream is closed or the process terminates.

Anterior | Inicio | Siguiente
php_stream_fopen_from_file | Subir | php_stream_fopen_temporary_file


php_stream_getc

(no version information, might be only in CVS)

php_stream_getc -- Read a single byte from a stream

Description

int php_stream_getc ( php_stream * stream)

php_stream_getc() reads a single character from stream and returns it as an unsigned char cast as an int, or EOF if the end-of-file is reached, or an error occurred.

php_stream_getc() may block in the same way as php_stream_read() blocks.

The internal position of the stream is advanced by 1 if successful.

Anterior | Inicio | Siguiente
php_stream_eof | Subir | php_stream_gets


php_stream_gets

(no version information, might be only in CVS)

php_stream_gets -- Read a line of data from a stream into a buffer

Description

char * php_stream_gets ( php_stream * stream, char * buf, size_t maxlen)

php_stream_gets() reads up to count-1 bytes of data from stream and copies them into the buffer buf. Reading stops after an EOF or a newline. If a newline is read, it is stored in buf as part of the returned data. A NUL terminating character is stored as the last character in the buffer.

php_stream_read() returns buf when successful or NULL otherwise.

The internal position of the stream is advanced by the number of bytes that were read, so that subsequent reads will continue reading from that point.

This function may block in the same way as php_stream_read().

Anterior | Inicio | Siguiente
php_stream_getc | Subir | php_stream_close


php_stream_is

(no version information, might be only in CVS)

php_stream_is -- Determines if a stream is of a particular type

Description

int php_stream_is ( php_stream * stream, int istype)

php_stream_is() returns 1 if stream is of the type specified by istype, or 0 otherwise.

Tabla 43-1. Values for istype

Value | Meaning
PHP_STREAM_IS_STDIO | The stream is implemented using the stdio implementation
PHP_STREAM_IS_SOCKET | The stream is implemented using the network socket implementation
PHP_STREAM_IS_USERSPACE | The stream is implemented using the userspace object implementation
PHP_STREAM_IS_MEMORY | The stream is implemented using the grow-on-demand memory stream implementation

Nota: The PHP_STREAM_IS_XXX "constants" are actually defined as pointers to the underlying stream operations structure. If your extension (or some other extension) defines additional streams, it should also declare a PHP_STREAM_IS_XXX constant in it's header file that you can use as the basis of this comparison.

Nota: This function is implemented as a simple (and fast) pointer comparison, and does not change the stream state in any way.

See also php_stream_cast() and php_stream_can_cast().

Anterior | Inicio | Siguiente
php_stream_is_persistent | Subir | php_stream_passthru


php_stream_is_persistent

(no version information, might be only in CVS)

php_stream_is_persistent -- Determines if a stream is a persistent stream

Description

int php_stream_is_persistent ( php_stream * stream)

php_stream_is_persistent() returns 1 if the stream is a persistent stream, 0 otherwise.

Anterior | Inicio | Siguiente
php_stream_can_cast | Subir | php_stream_is


php_stream_make_seekable

(no version information, might be only in CVS)

php_stream_make_seekable -- Convert a stream into a stream is seekable

Description

int php_stream_make_seekable ( php_stream * origstream, php_stream ** newstream, int flags)

php_stream_make_seekable() checks if origstream is seekable. If it is not, it will copy the data into a new temporary stream. If successful, newstream is always set to the stream that is valid to use, even if the original stream was seekable.

flags allows you to specify your preference for the seekable stream that is returned: use PHP_STREAM_NO_PREFERENCE to use the default seekable stream (which uses a dynamically expanding memory buffer, but switches to temporary file backed storage when the stream size becomes large), or use PHP_STREAM_PREFER_STDIO to use "regular" temporary file backed storage.

Tabla 43-1. php_stream_make_seekable() return values

Value | Meaning
PHP_STREAM_UNCHANGED | Original stream was seekable anyway. newstream is set to the value of origstream.
PHP_STREAM_RELEASED | Original stream was not seekable and has been released. newstream is set to the new seekable stream. You should not access origstream anymore.
PHP_STREAM_FAILED | An error occurred while attempting conversion. newstream is set to NULL; origstream is still valid.
PHP_STREAM_CRITICAL | An error occurred while attempting conversion that has left origstream in an indeterminate state. newstream is set to NULL and it is highly recommended that you close origstream.

Nota: If you need to seek and write to the stream, it does not make sense to use this function, because the stream it returns is not guaranteed to be bound to the same resource as the original stream.

Nota: If you only need to seek forwards, there is no need to call this function, as the streams API will emulate forward seeks when the whence parameter is SEEK_CUR.

Nota: If origstream is network based, this function will block until the whole contents have been downloaded.

Nota: NEVER call this function with an origstream that is reference by a file pointer in a PHP script! This function may cause the underlying stream to be closed which could cause a crash when the script next accesses the file pointer!

Nota: In many cases, this function can only succeed when origstream is a newly opened stream with no data buffered in the stream layer. For that reason, and because this function is complicated to use correctly, it is recommended that you use php_stream_open_wrapper() and pass in PHP_STREAM_MUST_SEEK in your options instead of calling this function directly.

Anterior | Inicio | Siguiente
php_stream_copy_to_mem | Subir | php_stream_cast


php_stream_open_wrapper

(no version information, might be only in CVS)

php_stream_open_wrapper -- Opens a stream on a file or URL

Description

php_stream * php_stream_open_wrapper ( char * path, char * mode, int options, char ** opened)

php_stream_open_wrapper() opens a stream on the file, URL or other wrapped resource specified by path. Depending on the value of mode, the stream may be opened for reading, writing, appending or combinations of those. See the table below for the different modes that can be used; in addition to the characters listed below, you may include the character 'b' either as the second or last character in the mode string. The presence of the 'b' character informs the relevant stream implementation to open the stream in a binary safe mode.

The 'b' character is ignored on all POSIX conforming systems which treat binary and text files in the same way. It is a good idea to specify the 'b' character whenever your stream is accessing data where the full 8 bits are important, so that your code will work when compiled on a system where the 'b' flag is important.

Any local files created by the streams API will have their initial permissions set according to the operating system defaults - under UNIX based systems this means that the umask of the process will be used. Under Windows, the file will be owned by the creating process. Any remote files will be created according to the URL wrapper that was used to open the file, and the credentials supplied to the remote server.

r

Open text file for reading. The stream is positioned at the beginning of the file.

r+

Open text file for reading and writing. The stream is positioned at the beginning of the file.

w

Truncate the file to zero length or create text file for writing. The stream is positioned at the beginning of the file.

w+

Open text file for reading and writing. The file is created if it does not exist, otherwise it is truncated. The stream is positioned at the beginning of the file.

a

Open for writing. The file is created if it does not exist. The stream is positioned at the end of the file.

a+

Open text file for reading and writing. The file is created if it does not exist. The stream is positioned at the end of the file.

options affects how the path/URL of the stream is interpreted, safe mode checks and actions taken if there is an error during opening of the stream. See Stream open options for more information about options.

If opened is not NULL, it will be set to a string containing the name of the actual file/resource that was opened. This is important when the options include USE_PATH, which causes the include_path to be searched for the file. You, the caller, are responsible for calling efree() on the filename returned in this parameter.

Nota: If you specified STREAM_MUST_SEEK in options, the path returned in opened may not be the name of the actual stream that was returned to you. It will, however, be the name of the original resource from which the seekable stream was manufactured.

Anterior | Inicio | Siguiente
php_stream_stat | Subir | php_stream_read


php_stream_open_wrapper_as_file

(no version information, might be only in CVS)

php_stream_open_wrapper_as_file -- Opens a stream on a file or URL, and converts to a FILE*

Description

FILE * php_stream_open_wrapper_as_file ( char * path, char * mode, int options, char ** opened)

php_stream_open_wrapper_as_file() is exactly like php_stream_open_wrapper(), but converts the stream into an ANSI stdio FILE* and returns that instead of the stream. This is a convenient shortcut for extensions that pass FILE* to third-party libraries.

Anterior | Inicio | Siguiente
php_stream_open_wrapper_ex | Subir | php_stream_filter_register_factory


php_stream_open_wrapper_ex

(no version information, might be only in CVS)

php_stream_open_wrapper_ex -- Opens a stream on a file or URL, specifying context

Description

php_stream * php_stream_open_wrapper_ex ( char * path, char * mode, int options, char ** opened, php_stream_context * context)

php_stream_open_wrapper_ex() is exactly like php_stream_open_wrapper(), but allows you to specify a php_stream_context object using context. To find out more about stream contexts, see XXX

Anterior | Inicio | Siguiente
php_unregister_url_stream_wrapper | Subir | php_stream_open_wrapper_as_file


php_stream_opendir

(no version information, might be only in CVS)

php_stream_opendir -- Open a directory for file enumeration

Description

php_stream * php_stream_opendir ( char * path, php_stream_context * context)

php_stream_opendir() returns a stream that can be used to list the files that are contained in the directory specified by path. This function is functionally equivalent to POSIX opendir(). Although this function returns a php_stream object, it is not recommended to try to use the functions from the common API on these streams.

Anterior | Inicio | Siguiente
Streams Dir API Reference | Subir | php_stream_readdir


php_stream_passthru

(no version information, might be only in CVS)

php_stream_passthru -- Outputs all remaining data from a stream

Description

size_t php_stream_passthru ( php_stream * stream)

php_stream_passthru() outputs all remaining data from stream to the active output buffer and returns the number of bytes output. If buffering is disabled, the data is written straight to the output, which is the browser making the request in the case of PHP on a web server, or stdout for CLI based PHP. This function will use memory mapped files if possible to help improve performance.

Anterior | Inicio | Siguiente
php_stream_is | Subir | php_register_url_stream_wrapper


php_stream_read

(no version information, might be only in CVS)

php_stream_read -- Read a number of bytes from a stream into a buffer

Description

size_t php_stream_read ( php_stream * stream, char * buf, size_t count)

php_stream_read() reads up to count bytes of data from stream and copies them into the buffer buf.

php_stream_read() returns the number of bytes that were read successfully. There is no distinction between a failed read or an end-of-file condition - use php_stream_eof() to test for an EOF.

The internal position of the stream is advanced by the number of bytes that were read, so that subsequent reads will continue reading from that point.

If less than count bytes are available to be read, this call will block (or wait) until the required number are available, depending on the blocking status of the stream. By default, a stream is opened in blocking mode. When reading from regular files, the blocking mode will not usually make any difference: when the stream reaches the EOF php_stream_read() will return a value less than count, and 0 on subsequent reads.

Anterior | Inicio | Siguiente
php_stream_open_wrapper | Subir | php_stream_write


php_stream_readdir

(no version information, might be only in CVS)

php_stream_readdir -- Fetch the next directory entry from an opened dir

Description

php_stream_dirent * php_stream_readdir ( php_stream * dirstream, php_stream_dirent * ent)

php_stream_readdir() reads the next directory entry from dirstream and stores it into ent. If the function succeeds, the return value is ent. If the function fails, the return value is NULL. See php_stream_dirent for more details about the information returned for each directory entry.

Anterior | Inicio | Siguiente
php_stream_opendir | Subir | php_stream_rewinddir


php_stream_rewinddir

(no version information, might be only in CVS)

php_stream_rewinddir -- Rewind a directory stream to the first entry

Description

int php_stream_rewinddir ( php_stream * dirstream)

php_stream_rewinddir() rewinds a directory stream to the first entry. Returns 0 on success, but -1 on failure.

Anterior | Inicio | Siguiente
php_stream_readdir | Subir | php_stream_closedir


php_stream_seek

(no version information, might be only in CVS)

php_stream_seek -- Reposition a stream

Description

int php_stream_seek ( php_stream * stream, off_t offset, int whence)

php_stream_seek() repositions the internal position of stream. The new position is determined by adding the offset to the position indicated by whence. If whence is set to SEEK_SET, SEEK_CUR or SEEK_END the offset is relative to the start of the stream, the current position or the end of the stream, respectively.

php_stream_seek() returns 0 on success, but -1 if there was an error.

Nota: Not all streams support seeking, although the streams API will emulate a seek if whence is set to SEEK_CUR and offset is positive, by calling php_stream_read() to read (and discard) offset bytes.

The emulation is only applied when the underlying stream implementation does not support seeking. If the stream is (for example) a file based stream that is wrapping a non-seekable pipe, the streams api will not apply emulation because the file based stream implements a seek operation; the seek will fail and an error result will be returned to the caller.

Anterior | Inicio | Siguiente
php_stream_flush | Subir | php_stream_tell


php_stream_sock_open_from_socket

(no version information, might be only in CVS)

php_stream_sock_open_from_socket -- Convert a socket descriptor into a stream

Description

php_stream * php_stream_sock_open_from_socket ( int socket, int persistent)

php_stream_sock_open_from_socket() returns a stream based on the socket. persistent is a flag that controls whether the stream is opened as a persistent stream. Generally speaking, this parameter will usually be 0.

Anterior | Inicio | Siguiente
Streams Socket API Reference | Subir | php_stream_sock_open_host


php_stream_sock_open_host

(no version information, might be only in CVS)

php_stream_sock_open_host -- Open a connection to a host and return a stream

Description

php_stream * php_stream_sock_open_host ( const char * host, unsigned short port, int socktype, struct timeval * timeout, int persistent)

php_stream_sock_open_host() establishes a connect to the specified host and port. socktype specifies the connection semantics that should apply to the connection. Values for socktype are system dependent, but will usually include (at a minimum) SOCK_STREAM for sequenced, reliable, two-way connection based streams (TCP), or SOCK_DGRAM for connectionless, unreliable messages of a fixed maximum length (UDP).

persistent is a flag the controls whether the stream is opened as a persistent stream. Generally speaking, this parameter will usually be 0.

If not NULL, timeout specifies a maximum time to allow for the connection to be made. If the connection attempt takes longer than the timeout value, the connection attempt is aborted and NULL is returned to indicate that the stream could not be opened.

Nota: The timeout value does not include the time taken to perform a DNS lookup. The reason for this is because there is no portable way to implement a non-blocking DNS lookup.

The timeout only applies to the connection phase; if you need to set timeouts for subsequent read or write operations, you should use php_stream_sock_set_timeout() to configure the timeout duration for your stream once it has been opened.

The streams API places no restrictions on the values you use for socktype, but encourages you to consider the portability of values you choose before you release your extension.

Anterior | Inicio | Siguiente
php_stream_sock_open_from_socket | Subir | php_stream_sock_open_unix


php_stream_sock_open_unix

(no version information, might be only in CVS)

php_stream_sock_open_unix -- Open a UNIX domain socket and convert into a stream

Description

php_stream * php_stream_sock_open_unix ( const char * path, int pathlen, int persistent, struct timeval * timeout)

php_stream_sock_open_unix() attempts to open the UNIX domain socket specified by path. pathlen specifies the length of path. If timeout is not NULL, it specifies a timeout period for the connection attempt. persistent indicates if the stream should be opened as a persistent stream. Generally speaking, this parameter will usually be 0.

Nota: This function will not work under Windows, which does not implement unix domain sockets. A possible exception to this rule is if your PHP binary was built using cygwin. You are encouraged to consider this aspect of the portability of your extension before it's release.

Nota: This function treats path in a binary safe manner, suitable for use on systems with an abstract namespace (such as Linux), where the first character of path is a NUL character.

Anterior | Inicio | Siguiente
php_stream_sock_open_host | Subir | Streams Structures


php_stream_stat

(no version information, might be only in CVS)

php_stream_stat -- Gets the status for the underlying storage associated with a stream

Description

int php_stream_stat ( php_stream * stream, php_stream_statbuf * ssb)

php_stream_stat() examines the storage to which stream is bound, and returns information such as file size, access and creation times and so on. The return value is 0 on success, -1 on error. For more information about the information returned, see php_stream_statbuf.

Anterior | Inicio | Siguiente
php_stream_stat_path | Subir | php_stream_open_wrapper


php_stream_stat_path

(no version information, might be only in CVS)

php_stream_stat_path -- Gets the status for a file or URL

Description

int php_stream_stat_path ( char * path, php_stream_statbuf * ssb)

php_stream_stat_path() examines the file or URL specified by path and returns information such as file size, access and creation times and so on. The return value is 0 on success, -1 on error. For more information about the information returned, see php_stream_statbuf.

Anterior | Inicio | Siguiente
Streams Common API Reference | Subir | php_stream_stat


php_stream_tell

(no version information, might be only in CVS)

php_stream_tell -- Determine the position of a stream

Description

off_t php_stream_tell ( php_stream * stream)

php_stream_tell() returns the internal position of stream, relative to the start of the stream. If there is an error, -1 is returned.

Anterior | Inicio | Siguiente
php_stream_seek | Subir | php_stream_copy_to_stream


php_stream_write

(no version information, might be only in CVS)

php_stream_write -- Write a number of bytes from a buffer to a stream

Description

size_t php_stream_write ( php_stream * stream, const char * buf, size_t count)

php_stream_write() writes count bytes of data from buf into stream.

php_stream_write() returns the number of bytes that were written successfully. If there was an error, the number of bytes written will be less than count.

The internal position of the stream is advanced by the number of bytes that were written, so that subsequent writes will continue writing from that point.

Anterior | Inicio | Siguiente
php_stream_read | Subir | php_stream_eof


php_unregister_url_stream_wrapper

(no version information, might be only in CVS)

php_unregister_url_stream_wrapper -- Unregisters a wrapper from the Streams API

Description

int php_unregister_url_stream_wrapper ( char * protocol, TSRMLS_DC )

php_unregister_url_stream_wrapper() unregisters the wrapper associated with protocol.

Anterior | Inicio | Siguiente
php_register_url_stream_wrapper | Subir | php_stream_open_wrapper_ex


struct php_stream_dirent

struct php_stream_dirent -- Holds information about a single file during dir scanning

Description

php_stream_dirent
     char d_name[MAXPATHLEN]

d_name holds the name of the file, relative to the directory being scanned.

Anterior | Inicio | Siguiente
struct php_stream_statbuf | Subir | struct php_stream_ops


struct php_stream_filter

struct php_stream_filter -- Holds filter properties and pointer to operations

Description

struct _php_stream_filter {
            php_stream_filter_ops *fops;
            void *abstract; /* for use by filter implementation */
            php_stream_filter *next;
            php_stream_filter *prev;
            int is_persistent;

            /* link into stream and chain */
            php_stream_filter_chain *chain;

            /* buffered buckets */
            php_stream_bucket_brigade buffer;
        } php_stream_filter;

Anterior | Inicio | Siguiente
struct php_stream_wrapper_ops | Subir | struct php_stream_filter_ops


struct php_stream_filter_ops

struct php_stream_filter_ops -- Holds member functions for a stream filter implementation

Description

typedef struct _php_stream_filter_ops {
            php_stream_filter_status_t (*filter)(
                    php_stream *stream,
                    php_stream_filter *thisfilter,
                    php_stream_bucket_brigade *buckets_in,
                    php_stream_bucket_brigade *buckets_out,
                    size_t *bytes_consumed,
                    int flags
                    TSRMLS_DC);

            void (*dtor)(php_stream_filter *thisfilter TSRMLS_DC);

            const char *label;
} php_stream_filter_ops;

Anterior | Inicio | Siguiente
struct php_stream_filter | Subir | Streams Constants


struct php_stream_ops

struct php_stream_ops -- Holds member functions for a stream implementation

Description

typedef struct _php_stream_ops {
             /* all streams MUST implement these operations */
             size_t (*write)(php_stream *stream, const char *buf, size_t count TSRMLS_DC);
             size_t (*read)(php_stream *stream, char *buf, size_t count TSRMLS_DC);
             int (*close)(php_stream *stream, int close_handle TSRMLS_DC);
             int (*flush)(php_stream *stream TSRMLS_DC);

             const char *label; /* name describing this class of stream */

             /* these operations are optional, and may be set to NULL if the stream does not
              * support a particular operation */
            int (*seek)(php_stream *stream, off_t offset, int whence TSRMLS_DC);
            char *(*gets)(php_stream *stream, char *buf, size_t size TSRMLS_DC);
            int (*cast)(php_stream *stream, int castas, void **ret TSRMLS_DC);
            int (*stat)(php_stream *stream, php_stream_statbuf *ssb TSRMLS_DC);
        } php_stream_ops;

Anterior | Inicio | Siguiente
struct php_stream_dirent | Subir | struct php_stream_wrapper


struct php_stream_statbuf

struct php_stream_statbuf -- Holds information about a file or URL

Description

php_stream_statbuf
     struct stat sb

sb is a regular, system defined, struct stat.

Anterior | Inicio | Siguiente
Streams Structures | Subir | struct php_stream_dirent


struct php_stream_wrapper

struct php_stream_wrapper -- Holds wrapper properties and pointer to operations

Description

struct _php_stream_wrapper  {
            php_stream_wrapper_ops *wops;   /* operations the wrapper can perform */
            void *abstract;                 /* context for the wrapper */
            int is_url;                     /* so that PG(allow_url_fopen) can be respected */

            /* support for wrappers to return (multiple) error messages to the stream opener */
            int err_count;
            char **err_stack;
        } php_stream_wrapper;

Anterior | Inicio | Siguiente
struct php_stream_ops | Subir | struct php_stream_wrapper_ops


struct php_stream_wrapper_ops

struct php_stream_wrapper_ops -- Holds member functions for a stream wrapper implementation

Description

typedef struct _php_stream_wrapper_ops {
            /* open/create a wrapped stream */
            php_stream *(*stream_opener)(php_stream_wrapper *wrapper, char *filename, char *mode,
                    int options, char **opened_path, php_stream_context *context STREAMS_DC TSRMLS_DC);
            /* close/destroy a wrapped stream */
            int (*stream_closer)(php_stream_wrapper *wrapper, php_stream *stream TSRMLS_DC);
            /* stat a wrapped stream */
            int (*stream_stat)(php_stream_wrapper *wrapper, php_stream *stream, php_stream_statbuf *ssb TSR$
            /* stat a URL */
            int (*url_stat)(php_stream_wrapper *wrapper, char *url, php_stream_statbuf *ssb TSRMLS_DC);
            /* open a "directory" stream */
            php_stream *(*dir_opener)(php_stream_wrapper *wrapper, char *filename, char *mode,
                    int options, char **opened_path, php_stream_context *context STREAMS_DC TSRMLS_DC);

            const char *label;

            /* Delete/Unlink a file */
            int (*unlink)(php_stream_wrapper *wrapper, char *url, int options, php_stream_context *context TSRMLS_DC);
        } php_stream_wrapper_ops;

Anterior | Inicio | Siguiente
struct php_stream_wrapper | Subir | struct php_stream_filter


Including Output in phpinfo

Manual de PHP
Anterior Capítulo 36. Printing Information Siguiente

Including Output in phpinfo()

After creating a real module, you'll want to show information about the module in phpinfo() (in addition to the module name, which appears in the module list by default). PHP allows you to create your own section in the phpinfo() output with the ZEND_MINFO() function. This function should be placed in the module descriptor block (discussed earlier) and is always called whenever a script calls phpinfo().

PHP automatically prints a section in phpinfo() for you if you specify the ZEND_MINFO function, including the module name in the heading. Everything else must be formatted and printed by you.

Typically, you can print an HTML table header using php_info_print_table_start() and then use the standard functions php_info_print_table_header() and php_info_print_table_row(). As arguments, both take the number of columns (as integers) and the column contents (as strings). Ejemplo 36-1 shows a source example and its output. To print the table footer, use php_info_print_table_end().

Ejemplo 36-1. Source code and screenshot for output in phpinfo().

php_info_print_table_start();
php_info_print_table_header(2, "First column", "Second column");
php_info_print_table_row(2, "Entry in first row", "Another entry");
php_info_print_table_row(2, "Just to fill", "another row here");
php_info_print_table_end();

Anterior | Inicio | Siguiente
zend_error() | Subir | Execution Information


zend_error

Manual de PHP
Anterior Capítulo 36. Printing Information Siguiente

zend_error()

zend_error() can be used to generate error messages. This function accepts two arguments; the first is the error type (see zend_errors.h), and the second is the error message.
zend_error(E_WARNING, "This function has been called with empty arguments");
Tabla 36-1 shows a list of possible values (see Figura 36-1). These values are also referred to in php.ini. Depending on which error type you choose, your messages will be logged.

Tabla 36-1. Zend's Predefined Error Messages.

Error | Description
E_ERROR | Signals an error and terminates execution of the script immediately .
E_WARNING | Signals a generic warning. Execution continues.
E_PARSE | Signals a parser error. Execution continues.
E_NOTICE | Signals a notice. Execution continues. Note that by default the display of this type of error messages is turned off in php.ini.
E_CORE_ERROR | Internal error by the core; shouldn't be used by user-written modules.
E_COMPILE_ERROR | Internal error by the compiler; shouldn't be used by user-written modules.
E_COMPILE_WARNING | Internal warning by the compiler; shouldn't be used by user-written modules.

Figura 36-1. Display of warning messages in the browser.

Anterior | Inicio | Siguiente
Printing Information | Subir | Including Output in phpinfo()


Creation of get_module

Manual de PHP
Anterior Capítulo 31. Source Discussion Siguiente

Creation of get_module()

This function is special to all dynamic loadable modules. Take a look at the creation via the ZEND_GET_MODULE macro first:

#if COMPILE_DL_FIRSTMOD
     ZEND_GET_MODULE(firstmod)
#endif

The function implementation is surrounded by a conditional compilation statement. This is needed since the function get_module() is only required if your module is built as a dynamic extension. By specifying a definition of COMPILE_DL_FIRSTMOD in the compiler command (see above for a discussion of the compilation instructions required to build a dynamic extension), you can instruct your module whether you intend to build it as a dynamic extension or as a built-in module. If you want a built-in module, the implementation of get_module() is simply left out.

get_module() is called by Zend at load time of the module. You can think of it as being invoked by the dl() call in your script. Its purpose is to pass the module information block back to Zend in order to inform the engine about the module contents.

If you don't implement a get_module() function in your dynamic loadable module, Zend will compliment you with an error message when trying to access it.

Anterior | Inicio | Siguiente
Declaration of the Zend Module Block | Subir | Implementation of All Exported Functions